概述
为什么APK要瘦身。APK越大,在下载安装过程中,他们耗费的流量会越多,安装等待时间也会越长;对于产品本身,意味着下载转化率会越低(因为竞品中,用户有更多机会选择那个体验最好,功能最多,性能最好,包最小的),所以apk的瘦身优化也很重要,本篇博客将讲述apk瘦身的相关内容。
包体分析
在Android Studio工具栏里,打开build–>Analyze APK, 选择要分析的APK包 。
20170210105239708
可以看到占用空间的主要是代码、图片、资源和lib和assert文件,主要方向精简代码、压缩图片、去除无用的库、减少asserts里面文件。
使用一套资源
对于绝大对数APP来说,只需要取一套设计图就足够了。鉴于现在分辨率的趋势,建议取720p的资源,放到xhdpi目录。
相对于多套资源,只使用720P的一套资源,在视觉上差别不大,很多大公司的产品也是如此,但却能显著的减少资源占用大小,顺便也能减轻设计师的出图工作量了。
开启minifyEnabled混淆代码
在gradle使用minifyEnabled进行Proguard混淆的配置,可大大减小APP大小:
android {
buildTypes {
release {
minifyEnabled true
}
}
}
在proguard中,是否保留符号表对APP的大小是有显著的影响的,可酌情不保留,但是建议尽量保留用于调试。
参数说明:
-include {filename} 从给定的文件中读取配置参数
-basedirectory {directoryname} 指定基础目录为以后相对的档案名称
-injars {class_path} 指定要处理的应用程序jar,war,ear和目录
-outjars {class_path} 指定处理完后要输出的jar,war,ear和目录的名称
-libraryjars {classpath} 指定要处理的应用程序jar,war,ear和目录所需要的程序库文件
-dontskipnonpubliclibraryclasses 指定不去忽略非公共的库类。
-dontskipnonpubliclibraryclassmembers 指定不去忽略包可见的库类的成员。
保留选项
-keep {Modifier} {class_specification} 保护指定的类文件和类的成员
-keepclassmembers {modifier} {class_specification} 保护指定类的成员,如果此类受到保护他们会保护的更好
-keepclasseswithmembers {class_specification} 保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在。
-keepnames {class_specification} 保护指定的类和类的成员的名称(如果他们不会压缩步骤中删除)
-keepclassmembernames {class_specification} 保护指定的类的成员的名称(如果他们不会压缩步骤中删除)
-keepclasseswithmembernames {class_specification} 保护指定的类和类的成员的名称,如果所有指定的类成员出席(在压缩步骤之后)
-printseeds {filename} 列出类和类的成员-keep选项的清单,标准输出到给定的文件
阅读全文直接点击:
http://click.aliyun.com/m/10245/
分享到:
相关推荐
Matrix ApkChecker 是一个强大的Android APK分析和优化工具,它能够帮助开发者检查APK安装包中可能存在的问题,以实现APK的瘦身和性能优化。该工具通过一系列预设的规则进行检测,并生成详细的报告,便于分析和解决...
《藏经阁-从加固讲APK瘦身》是关于如何优化Android应用程序,特别是APK文件大小的专业讲座。本文主要从加固、混淆、反混淆等方面探讨了如何有效地减小APK的体积,提升用户体验。 首先,APK瘦身的重要性在于解决体积...
本文将深入探讨如何从加固、瘦身等多个角度优化APK,以实现更高效、更安全的应用程序。 首先,我们需要理解APK文件的结构。APK本质上是一个ZIP格式的压缩包,包含代码(dex文件)、资源(resources.arsc)、图片和...
本文将详细讲解Apk瘦身的各种策略,从理解Apk的包结构开始,探讨如何进行有效的优化。 首先,了解Apk的包结构是优化的第一步。Apk主要包含以下几个部分: 1. **lib/** 目录:存放针对不同CPU架构的.so库文件,通常...
Redex是一款由Facebook开发并开源的Android应用优化框架,它通过对APK中的DEX(Dalvik字节码)文件进行一系列的优化操作,如代码混淆、资源压缩、删除无用代码等,来实现对APK的瘦身。这些优化步骤包括但不限于: -...
7. **资源优化**:压缩图片,使用WebP格式,对XML布局进行瘦身,减少APK大小。使用ProGuard或R8进行代码混淆,提高APK的安全性。 8. **响应式编程**:了解并使用RxJava或 LiveData、Room等库,实现响应式编程,可以...
【代码混淆的理解】 代码混淆是一种安全措施,...通过以上步骤,开发者可以有效地优化Apk的大小,提高应用的下载速度,提升用户体验。在追求性能优化的同时,Apk瘦身同样不容忽视,它是提高应用竞争力的关键环节之一。
10. **Android性能优化**:介绍内存管理、CPU优化、启动速度提升、APK瘦身等实践策略,以及使用Android Profiler进行性能分析。 11. **发布与分发**:讲解如何签名APK,通过Google Play Store或其他分发渠道发布...
六、APK瘦身 减小APK的大小有助于提高下载速度和安装成功率。书中可能涵盖如何减少资源冗余,压缩图片,使用ProGuard或R8进行代码混淆和优化,以及使用动态加载技术来分发应用的非核心部分。 七、测试与调试 有效的...
10-1 瘦身优化及Apk分析方案介绍瘦身优势最主要是转换率:下载转换率渠道合作商要求代码相关:classes.dex资源相关:res、asserts、reso
6. **性能优化**:《Android开发艺术探索》很可能包含性能优化技巧,如内存管理、CPU性能分析、电量优化、APK瘦身等。 7. **第三方库集成**:书籍可能会介绍如何集成和使用如Glide、ButterKnife、Dagger、RxJava、...
APK的瘦身已经是不得不考虑的事情。在尝试瘦身的过程中,我们借鉴了很多业界其他公司提供的方案,同时也针对自身特点,发现了一些新的技巧。本文将对其中的一些做详细介绍。在开始讲瘦身技巧之前,先来讲一下APK的...
9. **APK瘦身**:去除未使用的资源和库,使用ProGuard或R8进行代码混淆,缩小APK体积。 10. **测试与调试**:使用各种性能测试工具(如Systrace、Traceview)进行性能分析,使用Monkey测试、 Espresso UI测试确保...
此外,还有关于代码性能优化、APK瘦身、启动速度优化等方面的技巧,帮助开发者打造高性能的应用。 总而言之,《Android群英传》作为一本全面的Android开发指南,不仅提供了丰富的理论知识,还包含了大量的实例和...
"thinApkFile"是一个开源的Gradle插件,专门用于去除APK中的无用文件,从而实现APK的瘦身。这个插件利用先进的分析技术,识别并移除那些在运行时不必要的资源和库,有助于提高应用的分发效率。 首先,了解...
9. **Android性能优化**:源码中可能包含了一些性能优化的实践,如内存泄漏检测、代码优化、APK瘦身等。 10. **最新技术趋势**:如果源码较新,可能会涉及Android Jetpack组件库的使用,如Room、LiveData、...
15. **性能优化**:包括内存优化、渲染性能优化、APK瘦身等,确保应用运行流畅且资源占用合理。 除了上述基础内容,高级主题可能涵盖: 1. **Android NDK**:使用C/C++进行原生开发,处理高性能计算或游戏引擎。 2...
15. **性能优化**:涵盖内存管理、CPU优化、布局优化和APK瘦身等技巧,提高应用的运行效率和用户体验。 这份教程通过详实的例子和清晰的解释,帮助开发者全面了解Android开发的各个环节,无论是初学者还是有一定...
7. **性能优化**:包括UI流畅性、电量优化、APK瘦身、代码性能分析工具(如Systrace、Profile)的使用等。 8. **权限管理**:Android 6.0以后的运行时权限申请,以及权限分组和权限策略的掌握。 9. **组件通信**:...
12. **Android性能优化**:内存管理、GPU过度绘制检测、电量优化、APK瘦身等都是Android性能优化的重要方面。了解并实践这些技巧,可以使应用运行更加流畅,提升用户体验。 "Android-code.zip_android"可能包含了...