APK瘦身需要考虑的方面

2024-05-27 20:32
文章标签 需要 apk 方面 考虑 瘦身

本文主要是介绍APK瘦身需要考虑的方面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先,AndroidStudio2.2以后的版本可以直接把一个apk文件拖拽到as中打开一个apk文件,查看它的内部组成结构,以及各自占用的内存大小。也可在build-analyze apk打开。

其中,占用内存从高到低排序显示,通常情况依次为:

classes.dex,res,lib,assets,resources.arcs,META-INFO,manifest.xml

因此,APK瘦身也就是从这几个文件着手。

1、开启代码混淆 minifyEnabled true,并配置proguard混淆规则。开启代码混淆后,会提出冗余的类,方法,属性,并重命名各种标识符。

2、删除未使用的第三方框架和依赖库,不要为了一个小功能使用一个庞大的三方框架。

3、使用lint工具清除未使用的资源

4、只保留一套资源图片,例如xhdpi

5、删除无用的语言defaultConfig { resConfigs "zh" },只保留中文

6、使用tinypng对图片进行压缩

7、使用jpg格式,对于某些不需要透明度的大图片,例如启动页和活动广告页,用jpg格式代替png

8、4.0以上系统使用google的webp图片

9、删除armeabi-v7a的so包,非必要情况下也可删除x86的so包。

10、纯色背景或渐变背景可以使用shapedrawable

11、使用.9格式图

12、通过对一张图片的旋转达到复用目的。或者使用colorfillter改变颜色进行复用。

13、支持插件化,动态加载

这篇关于APK瘦身需要考虑的方面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1008518

相关文章

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

分布式系统的主要考虑

异构性:分布式系统由于基于不同的网路、操作系统、计算机硬件和编程语言来构造,必须要考虑一种通用的网络通讯协议来屏蔽异构系统之间的禅意。一般交由中间件来处理这些差异。缺乏全球时钟:在程序需要协作时,它们通过交换消息来协调它们的动作。紧密的协调经常依赖于对程序动作发生时间的共识,但是,实际上网络上计算机同步时钟的准确性受到极大的限制,即没有一个正确时间的全局概念。这是通过网络发送消息作为唯一的通信方式

Vue2电商项目(二) Home模块的开发;(还需要补充js节流和防抖的回顾链接)

文章目录 一、Home模块拆分1. 三级联动组件TypeNav2. 其余组件 二、发送请求的准备工作1. axios的二次封装2. 统一管理接口API----跨域3. nprogress进度条 三、 vuex模块开发四、TypeNav三级联动组件开发1. 动态展示三级联动数据2. 三级联动 动态背景(1)、方式一:CSS样式(2)、方式二:JS 3. 控制二三级数据隐藏与显示--绑定styl

使用WebP解决网站加载速度问题,这些细节你需要了解

说到网页的图片格式,大家最常想到的可能是JPEG、PNG,毕竟这些老牌格式陪伴我们这么多年。然而,近几年,有一个格式悄悄崭露头角,那就是WebP。很多人可能听说过,但到底它好在哪?你的网站或者项目是不是也应该用WebP呢?别着急,今天咱们就来好好聊聊WebP这个图片格式的前世今生,以及它值不值得你花时间去用。 为什么会有WebP? 你有没有遇到过这样的情况?网页加载特别慢,尤其是那

智能工厂程序设计 之1 智能工厂都本俱的方面(Facet,Aspect和Respect)即智能依赖的基底Substrate 之1

Q1、昨天分别给出了三个智能工厂的 “面face”(里面inter-face,外面outer-face和表面surface) 以及每个“面face” 各自使用的“方”(StringProcessor,CaseFilter和ModeAdapter)  。今天我们将继续说说三个智能工厂的“方面” 。在展开之前先看一下三个单词:面向facing,取向oriented,朝向toword。理解这三个词 和

内置带so的APK为系统APK方法

(1)若内置为可卸载的APK,可以无需解压出lib直接编译就可以 具体参考http://blog.csdn.net/a462533587/article/details/46380795 (2)若内置为system APP,上述blog也有两种方式: 方法一:   如下例,在Android.mk中添加并配置变量(注意路径对应): LOCAL_PREBUILT_JNI_LIBS = \

插件maven-search:Maven导入依赖时,使用插件maven-search拷贝需要的依赖的GAV

然后粘贴: <dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>8.0.26</version> </dependency>

js基础需要注意的点

1 js中单引号和双引号都能创建字符串,但是html的元素属性规定必须用双引号,所以js优先用单引号定义字符串。

html方面笔记

title和alt区别:title是鼠标放在对象上显示提示信息,alt是在image不能正常显示的时候显示的文字,即替换图片的文字;有的浏览器貌似把二者搞混淆了。