Get desktop application:
View/edit binary Protocol Buffers messages
Configuration for processing APEX bundles. https://source.android.com/devices/tech/ota/apex
Used in:
Configuration for processing of APKs embedded in an APEX image.
Explicit list of supported ABIs. Default: See ApexBundleValidator.REQUIRED_ONE_OF_ABI_SETS
Used in:
Android package name of the APK.
Path to the APK within the APEX system image.
Used in:
App versionCodes that will be updated with these asset modules. Only relevant for asset-only bundles.
Version tag for the asset upload. Only relevant for asset-only bundles.
Resources to be always kept in the master split.
APKs to be signed with the same key as generated APKs.
Configuration for locales.
Used in:
Used in:
Version of BundleTool used to build the Bundle.
Used in:
Glob matching the list of files to leave uncompressed in the APKs. The matching is done against the path of files in the APK, thus excluding the name of the modules, and using forward slash ("/") as a name separator. Examples: "res/raw/**", "assets/**/*.uncompressed", etc.
Default compression strategy for install-time asset modules. If the compression strategy indicates to compress a file and the same file matches one of the `uncompressed_glob` values, the `uncompressed_glob` takes precedence (the file is left uncompressed in the generated APK). If unspecified, asset module content is left uncompressed in the generated asset modules. Note: this flag only configures the compression strategy for install-time asset modules; the content of on-demand and fast-follow asset modules is always kept uncompressed.
Compression algorithm which is used to compress entries in final APKs.
Used in:
Default in the current version of bundletool is zlib deflate algorithm with compression level 9 for the application's resources and compression level 6 for other entries. This is a good trade-off between size of final APK and size of patches which are used to update the application from previous to next version.
7zip implementation of deflate algorithm which gives smaller APK size but size of patches required to update the application are larger.
Used in:
Assets are left uncompressed in the generated asset module.
Assets are compressed in the generated asset module. This option can be overridden at a finer granularity by specifying files or folders to keep uncompressed in `uncompressed_glob`. This option should only be used if the app is able to handle compressed asset module content at runtime (some runtime APIs may misbehave).
Used in:
Instructs bundletool to generate locale config and inject it into AndroidManifest.xml. A locale is marked as supported by the application if there is at least one resource value in this locale. Be very careful with this setting because if some of your libraries expose resources in some locales which are not actually supported by your application it will mark this locale as supported. Disabled by default.
Resources to keep in the master split.
Used in:
Resource IDs to be kept in master split.
Resource names to be kept in master split.
Used in:
This is for uncompressing native libraries on M+ devices (L+ devices on instant apps).
This is for uncompressing dex files.
Configuration for the generation of standalone APKs. If no StandaloneConfig is set, the configuration is inherited from splits_config.
Optimizations that are applied to resources.
Configuration for archiving the app.
Used in:
Whether to use sparse encoding for resource tables. Resources in sparse resource table are accessed using a binary search tree. This decreases APK size at the cost of resource retrieval performance.
Optimizations related to collapsed resource names.
Optimizations related to collapsed resource names.
Used in:
Whether to collapse resource names. Resources with collapsed resource names are only accessible by their ids. These names are not stored inside 'resources.arsc'.
Instructs to not collapse resource names for specific resources which makes certain resources to be accessible by their names. Applicable only if 'collapse_resource_names' is 'true'.
Instructs to not collapse all resources of certain types. Applicable only if 'collapse_resource_names' is 'true'.
Whether to store only unique resource entries in 'resources.arsc'. For example if there are 3 'bool' resources defined with 'true' value with this flag only one 'true' entry is stored and all 3 resources are referencing this entry. By default all 3 entries are stored. This only works with resources where names are collapsed (either using 'collapse_resource_names' flag or manually) because resource name is a part of resource entry and if names are preserved - all entries are unique.
Pair of resource type and name, like 'layout/foo', 'string/bar'.
Used in:
Used in:
Disables sparse encoding.
Generates special APKs for Android SDK +32 with sparse resource tables. Devices with Android SDK below 32 will still receive APKs with regular resource tables.
Used in:
,If set to 'true', indicates that APKs should *not* be split by this dimension.
Optional transformation to be applied to asset directories where the targeting is encoded in the directory name (e.g: assets/foo#tcf_etc1)
Used in:
Optimization configuration used to generate Split APKs.
Used in:
Optimization configuration used to generate Standalone APKs.
Used in:
Device targeting dimensions to shard.
Whether 64 bit libraries should be stripped from Standalone APKs.
Dex merging strategy that should be applied to produce Standalone APKs.
Defines how to deal with feature modules in standalone variants (minSdk < 21).
Used in:
Strategy that does dex merging for applications that have minimum SDK below 21 to ensure dex files from all modules are merged into one or mainDexList is applied when merging into one dex is not possible. For applications with minSdk >= 21 dex files from all modules are copied into standalone APK as is because Android supports multiple dex files natively starting from Android 5.0.
Requires to copy dex files from all modules into standalone APK as is. If an application supports SDKs below 21 this strategy puts responsibility of providing dex files compatible with legacy multidex on application developers.
Used in:
Default mode which fuses feature modules with respect to its fusing attribute into base.apk.
Advanced mode, which allows to generate a single separate apk per each feature module in variants with minSdk < 21.
Used in:
Archive is an app state that allows an official app store to reclaim device storage and disable app functionality temporarily until the user interacts with the app again. Upon interaction the latest available version of the app will be restored while leaving user data unaffected. Enabled by default.
Used in:
If set to 'true', indicates that the targeting suffix should be removed from assets paths for this dimension when splits (e.g: "asset packs") or standalone/universal APKs are generated. This only applies to assets. For example a folder with path "assets/level1_textures#tcf_etc1" would be outputted to "assets/level1_textures". File contents are unchanged.
The default suffix to be used for the cases where separate slices can't be generated for this dimension - typically for standalone or universal APKs. This default suffix defines the directories to retain. The others are discarded: standalone/universal APKs will contain only directories targeted at this value for the dimension. If not set or empty, the fallback directory in each directory group will be used (for example, if both "assets/level1_textures#tcf_etc1" and "assets/level1_textures" are present and the default suffix is empty, then only "assets/level1_textures" will be used).
Represents a set of ABIs which must be supported by a single APEX image.
Used in:
Used in:
A new variant with uncompressed dex will be generated. The sdk targeting of the variant is determined by 'uncompressed_dex_target_sdk'.
If 'enabled' field is set, this will determine the sdk targeting of the generated variant.
Used in:
Q+ variant will be generated.
S+ variant will be generated.
Used in:
This is an experimental setting. It's behavior might be changed or completely removed. Alignment used for uncompressed native libraries inside APKs generated by bundletool. PAGE_ALIGNMENT_4K by default.
Used in:
Used in:
Path to the APK inside the module (e.g. if the path inside the bundle is split/assets/example.apk, this will be assets/example.apk).