如何在10分钟内让应用大小减少60%?
副标题[/!--empirenews.page--]
一个APP的包之所以大,主要包括一下文件
瘦身就主要瘦这些。 一、打包的時候刪除不用的代码
二、减少不必要的打包
或者
三、lib 尽量不用太复杂的lib,轻量级lib是首选。如果你的应用没用到兼容库,可以考虑去掉support包。 四、资源文件 我们可以通过Lint工具找到没有使用的资源(在Android Studio的“Analyze”菜单中选择“Inspect Code…”) 五、把现有图片转换为webP 我们可以通过 智图 或者isparta将其它格式的图片转换成webP格式,isparta可实现批量转换。 六、图片相关 在Android 5.0及以上的版本可以通过tintcolor实现只提供一张按钮的图片,在程序中实现按钮反选效果,前提是图片的内容一样,只是正反选按钮的颜色不一样。
在Android 5.0及以上的版本,可以使用VectorDrawable和SVG图片来替换原有图片 七、混淆 1 构建多个版本 在gradle中的buildTypes中增加不同的构建类型,使用applicationSuffix和versionNameSuffix可以生成多个版本在同一设备上运行 创建src/[buildType]/res/设置不同的ic_launcher以区别不同版本 2 混淆参数
minifyEnabled true
注:Android Studio 会在使用Instant Run时停用 ProGuard。 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' getDefaultProguardFile(‘proguard-android.txt')方法可从 Android SDKtools/proguard/文件夹获取默认 ProGuard 设置。 提示:要想做进一步的代码压缩,可尝试使用位于同一位置的proguard-android-optimize.txt文件。它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。 proguard-rules.pro文件用于添加自定义 ProGuard 规则。默认情况下,该文件位于模块根目录(build.gradle文件旁)。 要添加更多各构建变体专用的 ProGuard 规则,请在相应的productFlavor代码块中再添加一个proguardFiles属性。例如,以下 Gradle 文件会向flavor2产品风味添加flavor2-rules.pro。现在flavor2使用所有三个 ProGuard 规则,因为还应用了来自release代码块的规则。 每次构建时 ProGuard 都会输出下列文件 dump.txt 说明 APK 中所有类文件的内部结构。mapping.txt:提供原始与混淆过的类、方法和字段名称之间的转换。seeds.txt:列出未进行混淆的类和成员。usage.txt:列出从 APK 移除的代码。这些文件保存在/build/outputs/mapping/release/。 要修正错误并强制 ProGuard 保留特定代码,请在 ProGuard 配置文件中添加一行-keep代码。例如:
您还可以向您想保留的代码添加[@Keep] (https://developer.android.com/reference/android/support/annotation/Keep.html)注解。在类上添加@Keep可原样保留整个类。在方法或字段上添加它可完整保留方法/字段(及其名称)以及类名称。请注意,只有在使用注解支持库时,才能使用此注解。 在使用-keep选项时,有许多事项需要考虑;如需了解有关自定义配置文件的详细信息,请阅读ProGuard 手册。问题排查一章概述了您可能会在混淆代码时遇到的其他常见问题。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |