成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Windows系統上安裝與使用Android NDK r5

移動開發 Android
本文介紹了如何在Windows系統上安裝Android NDK r5,并通過一個簡單的JNI例子介紹了如何生成一個.so文件以及在Android項目中怎么調用.so文件。

一、 Android NDK r5安裝

1、 cygwin的安裝和簡單配置

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

② 啟動安裝:

BEGIN-> 點擊setup.exe:

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

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

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

⑥ Next->選Direct Connection(選擇網絡連接方式):

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

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

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

⑩ 選擇需不需要創建快捷方式。->END

最后啟動Cygwin,測試安裝是否成功:

點擊快捷方式或X:\cygwin\cygwin.bat打開控制臺,如果是域用戶,按照提示makepasswd和makegroup即可。

輸入命令檢查

出現以上版本信息則表明make 和gcc 已經安裝成功。

2、 Android NDK r5 Windows

① 首先到官網下載 Android NDK r5 Windows

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

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

NDK=/cygdrive/<你的盤符>/

export NDK

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

export NDK

其中"NDK"這個名字隨便起,因為后面要用經常使用,建議不要太長。

重啟cygwin,輸入cd $NDK進入對應目錄,就成功了。

注意:添加時用UltraEdit打開添加,如果是中文OS 使用記事本或者寫字板打開編輯后,重新啟動Cygwin 會報錯。可以按照下圖方式轉換:

#p#二、 JNI實例

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

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

2、 一個簡單的JNI例子

下面用一個簡單的例子介紹怎么生成一個.so文件以及在Android項目中怎么調用.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建立一個ANDROID的工程,命名為MyFirstJNI,工程代碼為:

② 制作生成.so文件: 可以通過獲取以.h文件 來 獲取函數申明。打開命令行,鍵入cd (這個路徑是使用Eclipse建立的工程目錄的src的路徑 ,我的是F:\workspace\MyFirstJNI\src ),目的是設置工程目錄。然后鍵 入: javah -jni com.cn.lhq.JniTest,結果如果失敗,那就是因為沒有把MyFirst.class文件拷貝到 F:\workspace\MyFirstJNI\src \com\ cn\lhq 之下,原因是Eclipse的文件管理機制會將.class文件和.java文件分開到不同的目錄,解決方法是將F:\workspace\MyFirstJNI\bin\com\cn\lhq的所有.class文件都拷貝到他的目錄下面。再次運行javah -jni com.cn.lhq.JniTest即可。然后就可以看到在 F:\workspace\MyFirstJNI\src 下多出了一個文件:com_cn_lhq_JniTest.h,通過這個文件,我們就知道了本地接口的函數名,于是我們就根據函數名寫一個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 !");     

 

注意 : 這個函數的參數與用javah生成出來的參數是不同的,這里只是需要函數名而已,因為函數名必須匹配,否則在模擬器上面跑的時候會出錯,當然,如果對JNI命名規則熟悉的話可以跳過javah這步,直接寫一個.c文件。

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

LOCAL_MODULE := 工程名

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

此例子應改為:

LOCAL_MODULE := MyFirstJNI

LOCAL_SRC_FILES := com_cn_lhq_JniTest.c

然后 打開 cygwin, 進入 E:\Android_NDK\android-ndk-r5\samples\MyFirstJNI\jni目錄:

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

③ 在eclipse中重新導入生成了.so文件的 MyFirstJNI項目,運行效果圖如下:

【編輯推薦】

  1. 詳解谷歌官方教程 Android R5 NDK下載及安裝 
  2. 詳解Android 2.3 NDK的新特性 
  3. 8步教你打開Android之門 NDK入門教程 
  4. Android NDK初探 你也可以做移動開發 
  5. Android NDK環境創建方法簡介 
責任編輯:佚名 來源: CSDN
相關推薦

2011-02-18 14:02:36

Android R5 Android NDKAndroid NDK

2009-03-10 10:53:42

安裝ApacheMySQL

2023-09-27 17:41:59

WindowsVirtualBox

2010-12-23 14:57:23

IIS7.5

2012-11-23 14:33:06

IBMdW

2023-01-28 21:27:27

2020-03-09 12:31:08

WindowsWindows 10GNU Emacs

2020-08-25 19:56:43

MinGWWindowsGNU

2012-06-25 10:14:33

WindowsGNUstepObjective-C

2019-07-15 10:00:10

ChocoWindows 10代碼

2011-04-08 10:10:23

2010-11-18 14:47:49

2022-12-12 11:47:34

WindowsPySpark服務器

2022-12-01 11:41:24

2012-11-09 09:35:18

Win 8

2021-02-27 10:37:20

WindowsDocker版本

2011-12-29 09:03:14

VIM

2022-12-03 16:02:51

2018-02-26 08:14:20

LinuxDocker容器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97视频成人 | 日韩高清在线观看 | 亚洲精品乱码久久久久久9色 | 欧美一区二区在线观看视频 | 日韩精品视频一区二区三区 | 欧美一区二区三区在线看 | 欧美成人在线影院 | 日韩人体在线 | 国产欧美一区二区精品忘忧草 | 欧美日韩视频在线 | 国产精品自产av一区二区三区 | 日韩精品免费一区二区在线观看 | 亚洲免费在线观看 | 欧美一级欧美三级在线观看 | 天天欧美 | 久草院线| 黄色毛片免费看 | 精品国产一区一区二区三亚瑟 | 欧美午夜在线 | 日本电影韩国电影免费观看 | 成人免费三级电影 | 国产精品亚洲精品 | 日本一区二区高清不卡 | 国产视频中文字幕 | 91欧美精品成人综合在线观看 | 亚洲精品9999 | 日日夜夜天天久久 | 中文字幕日韩欧美一区二区三区 | 日韩一二三区视频 | 久久国产精品久久久久 | 韩国电影久久 | 国产精品久久久久久久久免费丝袜 | 欧美日韩电影一区 | 在线成人免费视频 | 免费看一区二区三区 | 中文字幕亚洲欧美 | 日韩欧美三级 | 成人国产精品 | 日本三级做a全过程在线观看 | 亚洲精品一区国语对白 | 日韩免费视频一区二区 |