|
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Android培訓:Android NDK是什么? |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Android NDK是什么?Android NDK 是在SDK前面又加上了"原生"二字,即Native Development Kit,因此又被Google稱為"NDK"。在此之前,Android平臺的第三方應用程序均是依靠基于Java的Dalvik特制虛擬機進行開發的。原生SDK的公布可以讓開發者更加直接的接觸Android系統資源,并使用傳統的C或C++語言編寫程序,并在程序封包文件(.apks)中直接嵌入原生庫文件。 Android NDK是什么? 1、Android NDK是一系列工具的集合。
2、Android NDK提供了一份穩定、功能有限的API頭文件聲明。 Google明確聲明該API是穩定的,在后續所有版本中都穩定支持當前發布的API。從該版本的NDK中看出,這些API支持的功能非常有限,包含有:C標準庫(libc)、標準數學庫(libm)、壓縮庫(libz)、Log庫(liblog)。 3、Android NDK帶來什么 1) NDK的發布,使"Java+C"的開發方式終于轉正,成為官方支持的開發方式。
2)NDK將是Android平臺支持C開發的開端。 NDK提供了的開發工具集合,使開發人員可以便捷地開發、發布C組件。同時,Google承諾在NDK后續版本中提高"可調式"能力,即提供遠程的gdb工具,x使我們可以便捷地調試C源碼。 4、Android NDK的缺點 使用NDK編寫運行于android設備上的通用代碼并不好,你的應用依然應該主要使用Java編寫,這樣才能正確處理Android系統的事件來避免"應用無反應"對話框的出現或處理應用的生命周期。 NDK僅僅為android系統所支持的本地API和庫中的一小部分些提供了頭文件。然而一個典型的Android系統映像包含了很多本地共享庫,但這些應被看做是實現的細節,這些實現可能在平臺更新或發布時發生徹底的變化。 如果一個Android系統的庫沒有被NDK的頭文件明確支持,那么應用不應依賴于它。否則可能在下一次系統升級后出現杯具。 5、NDK開發實踐 1) 把本地代碼放在$PROJECT/jni/…下,比如將hello.c放到apps/hello/jni/目錄下 2) 在你的NDK編譯系統中在$PROJECT/jni/Android.mk來描述你的源代碼 3) 可選:在$PROJECT/jni/Application.mk到你的編譯系統中來詳細描述你的項目,盡管你開始的話不一定需要它,但是它允許你使用更多的CPU或者覆蓋編譯器/鏈接器的標記 4) 從你的項目的目錄開始通過運行"$NDK/ndk-build"來編譯你的代碼,或者從子目錄開始 5) 后一步可以copy,萬一成功,剝離共享庫的應用層序需要你的應用程序的項目根目錄。然后你通過通常的方法來生成終的apk。 通過上文的學習,相信你對Android NDK是什么?已經有了大致的了解,后續華清遠見Android培訓資料中會給出更多關于Android NDK的文章,敬請關注! 熱點鏈接: |