Android APP Bundle

使用 Play 核心库,您的应用日后可以请求将这些模块下载为动态功能 APK。通过 Dynamic Delivery,Google Play 只会将该模块的代码和资源提供给设备。

App bundle 与 APK 的不同之处在于,您无法将其部署到设备。相反,它是一种上传格式,可将您应用的所有经过编译的代码和资源都包含在一个编译工件中。因此,在您上传已签名的 app bundle 后,Google Play 编译和签署应用 APK 所需的一切就已准备就绪,并将通过 Dynamic Delivery 向用户提供这些 APK。

如果您使用的是 Android Studio,只需点击几下即可将您的项目编译为已签名的 app bundle。如果您没有使用 IDE,则可以改为从命令行编译 app bundle。然后,只需将您的 app bundle 上传到 Play 管理中心,即可通过 Dynamic Delivery 测试或发布您的应用。

要测试 app bundle,请使用以下任一方法:

  • 使用 bundletool 在本地测试 Android App Bundle,此测试会根据您的 app bundle 生成 APK 并将其部署到连接的设备上。
  • 通过网址分享应用。通过这种方式,您能够以最快的速度上传 app bundle 并通过 Google Play 商店中的链接将应用分享给信任的测试人员。此外,这也是测试自定义分发选项(如按需下载功能)的最快方法。
  • 设置开放式测试、封闭式测试或内部测试这是测试自定义分发选项(如按需下载功能)的另一种方法。

 

APP Bundle 实践:

implementation 'com.google.android.play:core:1.2.0'
public class MainActivity extends AppCompatActivity {

  private SplitInstallManager splitInstallManager;
  private SplitInstallRequest request;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    splitInstallManager = SplitInstallManagerFactory.create(this);
    request = SplitInstallRequest.newBuilder()
        .addModule("java")
        .build();
  }

  public void loadBundle(View view) {
    splitInstallManager.registerListener(new SplitInstallStateUpdatedListener() {
      @Override
      public void onStateUpdate(SplitInstallSessionState splitInstallSessionState) {

      }
    });
    splitInstallManager.startInstall(request)
        .addOnSuccessListener(new OnSuccessListener() {
          @Override
          public void onSuccess(Integer integer) {

          }
        })
        .addOnFailureListener(new OnFailureListener() {
          @Override
          public void onFailure(Exception e) {

          }
        })
        .addOnCompleteListener(new OnCompleteListener() {
          @Override
          public void onComplete(Task task) {

          }
        });
  }
}

参考地址:https://myslide.cn/slides/20555

你可能感兴趣的:(Android)