大家应该已经看过ioc的知识
在ioc基础中中
视图事件都是通过注解实现的
问题1 如果有某个属性只声明了一下,其他代码没有引用由于混淆时会进行属性优化,将没用的属性去掉,这时需要处理 处理方法:在混淆配置文件中保留属性
问题2 混合代码时方法名都会变成a,b,c等,这样ioc事件可能就找不到方法 如下面的注解 InjectView(id=R.id.listView,itemClick="toEditStudent",itemLongClick="toDeleteStudent") 处理方法 在写代码时要有规范所有方法 所有事件方法都是以 on或to开头 在配置 混淆配置文件 对以on 和to的方法名保留 事件
事件总线OnEvent 注解的方法也需要这样处理 ,不然方法可能被注释掉
附件中有我的混淆配置文件
当然现在还有更好的选择 使用第三方工具进行加密
爱加密的加密功能还是很牛的
http://www.ijiami.cn/treg?regCode=1003705
爱加密最后生成的classe.dex只有2k
我和他们客服聊了下
他说
原本的DEX文件被隐藏了的 现在这里的只是它们做的一个壳 这个基础版做了两部分处理,一是对apk内部每一个文件进行唯一值验证,只要apk内部的任何一个文件被修改 此文件的唯一值必定变化。运行时检测到变化程序将卡死。另一个就是DEX加壳隐藏
有点像帮他们做广告的嫌疑啊
当然你也可以先混淆后在让爱加密的加密