久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久


Android培訓:Android NDK是什么?

分享到(dao):
           

    Android NDK是什么(me)?Android NDK 是在SDK前面又加(jia)上(shang)了"原(yuan)生"二字,即(ji)Native Development Kit,因此又被Google稱(cheng)為"NDK"。在此之前,Android平臺(tai)的(de)(de)第三方應(ying)用程(cheng)序(xu)均是依(yi)靠基于Java的(de)(de)Dalvik特制(zhi)虛擬機進行開發(fa)的(de)(de)。原(yuan)生SDK的(de)(de)公布(bu)可以讓開發(fa)者(zhe)更加(jia)直接的(de)(de)接觸Android系統(tong)資源,并使(shi)用傳統(tong)的(de)(de)C或C++語言(yan)編寫程(cheng)序(xu),并在程(cheng)序(xu)封包(bao)文件(jian)(.apks)中直接嵌入原(yuan)生庫(ku)文件(jian)。

    Android NDK是什么?

    1、Android NDK是一系列工具的集合。

  • NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,并能自動將so和java應用一起打包成apk。這些工具對開發者的幫助是巨大的。
  • NDK集成了交叉編譯器,并提供了相應的mk文件隔離CPU、平臺、ABI等差異,開發人員只需要簡單修改mk文件(指出"哪些文件需要編譯"、"編譯特性要求"等),就可以創建出so。
  • NDK可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作。

    2、Android NDK提供了一份穩定、功能有限的API頭文件聲明。

    Google明(ming)確(que)聲明(ming)該API是穩(wen)定(ding)的(de),在后(hou)續(xu)所有(you)版本(ben)中(zhong)都穩(wen)定(ding)支持(chi)當前發布的(de)API。從該版本(ben)的(de)NDK中(zhong)看(kan)出,這些API支持(chi)的(de)功能非常有(you)限,包(bao)含有(you):C標準庫(libc)、標準數學(xue)庫(libm)、壓縮庫(libz)、Log庫(liblog)。

    3、Android NDK帶來什么

    1) NDK的(de)發(fa)布,使(shi)"Java+C"的(de)開發(fa)方(fang)式終于轉正(zheng),成為官(guan)方(fang)支持的(de)開發(fa)方(fang)式。

  • 使用NDK,我們可以將要求高性能的應用邏輯使用C開發,從而提高應用程序的執行效率。
  • 使用NDK,我們可以將需要保密的應用邏輯使用C開發。畢竟,Java包都是可以反編譯的。
  • NDK促使專業so組件商的出現。(樂觀猜想,要視乎Android用戶的數量)

    2)NDK將是Android平(ping)臺支持C開發的開端。

    NDK提供(gong)了(le)的開(kai)發(fa)工具(ju)集合(he),使開(kai)發(fa)人員可(ke)以(yi)便捷地開(kai)發(fa)、發(fa)布C組件。同(tong)時,Google承諾在NDK后續版本(ben)中(zhong)提高"可(ke)調式(shi)"能力(li),即提供(gong)遠(yuan)程的gdb工具(ju),x使我們可(ke)以(yi)便捷地調試C源碼。

    4、Android NDK的缺點

    使用(yong)NDK編(bian)寫運(yun)行于android設備上的(de)通用(yong)代(dai)碼并(bing)不好,你的(de)應(ying)用(yong)依(yi)然應(ying)該主要使用(yong)Java編(bian)寫,這樣才能正確處理(li)Android系統的(de)事件來(lai)避免"應(ying)用(yong)無反應(ying)"對話框的(de)出現或處理(li)應(ying)用(yong)的(de)生(sheng)命周期。

    NDK僅(jin)僅(jin)為(wei)android系(xi)統所支(zhi)持的(de)本地API和庫中(zhong)的(de)一小(xiao)部(bu)分(fen)些提供了頭文件。然(ran)而一個(ge)典型的(de)Android系(xi)統映(ying)像包含了很(hen)多本地共(gong)享庫,但這些應被看做是實現(xian)的(de)細節,這些實現(xian)可能在平臺更新或發(fa)布時發(fa)生徹底的(de)變化。

    如果一(yi)個Android系(xi)統的庫沒有被NDK的頭文件(jian)明確支持(chi),那么應(ying)用不應(ying)依賴(lai)于它。否則可能在下一(yi)次系(xi)統升級后(hou)出現(xian)杯具。

    5、NDK開發實踐

    1) 把本地(di)代(dai)碼放在$PROJECT/jni/…下(xia),比如將hello.c放到apps/hello/jni/目(mu)錄(lu)下(xia)

    2) 在(zai)你的NDK編譯系統中在(zai)$PROJECT/jni/Android.mk來(lai)描(miao)述你的源代碼

    3) 可選(xuan):在$PROJECT/jni/Application.mk到你(ni)(ni)的編譯系(xi)統(tong)中來詳細描述(shu)你(ni)(ni)的項(xiang)目,盡管你(ni)(ni)開(kai)始的話不一定需要(yao)它(ta),但是它(ta)允許你(ni)(ni)使用更多的CPU或(huo)者覆蓋編譯器/鏈接(jie)器的標記

    4) 從你的項目的目錄開始通過運行"$NDK/ndk-build"來(lai)編譯你的代(dai)碼,或者(zhe)從子目錄開始

    5) 后(hou)一步(bu)可以copy,萬一成(cheng)(cheng)功,剝離共享庫的(de)(de)(de)應(ying)用層序需(xu)要你的(de)(de)(de)應(ying)用程(cheng)序的(de)(de)(de)項目根目錄(lu)。然后(hou)你通過通常的(de)(de)(de)方法來(lai)生(sheng)成(cheng)(cheng)終(zhong)的(de)(de)(de)apk。

    通過上文的學習,相信你對Android NDK是什么?已經有了大致的了解,后續華清遠見Android培訓資料中會給(gei)出更多關于Android NDK的文章,敬請關注!

   熱點鏈接:

   1、Android SDK怎么安裝
   2、Android SDK開發環境搭建

更多新聞>>