| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 基于APK加速启动时间的Android系统资源优化 -> 正文阅读 |
|
[移动开发]基于APK加速启动时间的Android系统资源优化 |
为了尽可能减?应?的??,我们应该在发布版本中移除不使?的代码和资源。 另外还存在两个 优化?向可以?来缩减应?程序的占?空间,?项是使?混淆处理功能,该功能会缩短应?的类 和成员的名称;另?项是使?优化功能,该功能会采?更积极的策略来进?步减?应?的??。本?将介绍如何通过APK的资源优化来减轻应?程序的占?空间从?节省?户资源。 提出问题?先使?友盟+推出的产品U-APM来实际测试应?程序在不同的设备上的使?情况: 从图中可以看出应?程序在启动时间上还存在优化空间,下?步我们将读取应?程序的内存分配,确定能从哪些?向??对资源进?优化,从?加快启动时间。 为了对以上?个指标进?详细分析,我们使?了Android 窗?上的 Memory 选项卡, 它将向我 们显示随时间在堆上分配的数据量: ?图中显示发?了 GC 事件, 删除了未使?的对象并释放了堆上的空间。 在左侧,我们看到堆中实例的直?图,按类名分组。对于每?个,都有分配的对象数量、 这些实例的??(浅层??)以及这些对象在内存中保留的??。后者告诉我们如果这些实例被释放 ,可以释放多少内存。这个视图让我们对应?程序的内存占?有?个重要的了解,帮助我们识别? 型数据结构和对象关系。这些信息可以帮助我们构建更?效的数据结构, 解开对象连接以减少保 留的资源,并最终尽可能地减少资源占?。 随后,我们使?单个布局?件构建?个最?的? 使?? ?. 运? 根据此输出,在 APK 中存在 3 次未压缩的路径和 1 次未压缩的仅名称。 输出中出现的中间两次来? aapt dump --values resources 显示 Package Groups (1) APK 包含 baksmali dump <(unzip -p build/outputs/apk/release/app-release-unsigned.apk classes.dex) 显示? 这是?于将 优化资源Android Gradle 插件 4.2 引?了?个 ?先是? 该res类别代表我们的单个资源?件,其??下降了28个字节。 该arsc类别?于 这两部分代表资源数据库的代码和内容。没有变化,我们可以推断优化没有影响 最后显示了优化的效果。我们的布局资源的?件名被明显截断并移出 在? 输出? Package Groups (1) APK 中路径的所有三个出现现在都更短, 从?节省了 36 字节。 虽然 36 字节是?个?常?的 数字, 但整个?进制?件只有 2, 118 字节。 36 字节的节省了 1.7% 的资源。 除了数量之外,资源?件的名称更具描述性 (这是说它们更?的?种奇特?式) 。? 没有资源优化的构建与启?它的构建进??较: 资源优化使 APK ??节省了0.76%。
在这?,资源优化能够将 APK ??减少2.0%! 通过使? 我们再?次达到了 APK ??缩减 2.0% 的程度 APK签名APK 签名有多个版本,如果您的版本 在为原始单布局应?程序创建和配置密钥库后,转储清单?件 unzip -cbuild/outputs/apk/release/app-release.apk META-INF/MANIFEST.MF 显示以下签名: Manifest-Version: 1.0 Name: AndroidManifest.xml Name: classes.dex Name: res/eA.xml Name: resources.arsc 每个?件的完整路径出现,使每个资源路径的总出现次数达到四次。由于较短的名称将再次导致 此?件包含更少的字节, 因此资源优化在签名中具有更?的影响。 根据资料显示, 这??法可以节省 1-3% 的APK ??。 根据实际测试 这个范围似乎是正确的。最终节省的费?将取决于 APK 中资源?件的??和数量。 作者:杜洪林 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:58:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |