gpt4 book ai didi

com.android.tools.build.bundletool.io.ZipBuilder.writeTo()方法的使用及代码示例

转载 作者:知者 更新时间:2024-03-13 11:30:58 25 4
gpt4 key购买 nike

本文整理了Java中com.android.tools.build.bundletool.io.ZipBuilder.writeTo()方法的一些代码示例,展示了ZipBuilder.writeTo()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZipBuilder.writeTo()方法的具体详情如下:
包路径:com.android.tools.build.bundletool.io.ZipBuilder
类名称:ZipBuilder
方法名:writeTo

ZipBuilder.writeTo介绍

[英]Writes the data into a zip file.

It is an error if the target file already exists.
[中]将数据写入zip文件。
如果target文件已存在,则为错误。

代码示例

代码示例来源:origin: google/bundletool

@Override
 public void writeTo(Path destinationPath) {
  try {
   apkSetZipBuilder.writeTo(destinationPath);
  } catch (IOException e) {
   throw new UncheckedIOException(
     String.format("Error while writing the APK Set archive to '%s'.", destinationPath), e);
  }
 }
}

代码示例来源:origin: google/bundletool

private ZipFile createZipFileWithFiles(String... fileNames) throws IOException {
  ZipBuilder zipBuilder = new ZipBuilder();
  for (String fileName : fileNames) {
   zipBuilder.addFileWithContent(ZipPath.create(fileName), new byte[1]);
  }
  Path zipPath = zipBuilder.writeTo(tmp.getRoot().toPath().resolve("output.jar"));
  return new ZipFile(zipPath.toFile());
 }
}

代码示例来源:origin: google/bundletool

@Test
 public void validateBundleZipEntry_file_ok() throws Exception {
  Path bundlePath =
    new ZipBuilder()
      .addFileWithContent(ZipPath.create("file.txt"), DUMMY_CONTENT)
      .writeTo(tempFolder.resolve("bundle.aab"));

  try (ZipFile bundleZip = new ZipFile(bundlePath.toFile())) {
   ArrayList<? extends ZipEntry> entries = Collections.list(bundleZip.entries());
   // Sanity check.
   assertThat(entries).hasSize(1);

   new BundleZipValidator().validateBundleZipEntry(bundleZip, entries.get(0));
  }
 }
}

代码示例来源:origin: google/bundletool

private Path createSimpleBaseModule() throws IOException {
 return new ZipBuilder()
   .addFileWithProtoContent(
     ZipPath.create("manifest/AndroidManifest.xml"), androidManifest(PKG_NAME))
   .writeTo(tmpDir.resolve("base.zip"));
}

代码示例来源:origin: google/bundletool

@Test
public void moduleZipFile_withAllMandatoryFiles_ok() throws Exception {
 Path modulePath =
   new ZipBuilder()
     .addFileWithContent(ZipPath.create("manifest/AndroidManifest.xml"), DUMMY_CONTENT)
     .writeTo(tempFolder.resolve("base.zip"));
 try (ZipFile moduleZip = new ZipFile(modulePath.toFile())) {
  new MandatoryFilesPresenceValidator().validateModuleZipFile(moduleZip);
 }
}

代码示例来源:origin: google/bundletool

public static Path createApksArchiveFile(BuildApksResult result, Path location) throws Exception {
 ZipBuilder archiveBuilder = new ZipBuilder();
 result.getVariantList().stream()
   .flatMap(variant -> variant.getApkSetList().stream())
   .flatMap(apkSet -> apkSet.getApkDescriptionList().stream())
   .forEach(
     apkDesc ->
       archiveBuilder.addFileWithContent(ZipPath.create(apkDesc.getPath()), DUMMY_BYTES));
 archiveBuilder.addFileWithProtoContent(ZipPath.create("toc.pb"), result);
 return archiveBuilder.writeTo(location);
}

代码示例来源:origin: google/bundletool

@Test
public void validateBundleZipEntry_directory_throws() throws Exception {
 Path bundlePath =
   new ZipBuilder()
     .addDirectory(ZipPath.create("directory"))
     .writeTo(tempFolder.resolve("bundle.aab"));
 try (ZipFile bundleZip = new ZipFile(bundlePath.toFile())) {
  ArrayList<? extends ZipEntry> entries = Collections.list(bundleZip.entries());
  // Sanity check.
  assertThat(entries).hasSize(1);
  ValidationException exception =
    assertThrows(
      ValidationException.class,
      () -> new BundleZipValidator().validateBundleZipEntry(bundleZip, entries.get(0)));
  assertThat(exception).hasMessageThat().contains("zip file contains directory zip entry");
 }
}

