Android 查阅博客1_app优化_1大小

Android App Bundle
(google play 商店发布应用的话,可自行深入了解下,这里不做介绍)
http://mp.weixin.qq.com/s?__biz=MzAwODY4OTk2Mg==&mid=2652047353&idx=1&sn=c17ce6762ef7beeb42024fcb08552d3d&chksm=808ca7bcb7fb2eaae30a72a2f7bfb5a9c741e79ba9624a4b897a7b4d7aa22ee720294bf7a6c8&mpshare=1&scene=23&srcid=0105Thyn3mqxe89JHD3wNSrf#rd
作为开发者,
希望确保用户尽可能活动最佳体验,并确保自己的应用尽可能在所有设备上运行。
希望尽可能多的用户安装自己的应用。
希望他们持续使用自己的应用。
不希望用户因为自己无法控制的原因卸载自己的应用。
难以忽视的“大”问题:
应用的体积越来越大。
自2012年以来,应用体积平均增长了5倍。
原因:
- 开发者希望为应用添加炫酷功能和新内容,以确保用户留存/回归并保持业务增长。
- 设备性能越来越好,希望把一些闪亮的新功能利用起来。
- 设备生态系统更加多样化,开发者为了能让自己的项目,在大屏幕和小屏幕上、不同种类的CPU上流畅运行,进行复制应用中的代码和资源等。
Google Play 上的应用大小与其安装转化率呈负相关关系。这意味着随着应用变大,其安装率会下降。

原因:
- 许多用户的设备上没有足够的可用空间。
- 用户可能在使用存储空间一般的入门级设备。
- 即使拥有高端是河北的用户而言,他们的照片、视频和其他媒体文件的品质也在逐渐提升,从而占据了越来越大的空间,设备上的可用空间正在逐渐紧缩。
- 用户也不希望一边用着昂贵的流量套餐,一边等待大型应用去慢慢连接网络。
较大体积应用的安装率会下降,应用大小是推动卸载的主要动力。
当尝试安装应用时,手机发出警告,需要卸载部分不经常使用的应用,释放空间来安装新应用?用户通常会卸载体积最大的应用和游戏。
针对上述问题,开发者能采用的解决方案很有限。
可以在单个版本中为每个设备配置构建多个APK。但当想要针对不同屏幕尺寸和CPU架构进行优化,同时针对32位和64位时,情况就会失控---最终可能为每个版本构建数百个APK。 大多数开发者不会这样子做。
许多人只是将所有内容都放在一个“胖胖的”APK中,最终导致用户设备上存在这大量未使用过的内容。
而且,即使使用多重APK,也无法针对语言进行优化。即使用户只需要一种或两种语言,您也必须在每个APK中包含针对每个设备的所有翻译字符串,这样会浪费更多空间。
总结上述问题:开发者的困境显而易见了:
增加应用的体积,但可能导致较低的转换率和较高的卸载风险;
使用多重APK,会降低版本迭代效率并导致疲惫不堪,还可能花费大量的时间权衡不同的功能之间的取舍,以避免增加应用体积。
使用 Android App Bundle 的开发者的APK大小平均比之前采用的“完整APK”小 3.5%
(“完整APK”是指一个APK包含了Android App Bundle 支持的所有设备配置和语言所需的一切)。
Android App Bundle 的另一个重要创新是模块化设计。意味着可以向应用添加模块,包含能够按需加载其他应用功能。
应用变大的一个重要原因:功能的增长。
现可以无需在安装时增加应用的大小,添加更多功能。
使用动态功能也是在Android 上动态加载代码的安全做法,因为动态功能模块的扫描和检查方式与Google Play Protect扫描和检查应用本身的方式相同。
适用动态功能进行编码的功能:
- 安装时不需要的大型功能:可以按需加载这些功能,或者告诉Google Play 推迟安装它们,即在后台安装它们。可以通过这种方式加载高达100MB的功能。在发布时,不属于核心应用体验范畴的高级功能或附加组件很适合这样处理,例如:付费高级功能、个性化选项、AR功能等。
- 针对特定受众群体的功能 :并不是每个受众群体添加的功能,可以将其作为动态功能进行创建。例如:商业应用可以隔离动态功能模块中的销售功能,只有购买功能在安装时才会分发给每个用户。 需要销售功能的小部分用户群体(销售人员)可以在需要时下载和访问这个功能。 一些开发者还在探索动态功能,避免为仅仅是略有不同的用户群体提供为数过多的不同应用变体。
- 很少使用的功能:例如:应用包含一次性身份验证或信用卡扫描功能,那么能根据用户需要加载此功能,并在使用后立即将其卸载,就可以有效避免增加应用体积。还可以避免占用应用生命周期内未使用的空间。
Android App Bundle 通过动态功能实现应用的高度配置化,还支持免安装应用(Instant Apps)。
Android App Bundle的介绍
限制
- 仅限于通过 Google Play 发布的应用,(Google进一步巩固自身生态)
- 需要加入到 Google 的 beta program enroll your app in app signing by Google Play in the Play Console
- 最低支持版本Android 5.0 (API level 21)
- 低于Android 5.0 (API level 21) 的版本GooglePlay会优化Size,但不支持动态交付。
成本
- 需要升级到Android Studio 3.2修改工程以便支持App Bundle格式
- 集成Play Core Library
作者:修塔寻千里
链接:https://www.jianshu.com/p/3754d4e7f4e5
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

