安卓APK瘦身

之前打包的时候直接就用eclipse或者android studio直接生成签名文件,并没有关心大小问题,近期有人问我有没有对APK进行瘦身。对这方面内容一致没有关注过,今天试用了各种方式把项目签名apk降低了1/4大小。这样对用户节省了流量。

1、APK文件分析

APK是Android的安装包。

APK文件事实上是zip格式,可是后缀被改动为apk,我们能够直接解压文件夹例如以下:


分析一下各个内容的作用



查看文件/文件夹大小主要针对assets、classes.dex、lib、res内容进行精简。

2、assets精简

存放在assets下的文件不会生成ID,存放的文件形式能够是多样的比方音频、图片、html相关的等等,精简体积也就是精简这些内容。

(1)音频:主要用在铃声和通知方面,体积不要太大,使用压缩格式的音频

(2)图片:在不降低图片效果、保证APK显示效果的前提下缩小图片文件大小。

a、使用tinypng优化大部分图片资源


tinypng的缺点是在压缩某些带有过渡效果(带alpha值)的图片时,图片会失真。这样的图片能够採用webP格式。保证图片质量前提下大幅降低图片的大小。

b、使用webP图片格式

webP是一种支持有损和无损压缩的网络图片格式,假设在 App 中使用 WebP,除了 Android4.0 以上提供的原生支持外,其他版本号以能够使用官方提供的解析库webp-android-backport编译成so使用。通常UI提供的图片都是png或者jpg格式。我们能够通过智图或者isparta将其他格式的图片转换成webP格式。isparta可实现批量转换。

智图:



(3)Html相关的

html主要涉及js和css这两部内容採用压缩格式降低体积

3、classes.dex

(1)尽量使用系统提供的字符串、ID、图片资源等

(2)优化代码结构,降低冗余代码

(3)使用shape来替换图片。能用代码实现的图片样式都用代码实现

(4)使用Proguard对代码进行混淆、优化和压缩,它有一个专门用来降低apk文件大小的功能叫做 tree-shaking。Proguard 会遍历你的全部代码然后找出无用处的代码。全部这些不可达(或者不须要)的代码都会在生成终于的apk文件之前被清除掉。

Proguard 也会重命名你的类属性,类和接口,然整个代码尽可能地保持轻量级水平。

(5)静态代码分析工具。无需执行,无需測试用例 扫描整个项目,分析以下潜在的问题,分类指出问题描写叙述、问题位置,并提供合理的改动建议

4、res

通过AndroidUnusedResources来检查安卓应用程序中未使用的资源,用法例如以下:

把下载下来的jar放到项目文件夹以下,在控制台中输入:


找到用不到的资源删除掉

5、lib

在手机上一般仅仅要支持armabi就能够了对于x86的不须要,所以引入第三方库的时候把用不到的so删除掉。


參考:

1、Android代码优化——使用Android lint工具

2、android 混淆文件proguard.cfg具体解释

3、怎样给你的Android 安装文件(APK)瘦身

4、给Apk瘦身

5、关于APK瘦身值得分享的一些经验

6、使用到的工具

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值