Android Apk极限瘦身

[Android 之美] 那些你不知道的APK 瘦身,让你的APK更小 [Android 之美] APK 瘦身,减少APK的大小 让你的apk文件尽可能小,应该使移除未使用的代码和资源文件。那么本章节介绍了如何做到让APK更小,性能更好,下载转化率会更高,以及如何指定在构建APK过程中保留或移除的代码和资源,在我们还没有分析APK大小之前,项目中存在一些资源放置处理不当,没有统一的规范,依赖管理不合理,资源重叠,dex方法数过多等问题,导致APK文件比较大,公 阅读详情

随着功能集成的越来越多,我们APK的体积也越来越大,所以带来了很多的问题,

1.用户看着Apk包太大,下载的时候望而却步;

2.占用手机的内存越来越大;

3.随着版本的迭代,代码里的无用资源以及冗余代码越来越多。

所以Apk的瘦身优化,也就越来越重要。

Apk瘦身主要从以下7个方面进行

一.将图片转换成WebP格式;

二.去除多语言;

三. so库优化;

四.移除无用资源-Lint检查

五.开启混淆

六.开启删除无用资源

七.AndroidGesGuard微信资源压缩方案;

下面说一下具体操作

(一).WebP格式转换

WebP格式是谷歌2010开发的一种旨在加快图片加载速度的图片格式,来源于VP8视频编码解码。 WebP是通过预测技术对图片进行编码。 WebP编码流程 WebP会将图片划分为两个8*8色度像素宏块和一个16*16亮度像素宏块。在每个宏块内,编码器基于之前处理的宏块来预测冗余动作和颜色信息。 通过图像关键帧运算,使用宏块中已解码的像素来绘制图像中未知部分通过预测模式去除冗余数据,实现更高效的压缩

在Android Studio中也给我们提供了相对应的转换方法

从图中我们可以看出来,我们图片的大小缩小了三倍多,。。而且对我们的视觉效果基本上没有影响;

(二).去除多语言

由于第三方库,如appcompat-v7的引入,库中包含了大量的国际化资源,根据情况通过配置进行删除

(三).so库优化 --- 只保留armeabi-v7a

如果项目中包含第三方SDK或者自己使用了ndk,如果不进行配置会打包全cpu架构的动态库进入apk.对于真机只需要保留一个armeabi(armeabi-v7a)就可以了

(四).移除无用资源

1.一键移除,

如果出现使用动态id,使用资源会出现问题(不建议使用) eg: int indetifer = getResource.getIdentifier(“iv_bg”, “drawable”,getPackageName()); getResource.getDrawable(indetifier); 特别注意: 动态获取资源id,未直接使用R.xx.xx,则这个id代表的资源会被 认为没有使用过(类似不能混淆反射类一样)

2.lint检查

Lint是Android Studio提供的代码扫描工具,他可以帮助我们发现代码结构/质量问题,同时提供一些解决方案,而且这个过程不需要我们手写测试用例。 代码迭代版本一多,很容易遗留一些无用的代码,资源文件,我们可以使用Lint来进行清除

(五).开启混淆

ProGuard的三大作用

1.压缩 移除未被使用的类,属性,方法等,并且会在优化动作执行之后再次执行(因为优化后可能再次暴露一些违背使用的类和成员)。

2.优化 优化字节码,并删除未使用的结构

3.混淆 将类名,属性名,方法名混淆为难以读懂的字母

(六).开启删除无用资源(与Lint不同)

shrinkResources用来开启压缩无用资源,也就是没有被引用的文件(经过实测是drawable,layou,实际并不是删除,而是保留文件名,但是没有内容),但是因为需要知道是否被引用所以需要配合mififyEnable使用,只有当两者都是true的时候才会起到真正的删除无效代码和无用资源的目的。 与去除无用资源不同的是,比如某个java类没有用到,被混淆时删除了,而该类引入了layout资源。此时会将这个资源也压缩掉。

 

(七).AndResGuard微信资源压缩方案

什么是AndResGuard? AndResGuard是一个缩小APK大小的工具,他的原理类似Java Proguard,但是只针对资源。他会将原本冗长的资源路径变短,例如res/drawable/wechat变为r/d/a.

