新增功能:支持APK补丁大小估算工具中的逐个文件更新

降低APK大小一直是过去一年的热门话题。有很多原因可以解释:无论您是建立数十亿还是在昂贵且不可靠的网络上覆盖功能较弱的设备的用户,或者您只是尝试优化您的应用,每个人都可以享受较小的APK尺寸,更快的下载速度和更短的安装时间倍。

与您的应用大小相关的费用有所不同:

  • 您上传到Google Play的文件大小(原始APK大小)
  • 初始下载大小
  • 设备安装尺寸
  • 更新下载大小

我们发布了很多指南,解释了如何减少初始和设备上的APK大小,包括新的文档页面我的I / O谈话文章,它们解释了如何优化资源,缩小代码并定制APK到用户的交付'使用Multi APK等技术的设备。

这一切都很棒,但用户通常会在每个设备上安装一次应用程序,然后通过Play商店下载定期更新,这就是优化应用更新大小同样重要的原因。

针对应用更新尺寸进行优化

关于使应用程序更新更小的最好的部分是它自动发生了很多。由于Android Studio打包APK的方式有所改进,以使后续版本尽可能相似,Play商店可以计算出较小的增量更新。此外,在Play商店中引入新算法(例如最近的逐个文件修补)有助于将应用更新大小平均降低65%。

要记住的重要一点是不要干扰Android Studio和Play中的机制。

如果您使用最新的(至少2.2+)Android Studio / Android Gradle插件来构建您的发布APK,并且之后不进行修改,那么您应该很高兴。

不要使用自定义ZIP编码器设置压缩APK,也不要使用Zopfli重新压缩您的APK,否则您将错过File-by-File更新带来的巨大节省。

跟踪APK和更新大小

既然您知道为什么以及如何做正确的事情,是否有一种简单的方法来跟踪您的APK大小?您可以更改应用程序,修复错误并引入新功能,在此过程中添加资产和库,这是正常的。如何预测下次更新对用户的影响程度?

我们以几种方式表达这些信息。首先,这也是用户会看到的内容,Play Store 在Android上的应用程序列表页面上显示下载大小,这将成为已安装应用程序的用户的更新大小。

APK补丁大小估算器

对于开发人员而言,在发布之前能够看到该数字会更为理想,这就是为什么我们开源了一个名为APK patch size estimator的工具。

它是一个命令行工具,因此您可以将其集成到Continuous Integration服务器中并解析输出以包含在报告中,或通过为其提供两个这样的APK来手动调用它:

python apk_patch_size_estimator.py --old-file old.apk --new-file new.apk
复制代码

这是输出的一个例子:

磁盘上的新APK大小:18,271,850字节[17.4MB]
估计新安装的下载大小:全新APK(gzip)大小:16,339,603字节[15.6MB]
估计旧APK的更新下载大小,使用Bsdiff:Bsdiff补丁(gzip)大小:2,989,691字节[2.85MB]
估计旧APK的更新下载大小,
使用逐个文件:逐个文件修补程序(gzip)大小:1,912,751字节[1.82MB]
复制代码

APK补丁大小估算器实现了Play商店使用的当前压缩和增量算法,并且可以估算新安装的初始APK下载大小(它与原始APK大小不同,因为Play商店可能会应用额外的压缩)和delta补丁下载大小。我们最近更新了该工具以支持新的File-by-File更新,因此您也可以对此进行估算。

为什么估计而不是确切数字?Play商店不断发展,我们经常测试可能为用户保存数据的新压缩方法。我们的目标是在完全推广到生产后,使用任何新方法使APK补丁大小估算器保持最新。

顺便提一下,值得一提的是,对于想要了解应用程序的哪些部分在版本之间增长(或缩小)的开发人员,还有一个交互式“比较”工具,作为Android Studio中APK Analyzer的一部分提供。

在Android Studio 3.0中,我们更新了此工具,以选择性地显示逐个文件的更新大小。

Android开发之跟踪应用更新大小相关推荐

  1. 使用Android开发工具23版更新Eclipse

    本文翻译自:Update Eclipse with Android development tools v. 23 I updated Eclipse with the new SDK tools ( ...

  2. Android开发之自定义AlertDialog的大小

    老套路先看效果图: 再来看下代码: package com.tm.live.ui.dialog;import android.app.Activity; import android.support. ...

  3. Ubuntu 之Android 开发配置大全『更新』

    1.到 Sun 的官网下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 选择 ...

  4. Android开发——Android手机屏幕适配方案总结

    0. 前言 Android的屏幕适配,即使得某一元素在Android不同尺寸.不同分辨率的手机上具备相同的显示效果,这个问题一直以来都是我们Android开发者不得不面对的问题.本文参考了很多前人的博 ...

  5. Android开发人员不得不收集的代码(持续更新中)(http://www.jianshu.com/p/72494773aace,原链接)

    Android开发人员不得不收集的代码(持续更新中) Blankj 关注 2016.07.31 04:22* 字数 370 阅读 102644评论 479喜欢 3033赞赏 14 utilcode D ...

  6. Windows11 Android开发相关记录(持续更新...)

    Windows11 Android开发相关记录(持续更新-) 本章节主要记录安装好Windos系统后开发环境搭建及其心得. 以及开发常用软件和相关配置. 以下属于个人做法,仅供参考: 文章目录 Win ...

  7. 《阿里巴巴Android开发手册》v1.0.1更新,优化部分内容和示例代码

    摘要: 春节余味尚未消,我们为移动开发者准备了一份迟到的新年礼物--<阿里巴巴Android开发手册>,继<阿里巴巴Java开发手册>之后,阿里巴巴开发规范家族又添一丁,「阿里 ...

  8. Android开发学习持续更新中

    Android开发 单个Activity界面内的操作 控件1TextView控件使用 控件2Button控件使用 1首先对于android的按键格式 2对按键监听事件进行绑定 控件3EditText文 ...

  9. Android开发固定app图标大小,Android和IOS开发图标、启动页尺寸

    最近项目在做android和ios的项目,设计师让我给出图标的尺寸,于是查了一下尺寸. 一.开发中的实际情况: 第一步:产品经理和UI设计师制定好UI规范,然后开始做图标做颜色做尺寸等一系列和APP界 ...

  10. Android开发本地及网络Mp3音乐播放器(二十)歌曲下载完成后通知主界面更新本地音乐

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51448597 项目源码(打赏5积分请点这边):http://download.csdn ...

最新文章

  1. IDEA自动生成对象所有set方法
  2. Storm Trident示例function, filter, projection
  3. linux命令telnet
  4. Cookie的设置获取和删除
  5. android volley框架详解,android通信框架volley详解(一)
  6. 使用fastcgi_cache加速Nginx
  7. 《越狱》的中国隐秘流行
  8. Ubuntu系统接入移动硬盘后打不开问题
  9. 1984-1999:中国电影的黄金十五年
  10. 高通平台ITS:sensor_fusion test_sensor_fusion.py Fail
  11. error: failed to push some refs to ‘xx.git‘ hint: Updates were rejected because the tip of your curr
  12. 除了微信多开,这款插件还能…
  13. JSTL【一】C标签的使用
  14. linux安装cacti
  15. 【愚公系列】2022年12月 使用win11系统自带SSH,远程控制VMware中Windows虚拟机系统
  16. 蓝桥杯每日一练专栏导读
  17. 移动互联网现状:手机人的网上生活
  18. 如何在html中引入一个仪表盘,仪表盘.html · 一头大水牛/前端每日总结,积累点滴! - Gitee.com...
  19. 虚拟现实vr技术靠哪些设备进行空间定位
  20. 机器人瓦力材质库下载_瓦力2020材质库下载 3ds max瓦力材质库2020最新版(支持VR4.1+Gamma2.2) 下载-脚本之家...

热门文章

  1. 常用Linux命令(持续更新)
  2. 李宏毅机器学习——深度学习的Tips
  3. Netty的并发编程实践4:线程安全类的应用
  4. 蒋涛:《Orange’S:一个操作系统的实现》属于真正Hacker的
  5. IRP请求的完成与返回
  6. 损失函数、tensorflow2实现——Python实战
  7. 统计处理包Statsmodels: statistics in python
  8. csv 逗号数量不一样_lexin_common系列之CSV
  9. 仿ios桌面vivo_原生万物,生态共赢丨永中移动Office为vivo文档提供定制版解决方案...
  10. 中位数±四分位数表达_Python数据分析:强大字符串处理工具,正则表达式