久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ndk eclipse集成自己的經(jīng)驗(yàn)

 lifei_szdz 2012-11-27

ndk eclipse集成自己的經(jīng)驗(yàn)

1、安裝cygwin時(shí),,要選擇autoconf2.1 、 automake1.10 ,、 binutils ,、 gcc-core 、 gcc4-core ,、 gdb 、 pcre ,、 pcre-devel 、 GNU awk這幾項(xiàng),,可以在這個(gè)界面輸入以上的信息搜索。然后點(diǎn)next,,網(wǎng)址選163那個(gè)比較快。如果安裝失敗的話,,需要卸載干凈,,要不還會(huì)失敗。

 

2,、集成eclipse時(shí)  location:               D:\cygwin\bin\bash.exe

                     workingdirectory:  D:\cygwin\bin

          Agruments:        --login -c "cd /cygdrive/d/myworkspace/space2/MyFirstJNI/jni && $NDK/ndk-build"

    d/myworkspace/space2/MyFirstJNI/jni是我工程空間中的項(xiàng)目MyFirstJNI中的jni文件夾的路徑,;$NDK/ndk-build就是在前面的目錄下面執(zhí)行編譯生成.so文件

3,、我安裝cygwin時(shí),編譯不了c++是因?yàn)槲译娔X上已經(jīng)安裝了minGW,;

 

雖然網(wǎng)上的有很多資料,,我參考了下面的,,感覺(jué)這個(gè)比較好,,這個(gè)文章后面的jni的例子說(shuō)的不好,,可以參考前面的ndk的文章:

一,、 Android NDK r5安裝

1,、 cygwin的安裝和簡(jiǎn)單配置

① 首先到http://www.下載setup.exe ,,接著建立安裝目錄,,如X:\cygwin (我用的是 E:\cygwin ) ,將setup.exe放到此目錄,。

② 啟動(dòng)安裝:

BEGIN-> 點(diǎn)擊setup.exe:

③ Next->選Install from Internet(選擇在線安裝方式):

④ Next->填寫(xiě)Root Directory,,如X:\cygwin(選擇安裝路徑):

⑤ Next->填寫(xiě)Local Package Directory,,如X:\cygwin\ftp(選擇下載文件存放的目錄):

⑥ Next->選Direct Connection(選擇網(wǎng)絡(luò)連接方式):

⑦ Next->選一個(gè)較快的ftp(選擇下載鏡像站點(diǎn)):

⑧ Next->(開(kāi)始下載安裝):

⑨ 到了關(guān)鍵步驟,,如果僅想安裝基本系統(tǒng),,直接Next;如果想完全安裝,,點(diǎn)擊 All旁邊的旋轉(zhuǎn)狀圖標(biāo),將Default切換至Install;如果僅想在命令行下寫(xiě)寫(xiě)程序,,則只要將gcc,、make等開(kāi)發(fā)工具選上,還有openssh等(一般選擇: autoconf2.1 ,、 automake1.10 ,、 binutils ,、 gcc-core ,、 gcc4-core 、 gdb ,、 pcre 、 pcre-devel ,、 GNU awk );選好后,,Next->:

⑩ 選擇需不需要?jiǎng)?chuàng)建快捷方式。->END

最后啟動(dòng)Cygwin,測(cè)試安裝是否成功:

點(diǎn)擊快捷方式或X:\cygwin\cygwin.bat打開(kāi)控制臺(tái),,如果是域用戶,,按照提示makepasswd和makegroup即可。

輸入命令檢查

出現(xiàn)以上版本信息則表明make 和gcc 已經(jīng)安裝成功,。

2,、 Android NDK r5 Windows

① 首先到官網(wǎng)下載 Android NDK r5 Windows

② android-ndk-r5直接解壓就行了,我的路徑是E:\Android_NDK

③ 在home\<你的用戶名>\.bash_profile 文件中最后添加環(huán)境變量 :打開(kāi)E:\cygwin\etc\skel目錄,,找到 .bash_profile 文件 ,拷貝到 home\<你的用戶名>\ (此處為E:\cygwin\home\Administrator)下面,,在 最后添加環(huán)境變量

NDK=/cygdrive/<你的盤(pán)符>/

export NDK

我的:NDK=/cygdrive/E/Android_NDK/android-ndk-r5

export NDK

其中"NDK"這個(gè)名字隨便起,,因?yàn)楹竺嬉媒?jīng)常使用,,建議不要太長(zhǎng)。

重啟cygwin,,輸入cd $NDK進(jìn)入對(duì)應(yīng)目錄,,就成功了。

注意:添加時(shí)用UltraEdit打開(kāi)添加,,如果是中文OS 使用記事本或者寫(xiě)字板打開(kāi)編輯后,重新啟動(dòng)Cygwin 會(huì)報(bào)錯(cuò),。可以按照下圖方式轉(zhuǎn)換:

 
 
二,、 JNI實(shí)例

 

1、 安裝成功后編譯NDK中的一個(gè)例子命令行:

編譯完成后在E:\Android_NDK\android-ndk-r5\samples\hello-gl2文件夾中會(huì)生成一個(gè)文件夾libs,,里面有一個(gè)子文件夾armeabi,,里面生成libgl2jni.so文件 。

2,、 一個(gè)簡(jiǎn)單的JNI例子

下面用一個(gè)簡(jiǎn)單的例子介紹怎么生成一個(gè).so文件以及在Android項(xiàng)目中怎么調(diào)用.so文件,。

  1. package com.cn.lhq;     
  2. import android.app.Activity;     
  3. import android.os.Bundle;     
  4. import android.widget.TextView;     
  5. public class JniTest extends Activity {     
  6. /** Called when the activity is first created. */    
  7. @Override    
  8. public void onCreate(Bundle savedInstanceState) {     
  9. super.onCreate(savedInstanceState);     
  10. // setContentView(R.layout.main);     
  11. TextView tv = new TextView(this);     
  12. tv.setText(stringFromJNI());     
  13. setContentView(tv);     
  14. }     
  15. public native String stringFromJNI();     
  16. static {     
  17. System.loadLibrary("MyFirstJNI");     
  18. }     

 

① 首先,,用Eclipse建立一個(gè)ANDROID的工程,命名為MyFirstJNI,工程代碼為:

② 制作生成.so文件: 可以通過(guò)獲取以.h文件 來(lái) 獲取函數(shù)申明,。打開(kāi)命令行,鍵入cd (這個(gè)路徑是使用Eclipse建立的工程目錄的src的路徑 ,,我的是F:\workspace\MyFirstJNI\src ),目的是設(shè)置工程目錄,。然后鍵 入: javah -jni com.cn.lhq.JniTest,結(jié)果如果失敗,那就是因?yàn)闆](méi)有把MyFirst.class文件拷貝到 F:\workspace\MyFirstJNI\src \com\ cn\lhq 之下,,原因是Eclipse的文件管理機(jī)制會(huì)將.class文件和.java文件分開(kāi)到不同的目錄,,解決方法是將F:\workspace\MyFirstJNI\bin\com\cn\lhq的所有.class文件都拷貝到他的目錄下面,。再次運(yùn)行javah -jni com.cn.lhq.JniTest即可,。然后就可以看到在 F:\workspace\MyFirstJNI\src 下多出了一個(gè)文件:com_cn_lhq_JniTest.h,,通過(guò)這個(gè)文件,我們就知道了本地接口的函數(shù)名,,于是我們就根據(jù)函數(shù)名寫(xiě)一個(gè)com_cn_lhq_JniTest.c文件, 代碼如下:

  1. #include <string.h>     
  2. #include <jni.h>     
  3. jstring     
  4. Java_com_cn_lhq_JniTest_stringFromJNI( JNIEnv* env,     
  5. jobject thiz )     
  6. {     
  7. return (*env)->NewStringUTF(env, "Hello from JNI !");     

 

注意 : 這個(gè)函數(shù)的參數(shù)與用javah生成出來(lái)的參數(shù)是不同的,,這里只是需要函數(shù)名而已,,因?yàn)楹瘮?shù)名必須匹配,否則在模擬器上面跑的時(shí)候會(huì)出錯(cuò),,當(dāng)然,如果對(duì)JNI命名規(guī)則熟悉的話可以跳過(guò)javah這步,,直接寫(xiě)一個(gè).c文件,。

寫(xiě)好.c文件之后就開(kāi)始生成 .so 文件了,這時(shí)候需要 用到 ANDROID.MK這個(gè)文件,。于是把Eclipse生成的工程目錄剪切,放到NDK目錄的samples目錄之下 (和示例hello-gl2一樣),,這個(gè)時(shí)候模仿hello-gl2文件層次結(jié)構(gòu),將MyFirstJNI文件也做成那樣 :在MyFirstJNI文件夾下面新建一個(gè) jni文件夾,,把 com_cn_lhq_JniTest.c 剪切到此文件夾中,,同時(shí)也拷貝一個(gè) ANDROID.MK 文件到此文件夾,用 UltraEdit打開(kāi) ANDROID.MK 文件進(jìn)行修改,,主要修改如下:

LOCAL_MODULE := 工程名

LOCAL_SRC_FILES := .c的文件名(包含擴(kuò)展名)

此例子應(yīng)改為:

LOCAL_MODULE := MyFirstJNI

LOCAL_SRC_FILES := com_cn_lhq_JniTest.c

然后 打開(kāi) cygwin,, 進(jìn)入 E:\Android_NDK\android-ndk-r5\samples\MyFirstJNI\jni目錄:

再 輸入$NDK/ndk-build命令,在E:\Android_NDK\android-ndk-r5\samples\MyFirstJNI生成libs文件夾,,即生成.so文件:

③ 在eclipse中重新導(dǎo)入生成了.so文件的 MyFirstJNI項(xiàng)目,運(yùn)行效果圖如下:

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多