jniレイヤコードの作成およびsoライブラリの生成
2864 ワード
本文の内容
Android Jniレイヤ間のデータ型の変換
の準備を
開発デバッグを行う前に、開発環境の構築、開発前にndkをインストールし、デバッグが必要な場合はLLDBサーバをダウンロードしてデバッグするなどの準備をしなければなりません.準備が整ったらまずプロジェクトを建てる
新規プロジェクト
次にndkを関連付ける
OKに成功しました.次にgradle-experimentalプラグインを追加します.この3つのファイルを変更する必要があります.
プロファイル
もしこの時すべてokならば、クラスを建てましょう.このクラスはC/C++コードを呼び出すために使われています.
jniフォルダとCコードを自動的に生成
ノーマルコール
もちろんコードもよくデバッグしてasのedit configurationsをクリックします
選択肢はいくつかありますが、一般的にはnative、auto、javaの間で切り替えられます.また、デバッグするときは、コードを修正したら、再実行する前にcleanが一番いいです.makeはコードにバグがないときに持っていくことができます.soライブラリ、具体的なパスは:appbuildintermediatesbinariesdebug
今はsoを使ってもいいです.もし私のコードを詳しく見たいなら、私のgithubに移動してください.また悪くない一日が過ぎた.
どんな問題があっても一緒に交流することができます.
Android Jniレイヤ間のデータ型の変換
の準備を
開発デバッグを行う前に、開発環境の構築、開発前にndkをインストールし、デバッグが必要な場合はLLDBサーバをダウンロードしてデバッグするなどの準備をしなければなりません.準備が整ったらまずプロジェクトを建てる
新規プロジェクト
次にndkを関連付ける
OKに成功しました.次にgradle-experimentalプラグインを追加します.この3つのファイルを変更する必要があります.
./build.gradle
./app/build.gradle
./gradle/wrapper/gradle-wrapper.properties
プロファイル
./build.gradle
com.android.tools.build:gradle-experimental com.android.tools.build:gradle
buildscript {
repositories {
jcenter()
}
dependencies {
//classpath 'com.android.tools.build:gradle:2.3.3'
classpath "com.android.tools.build:gradle-experimental:0.9.3"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
./app/build.gradle
, :
// com.android.model.application com.android.application
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 25
buildToolsVersion = '25.0.3'
defaultConfig {
applicationId = "cn.zkteco.jnidemo"
minSdkVersion.apiLevel = 15
targetSdkVersion.apiLevel = 25
versionCode = 1
versionName = "1.0"
}
// NDK
ndk {
// so ,
moduleName ="aes128"
toolchain = 'clang'
CFlags.add('-std=c99')
//
ldLibs.addAll(['android','OpenSLES', 'log'])
// abi so
abiFilters.addAll(['armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86']) //, 'x86_64', 'mips', 'mips64'
debuggable = true
}
buildTypes {
release {
minifyEnabled = false
proguardFiles.add(file('proguard-android.txt'))
}
}
}
}
dependencies {
}
./gradle/wrapper/gradle-wrapper.properties
distributionUrl
distributionUrl=https\\://services.gradle.org/distributions/gradle-3.3-all.zip
まとめ
もしこの時すべてokならば、クラスを建てましょう.このクラスはC/C++コードを呼び出すために使われています.
jniフォルダとCコードを自動的に生成
ノーマルコール
もちろんコードもよくデバッグしてasのedit configurationsをクリックします
選択肢はいくつかありますが、一般的にはnative、auto、javaの間で切り替えられます.また、デバッグするときは、コードを修正したら、再実行する前にcleanが一番いいです.makeはコードにバグがないときに持っていくことができます.soライブラリ、具体的なパスは:appbuildintermediatesbinariesdebug
今はsoを使ってもいいです.もし私のコードを詳しく見たいなら、私のgithubに移動してください.また悪くない一日が過ぎた.
どんな問題があっても一緒に交流することができます.