代码示例来源:origin: google/bundletool

@Test
 public void validateModuleZipFile_invokesRightSubValidatorMethods() throws Exception {
  Path modulePath =
    new ZipBuilder()
      .addDirectory(ZipPath.create("module"))
      .addFileWithContent(ZipPath.create("module/file.txt"), DUMMY_CONTENT)
      .writeTo(tempFolder.resolve("module.zip"));

  try (ZipFile moduleZip = new ZipFile(modulePath.toFile())) {
   new ValidatorRunner(ImmutableList.of(validator)).validateModuleZipFile(moduleZip);

   verify(validator).validateModuleZipFile(eq(moduleZip));
   verifyNoMoreInteractions(validator);
  }
 }
}

代码示例来源:origin: google/bundletool

@Test
public void bundleMetadataDirectoryNotAModule() throws Exception {
 createBasicZipBuilderWithManifest()
   .addFileWithContent(
     ZipPath.create("BUNDLE-METADATA/some.namespace/metadata-file.txt"), DUMMY_CONTENT)
   .writeTo(bundleFile);
 AppBundle appBundle = AppBundle.buildFromZip(new ZipFile(bundleFile.toFile()));
 assertThat(appBundle.getFeatureModules().keySet())
   .containsExactly(BundleModuleName.create("base"));
}

代码示例来源:origin: google/bundletool

@Test
public void testSingleModuleBundle() throws Exception {
 createBasicZipBuilderWithManifest()
   .addFileWithContent(ZipPath.create("base/dex/classes.dex"), DUMMY_CONTENT)
   .writeTo(bundleFile);
 AppBundle appBundle = AppBundle.buildFromZip(new ZipFile(bundleFile.toFile()));
 assertThat(appBundle.getFeatureModules().keySet())
   .containsExactly(BundleModuleName.create("base"));
}

代码示例来源:origin: google/bundletool

@Test
public void bundleConfigExtracted() throws Exception {
 createBasicZipBuilderWithManifest(BUNDLE_CONFIG).writeTo(bundleFile);
 AppBundle appBundle = AppBundle.buildFromZip(new ZipFile(bundleFile.toFile()));
 assertThat(appBundle.getBundleConfig()).isEqualTo(BUNDLE_CONFIG);
}

代码示例来源:origin: google/bundletool

@Test
public void manifestRequired() throws Exception {
 createBasicZipBuilder(BUNDLE_CONFIG)
   .addFileWithContent(ZipPath.create("base/dex/classes.dex"), DUMMY_CONTENT)
   .writeTo(bundleFile);
 assertThrows(
   IllegalStateException.class,
   () -> AppBundle.buildFromZip(new ZipFile(bundleFile.toFile())));
}

代码示例来源:origin: google/bundletool

private Path buildSimpleModule(String moduleName) throws IOException {
 ManifestMutator[] manifestMutators =
   moduleName.equals("base")
     ? new ManifestMutator[0]
     : new ManifestMutator[] {withSplitId(moduleName)};
 return new ZipBuilder()
   .addFileWithProtoContent(
     ZipPath.create("manifest/AndroidManifest.xml"),
     androidManifest(PKG_NAME, manifestMutators))
   .writeTo(FileUtils.getRandomFilePath(tmp, moduleName, ".zip"));
}

代码示例来源:origin: google/bundletool

@Test
 public void bundleZipFile_withAllMandatoryFiles_ok() throws Exception {
  Path bundlePath =
    new ZipBuilder()
      .addFileWithContent(ZipPath.create("base/manifest/AndroidManifest.xml"), DUMMY_CONTENT)
      .addFileWithContent(ZipPath.create("BundleConfig.pb"), DUMMY_CONTENT)
      .writeTo(tempFolder.resolve("bundle.aab"));

  try (ZipFile bundleZip = new ZipFile(bundlePath.toFile())) {
   new MandatoryFilesPresenceValidator().validateBundleZipFile(bundleZip);
  }
 }
}

代码示例来源:origin: google/bundletool

@Test
public void bundleZipFile_withoutBundleConfig_throws() throws Exception {
 Path bundlePath =
   new ZipBuilder()
     .addFileWithContent(ZipPath.create("base/manifest/AndroidManifest.xml"), DUMMY_CONTENT)
     .writeTo(tempFolder.resolve("bundle.aab"));
 try (ZipFile bundleZip = new ZipFile(bundlePath.toFile())) {
  MandatoryBundleFileMissingException exception =
    assertThrows(
      MandatoryBundleFileMissingException.class,
      () -> new MandatoryFilesPresenceValidator().validateBundleZipFile(bundleZip));
  assertThat(exception).hasMessageThat().contains("missing required file 'BundleConfig.pb'");
 }
}

