Android Studio中NDK開發
更新(2015.07.24):本文說的方法是針對Android Studio 1.3 之前的版本,從 AS 1.3 開始,官方支援了 NDK 的開發,可以參考。
之前有人問到怎麼使用Android Studio進行NDK開發,經過網上搜尋,自己也嘗試了一下,用Android Studio進行NDK開發比Eclipse更加靈活方便。
以下是翻譯自這篇文章。
在ADT中進行NDK開發非常簡單,在Android Studio進行NDK開發也同樣的容易。NDK開發主要有兩中情況:一種是使用已經編譯好的.so動態庫;一種是使用c/c++原始碼開發。下面分別介紹。
使用預編譯好的.so動態庫
你可以先用ndk-build工具先編譯好.so,然後在Android Studio中引用。 這種情況比較件簡單,只要把的.so檔案放到相應的目錄即可。如下所示:
[module_name]
[src]
[main]
[jniLibs]
[armeabi]
[armeabi-v7a]
[x86]
[mips]
注意jniLibs
目錄是放在module
下面,在Android Studio中效果如下:
現在就可以在程式碼中直接載入此庫了,如下:
String libName = "helloNDK"; // 庫名, 注意沒有字首lib和字尾.so System.loadLibrary( libName );
如果你不想把.so放在上面的預設路徑,可以在buid.gradle中進行如下配置:
android { // .. android settings .. sourceSets.main { jniLibs.srcDir 'src/main/myCppLibraries' //在Android Studio編譯C/C++原始碼
如果你不想像上面那樣,在終端中用ndk-build編譯.so,然後回到Android Studio中寫Java程式碼。可以直接讓Android Studio幫你編譯。配置方法如下:
1.配置ndk.dir
在
local.properties
新增如下配置:sdk.dir=/path/to/android-sdk ndk.dir=/path/to/android-ndk2.Gradle配置NDK模組
android { compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "com.example.ndksample" minSdkVersion 9 targetSdkVersion 19 versionCode 1 versionName "1.0" ndk { moduleName "helloNDK" //
ndk
還可以配置更多選項,如下:ndk { moduleName "myEpicGameCode" cFlags "-DANDROID_NDK -D_DEBUG DNULL=0" // Define some macros ldLibs "EGL", "GLESv3", "dl", "log" // Link with these libraries! stl "stlport_shared" // Use shared stlport library}3.新增C/C++原始碼
預設情況下,你需要把C/C++原始碼放在
[module]/src/main/jni/
路徑下。效果如下圖所示:當然,你也可以自定義原始碼路徑:
android { // .. android settings .. sourceSets.main { jni.srcDirs 'src/main/source' }}4.分平臺配置編譯(可選)
這一步不是必須的,你可以根據需要,對各個平臺進行不同的編譯配置,可以設定覆蓋前面的編譯選項(例如
cFlags
)。例如你只想編譯指定平臺的.so,而不是所有的平臺。如下:android { // .. android settings .. productFlavors { x86 { ndk { abiFilter "x86" } } arm { ndk { abiFilter "armeabi-v7a" } } mips { ndk { abiFilter "mips" } } }} // android
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4301/viewspace-2814836/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- android studio配置ndk開發Android
- Android Studio NDK開發-環境配置Android
- Mac之Android Studio開發NDK入門MacAndroid
- Android Studio NDK開發-JNI呼叫Java方法AndroidJava
- Android Studio3.0 NDK配置與開發Android
- Andorid Studio NDK開發-使用NDK庫
- Andorid Studio NDK 開發 – NDK 開發利器 gradle-experimentalGradle
- Android Studio NDK:三、打包SOAndroid
- Ndk 初步開發 In AndroidAndroid
- Android NDK開發(二) 使用ndk-build構建工具進行NDK開發AndroidUI
- Android Studio 已有專案新增NDK支援(mac/ndk-build)AndroidMacUI
- android 開發淺談(JDK && NDK)AndroidJDK
- Andorid Studio NDK 開發 – 編譯 OpenSSL 類庫編譯
- Android Studio NDK:二、JNI 返回JAVA 實體AndroidJava
- Android NDK開發之JNI基礎Android
- Android NDK開發Crash錯誤定位Android
- 【Android Studio】Android Studio 搭建開發環境(Linux Ubuntu篇)Android開發環境LinuxUbuntu
- Android NDK 開發之 CMake 必知必會Android
- Android Studio配置開發環境Android開發環境
- 老師講的真棒!如何在Android-Studio下進行NDK開發,滿滿乾貨指導Android
- android ndk整合Android
- Android之NDK開發錯誤 error: unknown type name 'JNIEXPORT'AndroidErrorExport
- Android NDK開發之引入第三方庫Android
- NDK學習筆記-NDK開發流程筆記
- Flutter 快捷開發 Mac Android Studio 篇FlutterMacAndroid
- Android開發_在Android Studio中搜尋專案中出現過的字串Android字串
- Android Studio NDK :一、基礎入門(基於gradle-experimental外掛)AndroidGradle
- Android NDK初識Android
- Android Studio 2023搭建Flutter開發環境AndroidFlutter開發環境
- IntelliJ IDEA/Android Studio外掛開發指南IntelliJIdeaAndroid
- NDK開發趟坑之旅
- Android NDK祕籍--初識NDK、JNI、Makefile/CMakeAndroid
- android NDK c++ libraryAndroidC++
- Android中整合FFmpeg及NDK基礎知識Android
- 直播軟體app開發,Android Studio中的介面上下滑動APPAndroid
- Android Studio 讓開發效率事半功倍的外掛整理Android
- 直播app開發搭建,Android studio 圖片壓縮APPAndroid
- android studio 4.0 開啟offlineAndroid