传统的 Android Package Kit (APK) 包含应用支持的所有设备的代码和资源 (布局文件、图像等)。因此,您在安装 APK 时可能装上了一些您永远不会用到的资源。您的屏幕尺寸不会改变,您的 CPU 也不会; 您通常不会说应用所支持的所有语言。很明显,APK 里的内容的比您要求的更多,占用的空间也比实际需要的更多。
Android应用的大小对用户体验和应用性能至关重要。大型APK文件会增加应用的安装时间,启动时间和页面加载时间,降低了用户体验。因此,APK瘦身是Android开发中的重要任务。在本文中,我们将分享6个小技巧,帮助你优化和瘦身Android应用,提高性能和用户体验。
APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装;虽然说APK瘦身对于Android对应用可分配内存的限制影响不大,但是还是有一些影响的。
Android打包本身会对png进行无损压缩,不信大家可以看看apk中的图片的大小实际上比你代码工程里的图片要小(针对没进行过无损压缩的那些png图)。
APK瘦身即是对APK大小进行压缩策略,减小APK安装包大小,更小的安装包更有助于吸引用户安装。前一段时间我司某一App进行APK的瘦身,最终也达到了减小10M的目标,现做一个简单的总结记录。
APK全称Android application package,意为“Android应用程序包”,是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。
实际开发应用时,包体积优化是必不可少的。毕竟手机内存有限,如果包体积过大很多用户会直接放弃(以前手机内存很小的时候,这个真的很重要),现在由于手机内存大了(512G已经挡不住了),现在的用户更关注流畅度和美观作为参考,但是该有的优化还是要优化的,毕竟要尽善尽美嘛。上一篇文章我们了解了安装包的结构。
今天分享一篇匠心制作的《深入探索 Android 包体积优化》,内容比较多,因此分篇分享~
之前我在微信群里面有说到,随着Android开发越来越成熟,关于Android方面的技术文章越来越多,作为开发者不缺资源,缺乏的是系统的知识和指导,对于学生和上班族来讲,更缺乏筛选信息的时间。从某个角度来讲,精心筛选整理网络上的优质文章,如果需要学习某方面的知识只需要看这一篇文章就够,那意义会比写一篇纯技术文章会有价值得多。 出于能够更便捷、高效获取优质资源的角度考虑,写一系列专题的想法就诞生了,结合自己阅读过的技术文章和实际工作经验,将平时收集的优质技术文章按照某个方面整理成一系列的专题,比如APK瘦身、插件化、程序架构、性能优化、自定义view、增量升级、移动开发各种技术解决方案等。这是我目前能够想到的除了写书之外最值得做的一件事情了。 这个系列从APK瘦身专题开始,后面会不定期推出其它专题,发过的专题也会不断更新。
为什么APK要瘦身。APK越大,在下载安装过程中,他们耗费的流量会越多,安装等待时间也会越长;对于产品本身,意味着下载转化率会越低(因为竞品中,用户有更多机会选择那个体验最好,功能最多,性能最好,包最小的),所以apk的瘦身优化也很重要,本篇博客将讲述apk瘦身的相关内容。
安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android 9.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS。 但是,到了各大厂商手里,改源码、自定义系统,使得Android原生系统变得鱼龙混杂,然后到了不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。
App不但要求功能完善,其他方面也得综合考虑,比如APK安装包的文件大小就是很重要的因素。具备同样功能的两个安装包,一个很大很占用空间,另一个较小不怎么占空间,用户的选择结果自然不言而喻。如何减少打包后的APK文件大小,也就是所谓的APK瘦身,这涉及到很多技术手段,最常用的主要有四块:去除冗余功能、精简无用资源、减少图片大小、过滤无用的so文件,分别介绍如下:
导语 JOOX Music是腾讯海外布局的一个音乐产品,2014年发布以来已经成为5个国家和地区排名第一的音乐App。东南亚是JOOX Music的主要发行地区,由于JOOX Music所面对的市场存在很多的低端机型,并且这些市场的网络环境相对来说是比较差的,为了提升下载转化率,对JOOX Music进行APK瘦身是必不可免的。 JOOX Music版本大小变化 JOOX Music(后面简称JOOX)现在已经在进行V3.8版本的开发了,不过,在这之前JOOX经历了从V2.1版本的18M暴涨到V3.1版
你可以用keytool命令生成一个私有密钥。在Windows上keytool命令放在JDK的bin目录中(比如C:\Program Files\Java\jdkx.x.x_x\bin),你可能需要在命令行中先进入那个目录才能执行此命令。在mac上,直接进入项目根目录输入一下命令:
如果你对App优化比较敏感,那么Apk安装包的大小就一定不会忽视。关于瘦身的原因,大概有以下几个方面:
每当我想下载一个新App,在应用商店点击下载却看到“空间不足”的提醒时,我的内心是崩溃的。
App的大小对App的安装率和卸载率都有很大的影响。Google Play有篇很好的文章介绍减少App大小的重要性。
反编译(Decompilation)是将已编译的程序(比如二进制代码)转换回更高级别的编程语言代码的过程。这通常用于理解程序的工作原理,进行软件审计,恢复丢失的源代码,或者进行教学研究。反编译的难度和效果取决于原程序的编译过程中丢失了多少信息(比如变量名、注释等)。
自 2021 年 8 月起,Google Play 将开始要求新应用使用 Android App Bundle 进行发布。该格式将取代 APK 作为标准发布格式。虽然这个政策目前还无法影响到国内应用,但是作为Android开发者,对于新的动态还是要有一定的认识。本文并不是介绍Android App Bundle,因为它不是新的事物,相关的文章也有很多了,本文重点介绍的是Android App Bundle中“动态功能模块”的实际应用。
随着版本迭代,功能增加安装包体积也会慢慢增大。本文主要是介绍APK瘦身中用到的一些方法。
移动设备的资源总是有限的。有限的电量,有限的存储,有限的处理能力,有限的内存,有限的网络带宽……无论你面对的是 Android 还是 iOS,这都是真理。
APK瘦身也是anroid领域比较关注的技术之一,在开始对APK进行正式的减肥之前,我们先来了解一下APK包的构成,这样才好对症下药嘛。知己知彼方能百战不殆。
原文地址:How to optimize your app for Android (Go edition) 原文作者:Raj Ajrawat 译文出自:掘金翻译计划 本文永久链接:github.co
Tech 导读 随着业务不断迭代更新,京东金融App(Android版本)的体积也在快速增加,2019年~2022年期间甚至一度超过了117M。2022年9月开始针对金融App进行了瘦身专项整治,最终实现从117M瘦身至74M。本文阐述了整个安装包瘦身过程中遇到的问题以及积累的经验,并详细介绍了具体的解决路径。
插件化技术最初源于免安装运行apk的想法,支持插件化的app可以在运行时加载和运行插件,这样便可以将app中一些不常用的功能模块做成插件,一方面减小了安装包的大小,另一方面可以实现app功能的动态扩展。小编所在项目,近期有插件相关测试需求,为了更深入的进行测试,进行了学习。
随着业务复杂度的逐渐增加,代码、资源也在不断的增加,此时你的APP大小也在增加。从用户层面来说,面对动辄几十兆的APP来说在非WIFI情况下还是会犹豫要不要下载,不下载你就可能因此失去了一个用户。从公司层面来讲,流量就是钱,减少APP的大小就显得尤为重要。从开发者层面上来讲,你掌握了这个手艺也会略显逼格满满。
简介 Matrix 是微信终端自研和正在使用的一套 APM(应用性能管理)系统。 Matrix-ApkChecker 作为 Matrix 系统的一部分,是针对 android 安装包的分析检测工具,根据一系列设定好的规则检测 apk 是否存在特定的问题,并输出较为详细的检测结果报告,用于分析排查问题以及版本追踪。 功能 Matrix-ApkChecker 当前主要包含以下功能 1. 读取 manifest 的信息 从 AndroidManifest.xml 文件中读取 apk 的全局信息,如 packag
作者:我是吸血鬼 链接:https://www.jianshu.com/p/5921e9561f5f 著作权归作者所有,欢迎投稿。 随着业务复杂度的逐渐增加,代码、资源也在不断的增加,此时你的APP大小也在增加。从用户层面来说,面对动辄几十兆的APP来说在非WIFI情况下还是会犹豫要不要下载,不下载你就可能因此失去了一个用户。从公司层面来讲,流量就是钱,减少APP的大小就显得尤为重要。从开发者层面上来讲,你掌握了这个手艺也会略显逼格满满。 废话不多说了,开始正题。 1.APK结构的那些事 知己知彼,方能百
前不久,我们准备将自己开发的视频播放sdk提供给公司其他部门,在打包的时候,同事问了我一个问题,为什么我们打sdk的时候需要分别提供armeabi和arm64-v8a(ps,还有其他7种CPU架构)。其实这是一个常识问题,针对不同的架构我们肯定要提供不同的动态链接库,所以,在实际开发过程中,我们并不是将这7种so库都集成到我们的项目中去,我们会根据实际情况做一个取舍。 那么旧事重提,我们再来看看Android动态链接库。 简介 早期的Android系统几乎只支持ARMv5的CPU架构,不过到目前为止支持7种
如今的 5 G 也在万众瞩目瞩目下翩翩起舞,而 Android 近些年也惹得不少争议,所谓的谣言,不过尔尔。
随着业务的快速迭代增长,不断引入新的业务逻辑代码、图片资源和第三方SDK等,很多app都面临一个一个结果,app越来越大,甚至很多无用的代码,包体积的增大带来了很多问题,诸如app启动更慢,代码维护越
众所周知,Android 是一个开源的系统,从它诞生的那一刻起,Android 系统被逐步应用在了各种各样的硬件设备中。随着移动互联网和移动支付的兴起,传统 POS 机也开始逐渐被 Android 系统加持下的智能 POS 机所取代。
资源混淆 , 将资源名称与目录进行混淆 , 提高了反编译的难度 , 同时也减小了 APK 文件的大小 ;
小编说:随着移动端产品功能的逐渐增加,APP 的体积也不可避免地呈现上升趋势,如果不加以重视,几个版本迭代下来,可能你的 APP 体积会达到用户不能忍受的程度。
随着APP的一次又一次迭代,APP的体积也越来越大,这时候,会引发这么一个问题,早期的错误异常如下:
LZ-Says:在外面呆了一年又一年,似乎都快忘记当初出来的目的,不过,幸好,不忘初心~给家里买点东西,家里开心,我也开心~这就够了。
除了AS自带的Analyzer之外,还有ApkChecker、ClassyShark等工具。
PMS,全称PackageManagerService,是用来获取Apk包的信息的。
上述之前在其他文章里面也常见的图,而这张图讲述一个APK的诞生流程,可以分为以下的几个流程
由于其开放性,Android 在其前十年取得了显著的增长。有大量的设备可供选择,蓬勃发展的开发者生态系统提供了许多应用和游戏,为这些设备赋予了长久的生命力。作为开发者,您希望确保用户尽可能获得最佳体验,并确保您的应用尽可能在所有这些设备上运行。您还希望尽可能多的用户安装您的应用; 您也希望他们持续使用它; 并且您不希望他们因您无法控制的原因卸载您的应用。到目前为止,Android 应用的发布和分发方式在所有这些方面都有待改进。我想观察一下开发者面临的一些挑战,并告诉您 Google 正在采取哪些措施来提供帮助。
让我们将这一原则应用到 Android App 开发中。我们将玩转一个称为“ApkGolf”的 APK,目的是创建一个尽可能具有最少字节数的 App,并可安装在运行 Oreo 的设备上。
Google Play 中 , 2021 年 8 月 之后 , 新应用需要使用 Android App Bundle 发布应用 , 并且大小不能超过
Android Studio是采用gradle来构建项目的,gradle是基于groovy语言的,如果只是用它构建普通Android项目的话,是可以不去学groovy的。当我们创建一个Android项目时会包含两个Android build.gradle配置详解文件,如下图:
最近有大兄弟叫我「猴哥」,嗯哼,不错的称呼,赞一个。 今天周六,和许多公众号的态度不一样是,我的态度是「大兄弟们该钻研技术的还是要继续钻研的」。毕竟这么大段的时间才是最好的学习时间啊。 湿兄本职是做「Android开发」的,主要负责系统 App 和 Framework 层 的定制和开发。 这篇文章给大家分享5个我在 Android 开发中用到的工具 Apk,非常的顺手和方便。不夸张的说,使用这些 APK,真的能提升不少效率。而且纯净无广告,在此先感谢这些工具的开发者们。 ApkAnalyzer 顾明思义,「
React Native发布APP之签名打包APK ---- 用React Native开发好APP之后,如何将APP发布以供用户使用呢?一款APP的发布流程无外乎:签名打包—>发布到各store这两大步骤。本文将向大家分享如何签名打包一款React Native APP。 众所周知,Android要求所有的APP都需要进行数字签名后,才能够被安装到相应的设备上。签名打包一个Android APP已经是每一位Android开发者的家常便饭了。 那么如何签名打包一款用React Native开发的APP呢?
近日,谷歌官方宣布:自 2021 年 8 月起,Google Play 将要求开发者以 Android App Bundle (以下简称 AAB)格式发布新应用,该格式将取代 APK 成为标准的Android应用发布格式。
自2018年我开源了XUpdate之后,至今已迭代了14个版本,月下载量达7k+,Github的star量也已经有1.1k+.
尽量不用太复杂的lib,轻量级lib是首选。如果你的应用没用到兼容库,可以考虑去掉support包。
领取专属 10元无门槛券
手把手带您无忧上云