如何减少APK包的大小

减小release安装包体积,尝试瘦身 问题: release包编译出来的体积在53.9M,有些大,所以想着对安装包进行瘦身!!! 目前安装包为:53.9MB 解决方案: 1、第一阶段 找到项目中所有的图片资源、jar文件、so库、aar文件、音频文件、js文件,能删除的删除、能优化的优化、能压缩的压缩。 图片: https://tinypng.com/ 这个网站对图片的处理,非常友好,图片质量肉眼看着无差别,但... 阅读详情

最近开发完公司的项目,和IOS的哥们一起上线,发现IOS的包大小近20M,而Android的安装包仅9M,过大的下载包可能会降低新用户的下载兴趣,所以适当减少安装包的大小还是很重要的。

1.使用ProGuard混淆

ProGuard包括以下4个功能:
压缩(Shrink):检测并移除代码中无用的类、字段、方法和特性(Attribute)。
优化(Optimize):对字节码进行优化,移除无用的指令。
混淆(Obfuscate):使用a,b,c,d这样简短而无意义的名称,对类、字段和方法进行重命名。
预检(Preveirfy)。

混淆环节会用无意义的短变量去重命名类、变量、方法。这些步骤让代码更精简,更高效,也更难被逆向(破解)。

2.开启shrinkResources

移除无用的资源,但是可能会造成:specified for property 'resourceFile' does not exist. 慎用!

3.使用resConfigs "zh"

删除无用的语言资源。google给我们的apk提供了国际化支持,如适应不同语言的字符串资源等等,但是在很多情况下我们只需要一些指定语言的资源就可以了,这个时候我们可以使用resConfigs方法来配置。

4.对于非透明大图,png转化为jpg格式

5.使用shape文件代替一些背景图片

6.切图最多使用两套,使用主流分辨率

7.限制app支持的cpu架构的数目


让你的app支持 armabi 和 x86 架构就够了。如果你的项目有sina分享或者百度地图SDK,他们有7中CPU架构的so库,如果全部放到项目中,就只能呵呵了。


另外,Android Studio在2.2以后提供了一个Apk分析器,能够查看Apk文件的组成部分一起各自大小所占的比重,有兴趣的同学可以研究一下。使用方法:



Android开发:Apk结构分析及减少包大小 作者:Hanking 前言 apk的大小对于下载apk应用的用户多少有直接的影响,由于手机内存的限制和网络环境的限制,同一个应用随着apk越大下载的和使用的人数就会越少,所以减少apk的大小是非常重要的。本文从apk编译过程,apk的组成,apk大小减少的方法三个方面分析如何减少apk的大小 一、apk的编译过程 在构建过程中,Android项目会被编译,打包,生成.apk文件,apk文件包含... 阅读详情

相关推荐

别再只看读写速度了!聊聊手机闪存eMMC、UFS3.1和SSD背后的功耗与体积玄学

本文深入探讨手机闪存技术eMMC、UFS3.1和SSD在功耗与体积设计上的关键差异。通过对比接口技术、封装工艺和温度管理,揭示移动存储如何在有限空间内平衡性能与能效,为消费者提供选购参考。重点关注UFS3.1的差分信号设计和全双工架构带来的显著优势。

weixin_27061475的博客 448

[Android]解决Android Studio导出APK文件过大的问题

使用Android Studio导出最简单的Hello World程序竟然有3MB! 我用Eclipse导出Hello World也就几百KB左右…… 这不科学……经过一番探索,终于找到了原因,Android Studio创建项目的时候会自动添加依赖,这些依赖导致最后导出的APK文件过大,解决办法如下: 单击菜单栏“File”-“Project Structure” 单击“Dependencies”-“app”,那里的依赖全部删除即可(除非你知道哪些依赖你需要用!) 附:无需依赖包检测APP是否存在

YuXiang187的博客 4287

使用单片机开发PWM的案例&相关项目源码

该项目使用STM32单片机生成PWM信号,通过改变PWM的占空比来控制连接在PWM输出引脚(如PA0)上的LED的亮度。在主循环中,通过改变比较值,PWM信号的占空比在0%到100%之间变化,从而实现LED亮度的渐变效果。这个项目是一个基础的PWM控制示例,通过学习和实践这个项目,可以掌握PWM的基本原理和使用方法,并为进一步开发和应用打下良好的基础。该项目实现了使用STM32单片机产生PWM信号,并通过改变PWM的占空比来控制LED的亮度。配置PWM输出引脚(如PA0),确保其模式为PWM输出。

清风明月 643

AndroidStudio 导出AAB格式上传谷歌提示超过150M 解决方案

