Implement AAPT Bundle format
AAPT will scan XML files looking for the <aapt:attr> XML tag. <!-- @layout/bundle.xml --> <ImageView xmlns:aapt="http://schemas.android.com/aapt"> <aapt:attr name="android:src"> <vector android:pathData="..." ...> </vector> </aapt:attr> </ImageView> The SINGLE child element of the <aapt:attr> tag is extracted into its own top level resource. It is given a generated name. The parent element of <aapt:attr> is then given the resource attribute that was assigned to the `name' attribute. The value is set to a reference to the generated resource. <!-- @layout/bundle.xml --> <ImageView android:src="@drawable/bundle_1.xml"> </ImageView> <!-- @layout/bundle_1.xml --> <vector android:pathData="..." ...> </vector> Bug:22627686 Change-Id: I31bc96aae30d38bfd0b16508d0f585de5fd88a07
This commit is contained in:
@ -1537,7 +1537,14 @@ status_t buildResources(Bundle* bundle, const sp<AaptAssets>& assets, sp<ApkBuil
|
||||
std::queue<CompileResourceWorkItem>& workQueue = table.getWorkQueue();
|
||||
while (!workQueue.empty()) {
|
||||
CompileResourceWorkItem& workItem = workQueue.front();
|
||||
err = compileXmlFile(bundle, assets, workItem.resourceName, workItem.file, &table, xmlFlags);
|
||||
if (workItem.xmlRoot != NULL) {
|
||||
err = compileXmlFile(bundle, assets, workItem.resourceName, workItem.xmlRoot,
|
||||
workItem.file, &table, xmlFlags);
|
||||
} else {
|
||||
err = compileXmlFile(bundle, assets, workItem.resourceName, workItem.file,
|
||||
&table, xmlFlags);
|
||||
}
|
||||
|
||||
if (err == NO_ERROR) {
|
||||
assets->addResource(workItem.resPath.getPathLeaf(),
|
||||
workItem.resPath,
|
||||
|
Reference in New Issue
Block a user