androidndk配置環境
㈠ 如何使用android的ndk建立native的開發環境
從網上看了一篇使用andriod的toolchain在cygwin上來建立android的開發環境,但是在vista上編譯始終失敗,在xp上能夠成功。但是編譯的時間比較長,而且對於新手來說也比較麻煩,難道就沒有簡單的方法嗎?google已經把andriod的ndk已經放出來了,所以我就想著打它的主意了,把它配置一下,就能來開發c的程序了。旁邊小伙肯定笑了,「搞啥?,有病啊,ndk就是一個開發native code的環境。」大哥,我當然知道了,雖然使用ndk來開發native code相對容易,但是它的.mk文件我看的是雲里霧里,我本來想調用自己寫的另外一個so庫,都不知道在.mk文件里如何寫,我現在也懶的去看ndk裡面的mk文件,等哪天(哪天?天曉得是哪一天)有空了好好研究一下。好了,閑話少說,開練吧。首先安裝cygwin,這個網上的教程多的是,就不說了,接著下載android ndk,這個在andriod的官網上就有了,然後下載一個從android模擬器里取system lib的工具busybox,然後調用命令
$adb push busybox /dev/sample/busybox
$adb shell chmod 777 /dev/sample/busybox
$adb shell ./dev/sample/busybox tar -cf /dev/sample/libs.tar /system/lib
$adb pull /dev/sample/libs.tar libs.tar
這樣就將模擬器下的 /system/lib 目錄的所有庫(so)文件打包並下載下來了,解壓libs.tar就得到了我們所需要的所有庫文件。
接著將所有的文件 到 $(NDK)/build/prebuilt/windows/arm-eabi-4.2.1/lib/gcc/arm-eabi/4.2.1,好了,這個時候基本的配置工作就結束了,怎麼樣簡單多了吧。
接著編寫一個簡單的c文件 tutorial01.c
#include <stdio.h>
int getinformation()
{
return 0;
}
然後編寫一個Makefile文件
CC = /cygdrive/f/software/android/android-ndk-1.5_r1/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-gcc
CFLAGS = -g -O2 -fPIC -DANDROID -I ./ -I ../ -I F:/software/android/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/include
SDFLAGS = -nostdlib -Wl,-T,armelf.xsc -Wl,-soname,$@ -Wl,-shared,-Bsymbolic -lc
CRT_OBJS= -lz -lm
all: libtutorial01.so
libtutorial01.so: tutorial01.o
$(CC) $(SDFLAGS) -o $@ tutorial01.o $(CRT_OBJS)
tutorial01.o: tutorial01.c
然後make,這個時候會報錯 can't find "armelf.xsc", 在ndk的目錄里搜索一下,搜到之後 到$(NDK)/build/prebuilt/windows/arm-eabi-4.2.1/lib/gcc/arm-eabi/4.2.1,然後make,成功。這樣一個簡單的so文件就生成了,這個時候如果想在android的虛擬機上運行,我們還需要給它包裝一下。再編寫一個文件test01.c,在這里是使用dl動態載入so文件,靜態載入始終有問題,搞不清楚android是如何搜索目錄,而且現在只能用絕對路徑,這個問題還得仔細研究研究。
#include <string.h>
#include <jni.h>
jint
java_com_example_testffmpeg_testffmpeg_getinformation( JNIEnv* env,
jobject thiz )
{
void* filehandle = dlopen("/data/data/com.example.test/lib/libtutorial.so", RTLD_LAZY );
int ll = -1;
if(filehandle)
{
int( * getinformation ) ();
getinformation = dlsym(filehandle, "getinformation");
if( getinformation )
{
ll = getinformation();
}
else
{
ll = -3;
}
dlclose(filehandle);
filehandle=0;
}
else
{
ll = -2;
}
return ll;
}
同樣再來一個Makefile文件
CC = /cygdrive/f/software/android/android-ndk-1.5_r1/build/prebuilt/windows/arm-eabi-4.2.1/bin/arm-eabi-gcc
CFLAGS = -g -O2 -fPIC -DANDROID -I ./ -I ../ -I F:/software/android/android-ndk-1.5_r1/build/platforms/android-1.5/arch-arm/usr/include
SDFLAGS = -nostdlib -Wl,-T,armelf.xsc -Wl,-shared,-Bsymbolic -Wl,-soname,$@ -lc -L ../tutorial
CRT_OBJS= -lz -lm -ldl
all: libtest01.so
libtest01.so: test01.o
$(CC) $(SDFLAGS) -o $@ test01.o $(CRT_OBJS)
ok, make一下成功。好了,接下來使用andriod的sdk寫一個簡單的activity, testapp來測試其運行情況,以下是test01.java的代碼。
package com.example.test;
import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;
public class test01 extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/* Create a TextView and set its content.
* the text is retrieved by calling a native
* function.
*/
TextView tv = new TextView(this);
// tv.setText( stringFromJNI() );
Integer ll = getinformation();
String lls = ll.toString();
tv.setText(lls);
setContentView(tv);
}
/* A native method that is implemented by the
* 'hello-jni' native library, which is packaged
* with this application.
*/
public native int getinformation();
/* this is used to load the 'hello-jni' library on application
* startup. The library has already been unpacked into
* /data/data/com.example.HelloJni/lib/libhello-jni.so at
* installation time by the package manager.
*/
static {System.loadLibrary("test");
}
}
在eclipse中運行,在模擬器上顯示0,就表示成功了。
轉載
㈡ 如何在Ubuntu下搭建Android NDK開發環境
1 搭建Android SDK開發環境
2 下載NDK開發包
3打開官網: 下載NDK 開發包,當前最新版本是r7b
下載解壓到 ~/bin 目錄下,
3 配置NDK環境參數
打開 ~/.bashrc文件:
㈢ android-ndk-r12b 在eclipse上怎麼配置環境變數
一.插件的安裝
如果你下載的是Eclipse Standard,請下載對應版本的cdt(我直接使用的是Eclipse IDE for C/C++ Developers 不要安裝cdt的哦,我人比較懶,(*^__^*) 嘻嘻……)
比如 CDT 8.1.2 for Eclipse Juno cdt-master-8.1.2.zip,插入也比較簡單和adt安裝方式一樣。再次不在贅述。以前NDK的版本還要Sequoyah插件(好久不更新了)來進行本地開發,現在不需要了。
二.環境的配置
1).首先進行配置NDK的配置,打開Eclipse的 Window->preferences->Android->NDK 然後選擇路徑你的NDK路徑我的目錄如下D:\android-sdk\android-ndk-r9 這個目錄下有docs,sources,tests,samples e等等。 然後點擊Apply,OK即可
2).首先導入hello—jni工程,然後點擊右鍵->Properties你看見如下圖所示的界面,這不是一個可以編譯的NDK工程。你需要運行Cygwin或者在Eclipse配置。
我們首先使用Cygwin來生成程序的.so文件。打開Cygwin運行命令cd $ndk 這個ndk是之前你配置Cygwin環境變數設置的字元。然後cd samples/hello-jni
然後$ndk/ndk-build,你就可以看見生成.so文件成功的頁面,這時候刷新或者clean工程 點擊run as運行android程序。如下圖:三.Eclipse 工程配置在Eclipse中開發c/c++
第二步運行完之後,你會發現你把Hello from JNI修改為AAA(隨便寫的) 這個字元串不好使,輸出之後還是Hello from JNI 。你需要再次運行Cygwin才可以。當然這樣比較麻煩,你可以在Eclipse中配置一下,就不要在運行Cygwin了。直接運行eclipse就可以了。
1)在HelloJni上右鍵->New->other(這一步一定是other)->c/c++>Convert to a C/C++ Project(Adds c/c++ Nature)->Next
然後選擇你的工程HelloJni,選擇轉化為c工程,選擇Makefile Project Cygwin GCC,點擊Finish,再次點擊Finish即可
2)你發現你的工程.c文件有很多錯誤。這個時候點擊工程右鍵->Propreties這個時候你會發現和第二步的2)圖多了二項 c/c++ Build 和c/c++ General.
點擊 c/c++ Build
Use defult build commond的勾去掉 在Build command 填入bash <NDK路徑>\ndk-build 例如bash D:\android-sdk\android-ndk-r9\ndk-build點擊Apply OK即可。
點擊c/c++ General
打開列表點擊Paths and Symbols 在Includes 你看見Assembly GNU C (如果你在1)步選擇的C++project還會有GNU C++) .這個時候要選擇你所要的依賴庫,由於hello-jni不需要過多的庫文件所以
只需要點擊Add D:\android-sdk\android-ndk-r9\platforms\android-9\arch-arm\usr\include 這樣你就可以直接修改在Run as了。Ok成功運行。
㈣ android studio 2.2.2 32位怎麼配置ndk cmake環境
編譯mac靜態庫 這個比較簡單,直接Xcode -GXcode,然後用xcodebuild命令即可。 編譯Andoird靜態庫 編譯android庫我們同樣可以引入一個toolchain文件,這里我是從 android-cmake 裡面下載的。 在使用這個toolchain文件之前,我們先要使用ndk自帶的make-standalone-toolchain.sh腳本來生成對應平台的toolchain.這個腳本位於你的NDK的路徑下面的buil/tools目錄下。 比如要生成arm平台的toolchain,我們可以使用下列命令: sh $ ANDROID_NDK / build / tools / make - standalone - toolchain . sh -- platform = android - $ANDROID_API_LEVEL -- install - dir = . / android - toolchain -- system = darwin - x86_64 -- ndk - dir = /Users / guanghui / AndroidDev / android - ndk - r9d / -- toolchain = arm - linux - androideabi - 4.8 這里的$ANDROID_NDK為你的NDK的安裝路徑。這段命令可以生成arm的toolchain,最終可以編譯出armeabi和armeabi-v7a靜態庫。 如果想生成x86的toolchain,指需要使用下列命令: sh $ ANDROID_NDK / build / tools / make - standalone - toolchain . sh -- platform = android - $ANDROID_API_LEVEL -- install - dir = . / android - toolchain - x86 -- system = darwin - x86_64 -- ndk - dir= / Users / guanghui / AndroidDev / android - ndk - r9d / -- toolchain = x86 - 4.8 最後,我們要告訴CMake使用外部toolchain文件,可以使用參數-DCMAKE_TOOLCHAIN_FILE=xxx。此外,我們還需要在導出兩個環境變數給此toolchain文件: ...編譯mac靜態庫 這個比較簡單,直接Xcode -GXcode,然後用xcodebuild命令即可。 編譯Andoird靜態庫 編譯android庫我們同樣可以引入一個toolchain文件,這里我是從 android-cmake 裡面下載的。 在使用這個toolchain文件之前,我們先要使用ndk自帶的make-standalone-toolchain.sh腳本來生成對應平台的toolchain.這個腳本位於你的NDK的路徑下面的buil/tools目錄下。 比如要生成arm平台的toolchain,我們可以使用下列命令: sh $ ANDROID_NDK / build / tools / make - standalone - toolchain . sh -- platform = android - $ANDROID_API_LEVEL -- install - dir = . / android - toolchain -- system = darwin - x86_64 -- ndk - dir = /Users / guanghui / AndroidDev / android - ndk - r9d / -- toolchain = arm - linux - androideabi - 4.8 這里的$ANDROID_NDK為你的NDK的安裝路徑。這段命令可以生成arm的toolchain,最終可以編譯出armeabi和armeabi-v7a靜態庫。 如果想生成x86的toolchain,指需要使用下列命令: sh $ ANDROID_NDK / build / tools / make - standalone - toolchain . sh -- platform = android - $ANDROID_API_LEVEL -- install - dir = . / android - toolchain - x86 -- system = darwin - x86_64 -- ndk - dir= / Users / guanghui / AndroidDev / android - ndk - r9d / -- toolchain = x86 - 4.8 最後,我們要告訴CMake使用外部toolchain文件,可以使用參數-DCMAKE_TOOLCHAIN_FILE=xxx。此外,我們還需要在導出兩個環境變數給此toolchain文件: export PATH = $ PATH : . / android - toolchain / bin export ANDROID_STANDALONE_TOOLCHAIN = . / android - toolchain cmake - DCMAKE_TOOLCHAIN_FILE = . . / android . toolchain . cmake - DANDROID_ABI = "armeabi" . .收起
㈤ android studio ndk-build怎麼配置環境
第一步:下載Android NDK。
第二步:為project設置ndk路徑,在local.properties中,添加ndk.dir=<path-to-ndk>。
第三步:修改build.gradle文件。
第四步:創建jni文件。
第五步:創建測試類文件。
第六步:創建.h文件。創建.cpp文件。
第七步:進行測試
㈥ andorid studio 怎麼添加ndk配置
1、新建一個Android工程,這一步就不多說了;
2、在AndroidStudio中配置NDK路徑,方法是:
(1)先下載NDK並安裝(這句基本是廢話);
(2)點菜單欄的File->ProjectStructure…->在打開的窗口中左側選中SDKLocation->在右側Android NDK Location中填入NDK目錄所在路徑
3、編譯生成.class文件,方法是:
點菜單欄的Build->Make Project
這時,在工程的app/build/intermediates下就會生成classes文件夾,打開classes目錄下的debug目錄就會看到以你的包名命名的各級文件夾,最里邊文件夾下有你的Java類對應的.class文件;
4、確定你要引用本地方法的類:
其實你也可以先生成jni目錄,再去創建這個類,但是先Google顯然建議先創建要引用C代碼的Java類,因為AndroidStudio可以根據你在java類中定義的native方法的名稱來自動生成.h頭文件。
比如你想在MainActivity中引用本地方法,那麼你先用
static {
System.loadLibrary("myNativeLib");
}
來聲明本地代碼庫,然後定義幾個natvie方法,比如
public native String getStringFromNative();
5、使用javah命令行生成jni目錄及對應的頭文件:
我用的是AndroidStudio 2.1.1,在主界面最下邊就能找到Terminal,點一下就能打開系統的命令行工具,並且已經為你自動cd到當前工程所在目錄
6、配置build.gradle文件
這里的build.gradle是指app模塊下的build.gradle,不是整個工程的build.gradle文件。在模塊的build.gradle的defaultConfig下加入以下idk配置:
ndk {
moleName"myNativeLib"
ldLibs "log", "z", "m"
abiFilters "armeabi", "armeabi-v7a", "x86"
}
7、配置local.properties文件
打開工程目錄下的local.properties,感覺這一步是自動配置的,或者說在你一開始在AndroidStudio中指定NDK目錄時已經自動生成了。我的AndroidStudio在打開local.properties已經有了
ndk.dir=/Develop/Android/android-ndk-r10e
這一行,所以就不用配了;
8、配置gradle.properties
打開工程目錄下的gradle.properties文件(注意不是build.gradle,而是gradle.properties),在文件的最後一行加入
android.useDeprecatedNdk=true
這句的作用是允許我們使用已經過時的NDK版本,不知道AndroidStudio要求使用哪個版本的NDK才不會報錯,總之只要配置了這一句就可以使用比較舊的NDK版本了,我用的r10;
至此我們在AndroidStudio中就完成了NDK環境的配置,接下來就可以寫Native代碼了;
9、寫一個.c文件測試一下是否運行正常
(1)在我們之前生成src/main/jni目錄下新建一個.c文件,方法是在jni文件夾上點滑鼠右鍵,選擇New->C/C++ Source File,然後在彈出的對話框中填入.c或.cpp文件的文件名就可以了,比如說mail.c
㈦ android studio怎麼自動配置ndk環境
第一步:下載Android NDK。
第二步:為project設置ndk路徑,在local.properties中,添加ndk.dir=<path-to-ndk>。
第三步:修改build.gradle文件。
第四步:創建jni文件。
第五步:創建測試類文件。
第六步:創建.h文件。創建.cpp文件。
第七步:進行測試
㈧ android studio怎麼配置ndk
① windwos上的android ndk環境搭建(附視頻,同時包括xp,vasta,win7,win8,win8.1,win10等主流的windows版本);
② linux下的android ndk環境搭建(附視頻,同時包括 mac系統,ubuntu系統,debian,紅帽,麒麟等 unix和linux的主流操作系統);
㈨ android studio 怎麼配置ndk 配置
一.安裝Android Studio的准備工作 1.下載好JDK 去官網上找一個下載下來 2.安裝JDK.並配置環境變數.安裝過程可以一直下一步,無腦操作 3.下載Android Studio的安裝包 去官網上找一個,下載下來 (jdk的環境變數一定要配置) 准備工作完成之後,就可以開始我們的安裝了 1.安裝Android studio也是無腦操作,一直點下一步。直到安裝結束 2.安裝好之後,我們要新建我們的項目。重點從這里開始 點擊 New Project會出現.我們設置好名稱,也可以無腦操作,一直點擊next,直至結束,不過這個過程需要我們耐心的等待。(時間有點漫長)。 然後我們就會進入我們的開發界面。點擊圖片中紅圈的圖標(SDK manager)會出現下圖 這個步驟是安裝Android的sdk,推薦,Android1.6~Android4.4.2全部安裝。(這個耗費時間挺長的,請在網速良好且大量閑暇時光下安裝,安裝過程中可以看部電影) 安裝完之後,就開始配置我們的avd(Android Virtual Device),也就是Android的虛擬環境。點擊,圖片中紅圈的圖標 點擊New(Test是我配置好的) 隨便設置AVD name,建議如圖設置 設置完成之後,就可以點擊下圖的三角號編譯我們的程序了。
㈩ 如何在linux下配置AndroidStudio開發環境
配置開發環境具體步驟如下:一、設置root密碼。因為ubuntu下為了安全,一般都是以普通用戶進入系統。運行一些命令都需要root許可權,如果之前沒有設置root密碼,只需要在終端運行:sudopasswdroot命令即可,要輸入兩次密碼,密碼不會回顯出來。二、安裝JDK1)首先下載JDK,下載頁面:,選擇Linux版本。下載下來後解壓,配置環境,打開/etc/profile文件,在最下面輸入下面的內容:exportNDK_HOME=/home/mayliang/programs/android-ndk-r7exportPATH=$NDK_HOME:$PATH/home/mayliang/programs/android-ndk-r7為NDK的根目錄。保存關閉後,sudosource/etc/profile生效一下,然後在命令行輸入:ndk-build,如果有下面的內容輸出,則配置成功。AndroidNDK:!AndroidNDK:PleasedefinetheNDK_PROJECT_PATHvariabletopointtoit./home/mayliang/programs/android-ndk-r7/build/core/build-local.mk:102:***AndroidNDK:Aborting.Stop.進入到NDK目錄下面的samples/hello-jni目錄,然後輸入:ndk-build,如果出現如下圖所示,則證明NDK運行OK。最後配置文件/etc/profile如圖所示:六、安裝ADT打開eclipse,「Help」--->「InstallNewSoftware」,點擊「Add」按鈕,則會出現如下圖界面:在「Name:」裡面輸入「adt」,在「Location:」裡面輸入:/android/eclipse/,最後點OK,然後一路Next就安裝完成了。最後點擊「Windows」--->「preferences」,出來如下圖所示的界面,點擊左側的android,在「SDKLocation:」選擇SDK的根目錄,點下面的「Apply」,就會出來如圖所示的界面,即OK。七、安裝SVN安裝步驟和安裝ADT類似,更新地址:RemoveLanguages」按鈕,會跳出來一個「InstalledLanguage」界面,在裡面選擇「Chinese(simplified)」最後點擊下面的「ApplyChanges」即完成中文語言包的安裝,裡面也有中文輸入,拼音,五筆都有。最上面的一行狀態欄就會出現一個鍵盤標識,點擊後出現一個菜單,選擇「preferences」點擊會出現一個如下圖所示的界面,添加輸入法就行了。