AndroidStudio 导出AAB格式上传谷歌提示超过150M 解决方案 这里原因是因为aab里base文件夹太大了 导致他用base文件夹来做基础apk就会很大(150M以内) 不是指aab文件大小哦 如下图所示 解决方案 把base里的资源拆到其他的module里作为install-pak 也就是谷歌推出的PAD 资源包解决方案 对你的android studio 工程 右键 新建一个module 我这里是选 android library 点击next 创建 名字无所谓 后面

qq_32756581的博客 9531

从BIOS到路由器:深入拆解SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)奥秘

本文深入解析SPI NOR Flash的硬件连接与‘芯片内执行’(XIP)技术,从BIOS到路由器的应用场景出发,详细介绍了其架构精髓、典型连接方案、时序设计及性能优化方法。通过实际案例和参数对比,帮助开发者掌握NOR Flash在嵌入式系统中的关键作用与设计技巧,提升电路设计效率与可靠性。

weixin_30522183的博客 492

手把手教你为Multisim 14.0创建自定义元件:以SPICE模型导入为例

本文详细介绍了如何在Multisim 14.0中创建自定义元件,重点讲解了SPICE模型的导入与应用。通过系统性的步骤指南,包括元件符号设计、引脚定义、SPICE模型关联及验证测试,帮助工程师高效扩展元件库,满足特定设计需求。文章还提供了故障排除和性能优化的实用技巧,确保自定义元件在实际仿真中的可靠性。

weixin_42531163的博客 284

Springboot项目减少打包大小

前言: Springboot项目使用maven进行打包时,最小包也要二十几兆。如果遇到频繁需要上线的情况时,上传会非常浪费时间,我们需要适当减少包的大小,减少上传时间。经过分析,我们自己写的代码经过编译之后,顶多几百KB,非常小。包中占大部分的是引用的架包,如果我们可以把引入的架包移除,就可以解决包过大的问题。 正文: 所有的修改都在pom.xml文件中完成,大概可以分为三步:1.生成的jar中,不要包含pom.xml和pom.properties这两个文件;2.拷贝依...

hanxiaozhang的博客 1858

UCOS-III 系统移植

UCOSIII系统移植到GD32F303详细过程 工程代码:https://github.com/jslaobing/techIot_ucosiii_porting

TechIoT - 探索物联网与嵌入式系统 2087

利用base64下载文件,以及它因文件过大无法下载的问题

接口返回结果如此 代码 exportByBase64(response) { // const bloburl = dataURIToBlob(response.file) var downloadElement = document.createElement("a"); // downloadElement.href = URL.createObjectURL(bloburl); downloadElement.href = response.fil

ichLiebDich的博客 3127

从重复劳动到智能闭环:OpenClaw实战搭建小红书&公众号全自动化运营体系

如果你有一定的代码开发能力,还可以为OpenClaw开发自定义插件,拓展更多的功能,比如对接更多的平台,实现图文+短视频的全平台自动化运营;对接视频剪辑工具,实现短视频脚本生成、剪辑、配音、发布的全流程自动化;对接私域运营工具,实现公域引流、私域承接、用户转化的全链路自动化;对接电商平台,实现内容种草、商品上架、订单管理的全流程自动化,打造完整的内容电商闭环。新媒体运营的本质,是内容价值的传递,而不是机械的重复劳动。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 311

解决【x2openEuler环境检查未通过——CheckRepoCurlActor不通过】问题

摘要:x2openEuler使用默认repo源时出现环境检查失败问题,原因是默认源返回308永久重定向错误。解决方法包括:1)为CentOS主机配置华为yum源;2)在x2openEuler Web界面修改为自定义可用源。具体步骤包括备份原源、下载华为源、清除缓存,并通过curl测试确认新源可用性。最终成功配置openEuler-24.03-LTS-SP1版本的repo源后,环境检查顺利通过。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 258

ue4 从小到大_UE4 减少APK包的大小

本文依据官方文档 Reducing APK Package Size整理而来,不过我会陆续添加自己减少包大小的心得。ETC1 纹理当使用ETC1打Android包时,注意ETC1是不会压缩带Alpha通道的纹理的。当你的纹理需要Alpha通道而又不得不使用ETC1压缩时,可以使用两张分开的纹理,一张颜色一张存放Alpha值。创建一个空的项目创建新的工程时,不要带初学者内容,如果要使用的话使用UE4...

weixin_28782251的博客 995

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

性能优化之减少apk包大小

