首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

APK瘦身-是时候给App进行减负了!

前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装。前一段时间我司某一App进行APK的瘦身,最终也达到了减小10M的目标,现做一个简单的总结记录。...由此,如果我们想减小lib目录的大小,无非就如下一些常见的策略。 ? so裁剪、删除 对App引入的so文件进行确认哪些是不需要的,哪些是可以进行裁剪压缩的,哪些是可以避免引入的。...动图功能,然后减少Fresco库的依赖,同样可以减小so的大小。...删除无用的语言 大部分应用都不需要支持几十种上百种语言,所以在我们引用一些第三方库时(如Google、Facebook的库),它们往往带有上百种多语言资源,而大部分多语言对于我们自己的应用是没有用处的,...我们只需要在build.gralde里面进行如下配置即可完成无用语言资源的删除,这样在打包的时候就会排除私有项目、android系统库和第三方库中非中文的资源文件了,效果还是比较显著的。

1.2K30

六个小技巧帮你瘦身Android APK

矢量图形:尽量使用矢量图形(如SVG),而不是位图。矢量图形可以无损缩放,不会导致图像质量损失。...通过精简和优化代码,可以减小APK文件的大小。 代码混淆:使用ProGuard或R8进行代码混淆,删除未使用的类和方法,减小APK文件的大小。...移除未使用的库和依赖项,可以显著减小APK体积。 资源优化:使用向量图标代替位图图标,减小图标资源的大小。同时,删除未使用的资源文件。...这有助于将APK文件的初始大小保持较小。 动态交付:将应用的功能模块划分为可下载的模块。根据用户需求,只下载所需的模块,减小初始APK的大小。...压缩工具:使用APK压缩工具,如APKTool来手动优化APK文件,删除未使用的资源。 结论 APK瘦身是Android应用开发中的关键任务,可以提高应用的性能和用户体验。

