當前位置:首頁 » 安卓系統 » androidndk配置環境

androidndk配置環境

發布時間: 2022-07-09 10:16:43

㈠ 如何使用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」點擊會出現一個如下圖所示的界面,添加輸入法就行了。

熱點內容
java類型位元組 發布:2025-04-07 00:58:36 瀏覽:274
java隨機整數生成 發布:2025-04-07 00:37:40 瀏覽:745
手機為什麼更改不了id密碼 發布:2025-04-07 00:37:40 瀏覽:634
androidpaint字體 發布:2025-04-07 00:33:58 瀏覽:104
安卓手機如何改為普通版 發布:2025-04-07 00:31:21 瀏覽:217
javaif判斷字母 發布:2025-04-07 00:31:19 瀏覽:237
忘記密碼了如何解開應用鎖 發布:2025-04-07 00:13:37 瀏覽:535
抽獎樂源碼 發布:2025-04-07 00:01:21 瀏覽:500
cobar源碼 發布:2025-04-06 23:44:59 瀏覽:263
ftp內網穿透 發布:2025-04-06 23:42:48 瀏覽:271