【Google Play】App Bundle 使用详解 ( 按条件分发 | 国家地区 | SDK 版本 | 设备功能 | 按需分发 | 资源分发 )

news/2024/11/7 21:40:13/

Google Play 上架完整流程 系列文章目录


【Google Play】创建 Google 开发者账号 ( 注册邮箱账号 | 创建开发者账号 )
【Google Play】创建并设置应用 ( 访问权限 | 内容分级 | 受众群体 | 类别及联系方式 | 商品详情 )

【Google Play】App Bundle 使用详解 ( 简介 | 应用内更新 | 即时更新 | 灵活更新 )
【Google Play】App Bundle 使用详解 ( 按条件分发 | 国家地区 | SDK 版本 | 设备功能 | 按需分发 | 资源分发 )


文章目录

  • Google Play 上架完整流程 系列文章目录
  • 一、App Bundle 定制化分发
    • 1、按条件分发
    • 3、按需分发
    • 4、资源分发

一、App Bundle 定制化分发




1、按条件分发


按条件分发 : 为不同类型的用户 , 分发不同的功能 ; 如 : 会员 和 非会员 , 选择设定偏好不同的用户 等用户分类 , 分发不同的内容 ;

开发者可以指定一些条件 , 只有在这些条件都满足的情况下 , 才触发安装某个功能模块 ; 如 : 用户充值 , 买了会员 , 则推送高级会员功能给用户 ;
普通会员 用户没有付费 , 不用提供高级功能 , 下载时只下载普通功能 , 这样可以优化安装包大小 ;


Google Play 支持的分发条件 :

  • 国家 / 地区 : 指定功能对应的国家或地区 ;
  • 最小支持 SDK 版本 : 只有高于指定版本的手机才会安装对应功能 ;
  • 设备功能 : 指定设备功能 , 如是否支持 VR , AR ;

配置按 最小支持 SDK 版本 / 设备功能 条件分发代码示例 : 下面的配置中配置了 , 设备功能 需要支持 AR 功能 , 最低 API 版本是 24 24 24 ;
如果 <dist:install-time> 为空 , 或者没有该节点 , 则该配置对应的模块将会无条件安装 ;

在这里插入图片描述

配置按 国家 / 地区 条件分发代码示例 : 可以指定排除某些国家或地区 , 也可以指定多个国家或地区 ; 用户的国家是根据用户填写的账单地址决定的 ;

在这里插入图片描述


上述的条件安装 , 可以非常灵活的组合使用不同的安装条件 , 所有 安装条件 都被满足时 , 才会安装相应功能模块 ;
在应用中 , 可以调用 SplitInstallManager.getInstalledModules() 获取当前用户安装了哪些模块 ;
开发者进而依据当前安装的模块 , 避免用户非法访问没有权限的模块 ;

SplitInstallManager.getInstalledModules()

应用安装完成后 , 在使用过程中可以再次请求继续安装满足条件的模块 , 不一定必须在应用初次安装时一次性安装完毕所有模块 ;


3、按需分发


按需分发 : 在用户需要的时候为用户分发 , 如 : 用户点击应用内某个按钮 , 启用一个功能 , 此时才触发更新 , 类似于组件化 ;

根据用户的使用偏好 或 使用频率 , 灵活的 安装 / 删除 某些模块 ;


按需分发示例 : 某些功能使用频率很低 , 大多数用户使用频率是 0 0 0 次 ~ 1 1 1 次 , 对于这种应用 , 默认初始不安装该模块 , 如果用户使用到该模块后 , 临时为该用户动态地下载安装该模块 , 用户使用完毕后 , 如果觉得空间紧张 , 可以再次删除该模块 ;

在这里插入图片描述

还有一种常用的情景就是新手入门 , 应用的新手入门中有大量的图片 , 视频资源等 , 非常占用空间 ;
用户在初次进入应用时 , 启动新手入门功能 , 等用户使用完毕后 , 将新手入门删除即可 , 不用继续占用如此多的控件 ;


按需分发代码示例 : 该模块在 AndroidManifest.xml 清单文件中 , 设置的安装条件是无条件安装 ;
当用户完成新手入门流程后 , 可以使用 SplitInstallManager.deferredUninstall(“onboarding”) 代码移除新手入门模块 ;