62920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android APK 瘦身 - JOOX Music项目实战

    如图,我们只需要将要分析的APK拖入到Android Studio中,通过该工具我们可以清楚的观察到我们的APK中各个部分所占的比重是多少,而且通过目录索引我们可以快速定位出导致APK变大的是哪些文件从而加快我们的...对于大多数APP来说,基本上图片资源主要都是由PNG和JPG来组成的,PNG和JPG是最常见的图片格式了,这里我就不做过多的介绍了。...而且,有时候我们可以通过减少第三方的SDK升级或JAR更换来减小APK大小,毕竟一般来说,SDK只会越来越大(毕竟加了新特性),如果我们能确定当前版本的JAR包或者SDK继续使用下去没问题的话可以选择不用替换...可以去官方那了解更多: https://www.guardsquare.com/en/proguard f) 这里总结一下如何从代码方面减小APK大小: 删除无用的代码,无用的JAR包,无用的so库 对于使用到的第三方库...通过本文可以看见,转换成WebP之后的图片不仅占用的空间小,最主要的是生成的APK也减小了很多。通过本次减包,在图片方面JOOX大约减5M左右的APK大小,效果不是一般的好哦。

    1.2K60

    你必须要懂的APK瘦身知识

    了解应用程序APK的结构对于我们来说很有帮助。APK文件由一个ZIP存档组成,其中包含组成应用程序的所有文件。这些文件包括Java类文件,资源文件和包含编译资源的文件。...减少第三库的使用 随着业务的频繁变更以及复杂度的增加,我们往往会使用第三方Libaray,有时候我们可能仅仅用到了很少一部分的功能,这个时候就需要慎重考虑完全引用。...从我的开发经验上来讲,宁愿参照自己去实现,也不愿意多引入一个第三方库。 避免枚举 一个枚举可以为您的应用程序的classes.dex文件添加大约1.0到1.4 KB的大小 。...它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。...移除未使用的备用资源 我们知道google给我们的apk提供了国际化支持,如适应不同的屏幕分辨率的drawable资源,还有适应不同语言的字符串资源等等,但是在很多情况下我们只需要一些指定分辨率和语言的资源就可以了

    76230

    关于Android开发你必须要懂的APK瘦身知识

    了解应用程序APK的结构对于我们来说很有帮助。APK文件由一个ZIP存档组成,其中包含组成应用程序的所有文件。这些文件包括Java类文件,资源文件和包含编译资源的文件。...减少第三库的使用 随着业务的频繁变更以及复杂度的增加,我们往往会使用第三方Libaray,有时候我们可能仅仅用到了很少一部分的功能,这个时候就需要慎重考虑完全引用。...从我的开发经验上来讲,宁愿参照自己去实现,也不愿意多引入一个第三方库。 避免枚举 一个枚举可以为您的应用程序的classes.dex文件添加大约1.0到1.4 KB的大小 。...它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。...移除未使用的备用资源 我们知道google给我们的apk提供了国际化支持,如适应不同的屏幕分辨率的drawable资源,还有适应不同语言的字符串资源等等,但是在很多情况下我们只需要一些指定分辨率和语言的资源就可以了

    1.1K40

    Android性能优化系列之apk瘦身

    使用provided可以保证代码编译通过,但是实际打包中并不引用此第三方库,实现了控制APP大小的目标。 但是也同时就需要开发者自己判断不引用这个第三方库时就不要执行到相关的代码,避免APP崩溃。...矢量图 矢量图是由点与线组成,和位图不一样,它再放大也能保持清晰度,而且使用矢量图比位图设计方案能节约30~40%的空间,现在谷歌一直在强调扁平化方式,矢量图可很好的契合该设计理念。...避免重复库 避免重复库看上去是理所当然的,但是秘密总是藏的很深,一定要当心你引用的第三方库又引用了哪个第三方库,这就很容易出现功能重复的库了,比如使用了两个图片加载库:Glide和Picasso。...通过查看exploded-aar目录和External Libraries或者反编译生成的APK,尽量避免重复库的大小,减小APP大小。...清理第三方库和冗余代码 版本迭代过程中,因为删减功能经常有冗余代码和第三方库留下,这或多或少都会增加包体,这种情况没有捷径,只能每个文件查找,这是苦力活。

    1.1K30

    Android APP 终极瘦身指南

    前言 APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装;虽然说APK瘦身对于Android对应用可分配内存的限制影响不大,但是还是有一些影响的。...第17条:避免重复库 避免重复库看上去是理所当然的,但是秘密总是藏的很深,一定要当心你引用的第三方库又引用了哪个第三方库,这就很容易出现功能重复的库了,比如使用了两个图片加载库:Glide和Picasso...通过查看exploded-aar目录和External Libraries或者反编译生成的APK,尽量避免重复库的大小,减小APP大小。...第18条:使用更小的库 同样功能的库在大小上是不同的,甚至会悬殊很大。 如果并无对某个库特别需求而又对APP大小有严格要求的话,比较这些相同功能第三方库的大小,选择更小的库会减小APP大小。...总结 App瘦身是一个长期的过程,建议可以进行每个版本对APK大小进行监控,列出增加和减小的点,做到持续的统计和追踪,从而给公司带来效益。

    2.8K10

    Android性能优化(十)之App瘦身攻略

    4.3 对图片进行压缩 之前我在项目里发现过文件大小过1M的图片,可能是由于UI同学和RD同学的双重疏忽,导致如此大的图片到了项目中,对Apk体积的影响自然不言而喻。...SVG由W3C制定,是一个开放标准。可以使用矢量图形来创建独立于分辨率的图标和其他可伸缩图片。...每一个Android应用所支持的ABI是由其APK提供的.so文件决定的,这些so文件被打包在apk文件的lib/目录下。 So的常见的场景如:加解密算法、音视频编解码、核心代码等。...理论上对应CPU架构的So的执行效率是最高的,但是这样会导致在libs目录下放置各个架构平台的So文件,Apk文件的大小自然也就更大了。...Android平台对Apk安装包的解压算法只支持Deflate算法,其它算法如LZMA,虽然压缩率更好,但是由于Android平台默认不支持,所以如果采用这种算法压缩Apk,会导致Apk无法安装。

    1.7K30

    深入探索 Android 包瘦身(上)

    所以,安装包大小与下载转化率的关系 大致是成反比 的,即安装包越大,下载转换率就越小。一个 80MB 的应用,用户即使点了下载,也可能因为网络速度慢、突然反悔导致下载失败。...如下,就是由一个基本模块和两个动态功能模块组成的 Android App Bundle APK 的组成结构图: ?...虽然从减少的 APK 大小来看,0.1MB 很少,但是比例并不小,如果你负责的是一个像微信、淘宝等规模的 App,它们的体积一般都将近 100MB,使用 R8 后也能减小 1.5MB 的大小。...同时,在选择第三方 SDK 的时候,我们可以将包大小作为选择的指标之一,我们应该 尽可能地选择那些比较小的库来实现相同的功能。...很多库的代码结构都设计的比较好,比如 Fresco,它将图片加载的各个功能,如 webp、gif 功能进行了剥离,它们都处于单个的库当中。

    2.1K30

    安卓应用告别APK格式

    它包含应用支持的所有设备的代码和资源,例如 DEX 文件、本地代码库、清单文件、各种资源文件等。...更棒的是,当设备配置 (如语言) 发生变化时,Google Play 会检测到它,并下载该语言的配置 APK。...一些开发者甚至可以将他们的 APK 大小减半,而一些知名 app 使用 App Bundle 减小应用体积的数据也有放出来。...可目前,使用 Split APK 的应用程序,用户是无法直接提取安装的,都需要借助第三方工具来备份安装。这意味着,未来用户在非谷歌应用商店的第三方平台,下载安装应用会越来越困难。...签名相当于打上唯一的电子标签,因此,如果应用被以非正常方式提取分享,就可能导致签名改变,最终影响应用运行。除非,开发者自行在第三方平台提供完整的应用安装包。

    1.5K40

    Android APK瘦身实践:二次瘦身如何再减少大小?(4M—2.9M)

    所以,要考虑的问题是,是否有必要保证如此的大小?能否缩小?如果这方面能减小的话,apk瘦身的效果必然又会上一个档次。 5. 覆盖aar里的一些默认的大图 一些aar库里面包含根本就没有用的图。...打包成emoji_v1.zip, 大小是202k。 现在把emoji_v1.zip放到网上,按需下载后使用,最终对比结果如下: ? apk减小了193k。 13....全版本兼容的着色方案 考虑着色方案主要目的是更方便支持多主题,减轻UI工作量,减少工程里一大堆selector文件等,然后才是,顺便的减小一下apk大小。...自己工程使用的是UIL,但是引入的第三方库引用了picasso,两个重复的图片下载库也是完全没用必要的。 现在还没有处理这块,新任务介入,延期优化,敬请期待。 ? 15....一般情况下不会有问题,测试了一下效果,apk减小了78k。 这里作为候选方案备用。 小结 最终,我们成功的把apk压到了2.9M,如果把上面遗漏的步骤继续再做,应该还能再减小一点。

    1.9K10

    从新手到架构师,一篇就够!《Android性能优化—实战解析》

    这样既可以减少zxing库的大小,也可以加快zxing处理一帧数据的速度。...安卓应用的安装包(apk文件)中dex保存的是应用的代码,占有可观的体积。如果能够将这一部分的体积减小,那么无疑会有效地减小安装包的体积。...首次启动时间减少80% 抖音BoostMultiDex优化实践:Android低版本上APP首次启动时间减少80%(二) 携程Android 10适配踩坑指南 抖音包大小优化-资源优化 随着业务的快速迭代...包大小直接影响到下载转化率、推广成本、运行内存和安装时间等因素,因此对 apk 进行瘦身是一件很有必要且收益很大的事情。...2——虚拟内存浅析 全民K歌内存篇3———native内存分析与监控 一种按照library的维度进行Android包大小分析的方法和实践 网易新闻构建优化:如何让你的构建速度"势如闪电"?

    1.4K40

    Matrix-ApkChecker — Apk 分析减包利器

    读取 manifest 的信息 从 AndroidManifest.xml 文件中读取 apk 的全局信息,如 packageName、versionCode 等 2....检查是否经过了资源混淆(AndResGuard) 检查 apk 是否经过了资源混淆,推荐使用资源混淆来进一步减小 apk 的大小 5....检查是否包含多个ABI版本的动态库 so 文件的大小可能会在 apk 文件大小中占很大的比例,可以考虑在 apk 中只包含一个 ABI 版本的动态库 7....搜索 apk 中未经裁剪的动态库文件 动态库经过裁剪之后,文件大小通常会减小很多 示例分析 下面,我们对一个示例 apk 使用 Matrix-ApkChecker 进行检查,并根据检查的结果进行针对性的减包优化...CountRTask 可以统计 R 类以及 R 类的中的 field 数目 实现方法:同样是利用 com.android.dexdeps 类库来读取 dex 文件,找出 R 类以及 field 数目。

    4.5K40

    如何优化您的 Android 应用(Go 版)

    以下是关于如何保持 APK 较小的一些建议: **使用新的 Android App Bundle 去查看大小....任何音质的损失都不应该被大多数用户感觉到,并且仍然会以较少的资源提供高质量的回放/音频聆听体验。 确保使用的库是最新的并且是必要的。考虑删除重复库并更新废弃的库。...考虑进一步优化代码以减小 APK 的大小。了解更多关于减少代码的信息,并查看我们的为数十亿用户打造的产品指导方针中的相关细节。...然后,我们使用 Gradle 脚本将这个 Go-edition APK 以及我们的常规 APK 打包,所有这些都来自相同的代码库。我们还使用尺寸更小的虚拟图像覆盖了第三方库中的图像。...所有这些行为导致 Android Go APK 大小减少 8.8MB,而普通 APK 大小为 43MB。

    1.8K20

    Android App包瘦身优化实践

    随着业务的快速迭代增长,美团App里不断引入新的业务逻辑代码、图片资源和第三方SDK,直接导致APK体积不断增长。...包体积增长带来的问题越来越多,如CDN流量费用增加、用户安装成功率降低,甚至可能会影响用户的留存率。APK的瘦身已经是不得不考虑的事情。...APK的构成 可以用Zip工具打开APK查看。比如,美团App 7.8.6的线上版本的格式是这样的: ? 可以看到APK由以下主要部分组成: ?...大体有如下套路: 时刻保持良好的编程习惯和对包体积敏锐的嗅觉,去除重复或者不用的代码,慎用第三方库,选用体积小的第三方SDK等等。...它包括相同的ProGuard规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小APK大小和帮助提高其运行速度。

    1.6K30

    成功逆袭:越来越胖怎么能忍,我的APK瘦身之路!

    本文主要是介绍APK瘦身中用到的一些方法。 APK分析 既然是要优化APK的大小,那首先就得看下APK文件的构成。...只保留"zh-rCN", "zh-rHK", "zh-rTW", "en" 减少不必要的语言(80种减到5种,有一个default)apk可减少0.61M ?...资源混淆 开源解决方案AndResGuard可以看下,通过使用段路径和压缩可以减小apk,需要注意的是你的项目中某些资源需要keep,减少了1.5M。...其他 极端情况下可以考虑以下两种方式,可以优化约1M的空间 debug信息 一般我们会配置Proguard保留行号等信息用于线上日志分析,极端情况下也可考虑移除这部分,会有5%-10%的效果,可以减少了...2、使用ReDex优化,这是Facebook开源的一个减小安卓app大小以提高性能的工具,集成的话有风险需要多测试,教程。 3、减少java隐藏开销,比如一些自动生成的函数等。

    81820

    Dynamic Feature 上线 1 年实践分享

    这些 APK 看起来长这样: 那 Dynamic Feature APK 是怎么生成的呢?是 Google Play 用我们在上架时提供的 AAB 包和提前上传的签名文件生成的。...如产品上架的一款小游戏,大小约 5MB,且依赖 so 库,而且是非核心使用场景,就非常适合动态下发。...减小 APK 体积可以提高下载转化率,降低市场推广成本。 2....但这不排除可能是工程的特殊性,如底层资源过多,或一些特殊的 gradle 配置,导致耗时反而增加。 2.2.6 疑问:Dynamic Feature 的更新逻辑是怎样的?...出现哪种表现与包体积大小有关,具体逻辑由 Google Play 控制,具体条件为黑盒。但根据上报发现,弹窗占比极低(≈0.12%)。

    44510

    浅谈extractNativeLibs

    如果设置为 “false”,则原生库以未压缩的形式存储在 APK 中。虽然您的 APK 可能较大,但应用应该加载得更快,因为库是在应用运行时直接从 APK 加载。   ...第二句和第三句,如果设置为false,apk中的SO文件在打包时将会以未压缩的形式出现,这样系统在加载APK的同时也会将SO文件映射到内存中而无需进行解压缩,提高加载速度;同时由于SO文件未被压缩所以会导致安装包的尺寸会变大...在大多数情况下,默认行为很可能符合您的预期,您无需显式设置此属性。   ...可以知道extractNativeLibs在打包时的默认值是会由打包工具自动根据情况设定的,比如我在compileSdk 31; minSdk 23; targetSdk 31的情况下,extractNativeLibs...如需了解详情,请参阅版本说明使用 DSL 打包压缩的原生库。 我们建议以未压缩的形式打包原生库,因为这会减小应用安装大小,缩减应用下载大小,并缩短用户的应用加载时间。

    6.3K31

    Matrix-ApkChecker的实际应用

    为了保证用户的使用体验,避免因为安装包过大,导致新用户不能/不想下载、使用时出现异常问题,经常进行安装包体积缩减是十分有必要的。 那么我们应该怎样进行包体优化呢?...ApkChecker 的方便之处在于它虽然是Matrix 系统的一部分,但是它以一个单独的jar包形式提供,可以直接通过命令行执行, 也就意味着可以在不使用Matrix 系统情况下,单独使用ApkChecker...值,我们可以利用结果数据计算出可以通过删除重复文件而减小的空间大小 ?...9、UnStrippedSoCheckTask: 搜索apk中未经裁剪的动态库文件 (TaskTypeId:14) so 文件的大小会在Apk文件大小中占较大的比例,经过裁剪后,文件大小会减小很多。...当然,RD同学辛辛苦苦的优化了一些问题,如果有删除、修改 导致Apk包体缩小,也是要鼓励一下人家的。

    1.1K20

    Kotlin 语言入门宝典 | Android 开发者 FAQ Vol.5

    导语: 官方出的 FAQ ,kotlin是兼容 java 6.0 的 jvm 语言,此篇 FAQ 中,大概需要重点关注的大概是 APK 的影响吧: Kotlin 在运行时可能会在您的 debug APK...中增加 7000 个方法和 1M 的大小,如果您使用 Kotlin 替换如 Guava、RxJava 等其他的库,影响可能会小一些。...但是您可以在后期通过 ProGuard 来优化减小包的大小。 ? 随着 Kotlin 的快速崛起,我们注意到越来越多的开发者开始关注这个新兴的语言。...比如,Kolint 使用的某些第三方库可能使用与 Apache 2.0 兼容的其他开源协议。 在 Kotlin 和 Java 之间我应该如何选择?...Kotlin 在运行时可能会在您的 debug APK 中增加 7000 个方法和 1M 的大小,如果您使用 Kotlin 替换如 Guava、RxJava 等其他的库,影响可能会小一些。

    2.6K60
    领券