内推

【长期有效】欢迎加入字节跳动我的团队:内推链接

随着应用的长久迭代,各种功能模块的加入,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瘦身/减小包体相关推荐

  1. Android Apk瘦身指南大全

    Android Apk瘦身指南大全 前言 为什么Android应用Apk要瘦身?虽然安装包大小对应用使用没有影响,但应用的安装包越大,用户下载的门槛越高,安装等待时间也会越长,特别是在移动网络情况下, ...

  2. Android APK 瘦身

    Android APK 瘦身的几个方法 将项目中的图片由png.jpg转为webp格式.如下操作: 1.1选中图片或者含有图片的文件夹 右键选择Convert toWebP.. 1.2根据自身情况选择 ...

  3. Android apk瘦身之使用TinyPng压缩图片

    1 前言 Android apk太大了怎么办,有的时候需要减小apk的体积,例如上传到服务器的时候有文件大小的限制.百度一下,发现大致有以下几种方法: 使用混淆,减少代码体积 删除不使用的资源 减少使 ...

  4. Android APK 瘦身 - JOOX Music项目实战

    JOOX Music是腾讯海外布局的一个音乐产品,2014年发布以来已经成为5个国家和地区排名第一的音乐App.东南亚是JOOX Music的主要发行地区,由于JOOX Music所面对的市场存在很多 ...

  5. Android apk瘦身讲解

    apk瘦身 想办法较减少apk大小 必要性 同样功能,apk越小越好,用户下载动机更大 了解apk的组成 classes.dex:是java源码编译后生成的java字节码文件 resources.ar ...

  6. android APK瘦身全面总结——如何从32.6M到13.6M

    前言 之前我简单介绍了关于svg图片瘦身的问题,在公司,瘦身这个问题是我提出来的,所以这锅我背了.公司项目是32.6M,我给自己的要求就是低于20M.上周花了一个星期瘦身,至于为什么花了一周,主要是s ...

  7. android apk瘦身方法

    参考文档:天之界线2010   http://www.jianshu.com/p/8f14679809b3 我们在新的android studio2.2中可以看到可以对apk 进行分析了: 我们从中可 ...

  8. Android Apk瘦身方案1——R.java文件常量内联

    R.java 文件结构 R.java 是自动生成的,它包含了应用内所有资源的名称到数值的映射关系.先创建一个最简单的工程,看看 R.java 文件的内容: R文件生成的目录为app/build/gen ...

  9. Android apk瘦身

    项目打包apk到达50M(加入高德地图和视频播放的SDK),之前打包才20M多.如何减少apk的大小: Android studio有个分析apk的功能,可以查看apk的结构 选择apk文件 可以看到 ...

最新文章

  1. strom.yaml配置
  2. 性能测试总结(一)---基础理论篇
  3. python IO多路复用源码
  4. C++ socket编程
  5. 2. TypeScript笔记
  6. mysql any运算符_MySQL 运算符
  7. 快速手动替换 Windows 7 系统字体
  8. java socket发送定长报文_一个基于TCP协议的Socket通信实例
  9. python 压缩文件
  10. MySQL的安装和基本操作
  11. Eslint常用命令
  12. matlab:图像的余弦变换(DCT)
  13. 微信投票小程序怎么弄(微信活动投票小程序制作方法)
  14. Frameworks Detected: Web framework is detected
  15. C++11新特性,推荐使用emplace_back()替换push_back()的原因
  16. 论文阅读:Seg4Reg+: Consistency Learning Between Spine Segmentation and Cobb Angle Regression
  17. Bluetooth core 5.0 ---------- BR/EDR 安全简单配对(BR/EDR secure simple pairing)
  18. 关于页面失去焦点时定时器乱序问题
  19. 区块链开源实现hyperledger fabric架构详解
  20. 乱杀HTML知识点(小白版本)

热门文章

  1. C语言:逆序输出数组元素
  2. FPGA知识汇集-时钟系统的移植
  3. 【诸葛学堂】《考书大课-统编版必读常考名著名师精讲直播课》
  4. MRI影像学习笔记(三)
  5. gluLookAt 函数
  6. vue项目实战-4.前端渲染.微信小程序
  7. java的System.exit(0)的作用以及和System.exit(1)区别。
  8. 不属于你的工作,你该不该做?
  9. PC_接百度智能云 -语音识别
  10. PAT 乙级 1032 挖掘机技术哪家强 (20分)