androidndk配置文件
A. 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" . .收起
B. 使用ndk開發程序需要寫什麼文件
NDK(Native Development Kit)「原生」也就是二進制
AndroidNDK是一套工具,允許Android應用開發者嵌入從C、C++源代碼文件編譯來的本地機器代碼到各自的應用軟體包中,並通過JNI進行訪問。Android從1.5開始支持NDK.
android常用的開發方式是java封裝的庫,而這些庫的底層實現是由C/C++實現,如媒體,圖形庫等
java調用這樣實現就需要用JNI(Java Native Interface)
平時用的也就是google給我們封裝的好的庫,即便是底層實現用的不是Java,但都有統一的Java介面
而NDK的作用是「我們自己寫本地代碼」(C/C++),自己用JNI封裝成Java介面
比如我們想做個計算,二這不是Java的強項,可以用C/C++來寫實現,返回一個運算結果就行了
NDKr5已經實現了不用寫一行Java代碼開發程序了,只不過還是用到了虛擬機,細節被封裝隱藏起來了而已
對於JNI和NDK很多Android開發初學者沒有搞明白這個問題
JNI是Java調用Native機制,是Java語言自己的特性全稱為 Java Native Interface,類似的還有微軟.Net Framework上的p/invoke,可以讓C#或Visual Basic.Net可以調用C/C++的API,所以說JNI和Android沒有關系,在PC上開發Java的應用,如果運行在Windows平台使用 JNI是是經常的,比如說讀寫Windows的注冊表。
NDK是Google公司推出的幫助Android開發者通過C/C++本地語言編寫應用的開發包,包含了C/C++的頭文件、庫文件、說明文檔和示例 代碼,我們可以理解為Windows Platform SDK一樣,是純C/C++編寫的,但是Android並不支持純C/C++編寫的應用,同時NDK提供的庫和函數功能很有限,僅僅處理些演算法效率敏感的 問題,所以Android123推薦初學者學好Java後再學習JNI。
NDK其實多了一個把.so和.apk打包的工具,這個是很重要的。
而JNI開發並沒有打包,只是把.so文件放到文件系統的特定位置。
如果是做應用開發,則需要NDK工具,不然你開發的應用程序怎麼給用戶用呢?難道幫他重新編譯文件系統?
其他至於實現,java調用本地C/C++函數,及其編寫方式,我覺得JNI和NDK沒有什麼區別。
還有一個我個人理解,NDK開發C/C++只能能使用NDK自帶的有限的頭文件,而使用JNI則可以使用文件系統中帶的頭文件,比如utils/Log.h
而後者的資源更多,當然NDK正在努力開發中,以便支持更豐富的介面。
2.開發環境搭建:
NDK開發需要安裝以下物體:
1.cygwin (需要1.7以上版本,下載地址:http://www.cygwin.com官方明確表示MSys or Cygwin 1.5 is notsupported)
在安裝時候,選擇make、gcc、g++、bash、
安裝好後啟動cygwin,運行:
看到如下所11示就ok了 (注意:GNU Make要 3.81以上版本)
3.NDK的使用
(android-ndk-r8b-windows),此文檔只針對r8b版進行說明, ndk可以到官方網http://developer.android.com上進行下載
Ndk下載下來隨意解壓到一個目錄即可(ndk的解壓後存放的路徑必須不能包括空格或中文,比如這種「D:\Program Files\Android-ndk-windows」在cygwin是不能識別成功的。)
如:D:\AndroidDevelop\NDK\android-ndk-r8b
配置NDK 在D:\AndroidDevelop\cygwin\home 目錄下找到.bash_profile打開文件加上:
NDK=/cygdrive/d/AndroidDevelop/NDK/android-ndk-r8b
export NDK
配好後重新打開cygwin
輸入:
cd $NDK
輸入: $NKD/ndk-build 驗證NDK是否可以使用?
在Cygwin下用nano或者vim編輯器編輯你的腳本。對於那些已經存在的腳本用dos2unix轉化一下。因為Windows下的換行是<LF><CR>,Linux下是<LF>,Mac下是<CR>。
先對你的腳本跑一下 dos2unix .bash_profile 就行了。
配置NDK可以參照 http://www.linuxidc.com/Linux/2012-07/65388.htm
C. android如何配置ndk
NDK全稱:Native Development Kit。
1、NDK是一系列工具的集合。
* NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,並能自動將so和java應用一起打包成apk。這些工具對開發者的幫助是巨大的。
* NDK集成了交叉編譯器,並提供了相應的mk文件隔離CPU、平台、ABI等差異,開發人員只需要簡單修改mk文件(指出「哪些文件需要編譯」、「編譯特性要求」等),就可以創建出so。
* NDK可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作。
2、NDK提供了一份穩定、功能有限的API頭文件聲明。
Google明確聲明該API是穩定的,在後續所有版本中都穩定支持當前發布的API。從該版本的NDK中看出,這些API支持的功能非常有限,包含有:C標准庫(libc)、標准數學庫(libm)、壓縮庫(libz)、Log庫(liblog)。
D. android studio怎麼配置ndk路徑
這個網址有詳細的過程:http://www.2cto.com/kf/201412/363537.html
NDK 環境搭建
下載:http://developer.android.com/tools/sdk/ndk/index.htmlWindows32:android-ndk-r10d-windows-x86.exeWindows64:android-ndk-r10d-windows-x86_64.exeMac OS X 32-bit:android-ndk-r10d-darwin-x86.binMac OS X 64-bit:android-ndk-r10d-darwin-x86_64.binLinux 32-bit (x86):android-ndk-r10d-linux-x86.binLinux 64-bit (x86):android-ndk-r10d-linux-x86_64.bin
都是可執行文件,下載後點擊即可解壓到當前文件夾;當然你可以使用命令行來進行跨文件夾解壓的。
E. 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,建議如圖設置 設置完成之後,就可以點擊下圖的三角號編譯我們的程序了。
F. 如何為Android NDK的gradle構建文件中指定NDK
一個新的項目中就包含這些文件,build 是兩個,一個項目一個是 APP Model 的。另外在 APP 中可以看見有一個 manifest 文件夾,這意味著著可以有多 AndroidManifest 文件。
另外值得一說的是 gradle.properties 文件也是含有兩個,但是卻是一個是全局,一個是項目的;這與上面的 Build 文件有何區別?區別在於全局文件存在於 C:Users用戶名.gradle文件夾中,該文件有可能沒有,需要自己創建,創建後所有項目都將具有訪問許可權,在該文件中一般保存的是項目的一些變數等,如果是無關緊要的變數可以保存在項目文件中,如果是用戶名密碼等變數則需要保存在全局文件中。
至於項目的配置文件一般是空的。
local.properties
?
1
2
3
4
5
6
7
8
9
10
## This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file should *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=D:ToolKitsAndroidsdk
其中包含了你的 sdk 配置,當然你還可以配置 ndk 路徑;格式與 sdk 一樣。
settings.gradle
?
1
include ':app'
該文件中就僅僅只包含了一句話,在你的項目中如果有多個 Model 存在的時候,就可以選擇包含哪些進行編譯。
G. android studio ndk-build怎麼配置環境
第一步:下載Android NDK。
第二步:為project設置ndk路徑,在local.properties中,添加ndk.dir=<path-to-ndk>。
第三步:修改build.gradle文件。
第四步:創建jni文件。
第五步:創建測試類文件。
第六步:創建.h文件。創建.cpp文件。
第七步:進行測試
H. 如何給android工程添加ndk
建立項目,並設置activity.xml布局文件,這一點與普通編程沒有不同。通過一個簡單的文本展示實驗。在MainActivity中添加native介面,並載入.so庫生成項目的.class文件。首先選中項目後,在菜單欄選擇Build-->MakeProject。Make之後,將生成.class文件,生成的.class文件位於app_path/build/intermediates/classes/debug/包名利用javah生成C頭文件:點擊"View->ToolWindows->Terminal",即在Studio中進行終端命令行工具。在控制台中通過命令「cdapp\src\main\java」,進入到java目錄下。操作指令:javah-d../jnivrlab.ndkdemoforandroidstudio.MainActivity。此時在main目錄下生成一個jni文件夾,其中在jni文件夾中有生成的.h頭文件。編輯C文件,在jni文件夾下新建文件命名為main.c。並在該文件中導入需要的頭文件,實現上一步生成的頭文件中的方法。配置NDK路徑,在local.properties中指明sdk和ndk路徑:設置ndk參數,名字、發布平台等。在應用目錄下的build.gradle中defaultConfig中設置生成.so文件,此時再次選擇Build-->BuildProject就可以生成so文件了。出現不支持NDK的錯誤提示,不過跟著錯誤提示修改:在項目空間下的gradle.properties中添加android.useDeprecatedNdk=true。針對三種不同的CPU生成了三種不同的.so文件。生成的.so文件位於app_path/build/intermediates/ndk/debug/lib.安裝運行~~去吧,皮卡丘
I. 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
J. android ndk怎麼配置
、下載NDK工具(也在這個網站):http://www.androiddevtools.cn/,我使用的是最新的android-ndk-r10e-windows-x86.exe,下載完後點擊解壓縮。
4、Eclipse -> Window -> Preferences -> Android -> NDK,設置NDK為剛剛解壓縮的工具包路徑。
注意:做到這里時,控制台報出了一個錯誤:「Unable to launch cygpath. Is Cygwin on the path」,因為ndk r7之前編譯採用的是Cygwin模擬出linux 環境,使用ndk-build命令,而ndk r7之後集成了編譯環境,能夠在windows環境下就可以編譯了,使用的命令試是ndk-build.cmd。解決如文章後面的(問題四)所寫的方法:
5、NDK環境基本上已經搭建好,新建一個普通Android項目測試NDK支持。項目右鍵->Android Tools->Add Native Support...,輸入.so庫名字(如 hello )後點擊Finish ;(注意:若項目已經是一個Jni項目,例如NDK example裡面的HelloJni,這一步中.so庫名字不用填)