学习Android App Bundle的使用:需要在Google Play 应用商店提交应用。注册Google开发者账号:25美元。
https://www.jianshu.com/p/e40e78a279b7
Android App Bundle != APK
Android App Bundle 与 APK 有一些相似之处,但它们是截然不同的,且用于不同的目的。
- APP Bundle(应用束)纯粹是为了上传设计的文件,用户无法直接安装和使用它。它是一个zip文件,Google Play 从中生成优化的APK并将其提供给设备进行安装。
- 应用束包含用于帮助工具生成 APK 的元数据文件 (这些元数据文件最终不会出现在 APK 中),此外还拥有严格的验证标准。
从 APK 切换到应用束是一个无缝过程。如果您使用 Android Studio 3.2 及更高版本,那么您只需点击几下即可生成已签名的应用束,将其上传到 Play Store,即可让用户开始享受更小尺寸 APK 所带来的便利。由于您的代码库没有重大变化,因此您无需担心会有什么问题发生。Android App Bundle 的早期采用者已经发现,动态交付显著减小了他们的应用体积。一些开发者甚至可以将他们的 APK 大小减半
---------------------
作者:ltym2014
来源:CSDN
原文:https://blog.csdn.net/ltym2014/article/details/83154361
版权声明:本文为博主原创文章,转载请附上博文链接!
Android 查阅博客1_app优化_1大小的更多相关文章
- Android 查阅博客2_APT
https://mp.weixin.qq.com/s/3zrAzOUGpovRRbuYnce3uw APT(Annotation Processing Tool) 即注解处理器,是一种注解处理工具,用 ...
- 记录android开发博客
1.一国外android开发博客,值得关注 https://blog.stylingandroid.com/page/2/ 2.一个app设计博客,很赞 http://androidniceties. ...
- 【新版】Android技术博客精华汇总
[新版]Android技术博客精华汇总(原文链接内持续更新) http://www.apkbus.com/thread-313856-1-1.html Kotlin Kotlin学习资料汇总 http ...
- Hexo博客主题优化
Hexo博客主题优化 添加背景图 在 themes/*/source/css/_custom/custom.styl 中添加如下代码: body{ background:url(/images/bg. ...
- 最近忙科研立项 & 对博客的优化
最近一直在忙科研立项.... 立项书 & 答辩 ... 接下来,将对博客进行优化... (1) 依据书来学习的[需要大量截图],将用微软的 OneNote 写笔记,然后打包成pdf,上传到我的 ...
- 值得订阅的Android 开发者博客
链接:http://www.zhihu.com/question/19788650/answer/60771437来源:知乎 Google 官方[Android Developers Blog](An ...
- android fragment 博客 学习记录
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和 ...
- 【转】android fragment 博客 学习
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fra ...
- Android相关 博客收藏
#1 Android 网络编程 参考博客 :http://blog.csdn.net/kieven2008/article/details/8210737 #2 Could not find com. ...
随机推荐
- 链接属性external的使用
//demo1.c #include<stdio.h> ; //static int x = 10; void print(void) //static void print(void) ...
- Linux命令学习之路——内容剪切:cut
使用者:所有角色 用法:cut [ -bcdfn ] [ --complement ] filename 作用:截取文件中的部分字段用于展示或存储到新文件中 应用场景: 1.内容展示 : 截取一个或多 ...
- Angular新手容易碰到的坑
在Angular群里回答新手问题一段时间了,有一些Angular方面的坑留在这里备查,希望能对各位有所帮助.这个文章将来会随时更新,不会单独开新章,欢迎各位订阅. Q1.<div ng-incl ...
- 后台获取用户登录token 和获取前端参数方法
//获取request请求中所有参数 Enumeration<String> names = request.getParameterNames(); HashMap<String, ...
- Json序列化,有多对一和多对多关系时出现的问题
/** * 这是一张 单表中的双向一对多,多对一 关系.自己跟自己一对多多对一 */ @Entity @Table(name="tb_test") public class Cre ...
- Eclipse 护眼背景色设置
链接地址:http://blog.chinaunix.net/uid-27183448-id-3509010.html 背景颜色推荐:色调:85,饱和度:123,亮度:205 文档都不再是刺眼的白底 ...
- cordova日期插件的使用:cordova-plugin-datepicker
1. 添加插件:cordova plugin add cordova-plugin-datepicker; 2.插件的主体样式设置: 3.以上5中样式的截图: THEME_TRADITIONAL的样式 ...
- 如何避免提交页面,信息未填写完善 就出现注册成功提示 基于js
基于bootstrip做好一个页面后,出现如下效果图 这个页面是未经过任何后端处理的页面,如果直接填写一个用户名 或者不填写任何东西都可以注册成功的,先来演示只输入一个用户名 就要可以注册成功的. 点 ...
- CVE-2017-11882 POC 全版本通杀
POC https://github.com/embedi/CVE-2017-11882
- 剑指offer 2.字符串 替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. public class Re ...