欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 久www| 国产99久久精品一区二区永久免费 | 欧美三级欧美一级 | 一区二区三区中文字幕 | 亚洲欧美日韩在线不卡 | 成人情趣视频 | 起碰97| 国产欧美一级二级三级在线视频 | 免费精品久久 | 色屁屁www影院免费观看软件 | 波多野结衣在线资源 | 国产精品美女久久久久久免费 | 99av.com| 国产美女福利视频福利 | 久久国产精品久久久久久久久久 | 精品国产一区二区三区久久影院 | 日韩国产三级 | 成年人网站在线免费观看 | 中文字幕成人乱码在线电影 | 久久国产精品久久久久久久久久 | 天堂福利电影 | 久久精品国产一区 | 亚洲一区二区三区日本久久九 | 激情五月婷婷 | 久久婷五月综合 | 伊人伊人网 | 精品免费国产一区二区三区四区介绍 | www.国产精| 日韩欧美一区二区三区四区 | 日韩高清不卡 | 一级毛片在线完整免费观看 | 高清一区二区三区四区五区 | 亚洲日韩中文字幕一区 | 250pp久久新 全黄性性激高免费视频 | 成人精品一区久久久久 | 久久视频免费 | 色婷婷久久免费网站 | 成人亚洲一区二区色情无码潘金莲 | 精品人人| 久久小视频 | 一级一片免费看 |