做Android混淆时的感想

2017-06-23 14-14-18屏幕截图.png
  • 例如这样的情况编写的sdk,刚开始一个团队的人,吭哧吭哧地写,由于组长并没有预见之后可能要混淆的麻烦,或者说没有坚持编程思想里面 “高内聚,低耦合” 的原则,结果包分得很多,很杂,关键是无法快速有效区分包下对内和对外的模块,类。包与包,类与类之间充满着耦合。

针对上述问题,可以借鉴一下比较成熟的三方扩展包的分包方式,在编码初期就预见之后可能需要混淆等操作,还是可以按功能模块分包,只是在包内添加 internal 的子包,例如facebook sdk里的分包策略:


2017-06-23 14-25-40屏幕截图.png

感想:尽量只暴露一些操作类,把内部逻辑和细节隐藏到 internal 里,模块之间尽量做到低耦合,各模块内数据库操作最好放单独db包,ORM通过反射来映射所以混淆时会报找不到字段,混淆时要排除掉db包。另外java里面提供的 protected,private等关键字运用得贴切,不要一个劲的public。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,734评论 25 709
  • 原文出处:http://www.apkbus.com/blog-875309-62984.html 前言架构设计,...
    zzj丶阅读 5,498评论 1 24
  • 什么是代码混淆 代码混淆就是将代码中的各种元素,如变量,方法,类和包的名字改写成无意义的名字,增加项目反编译后被读...
    蜗牛家族史阅读 10,597评论 1 4
  • “活到老,学到老。”这个道理从不过时。 可是在我们的心里,总是有种惰性在牵绊着我们,认为在职场上有人可以依赖,不用...
    看书的猫阅读 2,790评论 0 2
  • 文/晴天过后上一章 目录 远处不时还有厮杀声传来,那是其它的战场还在激战中,轩辕二老似乎受不了这压抑的...
    晴天过后阅读 3,414评论 11 21