Android 关于doNotStrip的疑问

1,411 阅读1分钟

背景

Android开发一般都知道,当so有一些特殊加固操作时,需要让Android Studio在编译的时候不要修改这个so,不然运行的时候会不正常

android {
    // xxx
    packagingOptions {
        doNotStrip "*/*/libxxx.so"
    }
}

今天我在修改一个so文件的名称的时候,忘记修改这个配置了,但是最终apk里面的so也没有strip,这就很奇怪了.

结论

当在local.properties中配置ndk.dir或者设置ANDROID_NDK_HOME等让Android studio知道ndk路径的时候,构建系统会增加一个名为transformNativeLibsWithStripDebugSymbolForXXX的任务,这个任务会strip so,当没有设置的时候就不会进行strip so.