apk 扩展文件 Play Asset Delivery aab oob

采取oob扩展文件已经过时了

现在采取aab 方式

需要我们拆分出部分资源,使用以下三种分发模式中的一种来解决:

install-time 资源包在用户安装应用时分发。这些资源包以拆分 APK(APK 集的一部分)的形式提供。它们也称为“预先”资源包;您可以在应用启动时立即使用这些资源包。这些资源包会增加 Google Play 商店上列出的应用大小。用户无法修改或删除这些资源包。

fast-follow 资源包会在用户安装应用后立即自动下载;用户无需打开应用即可开始 fast-follow 下载。此类下载不会阻止用户访问应用。这些资源包会增加 Google Play 商店上列出的应用大小。

on-demand 资源包会在应用运行时下载。

扩展文件和apk都集合在一个aab里面

Gradle 会为每个 Asset Pack 生成清单,并为您输出 assets/ 目录。

所以调试的时候把文件复制到app/main/assets/ 目录

发布的时候将assets/ 目录复制到install_time_pack/src/main/assets/

bundletool build-apks --bundle='app-release.aab' --output='pep.apks'  
bundletool install-apks --apks='pep.apks'


针对 Java 构建

您可以按照以下步骤将 Play Asset Delivery 内置到项目的 Android App Bundle 中。您无需使用 Android Studio 即可执行这些步骤。

  1. 在项目的 build.gradle 文件中将 Android Gradle 插件的版本更新为 4.0.0 或更高版本。

  2. 在项目的顶级目录中,为 Asset Pack 创建一个目录。此目录名称将用作 Asset Pack 名称。Asset Pack 名称必须以字母开头,并且只能包含字母、数字和下划线。

  3. 在 Asset Pack 目录中,创建一个 build.gradle 文件并添加以下代码。请务必指定 Asset Pack 的名称,并且仅指定一种分发类型:

    // In the asset pack’s build.gradle file:
    apply plugin: 'com.android.asset-pack'
    
    assetPack {
        packName = "asset-pack-name" // Directory name for the asset pack
        dynamicDelivery {
            deliveryType = "[ install-time | fast-follow | on-demand ]"
        }
    }
    
  4. 在项目的应用 build.gradle 文件中,添加项目中每个 Asset Pack 的名称,如下所示:

    // In the app build.gradle file:
    android {
        ...
        assetPacks = [":asset-pack-name", ":asset-pack2-name"]
    }
    
  5. 在项目的 settings.gradle 文件中,添加项目中的所有 Asset Pack,如下所示:

    // In the settings.gradle file:
    include ':app'
    include ':asset-pack-name'
    include ':asset-pack2-name'
    
  6. 在 Asset Pack 目录中,创建以下子目录:src/main/assets

  7. 将资产放置在 src/main/assets 目录中。您也可以在此处创建子目录。应用的目录结构现在应如下所示:

    • build.gradle
    • settings.gradle
    • app/
    • asset-pack-name/build.gradle
    • asset-pack-name/src/main/assets/your-asset-directories
  8. 在生成的 app bundle 中,根级目录现在包含以下内容:

    • asset-pack-name/manifest/AndroidManifest.xml:配置 Asset Pack 的标识符和分发模式
    • asset-pack-name/assets/your-asset-directories:此目录包含作为 Asset Pack 的一部分分发的所有资产

    Gradle 会为每个 Asset Pack 生成清单,并为您输出 assets/ 目录。

读取文件

import android.content.res.AssetManager;
...
Context context = createPackageContext("com.example.app", 0);
AssetManager assetManager = context.getAssets();
InputStream is = assetManager.open("asset-name");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值