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 
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/liyanli-mu640065/p/10225251.html