最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android NDK開發(fā)入門

 更新時(shí)間:2016年12月20日 15:38:04   作者:小破孩123  
本文主要對NDK產(chǎn)生的背景、使用NDK原因、NDK簡介、NDK開發(fā)環(huán)境的搭建、如何運(yùn)行NDK提供的事例demo等進(jìn)行了詳細(xì)的介紹。具有很好的參考價(jià)值,需要的朋友一起來看下吧

神秘的Android NDK開發(fā)往往眾多程序員感到興奮,但又不知它為何物,由于近期開發(fā)應(yīng)用時(shí),為了是開發(fā)的.apk文件不被他人解讀(反編譯),查閱了很多資料,其中有提到使用NDK開發(fā),懷著好奇的心理,通過在線視頻教育網(wǎng)站,我初步了解了NDK的神秘面紗,好東西自然要分享,接下來我們就一起來認(rèn)識一下Android NDK開發(fā)?!?/p>

一、NDK產(chǎn)生的背景

Android平臺從誕生起,就已經(jīng)支持C、C++開發(fā)。眾所周知,Android的SDK基于Java實(shí)現(xiàn),這意味著基于Android SDK進(jìn)行開發(fā)的第三方應(yīng)用都必須使用Java語言。但這并不等同于“第三方應(yīng)用只能使用Java”。在Android SDK首次發(fā)布時(shí),Google就宣稱其虛擬機(jī)Dalvik支持JNI編程方式,也就是第三方應(yīng)用完全可以通過JNI調(diào)用自己的C動態(tài)庫,即在Android平臺上,“Java+C”的編程方式是一直都可以實(shí)現(xiàn)的。

不過,Google也表示,使用原生SDK編程相比Dalvik虛擬機(jī)也有一些劣勢,Android SDK文檔里,找不到任何JNI方面的幫助。即使第三方應(yīng)用開發(fā)者使用JNI完成了自己的C動態(tài)鏈接庫(so)開發(fā),但是so如何和應(yīng)用程序一起打包成apk并發(fā)布?這里面也存在技術(shù)障礙。比如程序更加復(fù)雜,兼容性難以保障,無法訪問Framework API,Debug難度更大等。開發(fā)者需要自行斟酌使用。

于是NDK就應(yīng)運(yùn)而生了。NDK全稱是Native Development Kit。

NDK的發(fā)布,使“Java+C”的開發(fā)方式終于轉(zhuǎn)正,成為官方支持的開發(fā)方式。NDK將是Android平臺支持C開發(fā)的開端。

二、為什么使用NDK

 1.代碼的保護(hù)。由于apk的java層代碼很容易被反編譯,而C/C++庫反匯難度較大。

 2.可以方便地使用現(xiàn)存的開源庫。大部分現(xiàn)存的開源庫都是用C/C++代碼編寫的。

 3.提高程序的執(zhí)行效率。將要求高性能的應(yīng)用邏輯使用C開發(fā),從而提高應(yīng)用程序的執(zhí)行效率。

 4.便于移植。用C/C++寫得庫可以方便在其他的嵌入式平臺上再次使用。

三、NDK簡介

  1.NDK是一系列工具的集合

  NDK提供了一系列的工具,幫助開發(fā)者快速開發(fā)C(或C++)的動態(tài)庫,并能自動將so和java應(yīng)用一起打包成apk。這些工具對開發(fā)者的幫助是巨大的。

NDK集成了交叉編譯器,并提供了相應(yīng)的mk文件隔離CPU、平臺、ABI等差異,開發(fā)人員只需要簡單修改mk文件(指出“哪些文件需要編譯”、“編譯特性要求”等),就可以創(chuàng)建出so。

NDK可以自動地將so和Java應(yīng)用一起打包,極大地減輕了開發(fā)人員的打包工作。

  2.NDK提供了一份穩(wěn)定、功能有限的API頭文件聲明

