ProGuard中keep到底有什么作用
一直以為keep就是不要混淆,近期發(fā)現(xiàn)還有另外一個作用,見官方文檔:
Testing your app should reveal any errors caused by inappropriately removed code, but you can also inspect what code was removed by generating a report of removed code.
To fix errors and force R8 to keep certain code, add a -keep line in the ProGuard rules file. For example:
-keep public class MyClass
Alternatively, you can add the @Keep annotation to the code you want to keep. Adding @Keep on a class keeps the entire class as-is. Adding it on a method or field will keep the method/field (and its name) as well as the class name intact. Note that this annotation is available only when using the AndroidX Annotations Library and when you include the ProGuard rules file that is packaged with the Android Gradle plugin, as described in the section about how to enable shrinking.
仔細(xì)讀會發(fā)現(xiàn)keep作用是不被任何優(yōu)化,除了混淆還有刪除,因?yàn)镻roGuard的過程中會清理沒有使用的類或方法等代碼,設(shè)置keep后,這部分就不會被作任何優(yōu)化,包括被清理
關(guān)注公眾號:BennuCTech,發(fā)送“電子書”獲取經(jīng)典電子資料。
總結(jié)
以上是生活随笔為你收集整理的ProGuard中keep到底有什么作用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue 路由router的两种模式
- 下一篇: 怎样查看.a和so文件中的接口