浮躁的过后,也即是技术的积累
1.前言
手持pixel,为了省电,我将谷歌商店都给割掉了,然而手机还是卡,耗电。
深度玩机的小伙伴,肯定知道谷歌版和国内版的app区别,即是这样,国产的互相唤醒也是对于耗电,卡顿最大幕后黑手。
黑域,阻止唤醒,冰箱等App,牛逼哄哄为打压黑手出世。
现在原生系统7.12,已Root+黑域+冻结应用,终于结束了国产互相唤醒时代,手机从此安宁了…
2.正文:
为什么要用这个标题呢,容我慢慢道来
因为自从进入androidstudio(后文称AS)时代后,各种开源库引入简单的不能再简单了,也因为AS自带依赖最新的V7包,即是你创建一个空项目,然后打个包也有1.9M。
实验:
新项目依赖
compile fileTree(dir:'libs',include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
excludegroup:'com.android.support',module:'support-annotations'
})
compile'com.android.support:appcompat-v7:25.3.1'
testCompile'junit:junit:4.12'
compile'com.android.support.constraint:constraint-layout:1.0.2'
compile'com.android.support:design:25.3.1'
实现结果:打包debug包1.9M
你肯定会跟我说没有开启混淆,你没有打release包,但是你得知道少多少?300K?
回到标题:如何开发app能在1M以下,我为什么会纠缠这个问题
因为作为一个android开发程序员(虽然我已经转前端一年了….),在使用冻结应用中有各种不爽, 如冰箱,有时候总是崩溃了,还限制只能冰冻5个….
最近公司也不是很忙,就假装加班在做app,每当PM过来,看到我在用AS,还问我AS还能开发前端?我就一阵汗颜。
前期,真的为了研究原理,像这种工具类app,真心得看你基础了,网路上没有多少资料,能找到也有限。
当然这是并不能拦住一个能够把自己手机真正掌握在手里的人,最后找到了办法冻结应用,后面也花了几天时间写完了。
当然其实我心中有个梗,别人空调狗App395KB,虽然最新App体积是415KB,我想自己应该差不多吧。
最后我开发后的APK体积是1.5M
Fuck!
Fcuk!
我可是混淆和腾讯的AndResGuard都加进去了最后体积是
1.2M
3.探索
急急忙忙拿着AS自带工具去看,别人APP,明明有support包啊,但是一对比,不对啊,为啥他的包里support里方法那么少。
我继续打开混淆规则,因为我知道我的混淆规则基本是对于support包全部都保留了
此刻我沉默了,难道别人的混淆的规则更加细致点
然后我打开酷安,找冻结应用,100KB的应用的都有,当然难免做的不是很好看。
4.结论
写到这里,其实我是知道该怎么做的,能让app在1M以下~但是我做不到,很多人做不到。
写点自己的见解:
1.如果想APK小一点,就不要加入多余的包,为了一个螺丝,把一个玩具车拿进来了。
2.如果想APK在小一点,就把图片加载,网络加载,数据库框架等等自己写,你懂的
3.如果你想apk在小小一点,我想系统的support的包你得找一个体积小一点的版本了,当然不要是最好的,
能这么做的人,对于自己APP也算是真爱了,不然我找不出其他理由,能把一个APP做到100KB,而且是大把,当然我相信做到这些你已经是一个高手了,相信理由也不用说了。
5.结语
听着PM怒吼,急急忙忙关掉AS,打开webstrom继续写我的网页。心中浮现一句话
浮躁的过后,也即是技术的积累