Time of Update: 2014-07-02
前言 本文記錄一個Java層與JNI層參數與資料互動的應用程式開發過程,為實現一個功能完整的帶Java與JNI的應用程式打下基礎。本文假設讀者已搭建好Android的Eclipse與NDK開發環境,包括通過ADB串連手機的配置。1. 構建基本的Android應用程式 1.1 引導介面配置 開啟Eclipse,"File"->"New"->"Android Application
Time of Update: 2014-07-02
public class SystemManager {private Context mContext;private static SystemManager sInstance;private SystemManager(final Context context) {mContext = context;}public static SystemManager init(final Context context) {if (null == sInstance) {sInstance =
Time of Update: 2014-07-02
如果在單鏈表或頭指標表示的鏈表上操作這個比較消耗效能,因為都需要遍曆第一個鏈表,找到an,然後將b1連結到an的後面,時間複雜度是:O(n)。若在尾指標表示的單迴圈鏈表上實現,則只需改變指標,無需遍曆,時間複雜度是:O(1)現在看演算法實現,需要4個主要步驟,都注釋了:LinkList Connect(LinkList A,LinkList B){//假設A,B為非空迴圈鏈表的尾指標LinkList p = A->next;//1、儲存A鏈表的頭結點的位置A->next =
Time of Update: 2014-07-02
1. iOS中程式正常載入UIViewControlle時,以下四個方法哪個最先執行?A.viewVillAppearB.viewDidLoadC.viewDidAppearD.viewWillDisappear2. 類方法用什麼符號標識?A.+B.-C.staticD.*3. iOS中下面哪個方法不能自己手動調用?A.deallocB.releaseC.retainD.new4. 下面哪個類型不可以放到NSArray中?A.NSStringB.NSIntegerC.NSDictionaryD.
Time of Update: 2014-07-02
Android系統內建的Progressbar的樣式是固定的,當想使用自訂的進度條時,也很簡單首先在布局檔案中加入進度條 <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent"
Time of Update: 2014-07-02
ListView和GridView已經成為原生的Android應用實現中兩個最流行的設計模式。目前,這些模式被大量的開發人員使用,主要是因為他們是簡單而直接的實現,同時他們提供了一個良好,整潔的使用者體驗。對於ListView和GridView一個共同的需求就是在使用者不斷向下滾動,組件仍能動態載入更多地載入更多資料。這篇部落格就將帶領大家實現在ListView和GridView中這個功能。我們需要的主要組件就是我們的InfiniteScrollListener類,這個類是繼承於OnScroll
Time of Update: 2014-07-02
這篇文字將介紹Loader<D>類,並且介紹自訂Loader的實現。這是本系列的第三篇文章。一:Loaders之前世界二:瞭解LoaderManager三:實現Loaders四:執行個體:AppListLoader重中之重,如果你還沒有讀過前面兩篇文章,我建議你在深入之前先讀一讀那兩篇文章。先簡短的總結一下這篇部落格覆蓋了什麼內容。Loader之前的世界(第一篇)描述了Android3.0之前的資料載入方法和在UI主線程中執行的冗長的查詢操作。這些UI非友好的API導致了應用響應變差
Time of Update: 2014-07-02
/*本文章由 莫灰灰 編寫,轉載請註明出處。 作者:莫灰灰 郵箱: minzhenfei@163.com*/1. KeyStore Service在Android中,/system/bin/keystore進程提供了一個安全儲存的服務。在過去的版本中,其他程式主要用過UNIX
Time of Update: 2014-07-02
可以採用如下方法,寫一個函數:-(UIImage*) getOneImageButtonWithArrow{ //tmpView做附控制項 UIView *tmpView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 38.0f, 32.0f)];tmpView.backgroundColor = [UIColor clearColor]; //bgImg作為背景 UIImage* bgImg = [
Time of Update: 2014-07-02
背景 Dalvik :http://zh.wikipedia.org/wiki/Dalvik%E8%99%9A%E6%8B%9F%E6%9C%BA ART :http://source.android.com/devices/tech/dalvik/art.html 本文 Ian Rogers 在Google IO 2014上講述了 The ART runtime 的Garbage
Time of Update: 2014-07-02
Preference主要實現一些配置資料,一些我們上次點擊選擇的內容,我們希望在下次應用調起的時候依然有效,無須使用者再一次進行配置或選擇。Android提供preference這個鍵值對的方式來處理這種情況,自動儲存這些資料,並立時生效,同時Android提供一種類似的layout的方式來進行Preference的布局。Preference組件有ListPreference,EditTextPreference,CheckBoxPreference和SwitchPr
Time of Update: 2014-07-02
研究了一下android的apk的簽名和代碼的混淆打包,如果不混淆打包,那麼apk可以直接被人反編譯出來查看源碼,混淆打包雖然還是能看懂,但是沒有那麼好懂了,至少要話費些時間如果不混淆,反編譯後的代碼如下:基本上就是源碼。如果混淆後,反編譯後的代碼如下:vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140630/2014063013052323.jpg" alt="\">代碼中出現很多的a、b、c之類的變數命名,
Time of Update: 2014-07-02
Android應用開發中我們常常需要傳送簡訊。這對於android平台來說,是最簡單不過的功能了,無需太多代碼,也無需自訂代碼,只需要調用android提供的訊息管理類SmsManager就可以了。 核心代碼如下: SmsManager sms=SmsManager.getDefault();PendingIntent intent=PendingIntent.getBroadcast(MainActivtiy.this,0, new Intent(),
Time of Update: 2014-07-02
這篇打算直接告訴大家怎麼用吧,其實這個也不是很難的架構,大致使用過程如下:// 擷取緩衝圖片目錄File cacheDir = StorageUtils.getOwnCacheDirectory(activity,"imageloader/Cache");ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(activity).memoryCacheExtraOptions(800, 760)//
Time of Update: 2014-07-02
1、片1所示,在一個Android應用中,除了標題列和底層的ActionBar的地區,是我們可以操縱的UI地區,那是不是說我們就不能改變除了這兩個地區的UI呢?答案是否定的。比如現在我們希望把一個View放在視窗的最低端顯示,通過hierarchyviewer工具我們可以發現最底層的ActionBar是在TestActivity布局的父視窗中設定的,那麼我們想通過setContentView(R.layout.activity_main)在activity_main布局檔案中設定就無法實現了,通
Time of Update: 2014-07-02
針對剛安裝好的Android studio, 比如import工程時,你會發現你的很多中文目錄顯示異常,如:為什麼會出現這個問題呢,其實原因很簡單,因為Android studio的預設Font並不支援中文。怎麼解決呢,開啟settings,如:選擇用紅色框框起來任意一種,那為啥都是亂碼呢,因為這些都是中文字型的格式,所以在你設定之前當然也是顯示不了。或者你也可以選擇‘simsun’。這個樣式也很多人在用。OK,這樣就可以了!
Time of Update: 2014-07-02
1、總圖中的第一步 第一步 vcD4KPHA+ICAgICAgIH4vQW5kcm9pZC9mcmFtZXdvcmtzL2Jhc2UvY29yZS9qYXZhL2FuZHJvaWQvYXBwPC9wPgo8cD4gICAgICAgLS0tLUFjdGl2aXR5TWFuYWdlck5hdGl2ZS5qYXZhPC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;">class ActivityManagerProxy implements
Time of Update: 2014-07-02
1. 在IDE中查看Log資訊當程式運行記憶體回收的時候,會列印一條Log資訊,其格式如下:D/dalvikvm: , , , GC_Reason表示導致記憶體回收的原因以及當前的回收類型,包括以下幾類: GC_CONCURRENT:當堆中對象數量達到一定是觸發的垃圾收集 GC_FOR_MALLOC:在記憶體已滿的情況下分配記憶體,此時系統會暫停程式並回收記憶體 GC_HPROF_DUMP_HEAP:建立FPFOR檔案來分析Heap時所造成的垃圾收集
Time of Update: 2014-07-02
先上:Title的Layout為: 彈出的dialog的Layout為 我們使用 mDialog = new Dialog(context,R.style.customDialog); mDialog.setContentView(R.layout.dialog_layout);然後我們來設定Dialog的其他屬性 mDialog = new
Time of Update: 2014-07-02
昨天將Android Studio升級到0.8.1, 竟然沒法執行App了~ Run視窗中顯示:Waiting for device. Target device: lge-nexus_4-0262fa6d9d51c2e8 Event Log視窗顯示: NoSuchMethodError: