- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中com.android.tools.build.bundletool.io.ZipBuilder.addFileWithProtoContent()
方法的一些代码示例,展示了ZipBuilder.addFileWithProtoContent()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZipBuilder.addFileWithProtoContent()
方法的具体详情如下:
包路径:com.android.tools.build.bundletool.io.ZipBuilder
类名称:ZipBuilder
方法名:addFileWithProtoContent
[英]Lazily creates a file at the specified path containing the given proto message in binary form.
Will throw an exception if the path is already taken.
[中]惰性地在指定路径创建一个文件,其中包含二进制形式的给定proto消息。
如果路径已被占用,将引发异常。
代码示例来源:origin: google/bundletool
@Override
public void setTableOfContentsFile(BuildApksResult tableOfContentsProto) {
apkSetZipBuilder.addFileWithProtoContent(
ZipPath.create(TABLE_OF_CONTENTS_FILE), tableOfContentsProto);
}
代码示例来源:origin: google/bundletool
private static ZipBuilder createBasicZipBuilderWithManifest(BundleConfig config) {
return createBasicZipBuilder(config)
.addFileWithProtoContent(ZipPath.create("base/manifest/AndroidManifest.xml"), MANIFEST);
}
}
代码示例来源:origin: google/bundletool
.ifPresent(
resourceTable ->
zipBuilder.addFileWithProtoContent(
SpecialModuleEntry.RESOURCE_TABLE.getPath(), resourceTable));
zipBuilder.addFileWithProtoContent(
ZipPath.create(MANIFEST_FILENAME), split.getAndroidManifest().getManifestRoot().getProto());
代码示例来源: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
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
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 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
new ZipBuilder()
.addFileWithContent(ZipPath.create("BundleConfig.pb"), BUNDLE_CONFIG.toByteArray())
.addFileWithProtoContent(
ZipPath.create("moduleX/manifest/AndroidManifest.xml"),
androidManifest("com.test.app", withSplitId("moduleX")))
.addFileWithProtoContent(
ZipPath.create("moduleX/assets.pb"), Assets.getDefaultInstance())
.addFileWithProtoContent(
ZipPath.create("moduleX/native.pb"), NativeLibraries.getDefaultInstance())
.addFileWithProtoContent(
ZipPath.create("moduleX/resources.pb"), ResourceTable.getDefaultInstance())
.addFileWithContent(ZipPath.create("moduleX/res/drawable/icon.png"), DUMMY_CONTENT)
.addFileWithContent(ZipPath.create("moduleX/lib/x86/libX.so"), DUMMY_CONTENT)
.addFileWithProtoContent(
ZipPath.create("moduleY/manifest/AndroidManifest.xml"),
androidManifest("com.test.app", withSplitId("moduleY")))
代码示例来源:origin: google/bundletool
@Test
public void baseAndAssetModule_fromZipFile_areSeparated() 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("remote_assets/manifest/AndroidManifest.xml"), REMOTE_ASSET_MANIFEST)
.addFileWithContent(ZipPath.create("remote_assets/assets/file.txt"), DUMMY_CONTENT)
.writeTo(bundleFile);
AppBundle appBundle = AppBundle.buildFromZip(new ZipFile(bundleFile.toFile()));
assertThat(appBundle.getFeatureModules().keySet())
.containsExactly(BundleModuleName.create("base"));
assertThat(appBundle.getAssetModules().keySet())
.containsExactly(BundleModuleName.create("remote_assets"));
}
代码示例来源:origin: google/bundletool
@Test
public void validateBundle_invokesSubValidatorsInSequence() throws Exception {
Path bundlePath =
new ZipBuilder()
.addFileWithContent(ZipPath.create("BundleConfig.pb"), BUNDLE_CONFIG.toByteArray())
.addFileWithProtoContent(
ZipPath.create("moduleX/manifest/AndroidManifest.xml"),
androidManifest("com.test.app", withSplitId("moduleX")))
.addFileWithContent(ZipPath.create("moduleX/assets/file.txt"), DUMMY_CONTENT)
.addFileWithProtoContent(
ZipPath.create("moduleY/manifest/AndroidManifest.xml"),
androidManifest("com.test.app", withSplitId("moduleY")))
.addFileWithContent(ZipPath.create("moduleY/assets/file.txt"), DUMMY_CONTENT)
.writeTo(tempFolder.resolve("bundle.aab"));
AppBundle bundle = AppBundle.buildFromZip(new ZipFile(bundlePath.toFile()));
ImmutableList<BundleModule> bundleFeatureModules =
ImmutableList.copyOf(bundle.getFeatureModules().values());
new ValidatorRunner(ImmutableList.of(validator, validator2)).validateBundle(bundle);
InOrder order = Mockito.inOrder(validator, validator2);
order.verify(validator).validateBundle(eq(bundle));
order.verify(validator).validateAllModules(eq(bundleFeatureModules));
order.verify(validator).validateModule(anyObject());
order.verify(validator, atLeastOnce()).validateModuleFile(anyObject());
order.verify(validator2).validateBundle(eq(bundle));
order.verify(validator2).validateAllModules(eq(bundleFeatureModules));
order.verify(validator2).validateModule(anyObject());
order.verify(validator2, atLeastOnce()).validateModuleFile(anyObject());
order.verifyNoMoreInteractions();
}
代码示例来源:origin: google/bundletool
Path module =
new ZipBuilder()
.addFileWithProtoContent(
ZipPath.create("manifest/AndroidManifest.xml"), androidManifest(PKG_NAME))
.addFileWithContent(ZipPath.create("dex/classes.dex"), new byte[8])
.addFileWithContent(ZipPath.create("res/raw/hello.png"), new byte[8])
.addFileWithProtoContent(
ZipPath.create("resources.pb"),
new ResourceTableBuilder()
代码示例来源:origin: google/bundletool
@Test
public void runsResourceTableValidator_resourceTableReferencingNonExistingFile_throws()
throws Exception {
ResourceTable resourceTable =
new ResourceTableBuilder()
.addPackage(PKG_NAME)
.addDrawableResource("icon", "res/drawable/icon.png")
.build();
Path module =
new ZipBuilder()
.addFileWithProtoContent(ZipPath.create("resources.pb"), resourceTable)
.addFileWithProtoContent(
ZipPath.create("manifest/AndroidManifest.xml"), androidManifest(PKG_NAME))
.writeTo(tmpDir.resolve("base.zip"));
BuildBundleCommand command =
BuildBundleCommand.builder()
.setOutputPath(bundlePath)
.setModulesPaths(ImmutableList.of(module))
.build();
ValidationException exception =
assertThrows(ValidationException.class, () -> command.execute());
assertThat(exception).hasMessageThat().contains("contains references to non-existing files");
}
代码示例来源:origin: google/bundletool
@Test
public void runsBundleFilesValidator_rogueFileInModuleRoot_throws() throws Exception {
Path module =
new ZipBuilder()
.addFileWithContent(ZipPath.create("rogue.txt"), "".getBytes(UTF_8))
.addFileWithProtoContent(
ZipPath.create("manifest/AndroidManifest.xml"), androidManifest(PKG_NAME))
.writeTo(tmpDir.resolve("base.zip"));
BuildBundleCommand command =
BuildBundleCommand.builder()
.setOutputPath(bundlePath)
.setModulesPaths(ImmutableList.of(module))
.build();
ValidationException exception =
assertThrows(ValidationException.class, () -> command.execute());
assertThat(exception)
.hasMessageThat()
.contains("Module files can be only in pre-defined directories");
}
代码示例来源:origin: google/bundletool
DUMMY_BYTES,
archiveBuilder.addFileWithProtoContent(
ZipPath.create("toc.pb"), BuildApksResult.newBuilder().addAllVariant(variants).build());
Path apksArchiveFile = archiveBuilder.writeTo(tmpDir.resolve("bundle.apks"));
代码示例来源:origin: google/bundletool
@Test
public void nativeLibrariesPresent_abiTargetingIsPresent() throws Exception {
Path moduleWithAbi =
new ZipBuilder()
.addFileWithContent(ZipPath.create("lib/x86/libfast.so"), "native data".getBytes(UTF_8))
.addFileWithContent(
ZipPath.create("lib/x86/libfaster.so"), "native data".getBytes(UTF_8))
.addFileWithProtoContent(
ZipPath.create("manifest/AndroidManifest.xml"), androidManifest(PKG_NAME))
.writeTo(tmpDir.resolve("base.zip"));
BuildBundleCommand.builder()
.setOutputPath(bundlePath)
.setModulesPaths(ImmutableList.of(moduleWithAbi))
.build()
.execute();
ZipFile bundle = new ZipFile(bundlePath.toFile());
assertThat(bundle).hasFile("base/native.pb");
NativeLibraries actualTargeting =
NativeLibraries.parseFrom(bundle.getInputStream(new ZipEntry("base/native.pb")));
NativeLibraries expectedTargeting =
NativeLibraries.newBuilder()
.addDirectory(
TargetedNativeDirectory.newBuilder()
.setPath("lib/x86")
.setTargeting(
NativeDirectoryTargeting.newBuilder()
.setAbi(Abi.newBuilder().setAlias(X86))))
.build();
Truth.assertThat(actualTargeting).isEqualTo(expectedTargeting);
}
代码示例来源:origin: google/bundletool
.addFileWithContent(ZipPath.create("dex/classes.dex"), "dex".getBytes(UTF_8))
.addFileWithContent(ZipPath.create("lib/x86/libX.so"), "native".getBytes(UTF_8))
.addFileWithProtoContent(ZipPath.create("manifest/AndroidManifest.xml"), manifest)
.addFileWithContent(ZipPath.create("res/drawable/icon.png"), "image".getBytes(UTF_8))
.addFileWithContent(ZipPath.create("root/anything2.dat"), "any2".getBytes(UTF_8))
.addFileWithProtoContent(ZipPath.create("resources.pb"), resourceTable)
.writeTo(tmpDir.resolve("base.zip"));
代码示例来源:origin: google/bundletool
.addFileWithContent(
ZipPath.create("apex/armeabi-v7a.img"), "armeabi-v7a".getBytes(UTF_8))
.addFileWithProtoContent(ZipPath.create("manifest/AndroidManifest.xml"), manifest)
.addFileWithContent(
ZipPath.create("root/apex_manifest.json"), "manifest".getBytes(UTF_8))
代码示例来源:origin: google/bundletool
archiveBuilder.addFileWithContent(ZipPath.create("preL-ldpi.apk"), new byte[1000]);
archiveBuilder.addFileWithContent(ZipPath.create("preL-mdpi.apk"), new byte[10]);
archiveBuilder.addFileWithProtoContent(
ZipPath.create("toc.pb"),
BuildApksResult.newBuilder()
代码示例来源:origin: google/bundletool
"any2".getBytes(UTF_8))
.addFileWithContent(ZipPath.create("dex/classes.dex"), "dex".getBytes(UTF_8))
.addFileWithProtoContent(ZipPath.create("manifest/AndroidManifest.xml"), manifest)
.writeTo(tmpDir.resolve("base.zip"));
代码示例来源:origin: google/bundletool
archiveBuilder.addFileWithContent(ZipPath.create("base-master.apk"), DUMMY_BYTES);
archiveBuilder.addFileWithContent(ZipPath.create("preL.apk"), new byte[10000]);
archiveBuilder.addFileWithProtoContent(
ZipPath.create("toc.pb"),
BuildApksResult.newBuilder().addVariant(lVariant).addVariant(preLVariant).build());
IO 设备如何知道属于它的内存中的值在memory mapped IO 中发生了变化? ? 例如,假设内存地址 0 专用于保存 VGA 设备的背景颜色。当我们更改 memory[0] 中的值时,VGA
我目前正在开发一个使用Facebook sdk登录(通过FBLoginView)的iOS应用。 一切正常,除了那些拥有较旧版本的facebook的人。 当他们按下“使用Facebook登录”按钮时,他
假设我有: this - is an - example - with some - dashesNSRange将使用`rangeOfString:@“-”拾取“-”的第一个实例,但是如果我只想要最后
Card.io SDK提供以下详细信息: 卡号,有效期,月份,年份,CVV和邮政编码。 如何从此SDK获取国家名称。 - (void)userDidProvideCreditCardInfo:(Car
iOS 应用程序如何从网络服务下载图片并在安装过程中将它们安装到用户的 iOS 设备上?可能吗? 最佳答案 您无法控制应用在用户设备上的安装,因此无法在安装过程中下载其他数据。 只需在安装后首次启动应
我曾经开发过一款企业版 iOS 产品,我们公司曾将其出售给大型企业,供他们的员工使用。 该应用程序通过 AppStore 提供,企业用户获得了公司特定的配置文件(包含应用程序配置文件)以启用他们有权使
我正在尝试将 Card.io SDK 集成到我的 iOS 应用程序中。我想为 CardIO ui 做一个简单的本地化,如更改取消按钮标题或“在此保留信用卡”提示文本。 我在 github 上找到了这个
我正在使用 CardIOView 和 CardIOViewDelegate 类,没有可以设置为 YES 的 BOOL 来扫描 collectCardholderName。我可以看到它在 CardIOP
我有一个集成了通话工具包的 voip 应用程序。每次我从我的 voip 应用程序调用时,都会在 native 电话应用程序中创建一个新的最近通话记录。我在 voip 应用程序中也有自定义联系人(电话应
iOS 应用程序如何知道应用程序打开时屏幕上是否已经有键盘?应用程序运行后,它可以接收键盘显示/隐藏通知。但是,如果应用程序在分屏模式下作为辅助应用程序打开,而主应用程序已经显示键盘,则辅助应用程序不
我在模拟器中收到以下错误: ImageIO: CGImageReadSessionGetCachedImageBlockData *** CGImageReadSessionGetCachedIm
如 Apple 文档所示,可以通过 EAAccessory Framework 与经过认证的配件(由 Apple 认证)进行通信。但是我有点困惑,因为一些帖子告诉我它也可以通过 CoreBluetoo
尽管现在的调试器已经很不错了,但有时找出应用程序中正在发生的事情的最好方法仍然是古老的 NSLog。当您连接到计算机时,这样做很容易; Xcode 会帮助弹出日志查看器面板,然后就可以了。当您不在办公
在我的 iOS 应用程序中,我定义了一些兴趣点。其中一些有一个 Kontakt.io 信标的名称,它绑定(bind)到一个特定的 PoI(我的意思是通常贴在信标标签上的名称)。现在我想在附近发现信标,
我正在为警报提示创建一个 trigger.io 插件。尝试从警报提示返回数据。这是我的代码: // Prompt + (void)show_prompt:(ForgeTask*)task{
您好,我是 Apple iOS 的新手。我阅读并搜索了很多关于推送通知的文章,但我没有发现任何关于 APNS 从 io4 到 ios 6 的新更新的信息。任何人都可以向我提供 APNS 如何在 ios
UITabBar 的高度似乎在 iOS 7 和 8/9/10/11 之间发生了变化。我发布这个问题是为了让其他人轻松找到答案。 那么:在 iPhone 和 iPad 上的 iOS 8/9/10/11
我想我可以针对不同的 iOS 版本使用不同的 Storyboard。 由于 UI 的差异,我将创建下一个 Storyboard: Main_iPhone.storyboard Main_iPad.st
我正在写一些东西,我将使用设备的 iTunes 库中的一部分音轨来覆盖 2 个视频的组合,例如: AVMutableComposition* mixComposition = [[AVMutableC
我创建了一个简单的 iOS 程序,可以顺利编译并在 iPad 模拟器上运行良好。当我告诉 XCode 4 使用我连接的 iPad 设备时,无法编译相同的程序。问题似乎是当我尝试使用附加的 iPad 时
我是一名优秀的程序员,十分优秀!