`
大头K
  • 浏览: 186897 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

代码混淆时注意事项,防止注解被删掉

阅读更多
昨天在混淆代码生成apk时,一直无法正常打开,看错误log,发现是由于生成数据库语句有误(本项目生成数据库利用注解来实现)。
开始还以为是没混淆到了,直到后来没办法了,反翻译瞅瞅,一看真TM坑爸,注解全没了。我明明加上了这一段:
-keep class com.xxxx.** { *; }


反翻译看到该类也没有被混淆,只是注解全没了而已,可以说明的是,这段咱们常用的混淆语句对注解起不到保护作用。

google了一大段时间,终于让哥找到真相了,android在打包的时候,应用程序会进行代码优化,优化的过程就把注解给去掉了。
在前面加上这一句,注解就可以保留了:
-keepattributes *Annotation*
0
0
分享到:
评论

相关推荐

    ProGuardd代码混淆及操作使用方法

    **四、注意事项** 1. **保留关键类和方法**:确保重要的类、方法和注解不被混淆,例如,应用入口类、回调方法等。 2. **处理异常**:混淆可能导致一些运行时错误,需要测试混淆后的应用以确保功能正常。 3. **第三方...

    代码混淆工具-proguard7.2.2

    **七、注意事项** 虽然ProGuard可以提高代码的安全性和性能,但如果不正确配置,可能会导致运行时问题。例如,混淆可能导致第三方库的类和方法无法正常识别,或者破坏依赖关系。因此,在混淆前,开发者需要充分测试...

    删除源程序中的注释

    1. 代码混淆:除了删除注释,还可以通过代码混淆技术改变变量名和函数名,使代码变得难以阅读,同时保留注释以供内部使用。 2. 分离源代码和发布版本:将带有注释的源代码作为开发版本保留,发布时使用已去除注释的...

    Android 混淆配置

    在Android开发过程中,为了保护应用的安全性和优化代码体积,开发者通常会使用ProGuard或R8工具进行代码混淆。本文将详细解析Android混淆配置的相关知识点,包括混淆的目的、配置原理、常用配置指令以及注意事项。 ...

    proguard程序混淆器

    ProGuard是一款强大的Java字节码处理工具,主要功能包括代码混淆、优化、压缩和预校验。它被广泛应用于Android应用开发中,用于保护源代码的安全性和减小程序体积,提高运行效率。在J2ME(Java 2 Micro Edition)...

    java 混淆工具proguard5.3.3

    Java混淆工具ProGuard是Java开发中的一个重要组件,主要用于保护应用程序的源代码,防止逆向工程分析,同时也可优化代码,减小程序体积。在Android开发中,它被广泛应用于APK的发布过程,确保代码安全并提高运行效率...

    proguard界面混淆版

    **注意事项** 1. **保留关键类和方法**:混淆时必须确保关键的类和方法不被混淆,例如那些公开的API接口,否则可能导致应用崩溃。 2. **测试**:混淆后应进行全面的测试,确保应用的功能不受影响。 3. **混淆规则...

    Android studio 混淆配置详解

    在Android开发中,为了保护应用的安全性和...以上是Android Studio中混淆配置的基本介绍和注意事项,正确配置混淆规则对于提升应用安全性和优化APK大小至关重要。在实际开发中,应根据项目特点灵活调整和优化混淆配置。

    Proguard5.2.1资源&使用教程

    ProGuard 是一款非常重要的工具,尤其是在Android开发中,它被广泛用于代码混淆、优化、压缩和预校验。ProGuard 5.2.1是该工具的一个版本,提供了更高效、安全的代码处理能力。混淆器的主要目的是将应用程序的类和...

    java 里 自动生成 dao 工具的代码

    6. **注意事项**:虽然自动DAO生成工具极大地简化了开发流程,但也需要注意一些问题,例如,自动生成的代码可能过于简单,无法满足复杂的业务逻辑,此时需要手动扩展;另外,为了保持代码整洁,应该遵循一定的代码...

    android-sdk目录下tools文件夹下的proguard文件夹

    3. 检查混淆规则,防止关键代码被误混淆。 4. 在发布前,务必进行完整测试,确保混淆后的代码能正常运行。 总结,`android-sdk/tools/proguard`文件夹包含了运行和配置ProGuard所需的所有工具。通过正确使用...

    ProGuard 4.8

    9. **注意事项**: 混淆可能会影响第三方库的功能,因此在混淆前需要确保所有依赖库都兼容混淆。有时,库作者会提供专门的ProGuard配置规则以确保兼容性。 10. **最佳实践**: 在实际项目中,建议定期检查混淆...

    自定义proguard.jar

    - 注意事项:混淆可能导致错误,尤其是当依赖库或第三方组件未正确配置时。因此,混淆前应充分测试,并保留足够的调试信息。 8. **调试ProGuard问题** 使用`-printmapping`选项生成映射文件,以便在出现错误时...

    proguard v5.3 (支持java 8)

    ### 使用ProGuard注意事项 1. **测试混淆后的代码**: 在发布应用之前,务必在测试环境中运行混淆后的代码,确保功能正常。 2. **处理依赖库**: 如果你的项目依赖了第三方库,确保它们也兼容混淆,或者添加相应的...

    sqlSessionFactory方式-多数据源的案例代码

    7. **注意事项** - 配置多个数据源时,要注意事务的一致性,确保在同一个事务中使用的数据源是相同的。 - 动态数据源的切换逻辑应尽可能简单且清晰,避免出现错误。 - 考虑到性能,合理设计读写分离策略,如只读...

    Android可用的RecyclerView各个版本(21.0.0~26.0.0)

    - `proguard.txt`:ProGuard配置文件,用于代码混淆和优化。 - `public.txt`:公开的API列表,帮助开发者了解哪些接口是安全调用的。 - `AndroidManifest.xml`:应用的配置文件,记录了应用的基本信息和权限需求...

    SimpleJava.pdf

    - **注意事项**:区分这两种不同的长度获取方式,避免混淆。 #### 11. Java中的null到底是什么? - **空指针概念**:null代表没有指向任何对象的引用。 - **null的作用**:用于表示对象引用未初始化或被显式设置为...

Global site tag (gtag.js) - Google Analytics