亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

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

系統 1841 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條評論
主站蜘蛛池模板: 日本一区二区视频免费播放 | 欧美一区日韩一区中文字幕页 | 婷婷综合久久狠狠色99h | 亚洲最大激情中文字幕 | 国产日本三级 | 精品无码久久久久国产 | 色综合天天综合给合国产 | 青青草国产一区二区三区 | 高清波多野结衣一区二区三区 | 亚洲国产精品一区二区九九 | 国产成人精品第一区二区 | 久久婷婷综合在线视频观看6 | 精品视频99 | 毛片短视频 | 黄色毛片在线播放 | 久久嫩模 | 欧美色国| 亚洲一区中文字幕在线 | 精品久久久久久18免费看 | 日本欧美一区二区三区在线观看 | 久久成人18| 私拍在线 | 亚洲国产精品乱码在线观看97 | 夜夜操伊人 | 亚洲精品欧美精品日韩精品 | www.欧美成| 久久久久青草 | 97久久国产一区二区三区四区 | 视频一区色眯眯视频在线 | 91资源在线视频 | ww亚洲ww在线观看国产 | 久久久久在线观看 | 日韩综合区 | 亚洲欧美另类在线 | 国产精品综合一区二区 | 国产中文字幕在线 | 欧美综合精品一区二区三区 | 欧美一二区视频 | 国产va免费精品 | 国产精品自在线拍 | 一七六九1769视频免费观看 |