[问题] AS混淆后class不见

楼主: goodsheng (恩哈哈)   2017-09-13 12:09:42
再出AAR时把混淆开启后,得到的AAR内确有class都不见的状况
想再确认下面几点疑问
1.爬文后知道应该可以从ProGuard设定混淆规则来修改一些类要不要混淆?
2.为什么class会不见,爬文有看到似乎可能是该class内的code关联性不高?被混淆优化掉?
需要麻烦各位前辈帮忙 谢谢。
作者: ssccg (23)   2017-09-13 12:53:00
从要保留的class/method开始找,有被用到的就会加入要保留的,到最后都不需要保留的(=没用的)就删除包library通常是把所有要公开的API设为保留
楼主: goodsheng (恩哈哈)   2017-09-13 15:34:00
但设保留的为什么就没有混淆到呢不太了解。是否设"保留(保护)"就等于"不会混淆"?应该说我最初的用意就是想要混淆,可是得到的结果是class不见..
作者: ssccg (23)   2017-09-13 17:24:00
直接指定keep的会被保留且不会混淆,由proguard找到会被用到但不是直接指定keep的,就会留下来但会被混淆用-dontshrink就会一律保留,但混不混淆还是看keep
楼主: goodsheng (恩哈哈)   2017-09-13 17:28:00
但一开始我没有指定keep时,class却会不见
作者: ssccg (23)   2017-09-13 17:28:00
proguard其实主要是个瘦身工具而不是保护工具没指定keep又没被别的keep的class用到的当然会不见啊留下public member可以写 { public *; }
楼主: goodsheng (恩哈哈)   2017-09-13 17:30:00
聊解!!原来是因为"没被别的keep的class用到"这样
作者: ssccg (23)   2017-09-13 17:30:00
各种用法可以看 https://goo.gl/bpuiMv

Links booklink

Contact Us: admin [ a t ] ucptt.com