git地址:https://github.com/shwenzhang/AndResGuard

 

 

 

 

Android应用瘦身,从18MB到12.5MB 来源http://www.jianshu.com/p/31ba2d0e9a60?ref=myread Hello,大家好,我是Clock。这是我春节前的最后一篇技术分享文章了,在这里提前预祝大家鸡年万事如意,身体健康,新年升职加薪。 开篇语 前阵子老大交给了我一个任务,主要是帮我们开发的直播应用做 Android 端的安装包瘦身,花了大概一周的时间把安装包从 18MB 减小到了 阅读详情

相关推荐

Android应用瘦身必看:混淆+shrinkResources让你的APK体积减半

本文详细介绍了Android应用瘦身的全方位解决方案,重点讲解混淆优化(minifyEnabled)和资源清理(shrinkResources)的核心技术,结合productFlavors实现多渠道打包的差异化瘦身。通过实战案例展示如何减少APK体积50%以上,涵盖代码优化、资源压缩、动态加载等高级技巧,帮助开发者突破应用体积瓶颈。

weixin_29232507的博客 415

Android 删减系统语言

frameworks/base/core/java/com/android/internal/app/LocalePicker.java public static ArrayList<String> getLocaleArray(String[] locales, Resources resources) { String localeCodes = resour...

江湖浪徒的博客 226

法兰克仿真软件FANUC CNC Guide v25.0 安装教程及中文设置

下载地址在文末。我们公司用新到一批FANUC 系统的设备,为方便使用就装了一个 FANUC 数控系统仿真软件FANUC CNC Guide v25.0 ,还是最新版不是市面上流传的老版本。模拟学习一下。

hakesashou的博客 1万+

Android 删除其他多余语言(保留中文+英文)

Android 添加语言目录的函数:frameworks/base/core/java/com/android/internal/app/LocalePicker.java 根据以上方法分析.语言配置文件保存在R.arry.supported_locales 根据查找该配置文件在:frameworks\base\core\res\res\values\locale_config.xml 删除或者注释掉多余的语言配置 既可实现仅保留中文和英文 ......

a546036242的博客 5795

±10V ADC 输入电路的高共模差分输入电压

这篇文章分析了±10V ADC输入电路的设计需求与挑战,重点讨论了高共模差分输入电压的处理方案。文章首先明确了设计目标,即安全转换±10V差分信号并保持信号完整性,同时克服高共模电压、阻抗匹配和噪声优化等难点。随后详细比较了仪表放大器和差分放大器的性能特点,并提出了器件选型理论。在信号链架构部分,文章通过公式推导阐述了增益设置、共模抑制设计和输入阻抗匹配等关键技术。此外,还建立了噪声源模型,提出了噪声优化措施。最后,文章总结了设计验证方法,并扩展了在工业保护和生物电信号采集等场景的应用。该设计强调根据具体应

泛红尘的博客 1959

51单片机智能小车

最近学校举办了一个智能小车比赛,比赛内容为用手机蓝牙控制小车拥有5个功能,分别是超声波舵机避障,测距(显示在LCD1602上), 红外跟随,循迹还有蓝牙控制小车前进后退左转又转以及停止。 文章目录 蓝牙控制所有功能 一、蓝牙控制前进后退左转右转停止 二、舵机超声波避障加测距 三、红外跟随 四、循迹 五、代码部分 六、完整代码 前言 基于51单片机的智能小车是比较基础的小车,很适合初学者学习 提示:以下是本篇文章正文内容,下面案例可供参考 一、整体思路 这款小...

m0_55977420的博客 1万+

Android之APK 瘦身

优化和减小APK文件的大小可以提升应用的下载速度和用户体验。

追梦的鱼儿 1398

别再让CPU干GPU的活了:CST Studio Suite GPU加速深度调优指南(从驱动版本到任务管理器监控)

本文深入探讨了CST Studio Suite的GPU加速深度调优方法,从NVIDIA驱动版本选择到系统级资源管理,再到实时监控与瓶颈诊断技术。通过科学的驱动优化、GPU资源管理策略和高级调优技巧,显著提升仿真效率,特别适合电磁仿真工程师和硬件加速需求的专业用户。

weixin_28740299的博客 164

Android APK优化系列瘦身篇:实战一个APK从11MB压缩到4MB,APK无用资源去除与代码压缩、混淆,瘦身维度的选型分析

SVG一般是用于纯色的图标;svg至少比jpg小一半,图片越大,体积越明显。Webp一般用与网络传输的图片;PNG格式也常用于屏幕截图和界面设计稿的保存。由于它支持透明背景和多种颜色深度,可以确保设计稿在不同设备和环境下的显示效果一致。由于JPG格式的广泛支持和较高的压缩率,它成为网络上共享图片的首选格式之一。Android应用中的图片分享功能通常会使用JPG格式来发送图片。所以我们可以将图片转换成对应的格式,会减少体积。

前期后期 4282

【Qualcomm高通音频】音效调试_录音文件播放有杂音,如何定位原因?

一、录音播放数据处理过程介绍 (1)TX方向 麦克风(硅麦克风或者主机体麦克风)采集模拟音频信号,经过内部CODEC芯片中的adc转换为数字信号,在经过高通音频DSP处理音效后编码为wav/aac/amr/mp3等格式文件。 (2)RX方向 音频文件经过解码、重采样还原为pcm数据,经过DSP处理音效后送到内部CODEC,然后经过DAC转换为模拟信号,送到喇叭。 二、分析步骤 1...

crow_ch的博客 5971

Win10或Win8下ObjectARX2015 Wizard向导创建项目失败解决方法

[原创]objectARX 2015 Wizard安装向导在Win8/win10下无法创建项目的解决方法总结 by edata @2017-5-1 objectARX 2015 Wizard安装向导在Win8/win10下无法创建项目的解决方法 因为Win8/Win10对系统盘(默认c:)使用了高级权限管理,所以在此盘下操作文件的修改工作都需要管理员权限才行。 基于这个原因,导致非管理员安

edata的博客 7029

Android性能优化之应用瘦身(APK瘦身)

APK瘦身优化的优先级相对来说是比较低的,因为优化后也并不能明显的看到有什么好处,这一块主要影响转换率,应用越小, 可能用户下载的意愿就越高,另外在进行预装时,也有大小的要求。

fumeidonga的博客 1938

TS808效果器制作教程

TS808效果器制作教程 可以在立创商城购买到大部分的电阻电容和IC,音频接口,踩钉,电位器和电源接口可以去某宝看看都买得到的。链接https//pan.baidu.com/s/1QId1eIE3fJ2u5NLBSISvGA。安装过程过于繁琐,把所有元器件按照图纸焊接完成就可以调试了,祝你们成功!这是TS808经典效果器制作过程的记录。IC是JRC4558。...

qq_18948149的博客 3426

Android APK 极限瘦身:从构建链优化到架构演进

APK 瘦身不是一蹴而就的,而是一套组合拳。构建层(语言包剔除)。兜底层:配置 res/raw/keep.xml,防止反射资源误删,强杀第三方库无用资源。代码层:用 @IntDef替换所有枚举。架构层:ABI 分包 (splits) 或 AAB 动态分发。将Lint 检查(Unused Resources)集成到 CI 流水线中,让包体积治理常态化,才是大厂应用保持轻盈的秘诀。

allk55的博客 955

OpenHarmony可信执行环境:TEE模块源码分析与实现原理

TEE(Trusted Execution Environment)是OpenHarmony系统中的安全执行环境,用于提供隔离的安全执行环境,保护敏感数据和操作。OpenHarmony的TEE模块基于OpenTrustee实现,采用微内核架构,为系统提供可信执行环境支持。OpenHarmony TEE模块是一个复杂的安全系统,通过提供隔离的执行环境保护敏感数据和操作。

m0_67505153的博客 548

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android性能优化之APK瘦身方案

一. 压缩图片 国外的网址:无损压缩 https://www.tinypng.com/ 缺点:上传任何未发布产品的内容到外部网络,都有可能引起数据泄漏, 二.使用Android Lint分析去除无用资源 备注:删除的如果是有用到的,Studio会提示 删除的一些无用的,有时候也会导致问题,xml不报错,编译的时候会报错 1. Analyze - -&gt; Run Inspection...

kdsde的专栏 331

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Apk 极限压缩(说点不一样的)

1.引言 Readhub+ 发布后,后台有人留言要源码的,还有人问 Apk 怎么压缩的。但是目前还不打算开源,所以没有源码。不过倒是可以分享一下我在压缩 Readhub+ Apk 的一点小小的心得。 关于 Apk的压缩与优化,这是一个老生常谈的话题了。大家耳熟能详的方法就有很多,比如开启混淆,压缩图片,使用 SVG,去除无用库,使用 AndResGuard 之类的。这些网上已经有太多教程了,我...

weixin_34200628的博客 274

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

APK体积极限压缩优化瘦身

查看APK结构Build->Analyse Apk 未做处理的APK.jpg 开启代码混淆 混淆模板 release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard...

SolarLove的博客 554

Android之安装包极限瘦身

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/fangy_sd/article/details/72803940 </div> <link rel="stylesheet" ...

sulove999的博客 278

Android-APK极限压缩

Android-APK极限压缩webp解码耗时对比编码耗时对比极限压缩原始APK大小21.6 MB第一步:图片转webp21.4MB,小了一点第二步:减少国际化(去除多种语言)21.3MB第三步:减少CPU架构平台9.92MB第四步:移除无用资源可以用这一种:Lint检查9.82MB第五步:开启混淆8.02MB第六步:开启删除无用资源(与Lint不同)7.68MB第七步:微信和科技(AndResGuard)6.72MB webp WebP最初在2010年发布,目标是减少文件大小,但达到和JPEG格式相同的图

weixin_43506260的博客 1072

Android性能优化之APK-极限压缩(资源越多,效果越显著)

如果您有想要保留或舍弃的特定资源,请在您的项目中创建一个包含标记的 XML 文件,并在tools:keep属性中指定每个要保留的资源,在属性中指定每个要舍弃的资源。这两个属性都接受逗号分隔的资源名称列表。您可以使用星号字符作为通配符。例如:将该文件保存在项目资源中,例如,保存在。构建不会将该文件打包到 APK 之中。指定要舍弃的资源可能看似愚蠢,因为您本可将它们删除,但在使用构建变体时,这样做可能很有用。

2401_85730870的博客 812

Android APK瘦身方法小结

众所周知,APP包体太大,推广难度也会加大,用户不太喜欢下载太大的APP,所以降低包体是一项非常必要的事情,也是最近公司的APP需要降低包体,所以总结下自己知道的降低包体的方法。 一. 压缩图片 基本每个APP都需要用到相当多的图片,而这些图片在包体中了占据了不少的空间,特别是有些图片大小到达上百k的,加几张就吃不消,所以要对图片进行一定程度的压缩,这里推荐一个网站 --- TinyP

Con9 7176

android透明色_类比于微信,如何对Apk进行极限压缩,谈下Android压缩8大步

面试官: 类比于微信,如何对Apk进行极限压缩,谈下Android压缩8大步心理分析:面试官是非常注重性能优化的,考求职者是否具备APK压缩技能。**求职者:**应该从每一步压缩开始,压缩的过程本质是挤牙膏的过程,一步一步挤。将Apk压缩分为8个步骤简介随着项目的不断迭代,代码量跟资源文件不断增多。那么就会出现打包后的 APK 文件越来越大,如果突然有一天你们老板或领导叫你优化 APK 大小,你还...

weixin_39816141的博客 192

那些你不知道的APK 瘦身,让你的APK更小

原文链接:http://blog.youkuaiyun.com/vfush/article/details/52266843 目录(?)[-] Android 之美 APK 瘦身减少APK的大小分析APK的大小 使用Android Studio 22NimbleDroidClassShark 对APK进行瘦身 对资源进行极限压缩 使用WEBPSVG图片资源格式利用A

My'is android 历程 888
上一篇: 性能优化之App启动黑白屏优化
下一篇: Android 7.0 fileprovider使用以及遇到的坑
VictorFactory
博客等级 码龄10年 35粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值