improve merging performance #26

This commit is contained in:
REAndroid 2023-04-14 21:12:59 +02:00
parent 74c0f533de
commit f0088a0279
3 changed files with 7 additions and 2 deletions

View File

@ -39,6 +39,7 @@ public class ApkBundle {
}
ApkModule result=new ApkModule(generateMergedModuleName(), new APKArchive());
result.setAPKLogger(apkLogger);
result.setLoadDefaultFramework(false);
mergeStringPools(result);

View File

@ -381,10 +381,15 @@ package com.reandroid.arsc.chunk;
}
setName(packageBlock.getName());
getLibraryBlock().merge(packageBlock.getLibraryBlock());
mergeSpecStringPool(packageBlock);
getSpecTypePairArray().merge(packageBlock.getSpecTypePairArray());
getOverlayableList().merge(packageBlock.getOverlayableList());
getStagedAliasList().merge(packageBlock.getStagedAliasList());
}
private void mergeSpecStringPool(PackageBlock coming){
this.getSpecStringPool().addStrings(
coming.getSpecStringPool().toStringList());
}
/**
* It is allowed to have duplicate type name therefore it is not recommend to use this.
* Lets depreciate to warn developer

View File

@ -158,8 +158,7 @@ public class ValueHeader extends BlockItem implements JSONConvert<JSONObject> {
return;
}
StringItem stringItem = stringPool.getOrCreate(name);
setKey(stringItem.getIndex());
linkStringReference(stringItem);
setKey(stringItem);
}
public void merge(ValueHeader valueHeader){
if(valueHeader == null || valueHeader ==this){