Google明確聲明該API是穩(wěn)定的,在后續(xù)所有版本中都穩(wěn)定支持當(dāng)前發(fā)布的API。從該版本的NDK中看出,這些API支持的功能非常有限,包含有:C標(biāo)準(zhǔn)庫(libc)、標(biāo)準(zhǔn)數(shù)學(xué)庫(libm)、壓縮庫(libz)、Log庫(liblog)。

四、NDK開發(fā)環(huán)境的搭建 

 1.下載安裝Android NDK

 地址:http://developer.android.com/sdk/ndk/index.html

 2、安裝DNK

    網(wǎng)上流傳很多關(guān)于Linux環(huán)境搭建DNK開發(fā)的方法,不過今天要為大家說明一點(diǎn),Google經(jīng)過這些年的努力,現(xiàn)在NDK的安裝已經(jīng)非常簡單,而且支持眾多平臺,今天我們就以win平臺來為大家介紹如何配置開發(fā)環(huán)境與設(shè)計(jì)開發(fā)DNK程序。首先是安裝,上面提供的下載地址是官網(wǎng)地址,大家可以根據(jù)自己的需求選擇下載,不過由于在國內(nèi)限制訪問國外網(wǎng)站,所以下載的話必須FQ,F(xiàn)Q對于一些程序員來說又是一件難事,這里我為大家提供一個(gè)下載地址:android-ndk-r9

   下載好之后,安裝DNK非常簡單,我們將下載的.zip文件解壓,然后將文件拷貝到我們的任意一個(gè)磁盤中即可。

 3.配置 NDK 環(huán)境變量

    學(xué)過JAVA的小童鞋,對于配置環(huán)境變量一定不陌生,這里我就簡單介紹一下如何配置DNK的開發(fā)環(huán)境,右鍵單擊我的電腦-->屬性-->高級系統(tǒng)設(shè)置-->高級-->環(huán)境變量

    在打開的環(huán)境變量,系統(tǒng)變量中找到Path,雙擊,在最后將我們DNK安裝目錄添加上去。

    到這里我們的win環(huán)境配置Android NDK開發(fā)環(huán)境已經(jīng)完成,最后我們通過命令行驗(yàn)證一下我們的配置:點(diǎn)擊開始-->輸入cmd回車-->輸入ndk-build回車,如果打印出信息表示我們的配置完成。

五、運(yùn)行NDK提供的事例demo

    運(yùn)行事例demo之前我們需要保證我們的Android開發(fā)環(huán)境已經(jīng)配置好,對于Android開發(fā)環(huán)境的配置,我就不再贅述,大家如果有疑問可以單獨(dú)留言討論。下面我們開始導(dǎo)入事例demo,打開eclipse Android開發(fā)環(huán)境,然后右鍵單擊空白區(qū)域,選擇Import-->Android導(dǎo)入:

 

   導(dǎo)入工程后,我們先來看一下目錄結(jié)構(gòu):

    jni目錄下的文件就是我們的.c文件,obj目錄下的.so文件就是我們的ndk編譯后的文件,也就是我們庫文件。當(dāng)然剛導(dǎo)入時(shí)工程中是沒有.so文件的,需要我們編譯生成,生成的方法:開始-->輸入cmd回車-->cd 我們的工程目錄回車,詳見下圖操作分解:

    到這里我們事例demo就算完成了,下面我們就可以允許測試了。

 第一個(gè)NDK程序:HelloWord!

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

最新評論

万宁市| 安陆市| 松阳县| 永胜县| 澄迈县| 黄冈市| 江永县| 原阳县| 云龙县| 武义县| 堆龙德庆县| 察雅县| 西乡县| 岢岚县| 北宁市| 安西县| 喜德县| 祁门县| 旬邑县| 邵阳市| 衡南县| 定襄县| 渝北区| 苏州市| 太白县| 开封市| 彭水| 辽宁省| 交城县| 万荣县| 彩票| 巴里| 元氏县| 桂林市| 南通市| 亚东县| 卓资县| 白山市| 衡阳市| 普格县| 工布江达县|