欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

【基于Windows系統】教你如何在Android中使用JN

系統 1911 0
鑒于有些同學想要學習NDK,但在網上很難找到一個講解比較清楚、按照步驟操作可以比較順利學會NDK的文章,所以寫了此篇教程。
一.準備
需要Android NDK和windows下c、c++代碼的編譯器cygwin
cygwin下載地址: http://www.cygwin.com/
二.配置
1. 安裝cygwin,并配置cygwin的環境變量。
例如:我安裝在D盤根目錄,那么在環境變量的path中添加:”C:\cytwin\bin;”
如下圖所示。



2 . 修改新生成文件夾中的“.bash_profile ”文件,用UE或editplus等文本編輯器打開,在最后增加:
NDK=/cygdrive/d/android-ndk-r9c
export NDK
然后保存關閉。
d/android-ndk-r9c表示ndk在d盤,如果你的ndk放到了其他盤符或路徑,例如放到e:\sdk目錄中,那么就改為e/sdk/android-ndk-r9c。
3、安裝eclipse插件
需要在Eclipse中安裝CDT插件,讓Eclipse可以編輯和編譯C/C++程序。安裝方法如下: 打開Eclipse(本教程所用的Eclipse版本為Helios),然后,在菜單中選擇“Help”?“Install New Software”,然后輸入需要安裝的CDT插件的路徑,如下圖所示:
.開始使用
1.在命令行窗口中進入cygwin目錄,執行cygwin.bat
2.進入android-ndk中的samples文件夾里的某個項目文件夾,這里以hello-jni為例
進入文件夾的方式與MS-DOS類似,用cd + 空格 + 盤符+ 路徑即可,例子見下圖
3.執行$NDK/ndk-build編譯

file:///C:/Users/veaenPC/AppData/Local/YNote/Data/cleverboy@126.com/308a08bf3aa24d66a1519afac1d626a7/clipboard.png4.例子編譯成功后導入Eclipse中,編譯并部署測試如圖:

.如何在自己的工程中使用NDK
Android-ndk中的例子大家會編譯了,那么在自己現有的工程想要調用本地方法應該怎么做呢?
1.在JAVA代碼中聲明native方法,

file:///C:/Users/veaenPC/AppData/Local/YNote/Data/cleverboy@126.com/faaba0c0a274401aab8776f89fc3fd75/clipboard.png
2.生成頭文件
然后需要生成C或C++的源碼,供JAVA調用。
可以按照JNI的命名規則,也可以使用JDK的javah命令來生成,這里推薦使用javah,避免手動編寫出現錯誤不好排查。
javah命令的使用方法見javah命令的幫助

file:///C:/Users/veaenPC/AppData/Local/YNote/Data/cleverboy@126.com/6d96701fe24b44cf97461a506957b75c/clipboard.png這里以我的測試工程為例,編寫好native方法后,編譯工程,eclipse會在bin目錄生成.class文件,在命令行中進入bin目錄,執行javah + 包名 + 類名,會在bin目錄下生成一個頭文件。

file:///C:/Users/veaenPC/AppData/Local/YNote/Data/cleverboy@126.com/5d430e0fc0dc46338350ca7225829978/clipboard.pngfile:///C:/Users/veaenPC/AppData/Local/YNote/Data/cleverboy@126.com/fc0e806a2acd4b869d565de93ba187d2/clipboard.png
這個文件就是JAVA與本地代碼交互的接口了,做C或C++的開發人員針對這個頭文件開發。
3. 編寫本地方法
在你的工程根目錄下創建jni文件夾,并從android-ndk\samples里的hello-jni文件夾中拷貝出一個Android.mk文件,粘貼到jni文件夾中,同時剛才用javah生成的.h頭文件拷貝到jni文件夾中。
首先創建一個.c文件,實現頭文件中的方法,


file:///C:/Users/veaenPC/AppData/Local/YNote/Data/cleverboy@126.com/3ced7760f824484a846b9056c8229c68/clipboard.png然后編輯Android.mk文件,修改如下兩行,第一行修改為你的工程名,第二行修改為你的.c或.cpp文件名
LOCAL_MODULE := EX25_JNI
LOCAL_SRC_FILES := org_yuchen_demo_MainActivity.c
4.在java代碼中加載so文件
在java代碼中用靜態塊加載so文件,注意把so文件的“lib”和“.so”擴展名去掉。
file:///C:/Users/veaenPC/AppData/Local/YNote/Data/cleverboy@126.com/16a3cc5946fc4b65b72890d8d83d31e0/clipboard.png5.使用本地方法
接下來在java中可以調用本地方法進行測試了。按照前面講解的方法編譯,打包部署測試,截圖如下:file:///C:/Users/veaenPC/AppData/Local/YNote/Data/cleverboy@126.com/cd3dfb8947e145caa0d027050cd4397b/clipboard.png

最后附上一個Demo:
這個demo很簡單,只會顯示用c語言寫的返回的字符串

7.png (60.76 KB, 下載次數: 0)

NDK_Test.zip

2.06 MB, 下載次數: 1, 下載積分: e幣 -10 元

【基于Windows系統】教你如何在Android中使用JNI以及NDK開發環境搭建


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 高清国产福利 | 激情网站| 欧美欧美欧美 | 99久久久无码国产精品 | 久久亚洲欧美日本精品品 | 天天色综合影视 | 91视频h | 91精品久久久 | 日本一区二区三区高清不卡 | 日韩av片免费播放 | 色婷婷av久久久久久久 | 日本三级带日本三级带黄国产 | 色综合久久综合中文小说 | 成年免费大片黄在线观看岛国 | 男人的天堂在线视频 | 黄色网址免费入口 | 国产视频第一页 | 大象一区 | 91久久综合九色综合欧美亚洲 | 男女真实无遮挡xx00动态图120秒 | 91中文字幕在线一区 | 私色综合网 | www.伊人.com | 99爱在线精品视频免费观看9 | 国产片自拍| 久久激情五月丁香伊人 | 亚洲免费黄色 | 日韩精品久久久久久久电影 | 一级毛片在线观看视频 | 五月色开心婷婷丁香在线 | www色网站| 久久久久国产成人精品亚洲午夜 | 老头巨大校花体内驰骋小说文 | 日本黄色大片免费 | 9久9久女女热精品视频免费观看 | 亚洲精品人人 | 国产免费av大片 | 国产成人精品福利网站在线观看 | 日本高清不卡在线 | 免费在线小视频 | 日本一区二区视频 |