混淆activity名

我们知道一般情况下Activity的子类是不能混淆的,但是呢这句话说的不完全。确切的说应该是在Manifest文件中注册的Activity是不能混淆的。因为Manifest文件中要写一个Activity的class的路径的字符串。如果原始的类被混淆了,而字符串没有修改,那么Android系统在做安全验证的时候就会找不到Activity,那么就没办法通过安全验证。但是设想一下如果我们的继承关系是这个样子的:

MainActivity--->BaseActivity ---->Activity

那么试问,这个BaseActivity是不是可以混淆,经过验证这个是可以混淆的。因为BaseActivity 不需要在Manifest文件中注册,而MainActivity需要。那么我们变通一下。把这个继承链加长

a--->MainActivity--->BaseActivity ---->Activity

这个时候,a 类的实现是这个样子的:

public class a extends MainActivity {
}

其实a里面啥也没有,就是个占位符,这个a并不是混淆生成的,而是我们本来就把这个类命名为a。并且在Manifest文件里面我们就注册这个a类。那么试问这个时候,MainActivity 和 BaseActivity是不是就可以参与混淆。而这个时候我们的所有业务依然在MainActivity里面实现,a仅仅是个看起来像是混淆名字的占位符而已。。。。

其他需要在Manifest中注册的文件同理,比如service或application...

做个记录。原文https://www.jianshu.com/p/3606f006ea7b

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 不参与混淆的类或者组件,只要是为了让应用在执行过程中能准确找到对应的类。像四大组件,我们知道一般情况下Activi...
    顺几阅读 7,468评论 0 2
  • 类加载机制 如下图所示,JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个...
    举头望明月泣阅读 4,863评论 0 0
  • 0、工具介绍 工具介绍这款辅助开发工具还是挺有用的,我看应用宝的下载量有几万了,当前版本号 3.1.0 。这个应用...
    千山万水迷了鹿阅读 11,468评论 7 58
  • 1.什么是Activity?问的不太多,说点有深度的 四大组件之一,一般的,一个用户交互界面对应一个activit...
    JoonyLee阅读 11,015评论 2 51
  • 面试必背 会舍弃、总结概括——根据我这些年面试和看面试题搜集过来的知识点汇总而来 建议根据我的写的面试应对思路中的...
    luoyangzk阅读 11,774评论 6 173