DX・デジタルトランスフォーメーション

AppStoreにて無料公開中! ”システム手帳”で検索! - AppStoreへ iPad版 - iPhone版

ブロックチェーン・暗号技術 | android | iOS | Web | アプリの著作権 | 日本のなりたち | 禅・大乗仏教 | 新しい社会

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年12月
     12
3456789
10111213141516
17181920212223
24252627282930
31      
android
iOS
web
アプリの著作権
ブロックチェーン/暗号技術
新しい社会
禅・大乗仏教
日本のなりたち

AppStoreにて無料公開中! ”システム手帳”で検索! - AppStoreへ iPad版 - iPhone版
デジタルトランスフォーメーションで新しい生活を提案!