使用 @Keep 注入阻止混淆代码

Author Avatar
Omico Yuwen 1月 30, 2017
  • 在其它设备中阅读本文章

今天在看 Google Samples 的时候看到一个 @Keep 注入,于是在文档里查了一下,意外发现一个非常有用的东西,于是拿来分享给大家。

首先来说说 @Keep 是什么。

Denotes that the annotated element should not be removed when the code is minified at build time. This is typically used on methods and classes that are accessed only via reflection so a compiler may think that the code is unused.

翻译(以下翻译来自谷歌):

表示在构建时缩减代码时不应删除带注释的元素。 这通常用于只通过反射访问的方法和类,因此编译器可能认为代码未使用。

已经说的很明白了,而且也把缺点说了,编译器会认为带有 @Keep 注释的会是未被使用过的代码,因此在 Android Studio 里,代码会提示 warning ,像下图所示

所以有代码洁癖的我还是放弃使用这个注入,继续使用 ProGuard 。

参考资料:

https://developer.android.com/reference/android/support/annotation/Keep.html

This blog is under a CC BY-NC-SA 3.0 CN License
本文链接:https://blog.omico.me/use-keep-annotation-to-prevent-obfuscated-code/