欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android NDK開發(fā)入門

 更新時(shí)間:2016年12月20日 15:38:04   作者:小破孩123  
本文主要對(duì)NDK產(chǎn)生的背景、使用NDK原因、NDK簡(jiǎn)介、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)識(shí)一下Android NDK開發(fā)?!?/p>

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

Android平臺(tái)從誕生起,就已經(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動(dòng)態(tài)庫,即在Android平臺(tái)上,“Java+C”的編程方式是一直都可以實(shí)現(xiàn)的。

不過,Google也表示,使用原生SDK編程相比Dalvik虛擬機(jī)也有一些劣勢(shì),Android SDK文檔里,找不到任何JNI方面的幫助。即使第三方應(yīng)用開發(fā)者使用JNI完成了自己的C動(dòng)態(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平臺(tái)支持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++寫得庫可以方便在其他的嵌入式平臺(tái)上再次使用。

三、NDK簡(jiǎn)介

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

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

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

NDK可以自動(dòng)地將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)非常簡(jiǎn)單,而且支持眾多平臺(tái),今天我們就以win平臺(tái)來為大家介紹如何配置開發(fā)環(huán)境與設(shè)計(jì)開發(fā)DNK程序。首先是安裝,上面提供的下載地址是官網(wǎng)地址,大家可以根據(jù)自己的需求選擇下載,不過由于在國(guó)內(nèi)限制訪問國(guó)外網(wǎng)站,所以下載的話必須FQ,F(xiàn)Q對(duì)于一些程序員來說又是一件難事,這里我為大家提供一個(gè)下載地址:android-ndk-r9

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

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

    學(xué)過JAVA的小童鞋,對(duì)于配置環(huán)境變量一定不陌生,這里我就簡(jiǎn)單介紹一下如何配置DNK的開發(fā)環(huán)境,右鍵單擊我的電腦-->屬性-->高級(jí)系統(tǒng)設(shè)置-->高級(jí)-->環(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)配置好,對(duì)于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就算完成了,下面我們就可以允許測(cè)試了。

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

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

相關(guān)文章

最新評(píng)論