Android studio3.2 NDK external tools配置

记录:

1、ndk-build配置

Android studio3.2 NDK external tools配置_第1张图片

1.1nkd-build参数设置,网上没有参数的都是忽悠的,感谢

https://blog.csdn.net/heiheiya/article/details/80772567

File->Settings->Tools->External Tools

点击”+”号,添加NDK Build

Name: NDK Build 
Group: NDK 
Description: NDK Build 
Tools Settings: 
Program: Ndk安装目录/ndk-build.cmd 
Parameters:NDK_PROJECT_PATH=$ModuleFileDir$/build/intermediates/ndk NDK_LIBS_OUT=$ModuleFileDir$/src/main/libs NDK_APPLICATION_MK=$ModuleFileDir$/src/main/jni/Application.mk APP_BUILD_SCRIPT=$ModuleFileDir$/src/main/jni/Android.mk V=1 

Working directory: $SourcepathEntry$          //一定要写这个,网上写其他参数的都没有通用性

2、javah配置

Android studio3.2 NDK external tools配置_第2张图片

2.1 javah参数设置

Name: Javah 
Group: NDK 
Description: Javah 
Tools Settings: 
Program: 你的Java JDK安装目录/bin/javah.exe 
Parameters: -v -jni -d $ModuleFileDir$/src/main/jni $FileClass$ 

Working directory: $SourcepathEntry$

3、NDK混淆的相关注意事项

-dontskipnonpubliclibraryclasses # 不忽略非公共的库类
-optimizationpasses 5            # 指定代码的压缩级别
-dontusemixedcaseclassnames      # 是否使用大小写混合
-dontpreverify                   # 混淆时是否做预校验
-verbose                         # 混淆时是否记录日志
-keepattributes *Annotation*     # 保持注解
-ignorewarning                   # 忽略警告
-dontoptimize                    # 优化不优化输入的类文件
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  # 混淆时所采用的算法
-keepclasseswithmembernames class * {
    native ;
}
-keep class com.pax.ndk.PaxNdk { *; }
-keep class com.pax.utils.NativeScanner {
     public  void callback(java.lang.String);
}
-keepclasseswithmembers class com.pax.ndk.PaxNdk{
    public static void callbackPrint();
}

3.2、回调方法不能混淆,否则JNI将不能找到方法,注意上面两处红色地方,都可达到不混淆方法的效果

你可能感兴趣的:(Android studio3.2 NDK external tools配置)