Android Studio NDKが開発したjni生成soファイル
4954 ワード
最近どのようにコードをsoパッケージに书いて、コードが解読されないようにしたいと思っています~もちろん、誰かが考えたら方法があります.ハハハ!
さあ!
ターゲット:アンドロイドstudioでsoパッケージを生成する;
ツール:Android studio 2.0;
1、NDKをダウンロード私がダウンロードしたのはandroid-ndk-r 13 b(http://www.androiddevtools.cn/)
2、システム環境変数の設定Path D:android-ndk-r 13 b-windows-x 86_64\android-ndk-r13b
3、cmdでndk-buildを成功と記す
Android NDK: Could not find application project directory ! Android NDK: Please define the NDK_PROJECT_PATH variable to point to it. D:\android-ndk-r13b-windows-x86_64\android-ndk-r13b\build\\..\build\core\build-local.mk:151: *** Android NDK: Aborting . Stop.
4、アンドロイドstudioのndkパスを配置する
D:\android-ndk-r13b-windows-x86_64\android-ndk-r13b
5、toolsをダウンロードするのは以下の図で、LLDB、NDKとCMakeはスクリーンショットがありません
次のコード
一、プロジェクトのbuild_gradleのandroidディレクトリの下
二、javaクラスの作成
三、Terminalでコマンドを入力する
cd app/src/main/javaターゲットディレクトリへ
javah -jni com.marvin.demo.utils.JniUtils
四、appディレクトリの下でjniフォルダを作成する
Androidを作成mkファイルコード
コードダイレクトコピー
対応を作成します.cファイル、私の名前はndkです.c
万里の江山はすでに大半を完成したので,焦らずに最後の震えになった.
五、appのmainディレクトリの下でjniLibsを作成する
Terminalでコマンドndk-buildを実行
不思議な発見jniLibsはよく知っているarmなどのファイルを生成します
終わりだ!
さあ!
ターゲット:アンドロイドstudioでsoパッケージを生成する;
ツール:Android studio 2.0;
1、NDKをダウンロード私がダウンロードしたのはandroid-ndk-r 13 b(http://www.androiddevtools.cn/)
2、システム環境変数の設定Path D:android-ndk-r 13 b-windows-x 86_64\android-ndk-r13b
3、cmdでndk-buildを成功と記す
Android NDK: Could not find application project directory ! Android NDK: Please define the NDK_PROJECT_PATH variable to point to it. D:\android-ndk-r13b-windows-x86_64\android-ndk-r13b\build\\..\build\core\build-local.mk:151: *** Android NDK: Aborting . Stop.
4、アンドロイドstudioのndkパスを配置する
D:\android-ndk-r13b-windows-x86_64\android-ndk-r13b
5、toolsをダウンロードするのは以下の図で、LLDB、NDKとCMakeはスクリーンショットがありません
次のコード
一、プロジェクトのbuild_gradleのandroidディレクトリの下
defaultConfig {
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk{
moduleName"ndk"
abiFilters "armeabi","armeabi-v7a","x86"// abi so ,
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
二、javaクラスの作成
/**
* Created by haohuo on 2017/8/17.
*/
public class JniUtils {
Context mContext;
public JniUtils(Context context) {
mContext = context;
}
static {
System.loadLibrary("ndk");// build.gradle ndk moduleName
}
public native String NDK();
三、Terminalでコマンドを入力する
cd app/src/main/javaターゲットディレクトリへ
javah -jni com.marvin.demo.utils.JniUtils
四、appディレクトリの下でjniフォルダを作成する
Androidを作成mkファイルコード
コードダイレクトコピー
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE :=ndk
LOCAL_SRC_FILES :=ndk.c// .c java build_gradle
include $(BUILD_SHARED_LIBRARY)
対応を作成します.cファイル、私の名前はndkです.c
#include "com_marvin_demo_utils_JniUtils.h"
// .h
JNIEXPORT jstring JNICALL Java_com_marvin_demo_utils_JniUtils_NDK
(JNIEnv *env, jobject obj){
return (*env)->NewStringUTF(env,"Im NDK");
}
万里の江山はすでに大半を完成したので,焦らずに最後の震えになった.
五、appのmainディレクトリの下でjniLibsを作成する
Terminalでコマンドndk-buildを実行
不思議な発見jniLibsはよく知っているarmなどのファイルを生成します
終わりだ!