私はJNIとNDKを使った最初のAndroidアプリケーションを作成しました。単純なHello-JNIが話しています。文字列を返すユニークな関数。 アンパックされたAPKに署名し、ネイティブでコンパイルされていないような.soファイルが表示された場合。私はバイナリコードを期待していました。私は関数と文字列の名前を読んだ。 私の目標は、Proguardによって混乱していない文字列を隠すためにSDKを使用してネイティブコードを書くことです。 は、私は、Android Studioの2.1.2Android NDK JNIバイナリコード?
Build.gradleプロジェクト
buildscript {
repositories {
jcenter()
}
dependencies {
//classpath 'com.android.tools.build:gradle:2.1.2'
classpath 'com.android.tools.build:gradle-experimental:0.7.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Build.Gradleアプリ
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.danielezampieri.jniapp"
minSdkVersion.apiLevel 18
targetSdkVersion.apiLevel 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles.add(file('proguard-android.txt'))
}
}
ndk {
moduleName "jniapp"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:design:23.0.0'
}
gradle-wrapper.properties
#Mon Dec 28 10:00:20 PST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
local.propertiesを使用
あなたの文字列がC/C++のように定義されている場合ndk.dir=P\:\\Android\\sdk\\ndk-bundle
sdk.dir=P\:\\Android\\sdk
あなたは正しく.soファイルを開き、16進コマンドではなくプレーンテキストだけを表示しますか? btw、私はあなたにアンドロイドスタジオ2.2プレビューを試してみることをお勧めします5.それは別のビルドシステム(CMake、Android.mkメイクファイル、ndkビルド)をサポートしています。 2.1以降に修正された多くのバグ –
私は2.2リリースを待っていますが、私は多くの変更もあると思います。 – Daniele