SplitInstallManager.deferredUninstall("onboarding")

在这里插入图片描述


4、资源分发


资源分发 : 将程序的代码 , 资源 打包到 aab 文件中 ;
在 Android 应用中 , 占用空间最多的就是资源文件 , 代码的占用空间一般都很少 ;
许多应用的资源达到数百 MB , 甚至 1GB , 初次下载时下载的很慢 ;


资源包 : 为了支持上述使用场景 , Google Play 引入了 Assets Pack 资源包工具 , 资源包中只能包含资源 , 不能包含代码 ; 资源包可以达到 1GB ;


资源包在打包时 , 与游戏的代码一起打包到 App Bundle 中 , 开发者只需要将该 AAB 上传到 Google Play 即可 ;
Google Play 会自动优化该 App Bundle ;

在这里插入图片描述

这样所有的资源可以一次性安装到设备上 , 不受 Android App Bundle 150MB 大小的限制 ;
也不需要再使用 APK 扩展文件 ;

在这里插入图片描述


http://www.ppmy.cn/news/547674.html

相关文章

启用googe-chrome的click-to-play

Chrome 的 click-to-play 功能非常给力&#xff0c;可以按需加载需要插件才能显示的内容。也就是说 Flash、Java 等应用在点击灰色矩形后才会加载。该功能可以替代 FlashBlock 等扩展&#xff0c;并且是 Chrome 的内置功能。启用方法是进入 chrome://chrome/settings/content &…

Googe和Twitter又在一起了,社交网络与搜索引擎为何总是分分合合?

Google从本周二开始将Twitter消息纳入到移动搜索结果之中。谷歌和Twitter于今年2月达成了合作协议。通过这一合作&#xff0c;谷歌将可以实时获取Twitter消息&#xff0c;从而更快地将这些消息展示在搜索结果中。而Twitter将可以获得更多流量&#xff0c;并吸引访客注册该服务。…

[问题探讨]使用Googe Maps谷歌地图实现不带暗黑水印的地图调用

背景 海外项目需要用到谷歌地图&#xff0c;几经周折总算显示了地图&#xff0c;并去掉了可恶的暗黑水印&#xff0c;这里简述一下过程&#xff0c;给大家参考。 正文 说明&#xff1a;一般的思路是先查看API&#xff0c;写一个hello world&#xff0c;我也是这么做的&#…

Googe Play App审核注意事项

Google Play App审核一直以来是一件挺蛋疼的事情。早些年&#xff0c;Google Play只会告知开发者App违反了相关政策&#xff0c;审核不通过&#xff0c;而不会具体告知审核不通过的原因&#xff0c;如此一来&#xff0c;开发者只能自己去推测App可能违反政策的地方&#xff0c;…

java百度转高德,百度、高德、Googe经纬度转换

private static double x_pi = 3.14159265358979324 * 3000.0 / 180.0; /** * 中国正常坐标系GCJ02协议的坐标,转到 百度地图对应的 BD09 协议坐标 * * @param lat * @param lng */ public static void Convert_GCJ02_To_BD09(double lat, double lng) {double x = lng, y = l…

googe眼镜开发

目前 Google Glass 上有两种开发 Glassware&#xff08;应用&#xff0c;特指为 Glass 定制的应用&#xff09;的方式&#xff1a;一是通过 Mirror API 从云端进行开发&#xff0c;另一种是使用 GDK 进行本地开发。 "Mirror API or GDK?" Mirror API 是一套 RESTfu…

k8s控制器之job--第八弹 Job的替代选项

直接创建的Pod&#xff08;Bare Pod&#xff09; 当 Pod 所在的节点重启或者出现故障&#xff0c;Pod 将被终止&#xff0c;且不会被自动重启。如果使用 Job&#xff0c;则 Job 控制器将会创建新的 Pod 以替代已经故障节点上的 Pod。基于此原因&#xff0c;即使您的应用实际只…

微信支付退款证书下载与安装及其注意事项

1.从商户号按照教程下载好证书&#xff0c;将证书放到所在程序根目录下&#xff1b; 2.点击证书&#xff0c;安装到域名所在服务器上&#xff0c;安装密钥默认为商户号,&#xff08;安装具体的地点不重要&#xff09;&#xff1b; 3.提交申请时&#xff0c;程序会读取证书所在物…