代码示例来源:origin: google/bundletool

@Test
public void metaInfDirectoryNotAModule() throws Exception {
 createBasicZipBuilderWithManifest()
   .addFileWithContent(ZipPath.create("META-INF/GOOG.RSA"), DUMMY_CONTENT)
   .addFileWithContent(ZipPath.create("META-INF/MANIFEST.SF"), DUMMY_CONTENT)
   .writeTo(bundleFile);
 AppBundle appBundle = AppBundle.buildFromZip(new ZipFile(bundleFile.toFile()));
 assertThat(appBundle.getFeatureModules().keySet())
   .containsExactly(BundleModuleName.create("base"));
}

代码示例来源:origin: google/bundletool

@Test
public void moduleWithWrongExtension_throws() throws Exception {
 Path nonZipModule = new ZipBuilder().writeTo(tmpDir.resolve("not_a_zip.txt"));
 IllegalArgumentException exception =
   assertThrows(
     IllegalArgumentException.class,
     () ->
       BuildBundleCommand.builder()
         .setOutputPath(bundlePath)
         .setModulesPaths(ImmutableList.of(nonZipModule))
         .build()
         .execute());
 assertThat(exception).hasMessageThat().contains("expected to have '.zip' extension");
}

代码示例来源:origin: google/bundletool

@Test
public void testMultipleModules() throws Exception {
 createBasicZipBuilder(BUNDLE_CONFIG)
   .addFileWithProtoContent(ZipPath.create("base/manifest/AndroidManifest.xml"), MANIFEST)
   .addFileWithContent(ZipPath.create("base/dex/classes.dex"), DUMMY_CONTENT)
   .addFileWithContent(ZipPath.create("base/assets/file.txt"), DUMMY_CONTENT)
   .addFileWithProtoContent(ZipPath.create("detail/manifest/AndroidManifest.xml"), MANIFEST)
   .addFileWithContent(ZipPath.create("detail/assets/file.txt"), DUMMY_CONTENT)
   .writeTo(bundleFile);
 AppBundle appBundle = AppBundle.buildFromZip(new ZipFile(bundleFile.toFile()));
 assertThat(appBundle.getFeatureModules().keySet())
   .containsExactly(BundleModuleName.create("base"), BundleModuleName.create("detail"));
}

代码示例来源:origin: google/bundletool

@Test
public void classFilesNotAddedToModule() throws Exception {
 createBasicZipBuilderWithManifest()
   .addFileWithContent(ZipPath.create("base/root/Foo.classes"), DUMMY_CONTENT)
   .addFileWithContent(ZipPath.create("base/root/class.txt"), DUMMY_CONTENT)
   .addFileWithContent(ZipPath.create("base/root/Foo.class"), DUMMY_CONTENT)
   .writeTo(bundleFile);
 AppBundle appBundle = AppBundle.buildFromZip(new ZipFile(bundleFile.toFile()));
 assertThat(appBundle.getBaseModule().getEntry(ZipPath.create("root/Foo.classes"))).isPresent();
 assertThat(appBundle.getBaseModule().getEntry(ZipPath.create("root/class.txt"))).isPresent();
 assertThat(appBundle.getBaseModule().getEntry(ZipPath.create("root/Foo.class"))).isEmpty();
}

代码示例来源:origin: google/bundletool

@Test
public void wronglyNamedDexFilesAreRenamed() throws Exception {
 createBasicZipBuilderWithManifest()
   .addFileWithContent(ZipPath.create("base/dex/classes.dex"), DUMMY_CONTENT)
   .addFileWithContent(ZipPath.create("base/dex/classes1.dex"), DUMMY_CONTENT)
   .addFileWithContent(ZipPath.create("base/dex/classes2.dex"), DUMMY_CONTENT)
   .writeTo(bundleFile);
 AppBundle appBundle = AppBundle.buildFromZip(new ZipFile(bundleFile.toFile()));
 assertThat(appBundle.getBaseModule().getEntry(ZipPath.create("dex/classes.dex"))).isPresent();
 assertThat(appBundle.getBaseModule().getEntry(ZipPath.create("dex/classes1.dex"))).isEmpty();
 assertThat(appBundle.getBaseModule().getEntry(ZipPath.create("dex/classes2.dex"))).isPresent();
 assertThat(appBundle.getBaseModule().getEntry(ZipPath.create("dex/classes3.dex"))).isPresent();
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com