【Android】性能优化之内存、网络、布局、卡顿、安装包、启动速度优化-安装包优化

时间:2024-02-23 16:57:18

资源优化

1、按需添加第三方库,避免引入重复库。

2、 png转svg,再使用svg转成vector格式。

3、 删除多余的so库。

删除多余的so库,执行这一操作的前提是:程序所运行的系统 CPU 架构固定是 Android CPU 架构中的某一个。例如:部分第三方提供的 so 库是包含了 armeabiarmeabi-v71arm64-v8ax86 等库文件,如果你的程序只运行在 armeabi CPU 架构上,则可以把其它的 so 库文件删除。

4、 删除多余的 mipmap 文件夹。

一般图标资源使用 mipmap-xhdpi 足够用了,更大的屏幕则使用 mipmap-xxhdpimipmap-xxxhdpi 的分辨率,已经使用 mipmap-xhdpi 或其它更大分辨率的程序,应删除比它小的分辨率文件。

5、 删除未使用到的资源文件。

可通过 Android Studio 菜单栏的 RefactorRemove Unused Resources 功能一键移除未被使用的 drawablemipmaplayout 以及 colors.xmlstrings.xml 文件里面的 colorstring

6、动态加载.so文件。

.so 文件可以在用户安装应用到手机后再从服务器上下载到手机的 data 目录下,加载的时候使用绝对路径在 static 关键字里加载。

static {
	System.loadLibrary("so文件")
}
  • 1
  • 2
  • 3

参考文章
1、Android 应用资源概述

7、使用插件化。

插件化技术支持动态加载代码和动态加载资源,把 Application 的一部分分离出来,对于业务庞大的项目非常有用,极大的分解了 Application 的大小。但又因为插件化需要一定的技术保障和服务端的系统支持,有一定的风险,建议酌情选择。

代码混淆

代码混淆(Obfuscation)是将计算机程序的源代码或机器代码,转换成功能上等价,但是难于阅读和理解的形式的行为。简单来说,就是简化函数名、变量、常量名称,通过减少字符数以达到减小安装包大小的方式。

启用混淆只需要打开 Android 项目,在 Application Model 下中找到 build.gradle,在该文件添加如下配置即可开启混淆:

android {
        // 打包 release 包时执行
        release {
        	// 启用混淆,默认使用 R8 编译器
            minifyEnabled true
            // 资源压缩
            shrinkResources true
            // 定义 自定义混淆规则的文件
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

上面混淆的方式仅适用于代码简单、封装少的项目。项目复杂还请自定义混淆规则,详情请查看往期文章????【Android】App攻防之代码混淆