国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
史上最強(qiáng)NDK入門(mén)項(xiàng)目實(shí)戰(zhàn)

目標(biāo):

利用NDK 生成 SO 庫(kù),使用 SO 庫(kù)進(jìn)行 JNI 調(diào)用,在 Android sdcard 創(chuàng)建文件并寫(xiě)入數(shù)據(jù)。

工具:

NDK1.5 R1, android SDK1.5 R1, SDCARD, Eclipse , ADT 0.9, Eclipse Galileo for C/C++, Cygwin 1.5。

工具比較多,我是在Windows XP 進(jìn)行操作的,如果在 Ubuntu 或者其他的 Linux 系統(tǒng)下進(jìn)行操作直接進(jìn)入步驟 2 即可。請(qǐng)看步驟:

1.  安裝Cygwin

關(guān)于Cygwin 的安裝請(qǐng)自行百度或者 google ,因?yàn)榫W(wǎng)速原因,建議大家使用本地安裝包進(jìn)行下載:http://www.gougou.com/search?search=cygwin&id=2  下載一個(gè) 38.2M  即可,我用的就是這個(gè)版本。

2.  安裝NDK

進(jìn)入正題安裝NDK ,首先打開(kāi) cygwin ,然后使用 cd 命令進(jìn)入你的 NDK 根目錄,(不會(huì)用 linux 命令?? Google 去),然后運(yùn)行: build/host-setup.sh

 

 


 

如果出現(xiàn)以上的信息,說(shuō)明安裝正確,如果出現(xiàn)GCC 為找到,請(qǐng)輸入 gcc 命令查看,如果出現(xiàn) toolchain 未找到的信息,請(qǐng)?jiān)囍薷?/span> build/host-setup.sh 文件第一行代碼,將: #!/bin/sh 改成 #!/bin/bash , 在 Ubuntu 上這個(gè)是需要修改的

安裝成后,我們使用make 命令試試編譯自帶的程序,輸入 make APP=hello-jni,hello-jni  apps  hello-jni 文件夾的名稱,這個(gè)命令會(huì)先找到 apps\hello-jni 下地 Application.mk 文件,然后找到 source\samples\hello-jni 這個(gè)目錄,然后找到 Android.mk 這個(gè)文件中的配置信息進(jìn)行編譯??磮D:

因?yàn)槲业囊呀?jīng)編譯過(guò)了,使用使用 make APP=hello-jni -B 進(jìn)行重新編譯

 


 

出現(xiàn)上面的信息,說(shuō)明編譯成功,so 文件在 apps/hello-jni/project/libs/armeabi 文件夾下。

3.  書(shū)寫(xiě)java native 接口

下面我們進(jìn)入實(shí)戰(zhàn)的階段,寫(xiě)代碼。

建立一個(gè)android1.5 的項(xiàng)目, NDK 不支持 1.5 以下的版本

 

 


 

 

JNI.java的代碼:

 



 JniTest.java的代碼:


 

 

4.  生成JNI  頭文件

下面生成JNI 頭文件啦,使用 javah 命令,對(duì) JNI..java 這個(gè)文件生成,別搞錯(cuò)啦!

使用cmd 進(jìn)入 android 項(xiàng)目的 bin 目錄中,然后執(zhí)行  javah -classpath .  -jni cc.androidos.jni.JNI 這個(gè)命令。別忘記包名!( ^_^

 


生成了一個(gè)cc_androidos_jni_JNI.h

打開(kāi)看看:

 


里面都是c 語(yǔ)言的頭文件聲明

5.  書(shū)寫(xiě)C 代碼,寫(xiě)入數(shù)據(jù)

下面進(jìn)行c 語(yǔ)言代碼的階段,不會(huì) C 的,可以去學(xué)習(xí)一下。

我這里使用eclipse for c/c++ 的進(jìn)行開(kāi)發(fā),簡(jiǎn)單的代碼大家可以使用記事本。

工程如下:

 


cc_androidos_jni_JNI.h內(nèi)容不變

cc_androidos_jni_JNI.c的內(nèi)容:

 


 

在這里的代碼會(huì)在運(yùn)行的時(shí)候向sdcard 寫(xiě)入 androidos.cc.txt 文件。然后寫(xiě)入 aaaa 數(shù)據(jù)。

6.  編譯SO 文件

進(jìn)行編譯so 文件:

NDK  apps 目錄下面創(chuàng)建一個(gè) myjni 文件夾,在 myjni 文件夾中創(chuàng)建一個(gè) Application.mk 文件,文件的內(nèi)容為:


 

 

NDKsources 目錄下創(chuàng)建 myjni 文件夾,在 myjni 文件中創(chuàng)建一個(gè) Android.mk 文件,然后將 cc_androidos_jni_JNI.h cc_androidos_jni_JNI.c 文件 copy 進(jìn)來(lái):

 


 

 

Android.mk中的內(nèi)容如下:

 


里面內(nèi)容的關(guān)鍵字含義請(qǐng)自行查看docs\OVERVIEW.TXT 文件

編譯:


 

7.  加入到Android 項(xiàng)目中進(jìn)行運(yùn)行

apps\myjni\libs 整個(gè)文件夾 copy  android 項(xiàng)目下:

 


運(yùn)行android 項(xiàng)目使用 adb shell 進(jìn)行查看:


 

進(jìn)入sdcard 查看數(shù)據(jù)。

注意:sdcard 具有 system 的權(quán)限,如果你的目錄是 root 權(quán)限的,那么是不能寫(xiě)成功的,除非是真機(jī)越權(quán),模擬器是不成功的,并且在 Eclipse logcat 下會(huì)有 DEBUG 信息出現(xiàn)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
【轉(zhuǎn)】Android開(kāi)發(fā)手記一 NDK編程實(shí)例
音視頻聊天開(kāi)發(fā): 8 轉(zhuǎn)載:Android下NDK進(jìn)行JNI開(kāi)發(fā)
嘔心瀝血Android studio使用JNI實(shí)例
不使用Cygwin,在eclipse中快速開(kāi)發(fā)JNI,一鍵生成C頭文件.h,以及一鍵使用NDK交叉編譯
android JNI C代碼對(duì)sdcard中文件的操作
Android NDK 實(shí)戰(zhàn)入門(mén)指南
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服