[XABT] Split BuildApkArchive
from BuildApk
task.
#9556
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Break down the mega-task
BuildApk
into smaller separation of concerns:BuildApk
- Generate files that need to be placed in the APK.BuildApkArchive
- Place files in the APK.This works via the
@(FilesToAddToApk)
item group which is defined as:The
%(Abi)
metadata must be"all"
for the default package. If$(AndroidCreatePackagePerAbi)
is being used, additional items should be created for each additional abi package.This change will allow future PR(s) to break down the
BuildApk
task into separate tasks for each type of files that belong in the APK, facilitating better incremental builds. For example, if only the Dalvik file changes we don't need to reprocess every managed assembly, etc.Implementation
To keep the diff more manageable at this point, create the temporary
ZipArchiveFileListBuilder
as a drop-in replacement forZipArchiveEx
. Instead of adding files to the.apk
it collects the file name and apk path so that theBuildApkArchive
task can do the actual adding.