private ApkDescription writeToDisk(
ModuleSplit split,
Path outputDirectory,
BiFunction<ApkDescription.Builder, SplitApkMetadata, ApkDescription.Builder> setApkMetadata) {
checkState(isDirectory(outputDirectory), "Output directory does not exist.");
ZipPath apkPath = apkPathManager.getApkPath(split);
apkSerializerHelper.writeToZipFile(split, outputDirectory.resolve(apkPath.toString()));
ApkDescription.Builder builder =
ApkDescription.newBuilder()
.setPath(apkPath.toString())
.setTargeting(split.getApkTargeting());
return setApkMetadata
.apply(
builder,
SplitApkMetadata.newBuilder()
.setSplitId(split.getAndroidManifest().getSplitId().orElse(""))
.setIsMasterSplit(split.isMasterSplit())
.build())
.build();
}
}