写点什么

为您的应用配置 Play Feature Delivery,flutter 视频教程仿京东

用户头像
Android架构
关注
发布于: 2 小时前

<uses-feature android:name="android.hardware.camera" android:required="true" />


<dist:module dist:title="@string/module_feature_picture"><dist:fusing dist:include="true" />dist:delivery<dist:install-time /></dist:delivery></dist:module></manifest>


最重要的部分是分发命名空间 (distribution namespace),xmlns:dist="http://schemas.android.com/apk/distribution" 以及分发配置属性被设置为 install-time


当首次安装时,像这样配置的模块会被默认安装。


每个安装时模块都会被融合进基本模块,这也使他们变成不可移除的。如果您想以后可以移除安装时模块,您需要设置其 removable 的属性值为 true


有些模块很占存储空间,且只有初始安装应用时有用,一旦完成就不再需要,比如新手教程和注册流程等。对于这些模块来说,模块卸载会非常有用。


我们还提供了 [PlayCore API](


) 来按需安装和卸载某些模块,我稍后会在本文中介绍它。

对于 Android 5.0 以前的设备的提示

功能模块的安装机制需要运行在 Android 5.0 及以后的机型上。对于旧版本的 Android,功能模块可以放到基础 apk 中。如果想开启这个功能,您需要在 module 标签中设置 fusing 的 include 属性值为 true。


<dist:fusing dist:include=”true”>

设置按条件分发

除了安装时分发,按条件分发是另外一个请求功能模块的方法。安装条件包括设备 API 版本、用户所在国家和设备特性。


这是一个完整的 AndroidManifest 配置文件。


/* Copyright 2020 Google LLC.


SPDX-License-Identifier: Apache-2.0 */


<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:dist="http://schemas.android.com/apk/distribution"package="com.google.android.samples.playcore.picture">


<uses-feature android:name="android.hardware.camera" android:required="true" />


<dist:module dist:title="@string/module_feature_picture" ><dist:fusing dist:include="true" />dist:deliverydist:install-timedist:conditions<dist:min-api dist:value="21"/><dist:max-api dist:value="29"/><dist:device-feature dist:name="android.hardware.camera"/><dist:user-countries dist:exclude="false"><dist:country dist:code="DE"/><dist:country dist:code="GB"/></dist:user-countries></dist:conditions></dist:install-time><dist:removable value="true" /></dist:delivery></dist:module></manifest>


并不是所有的这些条件都需要设置,而且您也不大可能需要在单个模块中使用所有这些条件。我们来一步步解释它们。


如果要设置按条件分发,我们需要添加 dist:conditions 标签。


然后,通过使用 min-api 和 max-api,您可以声明所支持的最低以及最高的 API 版本。


如果您需要为一个特定模块指定 API 版本,这些会非常有用。


此外,AndroidManifest 文件中的每一个 [uses-feature 元素](


) 都可以被用来作为安装条件。通过使用 device-feature 属性,您可以确保功能模块只会被分发到有相关配置的设备上。


默认情况下,每个用户都可以从应用所发布的地区下载到其所有功


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


能模块。您可以选择某些特定的功能模块只在特定的国家可用。这将是一个实现本地化应用非常好的方式。为了实现这个功能,您需要添加 user-countries 标签并设置两个字母的国家代码。


当您想设置某个功能在某些特定的国家不可用时,请确保设置 dist:exclude="false"。如果您想让一个功能只在某个国家可用,请设置该值为 true。

不含代码的模块

有时您只想分发给用户一个类似 TensorFlow 模型的大型资源文件,在这个功能模块中,您并没有任何代码,这时请确保该模块的 AndroidManifest 文件中 hasCode 的值设置为 false。


<application android:hasCode="false" />

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
为您的应用配置 Play Feature Delivery,flutter视频教程仿京东