Android APK瘦身/减小包体
内推
【长期有效】欢迎加入字节跳动我的团队:内推链接
随着应用的长久迭代,各种功能模块的加入,APK包体越来越大,减小包体是必要的。
所以,从最简单的来。
1.删除无用资源
应用迭代就了,功能增删,总会有无用资源残留,所以,定期删除无用资源是必要的。(尤其是图片那些)
使用Lint扫描无用资源。(一个Android优化工具,可百度或官方文档:https://developer.android.com/studio/write/lint.html)
Android Studio下,检索无用资源可使用以下方式:
在Android Studio中打开“Analyze” 然后选择"Inspect Code…",范围为Whole project(整个项目),然后点击"OK"。
其他如Eclipse的使用,或者命令行的使用,可自行百度。
这里说一点注意:Lint扫描下,不一定是全部准确的。如果你的项目使用了Context.getResources().getIdentifier(imageName, "drawable", sContext.getPackageName());
这种通过文件名的方式去拿项目下的资源,Lint会判别为资源未使用,别误删了。
当然,getIdentifier这个方法本身是不建议使用的,因为这个方法去获取资源id效率很低,直接以R.drawable.xxx的方式指定资源id当然是最好的。注意到以上一些问题,建议使用Lint扫描后手动删除,不确定的情况下,可以全局搜索文件名的方式检索资源有没有被使用再删除。
2.图片优化
图片一直是APK“纳税”第一大户,所以对图片的优化也显得尤为重要。
首先,可以上TinyPNG(https://tinypng.com/)这个网站对应用使用的一些图片进行压缩(png或jpeg),这个压出来后质量损失很小,压缩比也比较可观。
3.ProGuard优化
使用ProGuard打混淆,能启到优化作用。但要注意配置。这点大部分商业化项目一般都会做吧,详细可见百度。
4.去除无用的库
现在Android应用普遍可以提升到Android 4.0以上,API 14以下的support库可以删除。
5.更强大的压缩
可以参见微信团队的压缩方案 AndResGuard(https://github.com/shwenzhang/AndResGuard),这个开源项目会对资源文件混淆,别且用7z代替原来默认的zip压缩,压缩比很高,不过要注意配置。详见官方。
Android APK瘦身/减小包体相关推荐
- Android Apk瘦身指南大全
Android Apk瘦身指南大全 前言 为什么Android应用Apk要瘦身?虽然安装包大小对应用使用没有影响,但应用的安装包越大,用户下载的门槛越高,安装等待时间也会越长,特别是在移动网络情况下, ...
- Android APK 瘦身
Android APK 瘦身的几个方法 将项目中的图片由png.jpg转为webp格式.如下操作: 1.1选中图片或者含有图片的文件夹 右键选择Convert toWebP.. 1.2根据自身情况选择 ...
- Android apk瘦身之使用TinyPng压缩图片
1 前言 Android apk太大了怎么办,有的时候需要减小apk的体积,例如上传到服务器的时候有文件大小的限制.百度一下,发现大致有以下几种方法: 使用混淆,减少代码体积 删除不使用的资源 减少使 ...
- Android APK 瘦身 - JOOX Music项目实战
JOOX Music是腾讯海外布局的一个音乐产品,2014年发布以来已经成为5个国家和地区排名第一的音乐App.东南亚是JOOX Music的主要发行地区,由于JOOX Music所面对的市场存在很多 ...
- Android apk瘦身讲解
apk瘦身 想办法较减少apk大小 必要性 同样功能,apk越小越好,用户下载动机更大 了解apk的组成 classes.dex:是java源码编译后生成的java字节码文件 resources.ar ...
- android APK瘦身全面总结——如何从32.6M到13.6M
前言 之前我简单介绍了关于svg图片瘦身的问题,在公司,瘦身这个问题是我提出来的,所以这锅我背了.公司项目是32.6M,我给自己的要求就是低于20M.上周花了一个星期瘦身,至于为什么花了一周,主要是s ...
- android apk瘦身方法
参考文档:天之界线2010 http://www.jianshu.com/p/8f14679809b3 我们在新的android studio2.2中可以看到可以对apk 进行分析了: 我们从中可 ...
- Android Apk瘦身方案1——R.java文件常量内联
R.java 文件结构 R.java 是自动生成的,它包含了应用内所有资源的名称到数值的映射关系.先创建一个最简单的工程,看看 R.java 文件的内容: R文件生成的目录为app/build/gen ...
- Android apk瘦身
项目打包apk到达50M(加入高德地图和视频播放的SDK),之前打包才20M多.如何减少apk的大小: Android studio有个分析apk的功能,可以查看apk的结构 选择apk文件 可以看到 ...
最新文章
- strom.yaml配置
- 性能测试总结(一)---基础理论篇
- python IO多路复用源码
- C++ socket编程
- 2. TypeScript笔记
- mysql any运算符_MySQL 运算符
- 快速手动替换 Windows 7 系统字体
- java socket发送定长报文_一个基于TCP协议的Socket通信实例
- python 压缩文件
- MySQL的安装和基本操作
- Eslint常用命令
- matlab:图像的余弦变换(DCT)
- 微信投票小程序怎么弄(微信活动投票小程序制作方法)
- Frameworks Detected: Web framework is detected
- C++11新特性,推荐使用emplace_back()替换push_back()的原因
- 论文阅读:Seg4Reg+: Consistency Learning Between Spine Segmentation and Cobb Angle Regression
- Bluetooth core 5.0 ---------- BR/EDR 安全简单配对(BR/EDR secure simple pairing)
- 关于页面失去焦点时定时器乱序问题
- 区块链开源实现hyperledger fabric架构详解
- 乱杀HTML知识点(小白版本)