Android ndk 开发
1.准备工作
NDK下载
1、官网下载地址需要梯子
2、不需要梯子 这里有许多资源,包括SDK、ADT、反编译工具···
2.配置sudio的ndk路径
或者
接下来可以用c/c++来写hollo word了
如果英文足够好可以看官方的连接
①修改项目下的build.gradle文件
classpath 'com.android.tools.build:gradle:2.1.2'
替换为
classpath 'com.android.tools.build:gradle-experimental:0.7.2'
②修改gradle文件
gradle → wrapper → gradle-wrapper.properties
修改 distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
为
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
③修改app下的build.gradle文件
apply plugin: 'com.android.application'
android{
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig{
applicationId "com.xiaoxiaoying.ndktest"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes{
release{
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
} } }
为
apply plugin: 'com.android.model.application'
model{
android{
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig{
applicationId "com.xiaoxiaoying.ndktest"
minSdkVersion.apiLevel 14
targetSdkVersion.apiLevel 23
versionCode 1
versionName "1.0"
}
buildTypes{
release{
minifyEnabled false
proguardFiles.add(file('proguard-android.txt'))
}
}
ndk{//指定so名字
moduleName "openssl_lib"//指定调用的版本号
platformVersion 23//需要openssl的库来解密某平台的.db文件
//Android ndk里面没有这些文件,需要我们手动导入
ldFlags.addAll(["-lcrypto", "-lssl"])
abiFilters.addAll(["armeabi-v7a", "armeabi"]) } } }
④ project → app → com.hudun.tools.jni → WeChatJNI.class
static { System.loadLibrary("openssl_lib"); }
public native int decrypt(String pwd,String inFile,String outFile);
decrypt 方法为红色,这里使用Alt + enter
出现下图:
点击 Create function java_com_hudun_tools_jni_WeChatJNI_decrypt
生成
这里就可以把 sqlciher-tool>decrypt.c 文件编译使用了。
⑤ debug 调试


这里可能需要一个调试ndk插件,根据提示安装插件即可
C/C++
文件里打断点debug
运行就可以调试了