`

【Android优化系列】apk瘦身

阅读更多
概述
为什么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/
分享到:
评论

相关推荐

    APK瘦身优化检测工具-Matrix ApkChecker 使用(csdn)————程序.pdf

    Matrix ApkChecker 是一个强大的Android APK分析和优化工具,它能够帮助开发者检查APK安装包中可能存在的问题,以实现APK的瘦身和性能优化。该工具通过一系列预设的规则进行检测,并生成详细的报告,便于分析和解决...

    藏经阁-从加固讲APK瘦身-16.pdf

    《藏经阁-从加固讲APK瘦身》是关于如何优化Android应用程序,特别是APK文件大小的专业讲座。本文主要从加固、混淆、反混淆等方面探讨了如何有效地减小APK的体积,提升用户体验。 首先,APK瘦身的重要性在于解决体积...

    从加固讲APK瘦身.pdf

    本文将深入探讨如何从加固、瘦身等多个角度优化APK,以实现更高效、更安全的应用程序。 首先,我们需要理解APK文件的结构。APK本质上是一个ZIP格式的压缩包,包含代码(dex文件)、资源(resources.arsc)、图片和...

    Apk 全面瘦身详解

    本文将详细讲解Apk瘦身的各种策略,从理解Apk的包结构开始,探讨如何进行有效的优化。 首先,了解Apk的包结构是优化的第一步。Apk主要包含以下几个部分: 1. **lib/** 目录:存放针对不同CPU架构的.so库文件,通常...

    Facebook 出品的 apk 包优化工具 redex.zip

    Redex是一款由Facebook开发并开源的Android应用优化框架,它通过对APK中的DEX(Dalvik字节码)文件进行一系列的优化操作,如代码混淆、资源压缩、删除无用代码等,来实现对APK的瘦身。这些优化步骤包括但不限于: -...

    android应用性能优化最佳实践读书笔记

    7. **资源优化**:压缩图片,使用WebP格式,对XML布局进行瘦身,减少APK大小。使用ProGuard或R8进行代码混淆,提高APK的安全性。 8. **响应式编程**:了解并使用RxJava或 LiveData、Room等库,实现响应式编程,可以...

    王栋栋_周报_AndroidAPK相关总结_20190809.doc

    【代码混淆的理解】 代码混淆是一种安全措施,...通过以上步骤,开发者可以有效地优化Apk的大小,提高应用的下载速度,提升用户体验。在追求性能优化的同时,Apk瘦身同样不容忽视,它是提高应用竞争力的关键环节之一。

    AndroidStudio实战快速高效地构建Android应用 AndroidStudio 高清完整带目录书签 PDF AndroidStudio实战

    10. **Android性能优化**:介绍内存管理、CPU优化、启动速度提升、APK瘦身等实践策略,以及使用Android Profiler进行性能分析。 11. **发布与分发**:讲解如何签名APK,通过Google Play Store或其他分发渠道发布...

    Android应用性能优化_人民邮电出版社

    六、APK瘦身 减小APK的大小有助于提高下载速度和安装成功率。书中可能涵盖如何减少资源冗余,压缩图片,使用ProGuard或R8进行代码混淆和优化,以及使用动态加载技术来分发应用的非核心部分。 七、测试与调试 有效的...

    liuhuiAndroid#android-performance#10.App瘦身优化1

    10-1 瘦身优化及Apk分析方案介绍瘦身优势最主要是转换率:下载转换率渠道合作商要求代码相关:classes.dex资源相关:res、asserts、reso

    Android群英传+Android群英传:神兵利器+Android开发艺术探索

    6. **性能优化**:《Android开发艺术探索》很可能包含性能优化技巧,如内存管理、CPU性能分析、电量优化、APK瘦身等。 7. **第三方库集成**:书籍可能会介绍如何集成和使用如Glide、ButterKnife、Dagger、RxJava、...

    AndroidApp包瘦身优化实践

    APK的瘦身已经是不得不考虑的事情。在尝试瘦身的过程中,我们借鉴了很多业界其他公司提供的方案,同时也针对自身特点,发现了一些新的技巧。本文将对其中的一些做详细介绍。在开始讲瘦身技巧之前,先来讲一下APK的...

    android应用性能优化.rar

    9. **APK瘦身**:去除未使用的资源和库,使用ProGuard或R8进行代码混淆,缩小APK体积。 10. **测试与调试**:使用各种性能测试工具(如Systrace、Traceview)进行性能分析,使用Monkey测试、 Espresso UI测试确保...

    Android群英传完整版带目录.pdf

    此外,还有关于代码性能优化、APK瘦身、启动速度优化等方面的技巧,帮助开发者打造高性能的应用。 总而言之,《Android群英传》作为一本全面的Android开发指南,不仅提供了丰富的理论知识,还包含了大量的实例和...

    thinApkFile,去除apk中无用文件以减小apk大小的gradle插件.zip

    "thinApkFile"是一个开源的Gradle插件,专门用于去除APK中的无用文件,从而实现APK的瘦身。这个插件利用先进的分析技术,识别并移除那些在运行时不必要的资源和库,有助于提高应用的分发效率。 首先,了解...

    Android 郝玉龙 光盘源码

    9. **Android性能优化**:源码中可能包含了一些性能优化的实践,如内存泄漏检测、代码优化、APK瘦身等。 10. **最新技术趋势**:如果源码较新,可能会涉及Android Jetpack组件库的使用,如Room、LiveData、...

    Android+移动开发一本就够

    15. **性能优化**:包括内存优化、渲染性能优化、APK瘦身等,确保应用运行流畅且资源占用合理。 除了上述基础内容,高级主题可能涵盖: 1. **Android NDK**:使用C/C++进行原生开发,处理高性能计算或游戏引擎。 2...

    《宅男的android开发指南》(翻译)--10完整版

    15. **性能优化**:涵盖内存管理、CPU优化、布局优化和APK瘦身等技巧,提高应用的运行效率和用户体验。 这份教程通过详实的例子和清晰的解释,帮助开发者全面了解Android开发的各个环节,无论是初学者还是有一定...

    android面试题大全

    7. **性能优化**:包括UI流畅性、电量优化、APK瘦身、代码性能分析工具(如Systrace、Profile)的使用等。 8. **权限管理**:Android 6.0以后的运行时权限申请,以及权限分组和权限策略的掌握。 9. **组件通信**:...

    Android-code.zip_android

    12. **Android性能优化**:内存管理、GPU过度绘制检测、电量优化、APK瘦身等都是Android性能优化的重要方面。了解并实践这些技巧,可以使应用运行更加流畅,提升用户体验。 "Android-code.zip_android"可能包含了...

Global site tag (gtag.js) - Google Analytics