android studio1.4でのNDKデバッグ方法
Android Studioがこの夏からNDKに標準対応した。
対応の中身は、NDKをSDK Managerからダウンロードできるようになったこと。
そして、NDK(C++)をandroid studioのメイン画面でソースを眺めながらadbデバッグできるようになったことだ。
※ただし、現時点では国内メーカなどのサードパーティスマホは実機デバッグはできない。
Google製のスマホのみでデバッグできる。
NDKのコンパイルとデバッグの手順はつぎのとおりだ。
1. JavaDevelopmentKit 1.7をインストールする
2. Android Studio 1.4 RCをインストールする
3. SDK ManagerでSDK 23, SDK Build Tool, SDK Tool, Platform-Tool, NDK をインストールする
4. .bash_profile にパスを設定する
PATH="":/Applications/Xcode.app/Contents/Developer/usr/bin/
export PATH=/sdk/platform-tools:
export ANDROID_HOME=/(path to sdk)/sdk
export PATH=:/tools
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
5. local.propertiesの編集
ndk.dirディレクティブを追加する。
ndk.dir=/(SDKフォルダへのパス)/sdk/ndk-bundle
sdk.dir=/(SDKフォルダへのパス)/sdk
6. build.grade の編集
repositoriesディレクティブをjcenter()に変更する。
dependenciesディレクティブをexperimentalに変更する
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle-experimental:0.2.0'
}
}
allprojects {
repositories {
jcenter()
}
}
7. gradle-wrapper.properties の編集
distributionUrlディレクティブをgradle2.5に変更する。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.5-all.zip
8. app/build.gradleを編集する。
apply pluginディレクティブをmodel.applicationに変更する。
全体の記述をmodel.applicationプラグイン用に変える。
・model { 追加
・compileSdkVersion、buildToolsVersionを最新に変更
・=, += 追加
・.with { 追加
・compileOptions.with { 追加
・debuggable 追加
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.1"
defaultConfig.with {
applicationId = "your.app"
minSdkVersion.apiLevel = 10
targetSdkVersion.apiLevel = 19
versionCode = 1
versionName = "1.0"
}
}
compileOptions.with {
sourceCompatibility=JavaVersion.VERSION_1_7
targetCompatibility=JavaVersion.VERSION_1_7
}
android.ndk {
moduleName = "nativeModuleName"
CFlags += "-DANDROID_NDK -std=c++11"
ldLibs += ["GLESv1_CM", "dl", "log", "android", "EGL"]
stl = "stlport_static"
}
android.buildTypes {
debug {
ndk.with {
debuggable = true
}
}
release {
minifyEnabled = false
proguardFiles += file('proguard-rules.pro')
}
}
android.productFlavors {
create("x86") {
ndk.with {
abiFilters += "x86"
}
}
create("armv7") {
ndk.with {
abiFilters += "armeabi-v7a"
}
}
create("arm") {
ndk.with {
abiFilters += "armeabi"
}
}
create("mips") {
ndk.with {
abiFilters += "mips"
}
}
create("fat") {
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:20.0.0'
}
9. フォルダ構成やAndroidManifest.xmlやjniは変更しなくてよい
10. Run - Edit Configuration で AndroidNative設定を追加する
・Moduleを選択する
・デバッガは lldb
11. Run - Debug で AndroidNative設定を実行する
12. デバッガプロセスにアタッチするまで10秒前後かかる
Now Launching Native Debug Session
Debugger attached to process 2867
13. デバッガが Connect してからデバッグ可能となるまで1分程度かかる
14. Native C++ソースにブレークボイントを設定したり、ステップ実行ができるのはJavaソースと同様だ
(参照)
http://tools.android.com/tech-docs/new-build-system/gradle-experimental
https://github.com/googlesamples/android-ndk
2023年8月 | ||||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
  |   | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |   |   |
iOS
web
アプリの著作権
ブロックチェーン/暗号技術
新しい社会
禅・大乗仏教
日本のなりたち