標籤:android手機記憶體管理
Android手機記憶體管理與效能最佳化&JNI、NDK進階編程(JNI、Dalvik、記憶體監測)
課程分類:Android
適合人群:中級
課時數量:34小節課時
用到技術:Dalvik,DDMS,File Explorer,Adapter和圖片處理,查詢資料庫和Static關鍵字使用及線程,JNI和NDK等
涉及項目:Android手機記憶體管理與效能最佳化,玩轉JNI與NDK手機編程
諮詢qq:1840215592
Android手機記憶體管理與效能最佳化詳細介紹:http://www.dwz.cn/F8A3P
1.何謂JNI
JNI,從Java1.1開始,Java Native Interface(JNI)標準成為java平台的一部分,它允許Java代碼和其他語言寫的代碼進行互動。JNI一開始是為了本地已編譯語言,尤其是C和C++而設計的,但是它並不妨礙你使用其他語言,只要呼叫慣例受支援就可以了。使用java與本地已編譯的代碼互動,通常會喪失平台可移植性。但是,有些情況下這樣做是可以接受的,甚至是必須的。例如,使用一些舊的庫,與硬體、作業系統進行互動,或者為了提高程式的效能。JNI標準至少保證本地代碼能工作在任何JAVA 虛擬機器環境下。
2.何謂NDK
Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google稱為“NDK”。
眾所周知,Android程式運行在Dalvik虛擬機器中,NDK允許使用者使用類似C / C++之類的原生代碼語言執行部分程式。
NDK包括了:
從C / C++產生原生程式碼程式庫所需要的工具和build files。
將一致的原生庫嵌入可以在Android裝置上部署的應用程式套件組合檔案(application packages files ,即.apk檔案)中。
支援所有未來Android平台的一些列原生系統標頭檔和庫
為何要用到NDK?
概括來說主要分為以下幾種情況:
1. 代碼的保護,由於apk的java層代碼很容易被反編譯,而C/C++庫反匯難度較大。
2. 在NDK中調用第三方C/C++庫,因為大部分的開源庫都是用C/C++代碼編寫的。
3. 便於移植,用C/C++寫的庫可以方便在其他的嵌入式平台上再次使用。
Android手機記憶體管理與效能最佳化