Android:APK体积优化

1.图片优化

我们在开发过程中选用图片资源的顺序

  1. shape,能通过代码画出的图形就不用图片
  2. 矢量图svg,可随意伸缩和设置颜色,适合一些色彩较为单一的小图标,可以将svg转为vector直接放到drawable直接使用或打包成字体库即.ttf文件放到asset路径下使用。
  3. webp,google出的图片格式,体积与png相比小很多,显示效果几乎无差别,在Androidstudio中可以选中图片右键convert to webp(也有批量转化方式可自行百度)。
  4. png,webp不支持4.0以下系统,但我们还是能对png图片进行压缩,如tinypng,有Androidstudio插件可以批量压缩。

除此之外还有一些图片使用的技巧

  • 使用tint,比如一张图片有选中和未选中两种状态但只是颜色不同,则可放一张图片通或tint来动态改变图片的颜色。
2.资源压缩
  • 开启代码混淆和去除无用资源
  buildTypes {
        release {
            minifyEnabled true   //代码混淆
            shrinkResources true  //去除无用资源,开启后没有引用到的资源将不会打到apk中
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
  • 资源混淆
    AndResGuard,是腾讯出品,集成及使用官网
  • 语言资源优化
    在build文件中配置
  • 资源zip压缩
    比如asset路径下的大资源文件可放入zip压缩后的,在使用时在解压到手机本地后调用
defaultConfig {
        ......
        resConfigs('zh-rCN')
    }
3.代码优化

多人开发的项目中,难免会出现冗余代码

  • 对项目不熟悉,出现相同代码的拷贝
  • 功能或逻辑一样的代码,语义上的拷贝
  • 能够通过设计,进行向上抽取封装的类或方法

检测工具
PMD下载地址

4.Lint检测

在androidStudio面板逐步选择即可在这里插入图片描述

5.其他优化
  • 重复的string,color优化

  • 减少使用Enum的使用,每减少一个ENUM文件可以减少1kb左右的大小,采用常量定义

  • 优化引用的库
    1.去除不在使用的库
    2.优化过时的库
    3.提取仅仅使用的代码
    4.选用更小的库

  • 音频资源压缩
    采用音频压缩工具,压缩音频,降低音频采用率,通道数等在不明显影响的前提下压缩音频

  • build文件指定abi

defaultConfig {
        //配置so库框架(arm:真机)
        ndk {
            abiFilters('armeabi-v7a') //release版只支持真机架构即可
            //abiFilters('armeabi-v7a', 'x86') //x86模拟器架构
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值