首先先说下Apk包大小优化的好处: 1,减少app内存使用 2,用户在应用市场下载安装时,往往会将apk的大小作为一个考虑因素 下面分享我以往的优化经验: 1,使用svg 使用svg可以减少少量包体积, 使用Android studio 可以直接导入svg文件,需要注意的是:PSD不支持渐变和透明度 批量导入svg:svg2vector.jar 将svg图片生成为指定维度的png图...

xzq823211673的博客 387

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【腾讯Bugly干货分享】Android减包 - 减少APK大小

本文是对Google官方文档 Reduce APK Size 的翻译,点击“阅读原文”可以查看英文原文。 译者简介:damonxia(夏正冬),天天P图Android工程师 用户经常会避免下载看起来体积较大的应用,特别是在不稳定的2G、3G网络或者在以字节付费的网络。这篇文章描述了怎样减少你的APK大小,这会让更多的用户愿意下载你的应用。理解APK的结构在讨论怎样减少应用大小之前,先了解A

腾讯Bugly的专栏 5138

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

UE4 减少APK包的大小

本文依据官方文档 Reducing APK Package Size整理而来,不过我会陆续添加自己减少包大小的心得。 ETC1 纹理 当使用ETC1打Android包时,注意ETC1是不会压缩带Alpha通道的纹理的。当你的纹理需要Alpha通道而又不得不使用ETC1压缩时,可以使用两张分开的纹理,一张颜色一张存放Alpha值。 创建一个空的项目 创建新的工程时,不要带初学者内容,如果要使...

weixin_30556959的博客 378

Android 减包 - 减少APK大小

(转载)http://www.10tiao.com/html/330/201704/2653578978/2.html 2017-04-27 18:31 夏正冬 本文来自“天天P图攻城狮”公众号(ttpic_dev) 本文是对Google官方文档 Reduce APK Size 的翻译,点击“阅读原文”可以查看英文原文。 译者简介:damonxia(夏正冬)

zhuhai__yizhi的专栏 725

减少apk包大小的一种思路

现在apk大小主要是决定于两个:一个是图片一个是.SO文件(这个尽量用release包),而对于图片,既要越小,又要保持质量。 之前是PNG --> JPG, 现在直接是PNG ---> webp, or jpg-->webp 对于50KB以上的图,质量80%的话,都有2/3的压缩 大赞啊 只要android 4.0+(level >= 17)都可以的 但是有些...

weixin_30399821的博客 80

如何减少APK 包的大小

一. gradle 中设置 1.1 开启minifyEnabled : 开启混淆,删除没用的java文件 1.2 开启shrinkResources : 去除无用资源 1.3 resConfig “zh”删除无用的语言资源 二.对图片的处理 2.1 使用tinpping 有损压缩,可以对png图片压缩 2.2 对于非透明的大图,png->jpp 2.3 使用webp 格式 ...

qianyedoufulao的博客 776

android 减少包的大小,android进阶篇10、APK包大小优化-一一网络

一、apk结构介绍APK 文件由一个 Zip 压缩文件组成,其中包含构成应用的所有文件。这些文件包括 Java 类文件、资源文件和包含已编译资源的文件。APK 包含以下目录:META-INF/ :包含 CERT.SF 和 CERT.RSA 签名文件,以及 MANIFEST.MF 清单文件。assets/ :包含应用的资源;应用可以使用 AssetManager 对象检索这些资源。res/:包含项目...

weixin_42382558的博客 611

真Unity3d_减少包大小i或者压缩apk体积的几个方法

Unity3d能不能减少打包的大小呢 理论上不能减少体积,王者荣耀2天不登录就要下载2G的内容,如果那么容易,会是这样的结果吗?? 能减少加载的时间,分层加载和释放,就已经很不错了,别人家优化的目标不在于减少体积 我们就姑且看看一些理论的减少包的方法吧: 包大小减少的几个方法 StreamingAssets目录不要有任何东西 Resource目录不要有任何东西 BuildSetting里面的Scene保持只有一个 不要在场景内挂GameObject属性的脚本(传统

大话程序员 2136

如何做到将apk大小减少6M

我们的apk去年业务需求增长迅速,伴随而来的是apk大小由年初的20M以下,增长到年底的30M。 包大小增长的坏处有: 过大的下载包会降低新用户的下载兴趣增加下载安装中失败的风险提高各个渠道下载发布的成本(渠道是会根据你的包大小设置收费规则的) 因此,减少包大小的工作看上去不痛不痒,其实还挺重要的。 接下来,我将分享下我在包大小瘦身方面的努力。 技术列表 l

Litchi的专栏 2603
上一篇: 推荐:Android studio无线调试插件ADB WIFI
下一篇: 百度地图画圈搜索功能探索
高速蜗牛a
博客等级 码龄15年 14粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值