天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

NDK入門項(xiàng)目實(shí)戰(zhàn)

  目標(biāo):利用NDK 生成 SO 庫,使用 SO 庫進(jìn)行 JNI 調(diào)用,在 Android sdcard 創(chuàng)建文件并寫入數(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 即可。請看步驟:

  1. 安裝Cygwin

  關(guān)于Cygwin 的安裝請自行百度或者 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 ,首先打開 cygwin ,然后使用 cd 命令進(jìn)入你的 NDK 根目錄,(不會用 linux命令?? Google 去),然后運(yùn)行: build/host-setup.sh

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

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

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

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

  3. 書寫Java native接口

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

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

  JNI.Java的代碼:

  JniTest.Java的代碼:

  4.生成JNI頭文件

  下面生成JNI 頭文件啦,使用 Javah 命令,對 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,打開看看:

  里面都是c 語言的頭文件聲明。

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

  下面進(jìn)行c 語言代碼的階段,不會 C 的,可以去學(xué)習(xí)一下。我這里使用eclipse for c/c++的進(jìn)行開發(fā),簡單的代碼大家可以使用記事本。工程如下:


  cc_Androidos_jni_JNI.h內(nèi)容不變,cc_Androidos_jni_JNI.c的內(nèi)容:

  在這里的代碼會在運(yùn)行的時(shí)候向sdcard 寫入 Androidos.cc.txt 文件。然后寫入 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)來:

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

  里面內(nèi)容的關(guān)鍵字含義請自行查看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)限的,那么是不能寫成功的,除非是真機(jī)越權(quán),模擬器是不成功的,并且在 Eclipse logcat 下會有 DEBUG 信息出現(xiàn)。

it知識庫NDK入門項(xiàng)目實(shí)戰(zhàn),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: qvod 在线| 国产精品久久久久久久久LI无码 | 国产在线精彩亚洲久久 | 香蕉AV福利精品导航 | 京香在线播放 | 亚洲成AV人电影在线观看 | 一级毛片免费视频网站 | 国产呦精品一区二区三区网站 | 日日久久狠狠8888偷偷色 | 草莓视频cm.888tw | 视频专区亚洲欧美日韩 | 色欲无码国产喷水AV精品 | 国产精品爽爽久久久久久蜜桃网站 | 国产精品永久AV无码视频 | 久草免费视频在线观看 | 久久精品国产欧美成人 | 日本久久精品毛片一区随边看 | 精品亚洲麻豆1区2区3区 | 欧美久久综合性欧美 | 国产毛多水多高潮高清 | 菠萝菠萝蜜视频在线看1 | 中文字幕午夜福利片 | 小寡妇水真多好紧 | 国产真实女人一级毛片 | 3D内射动漫同人资源在线观看 | 丰满少妇69激懒啪啪无码 | 欧美精品一区二区蜜臀亚洲 | 色欲AV蜜臀AV在线观看麻豆 | 午夜影院视费x看 | 性色无码AV久久蜜臀 | 久久精品视频uu | 亚洲综合春色另类久久 | 美女张开腿让男人桶爽无弹窗 | 极品美女久久久久久久久久久 | 成人影片大全 | 国产偷窥盗摄一区二区 | 富婆大保健嗷嗷叫普通话对白 | 久久夜色精品国产亚州AV卜 | 国产成人无码区免费内射一片色欲 | 日韩亚洲欧美中文高清在线 | 亚洲成人免费 |