Android性能优化-Apk瘦身(2)

Android 打包aar并删除或移动指定文件 前言 最近在给一个客户做SDK开发,客户交付的aar要求比较多,比如去掉R.txt文件了,把class.jar改名为我们公司前缀名并移动到libs下,网上查了好多方法都不好用,终于还是找到一个可行的方法,在这里记录一下打包过程。 注:该打包方法用的是gradle中task的copy和zip。 首先我们定义一个task并依赖于’assemble’,将自动打包出来的aar解压到指定文件夹下,在文件夹中直接对文件进行删除和移动操作。 task renameExtractAar(dependsOn: 'assemb 阅读详情

今天我们接上篇Android性能优化-Apk瘦身(1),聊一聊res资源文件的优化。

1、res资源文件优化

随着我们项目功能越来越多,越来越负责,迭代也越来越多,项目中使用的资源文件也越来越多,也越来越复杂。

a、删除无用的资源文件

图片

我们在Android studio中点击Refactor->Remove Unused Resources,

此时出现

图片

这种方式我们是工具觉得这些资源无用的,我们需要有自己的辩证,那些资源能删除,那些资源不能删除,不能删除的需要把还原。

b、当然我们也可以先查看那些资源是无效的。

图片

我们选择Analyze->Run Inspection by Name

图片

在对话框中输入 ununed resoures

图片

此时会输出一个文档,我们可以通过文档去删除对应的文件的。

图片

2、压缩图片文件

a、设计给开发的图片,往往会很大的,我们可以对他进行,目前我们采用比较多的是在https://tinypng.com/
网站中压缩,当然也可以自动化压缩,github上有对用的项目。

b、目前我们切图一般上传到蓝湖上的,最新版的蓝湖提供了压缩功能,我们也可以使用他。

3、资源共享

对于相同资源,一定要复用,例如同样的是返回按钮,不要上传N个返回按钮文件,对于这种文件我们要定期清理,往往在项目开发过程中,这种按钮是五花八门,并且同样的icon上传了N个,严重的增加apk大小。

4、移除未使用的备用资源

我们的一些SDK,往往会把所有地区、所有语言的资源都打包进来的,这种方式的对于SDK来说的是对的,但是我们应用只在中国地区使用,并且只有懂得汉语的人使用,因此对于英文我们就不需要做适配了,此时我们可以合理利用resConfigs功能了,通过它来移除我们不必要的资源文件了。

图片

5、资源压缩

这个是微信开发的一个工具库[(https://github.com/shwenzhang/AndResGuard)

具体说明可以参考[安装包立减1M–微信Android资源混淆打包工具],里面有详细的介绍。

总结

apk大小与我们的获客成本是呈现正相关的关系的,重视Apk大小在我们日常开发过程是基本工作,不能每发一次版,我们的App大小就增加了1M或者更大,有效的控制应用大小要求我们在项目过程中不断去完善自己业务逻辑,改善我们的业务功能,例如通过代码绘制去替代一些简单的图片,同时要求设计人员在设计时要注重资源复用等。

Android APK打包全流程解析与优化实践 APK打包是Android开发中的核心技术环节,涉及编译、资源处理和签名等关键步骤。Gradle构建系统作为现代Android开发的标准工具链,通过Android Gradle Plugin(AGP)实现自动化构建流程。理解aapt2资源编译、D8/R8代码优化、以及V2签名等底层原理,能有效解决构建失败、渠道包定制等实际问题。在工程实践中,结合productFlavors实现多渠道打包,配合ProGuard代码混淆和资源压缩,可显著提升APK安全性和发布效率。本文以Gradle构建系统为核心,详解从基础配 阅读详情

相关推荐

Android性能优化之APK瘦身详解(瘦身73%)

公司项目在不断的改版迭代中,代码在不断的累加,终于apk包不负重负了,已经到了八十多M了。可能要换种方式表达,到目前为止没有正真的往外推过,一直在内部执行7天讨论需求,5天代码实现的阶段。你在写上个版本的内容,好了,下个版本的更新内容已经定稿了。基于这种快速开发的现状,我们app优化前已经有87.1M了,包大了,运营说这样转化不高,只能好好搞一下咯。优化过后包大小为23.1M(优化了73...

aserbao的博客 3万+

APK瘦身之删除多余资源文件

1. 前言移动端项目迭代很频繁,一般半年左右,app包就变得很大,并且包含很多废弃的图片,layout文件,本篇文章主要讲如何快速定位出废弃资源,并快速删除。这次瘦身使用的工作是Android Studio Lint工具 , 用瘦身前APK为21.5M, 瘦身后为18.4M. 瘦身结果为APK大小减少了3.1M(14%)2.准备工作1.Android Studio Lint只能定位出废弃的资源

曹银飞的专栏 5119

[Android 之美] 那些你不知道的APK 瘦身,让你的APK更小

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

fuchenxuan blog 2万+

Android修改aar并重新打包

注:(下面工具,点击名称可进入下载链接,如果链接失效,请百度搜索下载)

s_nshine的博客 3256

Keil 编译输出信息分析:Program size: Code, RO-data , RW-data, ZI-data

一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。如图所示,在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息。

qq_40305944的博客 4580

Mac上除了Homebrew,这几种安装ADB的方法你可能也需要知道(含手动配置避坑)

本文全面解析Mac上五种ADB安装方案,从Homebrew到手动配置,涵盖常见问题解决与环境变量配置。特别针对macOS High Sierra等老旧系统提供专属解法,帮助开发者高效安装Android Debug Bridge(ADB),避免常见陷阱,提升开发效率。

weixin_42546392的博客 322

Android-:想进大厂你必须会的APK瘦身(项目体积优化实战笔记)

APK包结构主要包含assets目录:用于存放需要打包到APK中的静态文件和res的不同点在于,assets目录支持任意深度的子目录,用户可以根据自己的需求任意部署文件夹架构,而且res目录下的文件会在.R文件中生成对应的资源ID,assets不会自动生成对应的ID(在不动业务逻辑,或者代码逻辑的情况下,针对此项很难优化)lib目录:存放应用程序依赖的native库文件, .so的形式存在res目录:res是resource的缩写,这个目录存放资源文件。

2401_87029210的博客 608

Audio2Face进阶玩法:结合LiveLink在UE5中实现MetaHuman全身动画+语音驱动(保姆级配置指南)

本文提供了一份详尽的保姆级教程,指导如何将NVIDIA Audio2Face与Unreal Engine 5的LiveLink功能结合,实现驱动MetaHuman数字人面部表情的同时,无缝融合身体动画。文章详细讲解了从环境准备、插件部署、基础面部驱动测试,到动画蓝图高级配置与多数据流融合的全流程,并分享了性能优化与问题排查的实战经验,旨在帮助创作者打造表情与肢体动作协调统一的生动数字人。

q9w8e7r6t5的博客 198

如何用 AndResGuard 实现 Android 资源极致压缩?微信团队的 APK 瘦身神器全攻略

AndResGuard 是微信团队开发的一款专业 Android 资源混淆与压缩工具,能够通过重命名资源文件、优化资源引用和压缩 APK 体积,帮助开发者显著减小应用安装包大小。无论是对新手还是有经验的开发者,这都是提升应用性能和用户体验的必备工具。 ## 🚀 为什么选择 AndResGuard? 在 Android 开发中,APK 体积过大不仅会影响用户下载意愿,还会占用更多设备存储空间。

gitblog_00153的博客 630

【硬件设计】_基于STM32单片机的智能台灯系统

智能台灯系统是一款多功能的智能照明设备,能够自动调节亮度、监测人体活动、感知环境光照,并具备定时和报警功能,极大提升了用户体验与功能的灵活性,主要包括以下功能:系统提供自动和手动两种模式以调节台灯亮度。在自动模式下,台灯会根据周围光强智能调整;而在手动模式下,用户可通过按键自行设置亮度。利用红外光电开关检测台灯与用户之间的距离,若距离过近,系统将发出报警提示。通过时钟模块设置定时提醒,并在OLED显示屏上显示当前时间,当达到设定的定时时间时,蜂鸣器将发出报警音。

2401_85381181的博客 1735

信息系统项目管理师(高项)重点!

学习高项自己做的笔记

PanJWei的博客 3302

2024年最全Android性能优化之APK瘦身详解(瘦身73%)(2),Android阿里等大厂面试题汇总

看到这篇文章的人不知道有多少是和我一样的Android程序员。35岁,这是我们这个行业普遍的失业高发阶段,这种情况下如果还不提升自己的技能,进阶发展,我想,很可能就是本行业的职业生涯的终点了。我们要有危机意识,切莫等到一切都成定局时才开始追悔莫及。只要有规划的,有系统地学习,进阶提升自己并不难,给自己多充一点电,你才能走的更远。千里之行始于足下。这是上小学时,那种一元钱一个的日记本上每一页下面都印刷有的一句话,当时只觉得这句话很短,后来渐渐长大才慢慢明白这句话的真正的含义。

2401_84545046的博客 976

Android12 适配 usb 触屏

在 Android 系统中,输入设备 IDC(Input Device Configuration)设备描述文件(.idc)是用于配置和定义输入设备行为和属性的文本文件。 该文件通常在`/system/usr/idc/` 或 `/vendor/usr/idc/`,具体位置因芯片厂商SDK而异。一般情况此类文件是预置到系统,开发者 root 权限才能修改这些文件。输入设备 IDC 设备描述文件在 Android 系统中起到了识别、配置、映射和定制输入设备的作用,使得系统能够准确解析和处理各种输入设备的事件,提

weixin_35723192的博客 1234

Android高级面试_6_性能优化

Android 高级面试-6:性能优化1、内存优化1.1 OOM问题:OOM 的几种常见情形?数据太大:比如加载图片太大,原始的图Android 高级面试-7:网络相关的三方库和网络协议等1、网络框架问题:HttpUrlConnection, HttpClie

夜游神 1307

一次搞定 SAP IDoc 失败重处理与安全清理:BD87 实战指南

本文介绍了SAP IDoc错误处理的BD87实战指南。主要内容包括: BD87的核心功能:监控IDoc处理状态并支持人工重处理或标记删除,适用于入站/出站IDoc故障处理。 重处理前的关键步骤: 区分技术错误与业务错误 检查是否允许重复处理 确认日期范围设置正确 标准操作流程:通过BD87选择错误IDoc节点执行重处理,特别适用于状态51的应用错误。 标记删除操作:将无用IDoc标记为可清理状态,后续可通过WE11物理删除或归档处理。 常见问题解决方案:包括权限控制、批量处理优化建议以及自动化定位工具的开发

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 458

华为校招&实习&留学生机试真题目录+算法分类+在线OJ+通过率+视频讲解

全网最新最全华为校招&实习&留学生机试真题题库

m0_73659489的博客 6878

用Qt5.15.2给Android App写界面:一份给C++/Qt开发者的移动端入门配置手册

本文详细介绍了如何使用Qt5.15.2为Android App开发界面,特别针对C++/Qt开发者提供移动端入门配置手册。从开发环境搭建、项目配置到调试部署,全面解析Qt-Android开发的关键步骤和常见问题解决方案,帮助开发者快速实现从桌面到移动端的技能迁移。

weixin_30236595的博客 594

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

9成Android开发者必须收藏的80个开源库,安卓开发面试宝典

你需要知道的 Android 拍照适配方案 https://www.jianshu.com/p/f269bcda335f 你所不知道的Android Studio调试技巧 https://www.jianshu.com/p/011eb88f4e0d 一份系统、全面的安卓进阶学习指南 https://github.com/iwannabetop/Awesome-Android-Learning-Guide 性能优化 Trinea - 性能优化系列总篇 http://www.trinea.cn/a

m0_64314318的博客 2269

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

记录一下面试考题二(Ap性能优化,Activity、Window和View,TLS1.1,TLS1.2)

1,APP性能优化 APK瘦身 将图片转换为 webp 格式 WebP是谷歌提供的一种支持有损压缩和无损压缩的图片文件格式,而且可以提供比JPEG或PNG更好的压缩。在Android 4.0(API level 14)中支持有损的WebP图像,在Android 4.3(API level 18)和更高版本中支持无损和透明的WebP图像。 除去多语言 android{ ... defaultConfig{ ... //只保留英语 resC

十一月Siy 578

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

98%Android开发者已收藏的“80,android开发强化实战pdf

Trinea - 性能优化系列总篇 http://www.trinea.cn/android/performance/ 高建武 - 性能优化篇 http://androidperformance.com/2015/04/11/AndroidMemory-Usage-Of-MAT.html Android 性能优化篇 https://www.jianshu.com/p/388c693c1b58 胡凯 - Android 性能优化典范 http://hukai.me/android-performance-pa

m0_64319000的博客 254

Android性能优化系列之apk瘦身

Android性能优化系列之布局优化Android性能优化系列之内存优化为什么APK要瘦身。APK越大,在下载安装过程中,他们耗费的流量会越多,安装等待时间也会越长;对于产品本身,意味着下载转化率会越低(因为竞品中,用户有更多机会选择那个体验最好,功能最多,性能最好,包最小的),所以apk的瘦身优化也很重要,本篇博客将讲述apk瘦身的相关内容。包体分析在Android Studio工具栏里,打开bu

一个码农的博客 2万+

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

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

fumeidonga的博客 1940

Android性能优化之APK瘦身详解

APK瘦身

qq_33209777的博客 2214

Android性能优化——APK瘦身大全

我们都知道apk是由:. asserts. lib. res. dex. META-INF这几个部分构成的。通常来说我们可以AndroidStudio自带的工具进行APK的资源分析进行我们的瘦身工作,关于工具的使用请参考视频 我们的瘦身也是通过分析APK的组成部分后进行操作,注意,重点来了,下面说说我对瘦身方案的理解,拿出你的小本本记录起来吧~

2401_84009929的博客 958

安卓性能优化之APK瘦身

android { buildTypes { release { minifyEnabled true } } }

weixin_44903941的博客 257
上一篇: Android性能优化-Apk瘦身(1)
下一篇: Android性能优化-Apk瘦身(3)
码农驿站
博客等级 码龄10年 5粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值