Android开发中apk打包优化的几个关键步骤

实际项目开发过程到当中随着开发周期的延伸和版本迭代,会产生很多冗余的代码和资源文件,这就直接导致apk的体积变大,下面就针对实际开发过程中apk体积的优化总结如下几个关键步骤:

1、通过SVG矢量图来解决套图的问题:

         SVG矢量图很适合做一些简单的小图标的适配,在切图的时候只需要给定一套就可以,无需每个分辨率下给定一个套图

         SVG的使用临界版本是Android5.0,需要对5.0以下和5.0以上的版本做兼容

          5.0以下的版本兼容方式:

          在app的build.gradle文件的defaultConfig标签下添加

          vectorDrawables.generatedDensities(‘xhdpi’,’xxhdpi’,’xxxhdpi’)

          5.0以上的兼容方式:

           在app的build.gradle文件的defaultConfig标签下添加

           vectorDrawables.useSupportLibary = true

            implementation ‘com.android.support:appcompat-v7:28.0.0’

           在我们xml布局中的使用SVG的方式:

            app:srcCompat=”@drawable/xxx”

     2 、将ui妹纸给定的SVG转换成我们Android中使用的根节点标签“<vector>”

            第一种方式 AndroidStudio中是右键res目录  new vector Asset,然后选择local file在“path”中选择本地的svg图片路径

            点击next即可,这种方式每次只能转换一张svg

            第二种方式通过:svg2vector-cli-1.0.0.jar 在cmd窗口输入命令完成批量转换

            Java -jar svg2vector-cli-1.0.0.jar -d . -o a -h 20 -w 20

            -d   指定SVG文件所在的目录

            -f   指定当个svg文件

            -h   设置转换后的svg的高

            -w   设置转换后svg的宽

             -o   输出android vector图像目录

二、通过tint着色器来解决同一张图片不同颜色的问题

          android:tint="@color/xxx" 通过这种方式可以给seclect类型的xml中的图片动态设置颜色值,不用ui提供两张不同状态的图片

三.通过webp的格式来压缩图片

        Webp是google在api18 以后出的一个图片格式,

        他既能达到png的无损压缩又能达到jpeg的有损压缩

        压缩后的质量损失可以互虐不计,但是体积会缩小很多;

        使用方式是右键图片选择convert webp

四  资源压缩 (没有keep,所有未用资源一律压缩,不用物理删除)

        在build.gradle 文件中设置   shrinkResources true

        在raw资源下创建keep.xml文件

五  代码混淆

        在build.gradle 文件中设置 minifyEnabled  true

 六 so库配置

        在build.gradle 文件中设置

        Sourcesets{

         Main{

            jniLibs.srcDirs=[‘libs’]

         }

       }

      配置SO库,cpu架构(真机 arm, 模拟器:x86)将指定架构so库打包到apk内

      ndk {

          abiFilters(‘armebi’,’armebi-v7’)

       }

 七  String,xml资源配置

        由于第三方库,如appcompat-v7的引入,库中包含了大量的国际化资源,根据情况通过配置删除

        只保留默认和制定的资源

        在build.gradle 文件中设置 defaultConfig { resConfigs('zh-rCN', 'ko') }标识只保留中文和默认资源

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值