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大小的更多相关文章

  1. Android 查阅博客2_APT

    https://mp.weixin.qq.com/s/3zrAzOUGpovRRbuYnce3uw APT(Annotation Processing Tool) 即注解处理器,是一种注解处理工具,用 ...

  2. 记录android开发博客

    1.一国外android开发博客,值得关注 https://blog.stylingandroid.com/page/2/ 2.一个app设计博客,很赞 http://androidniceties. ...

  3. 【新版】Android技术博客精华汇总

    [新版]Android技术博客精华汇总(原文链接内持续更新) http://www.apkbus.com/thread-313856-1-1.html Kotlin Kotlin学习资料汇总 http ...

  4. Hexo博客主题优化

    Hexo博客主题优化 添加背景图 在 themes/*/source/css/_custom/custom.styl 中添加如下代码: body{ background:url(/images/bg. ...

  5. 最近忙科研立项 & 对博客的优化

    最近一直在忙科研立项.... 立项书 & 答辩 ... 接下来,将对博客进行优化... (1) 依据书来学习的[需要大量截图],将用微软的 OneNote 写笔记,然后打包成pdf,上传到我的 ...

  6. 值得订阅的Android 开发者博客

    链接:http://www.zhihu.com/question/19788650/answer/60771437来源:知乎 Google 官方[Android Developers Blog](An ...

  7. android fragment 博客 学习记录

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和 ...

  8. 【转】android fragment 博客 学习

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fra ...

  9. Android相关 博客收藏

    #1 Android 网络编程 参考博客 :http://blog.csdn.net/kieven2008/article/details/8210737 #2 Could not find com. ...

随机推荐

  1. 链接属性external的使用

    //demo1.c #include<stdio.h> ; //static int x = 10; void print(void) //static void print(void) ...

  2. Linux命令学习之路——内容剪切:cut

    使用者:所有角色 用法:cut [ -bcdfn ] [ --complement ] filename 作用:截取文件中的部分字段用于展示或存储到新文件中 应用场景: 1.内容展示 : 截取一个或多 ...

  3. Angular新手容易碰到的坑

    在Angular群里回答新手问题一段时间了,有一些Angular方面的坑留在这里备查,希望能对各位有所帮助.这个文章将来会随时更新,不会单独开新章,欢迎各位订阅. Q1.<div ng-incl ...

  4. 后台获取用户登录token 和获取前端参数方法

    //获取request请求中所有参数 Enumeration<String> names = request.getParameterNames(); HashMap<String, ...

  5. Json序列化,有多对一和多对多关系时出现的问题

    /** * 这是一张 单表中的双向一对多,多对一 关系.自己跟自己一对多多对一 */ @Entity @Table(name="tb_test") public class Cre ...

  6. Eclipse 护眼背景色设置

    链接地址:http://blog.chinaunix.net/uid-27183448-id-3509010.html 背景颜色推荐:色调:85,饱和度:123,亮度:205  文档都不再是刺眼的白底 ...

  7. cordova日期插件的使用:cordova-plugin-datepicker

    1. 添加插件:cordova plugin add cordova-plugin-datepicker; 2.插件的主体样式设置: 3.以上5中样式的截图: THEME_TRADITIONAL的样式 ...

  8. 如何避免提交页面,信息未填写完善 就出现注册成功提示 基于js

    基于bootstrip做好一个页面后,出现如下效果图 这个页面是未经过任何后端处理的页面,如果直接填写一个用户名 或者不填写任何东西都可以注册成功的,先来演示只输入一个用户名 就要可以注册成功的. 点 ...

  9. CVE-2017-11882 POC 全版本通杀

    POC https://github.com/embedi/CVE-2017-11882

  10. 剑指offer 2.字符串 替换空格

    题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. public class Re ...