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產生的背景
Android平臺從誕生起,就已經支持C、C++開發。眾所周知,Android的SDK基于Java實現,這意味著基于Android SDK進行開發的第三方應用都必須使用Java語言。但這并不等同于“第三方應用只能使用Java”。在Android SDK首次發布時,Google就宣稱其虛擬機Dalvik支持JNI編程方式,也就是第三方應用完全可以通過JNI調用自己的C動態庫,即在Android平臺上,“Java+C”的編程方式是一直都可以實現的。
不過,Google也表示,使用原生SDK編程相比Dalvik虛擬機也有一些劣勢,Android SDK文檔里,找不到任何JNI方面的幫助。即使第三方應用開發者使用JNI完成了自己的C動態鏈接庫(so)開發,但是so如何和應用程序一起打包成apk并發布?這里面也存在技術障礙。比如程序更加復雜,兼容性難以保障,無法訪問Framework API,Debug難度更大等。開發者需要自行斟酌使用。
于是NDK就應運而生了。NDK全稱是Native Development Kit。
NDK的發布,使“Java+C”的開發方式終于轉正,成為官方支持的開發方式。NDK將是Android平臺支持C開發的開端。
二、為什么使用NDK
1.代碼的保護。由于apk的java層代碼很容易被反編譯,而C/C++庫反匯難度較大。
2.可以方便地使用現存的開源庫。大部分現存的開源庫都是用C/C++代碼編寫的。
3.提高程序的執行效率。將要求高性能的應用邏輯使用C開發,從而提高應用程序的執行效率。
4.便于移植。用C/C++寫得庫可以方便在其他的嵌入式平臺上再次使用。
三、NDK簡介
1.NDK是一系列工具的集合
NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,并能自動將so和java應用一起打包成apk。這些工具對開發者的幫助是巨大的。
NDK集成了交叉編譯器,并提供了相應的mk文件隔離CPU、平臺、ABI等差異,開發人員只需要簡單修改mk文件(指出“哪些文件需要編譯”、“編譯特性要求”等),就可以創建出so。
NDK可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作。
2.NDK提供了一份穩定、功能有限的API頭文件聲明
Google明確聲明該API是穩定的,在后續所有版本中都穩定支持當前發布的API。從該版本的NDK中看出,這些API支持的功能非常有限,包含有:C標準庫(libc)、標準數學庫(libm)、壓縮庫(libz)、Log庫(liblog)。
四、NDK開發環境的搭建
1.下載安裝Android NDK
地址:http://developer.android.com/sdk/ndk/index.html
2.下載安裝cygwin
由于NDK編譯代碼時必須要用到make和gcc,所以你必須先搭建一個linux環境, cygwin是一個在windows平臺上運行的unix模擬環境,它對于學習unix/linux操作環境,或者從unix到windows的應用程序移植,非常有用。通過它,你就可以在不安裝linux的情況下使用NDK來編譯C、C++代碼了。下載地址:http://www.cygwin.com
1)然后雙擊運行吧,運行后你將看到安裝向導界面。
2)點擊下一步,此時讓你選擇安裝方式:
Install from Internet:直接從Internet上下載并立即安裝(安裝完成后,下載好的安裝文件并不會被刪除,而是仍然被保留,以便下次再安裝)。
Download Without Installing:只是將安裝文件下載到本地,但暫時不安裝。
Install from Local Directory:不下載安裝文件,直接從本地某個含有安裝文件的目錄進行安裝。
3)選擇第一項,然后點擊下一步。
4)選擇要安裝的目錄,注意,最好不要放到有中文和空格的目錄里,似乎會造成安裝出問題,其它選項不用變,之后點下一步:
5)上一步是選擇安裝cygwin的目錄,這個是選擇你下載的安裝包所在的目錄,默認是你運行setup.exe的目錄,直接點下一步就可以:
6)此時你共有三種連接方式選擇:
Direct Connection:直接連接。
Use IE5 Settings:使用IE的連接參數設置進行連接。
Use HTTP/FTP Proxy:使用HTTP或FTP代理服務器進行連接(需要輸入服務器地址、端口號)。
用戶可根據自己的網絡連接的實情情況進行選擇,一般正常情況下,均選擇第一種,也就是直接連接方式。然后再點擊“下一步”。
7)這是選擇要下載的站點,選擇后點下一步。
8)此時會下載加載安裝包列表
9)Search是可以輸入你要下載的包的名稱,能夠快速篩選出你要下載的包。那四個單選按鈕是選擇下邊樹的樣式,默認就行,不用動。View默認是Category,建議改成full顯示全部包再查,省的一些包被隱藏掉。左下角那個復選框是是否隱藏過期包,默認打鉤,不用管它就行,下邊開始下載我們要安裝的包吧,為了避免全部下載,這里列出了后面開發NDK用得著的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12個包
10)然后開始選擇安裝這些包吧,點skip,把它變成數字版本格式,要確保Bin項變成叉號,而Src項是源碼,這個就沒必要選了。
11)下面測試一下cygwin是不是已經安裝好了。
運行cygwin,在彈出的命令行窗口輸入:cygcheck -c cygwin命令,會打印出當前cygwin的版本和運行狀 態,如果status是ok的話,則cygwin運行正常。
66m—66摸成人免费视频| 亚洲高清一二三区| 国产一区二区三区三区在线观看| 久久香蕉频线观| 国产精品久久久久久久久久久新郎| 热久久美女精品天天吊色| 亚洲欧美日韩第一区| 欧美极品在线视频| 欧美成aaa人片在线观看蜜臀| 久久在线免费观看视频| 日韩精品中文字幕有码专区| 爽爽爽爽爽爽爽成人免费观看| 国产盗摄xxxx视频xxx69| 久久久99久久精品女同性| 青青久久aⅴ北条麻妃| 97超碰蝌蚪网人人做人人爽| 亚洲一区二区久久| 欧美性jizz18性欧美| 国产精品吹潮在线观看| 亚洲精品久久久久久久久| 日本aⅴ大伊香蕉精品视频| 国产精品自在线| www.欧美精品一二三区| 欧美另类在线观看| 国产精品久久精品| 欧美在线视频免费播放| 成人欧美一区二区三区黑人孕妇| 久久99精品久久久久久噜噜| 亚洲午夜精品久久久久久性色| 国产精品爱啪在线线免费观看| 中国人与牲禽动交精品| 久久久人成影片一区二区三区观看| 国产91精品黑色丝袜高跟鞋| 91精品在线观看视频| 2019亚洲男人天堂| 性欧美视频videos6一9| 色婷婷av一区二区三区在线观看| 欧美性xxxx极品hd欧美风情| 国产美女精彩久久| 亚洲国产成人av在线| 久久久久久久久久久91| 亚洲精品国产福利| 亚洲自拍偷拍在线| 日韩精品免费综合视频在线播放| 亚洲精品www久久久| 日韩av手机在线看| 成人看片人aa| 欧美极品少妇全裸体| 91精品国产91久久久久久久久| 欧美乱人伦中文字幕在线| 欧美精品久久久久久久久久| 欧美日韩在线视频一区二区| 亚洲福利在线播放| 久久久噜噜噜久久久| 丰满岳妇乱一区二区三区| 国产精品成人av性教育| 久久久久久久久国产| 精品女同一区二区三区在线播放| 久久成年人免费电影| 久久国产精品久久久久久久久久| 欧美性在线视频| 国产精品99导航| 国产精品中文字幕在线观看| 国产精品久久久久国产a级| 97精品在线观看| 亚洲第一精品久久忘忧草社区| 日韩欧美国产中文字幕| 最近2019好看的中文字幕免费| 亚洲欧洲国产精品| 国产精品女人久久久久久| 欧美中文字幕第一页| 国产亚洲a∨片在线观看| 欧美成人激情视频免费观看| 大荫蒂欧美视频另类xxxx| 久久理论片午夜琪琪电影网| 日韩av综合网站| 亚洲欧美另类国产| 国产亚洲精品成人av久久ww| 亚洲人精品午夜在线观看| 日韩精品丝袜在线| 国产精品久久久久久久一区探花| 成人国产精品久久久| 欧美精品电影免费在线观看| 伊人一区二区三区久久精品| 日韩美女在线播放| 不卡av日日日| 亚洲乱码一区av黑人高潮| 国产成人一区二区三区小说| 欧美电影在线观看| 欧美大全免费观看电视剧大泉洋| 国产精品丝袜高跟| 国产一区二区三区在线播放免费观看| 国产欧美在线播放| 欧美成人第一页| 欧美精品久久久久久久免费观看| 91亚洲精品一区二区| 欧美男插女视频| 久久久综合免费视频| 国产乱人伦真实精品视频| 国产亚洲精品久久| 中文字幕成人精品久久不卡| 91精品国产高清自在线看超| yw.139尤物在线精品视频| 国产精品久久久久不卡| 成人免费看吃奶视频网站| 欧美性猛交xxxx免费看漫画| 一区二区三区四区在线观看视频| 俺去啦;欧美日韩| 国产美女搞久久| 最近2019中文字幕一页二页| 92福利视频午夜1000合集在线观看| 欧美日韩亚洲一区二区三区| 日韩av在线精品| 欧美国产日韩一区二区三区| 亚洲老头老太hd| 91久久精品美女高潮| 国内精品久久久久久| 自拍偷拍亚洲精品| 欧美精品在线视频观看| 亚洲精品自拍视频| 亚洲乱码国产乱码精品精天堂| 亚洲一区二区中文| 亚洲精品福利在线| 日本久久久久久| 国产aⅴ夜夜欢一区二区三区| 欧美精品免费看| 高清在线视频日韩欧美| 清纯唯美亚洲激情| 91精品国产自产在线老师啪| 亚洲精品99久久久久中文字幕| 久久精品国产亚洲| 91亚洲精品久久久久久久久久久久| 亚洲精品国产综合区久久久久久久| 欧美日韩国产中文字幕| 中文字幕精品在线视频| 亚洲97在线观看| 国产福利视频一区二区| 日韩精品福利网站| 国产在线日韩在线| 91视频免费在线| 92国产精品久久久久首页| 国产亚洲人成网站在线观看| 久久视频国产精品免费视频在线| 1769国内精品视频在线播放| 日韩国产欧美精品一区二区三区| 亚洲激情久久久| 久久精品国产一区二区电影| 亚洲精品午夜精品| 欧美激情久久久久| 琪琪亚洲精品午夜在线| 日韩有码在线视频| 亚洲免费小视频| 丝袜美腿亚洲一区二区| 亚洲女性裸体视频| 一本久久综合亚洲鲁鲁| 羞羞色国产精品| 亚洲精品一区二三区不卡| 最近日韩中文字幕中文| 日本中文字幕久久看| 亚洲综合精品一区二区| www亚洲精品| 国产精品久久久久久av| 成人久久久久久| 久久久久久久999精品视频|