mirror of
https://github.com/revanced/ARSCLib.git
synced 2025-04-29 22:04:25 +02:00
improve merging performance #26
This commit is contained in:
parent
74c0f533de
commit
f0088a0279
@ -39,6 +39,7 @@ public class ApkBundle {
|
|||||||
}
|
}
|
||||||
ApkModule result=new ApkModule(generateMergedModuleName(), new APKArchive());
|
ApkModule result=new ApkModule(generateMergedModuleName(), new APKArchive());
|
||||||
result.setAPKLogger(apkLogger);
|
result.setAPKLogger(apkLogger);
|
||||||
|
result.setLoadDefaultFramework(false);
|
||||||
|
|
||||||
mergeStringPools(result);
|
mergeStringPools(result);
|
||||||
|
|
||||||
|
@ -381,10 +381,15 @@ package com.reandroid.arsc.chunk;
|
|||||||
}
|
}
|
||||||
setName(packageBlock.getName());
|
setName(packageBlock.getName());
|
||||||
getLibraryBlock().merge(packageBlock.getLibraryBlock());
|
getLibraryBlock().merge(packageBlock.getLibraryBlock());
|
||||||
|
mergeSpecStringPool(packageBlock);
|
||||||
getSpecTypePairArray().merge(packageBlock.getSpecTypePairArray());
|
getSpecTypePairArray().merge(packageBlock.getSpecTypePairArray());
|
||||||
getOverlayableList().merge(packageBlock.getOverlayableList());
|
getOverlayableList().merge(packageBlock.getOverlayableList());
|
||||||
getStagedAliasList().merge(packageBlock.getStagedAliasList());
|
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.
|
* It is allowed to have duplicate type name therefore it is not recommend to use this.
|
||||||
* Lets depreciate to warn developer
|
* Lets depreciate to warn developer
|
||||||
|
@ -158,8 +158,7 @@ public class ValueHeader extends BlockItem implements JSONConvert<JSONObject> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
StringItem stringItem = stringPool.getOrCreate(name);
|
StringItem stringItem = stringPool.getOrCreate(name);
|
||||||
setKey(stringItem.getIndex());
|
setKey(stringItem);
|
||||||
linkStringReference(stringItem);
|
|
||||||
}
|
}
|
||||||
public void merge(ValueHeader valueHeader){
|
public void merge(ValueHeader valueHeader){
|
||||||
if(valueHeader == null || valueHeader ==this){
|
if(valueHeader == null || valueHeader ==this){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user