博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android apk瘦身
阅读量:2259 次
发布时间:2019-05-09

本文共 691 字,大约阅读时间需要 2 分钟。

如果开发出来的apk体积太大,影响用户体验,也会影响上架应用市场,特别对大型的应用更重要。

apk瘦身的大致思路就两点:减少代码量和资源

减少代码量:

1 build.gradle中开启MinifEnabled,Proguard。打开这些编译属性之后,程序在打包的时候就不会把没有引用到的代码编译进来,以此达到减少安装包大小的目的。

2 尽量使用针对移动app的jar和类, 使用其他jar包,这些类库不仅仅额外增加了包的大小,还增加了编译时间。单纯依靠Proguard可能无法完全移除那些使用不到的方法,最佳的方式是使用一些更加轻量化,专门为Android APP设计的jar类库。

3 写完代码,使用Lint工具,删除没用的引用和方法

减少资源:

1 在build.gradle文件中开启了shrinkResources的属性,这两个属性可以帮助移除那些在程序中使用不到的代码与资源,帮助减少APP的安装包大小。

2  尽量复用已经存在的资源图片,使用代码的方式对已有的资源进行复用,图片的旋转和变形代替重复使用

3 在符合条件的情况下,使用Vertor Drawable替代传统的PNG/JPEG图片,能够极大的减少图片资源的大小。传统模式下,针对不同dpi的手机都需要提供一套PNG/JPEG的图片,而如果使用Vector Drawable的话,只需要一个XML文件即可。注意:不适合纹理复杂,路径清晰。关于图片的优化,比如使用webp的格式、tint color进行着色和尽量多使用矢量图等,结合项目组技术储备选择。不过有一点可以很快做到,删除不需要的图片资源,很好的习惯。

转载地址:http://dofcb.baihongyu.com/

你可能感兴趣的文章
处理多个Python版本和PIP?
查看>>
反转Java中的字符串
查看>>
如何将java.util.Date转换为java.sql.Date?
查看>>
如何在Markdown中链接到同一文档的一部分?
查看>>
如何将C#nullable int转换为int
查看>>
如何有条件地向React组件添加属性?
查看>>
如何使用LocalBroadcastManager?
查看>>
“ static”关键字在课程中做什么?
查看>>
为什么链接库的顺序有时会导致GCC错误?
查看>>
Java Hashmap:如何从价值中获取关键?
查看>>
有没有简单优雅的方法来定义单例? [重复]
查看>>
使用带有用户名和密码的cURL?
查看>>
Machine.Config在哪里?
查看>>
ElasticSearch,Sphinx,Lucene,Solr,Xapian。哪种适合哪种用途? [关闭]
查看>>
滚动时背景ListView变为黑色
查看>>
favicon.png vs favicon.ico - 我为什么要使用PNG而不是ICO?
查看>>
如何为同一字体添加多个字体文件?
查看>>
WCF服务的REST / SOAP端点
查看>>
将来自另一个分支的所有更改合并为单个提交
查看>>
LF将由git中的CRLF替换-那是什么,它很重要吗? [重复]
查看>>