自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Windows系統(tǒng)上安裝與使用Android NDK r5

移動(dòng)開發(fā) Android
本文介紹了如何在Windows系統(tǒng)上安裝Android NDK r5,并通過一個(gè)簡(jiǎn)單的JNI例子介紹了如何生成一個(gè).so文件以及在Android項(xiàng)目中怎么調(diào)用.so文件。

一、 Android NDK r5安裝

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

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

② 啟動(dòng)安裝:

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

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

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

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

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

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

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

⑨ 到了關(guān)鍵步驟,如果僅想安裝基本系統(tǒng),直接Next;如果想完全安裝,點(diǎn)擊 All旁邊的旋轉(zhuǎn)狀圖標(biāo),將Default切換至Install;如果僅想在命令行下寫寫程序,則只要將gcc、make等開發(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打開控制臺(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)境變量 :打開E:\cygwin\etc\skel目錄,找到 .bash_profile 文件 ,拷貝到 home\<你的用戶名>\ (此處為E:\cygwin\home\Administrator)下面,在 最后添加環(huán)境變量

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

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打開添加,如果是中文OS 使用記事本或者寫字板打開編輯后,重新啟動(dòng)Cygwin 會(huì)報(bào)錯(cuò)??梢园凑障聢D方式轉(zhuǎn)換:

#p#二、 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文件: 可以通過獲取以.h文件 來 獲取函數(shù)申明。打開命令行,鍵入cd (這個(gè)路徑是使用Eclipse建立的工程目錄的src的路徑 ,我的是F:\workspace\MyFirstJNI\src ),目的是設(shè)置工程目錄。然后鍵 入: javah -jni com.cn.lhq.JniTest,結(jié)果如果失敗,那就是因?yàn)闆]有把MyFirst.class文件拷貝到 F:\workspace\MyFirstJNI\src \com\ cn\lhq 之下,原因是Eclipse的文件管理機(jī)制會(huì)將.class文件和.java文件分開到不同的目錄,解決方法是將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,通過這個(gè)文件,我們就知道了本地接口的函數(shù)名,于是我們就根據(jù)函數(shù)名寫一個(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生成出來的參數(shù)是不同的,這里只是需要函數(shù)名而已,因?yàn)楹瘮?shù)名必須匹配,否則在模擬器上面跑的時(shí)候會(huì)出錯(cuò),當(dāng)然,如果對(duì)JNI命名規(guī)則熟悉的話可以跳過javah這步,直接寫一個(gè).c文件。

寫好.c文件之后就開始生成 .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打開 ANDROID.MK 文件進(jìn)行修改,主要修改如下:

LOCAL_MODULE := 工程名

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

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

LOCAL_MODULE := MyFirstJNI

LOCAL_SRC_FILES := com_cn_lhq_JniTest.c

然后 打開 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)行效果圖如下:

【編輯推薦】

  1. 詳解谷歌官方教程 Android R5 NDK下載及安裝 
  2. 詳解Android 2.3 NDK的新特性 
  3. 8步教你打開Android之門 NDK入門教程 
  4. Android NDK初探 你也可以做移動(dòng)開發(fā) 
  5. Android NDK環(huán)境創(chuàng)建方法簡(jiǎn)介 
責(zé)任編輯:佚名 來源: CSDN
相關(guān)推薦

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

2019-07-15 10:00:10

ChocoWindows 10代碼

2012-06-25 10:14:33

WindowsGNUstepObjective-C

2011-04-08 10:10:23

2010-11-18 14:47:49

2021-02-27 10:37:20

WindowsDocker版本

2012-11-09 09:35:18

Win 8

2022-12-12 11:47:34

WindowsPySpark服務(wù)器

2022-12-01 11:41:24

2018-02-26 08:14:20

LinuxDocker容器

2023-05-22 11:26:32

UbuntuQemu

2023-07-25 09:28:24

UbuntuFlatpak
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)