diff --git a/atlas-gradle-plugin/atlas-plugin/src/main/java/com/android/tools/r8/dex/AtlasVirtualFile.java b/atlas-gradle-plugin/atlas-plugin/src/main/java/com/android/tools/r8/dex/AtlasVirtualFile.java index d319ade9e..372f77284 100644 --- a/atlas-gradle-plugin/atlas-plugin/src/main/java/com/android/tools/r8/dex/AtlasVirtualFile.java +++ b/atlas-gradle-plugin/atlas-plugin/src/main/java/com/android/tools/r8/dex/AtlasVirtualFile.java @@ -190,7 +190,7 @@ public Map call() throws IOException { int transactionStartIndex = 0; int fileStartIndex = 0; String currentPrefix = null; - Map newPackageAssignments = new LinkedHashMap(); + Map newPackageAssignments = new HashMap(); AtlasVirtualFile current = this.cycler.next(); List nonPackageClasses = new ArrayList(); diff --git a/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/AtlasMainDexHelper.java b/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/AtlasMainDexHelper.java index 65c348866..5ced20334 100644 --- a/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/AtlasMainDexHelper.java +++ b/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/AtlasMainDexHelper.java @@ -37,9 +37,9 @@ public void setInputDirs(List inputLibraries) { private Map mainManifestMap = new HashMap<>(); - private Map mainNativeSoMap = new LinkedHashMap<>(); + private Map mainNativeSoMap = new HashMap<>(); - private Map mainRes = new LinkedHashMap<>(); + private Map mainRes = new HashMap<>(); public File getMainJavaRes() { return mainJavaRes; diff --git a/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/insant/matcher/MatcherCreator.java b/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/insant/matcher/MatcherCreator.java index e60e15bee..487dfe12a 100644 --- a/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/insant/matcher/MatcherCreator.java +++ b/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/insant/matcher/MatcherCreator.java @@ -15,7 +15,7 @@ public class MatcherCreator { static Set matchers = new HashSet<>(); - static Map sMatchers = new LinkedHashMap<>(); + static Map sMatchers = new HashMap<>(); public static Imatcher create(String rule) { if (sMatchers.containsKey(rule)) { diff --git a/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/tools/proguard/AtlasProguardHelper.java b/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/tools/proguard/AtlasProguardHelper.java index 4cf38d28b..b95899cd2 100644 --- a/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/tools/proguard/AtlasProguardHelper.java +++ b/atlas-gradle-plugin/atlas-plugin/src/main/java/com/taobao/android/builder/tools/proguard/AtlasProguardHelper.java @@ -375,24 +375,26 @@ private static void addLibraryProguardFiles(AppVariantContext appVariantContext, private static void addChildDependency(BundleItem bundleItem, Input input, Map bundleInfoAwbTransformMap) throws IOException { - ListpkgNames = new ArrayList<>(); + ListpkgNames = new LinkedList<>(); input.getAwbBundles().forEach(awbTransform -> pkgNames.add(awbTransform.getAwbBundle().getPackageName())); sLogger.info("combine to proguard bundles:"+pkgNames.toString()); - List childTransforms = new ArrayList<>(); + List childTransforms = new LinkedList<>(); sLogger.info("combine to proguard bundles:"+pkgNames.toString()); + + Set pkgNameSet = new HashSet<>(pkgNames); for (BundleItem child : bundleItem.children) { - if (!pkgNames.contains(child.bundleInfo.getPkgName())) { + if (!pkgNameSet.contains(child.bundleInfo.getPkgName())) { childTransforms.add(bundleInfoAwbTransformMap.get(child.bundleInfo)); }else { sLogger.error(child.bundleInfo.getPkgName() +" in proguard bundles so discard from "+ bundleItem.bundleInfo.getPkgName()+"libraries..."); } for (BundleInfo sub : child.circles) { - if (!pkgNames.contains(sub.getPkgName())) { + if (!pkgNameSet.contains(sub.getPkgName())) { childTransforms.add(bundleInfoAwbTransformMap.get(sub)); }else { sLogger.error(sub.getPkgName() +" in proguard bundles so discard from "+ bundleItem.bundleInfo.getPkgName()+" libraries..."); diff --git a/atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/repatch/ClassReIClassDef.java b/atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/repatch/ClassReIClassDef.java index 795687424..4029d98fa 100644 --- a/atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/repatch/ClassReIClassDef.java +++ b/atlas-gradle-plugin/dexpatch/src/main/java/com/taobao/android/repatch/ClassReIClassDef.java @@ -470,6 +470,7 @@ protected String reInterface(String inter) { @Override protected Annotation reAnnotation(Annotation annotation) { + Set basicValueSet = new HashSet<>(basicValue); String type = annotation.getType(); boolean isArray = false; if (type.startsWith("[")) { @@ -491,7 +492,7 @@ protected Annotation reAnnotation(Annotation annotation) { if (value.startsWith("[")) { isArray1 = true; } - if (basicValue.contains(value)) { + if (basicValueSet.contains(value)) { newValue = value; } else if (value.startsWith("Ljava/util/") || value.startsWith("Ljava/lang/") || !value.startsWith("L")) { newValue = value; @@ -512,7 +513,7 @@ protected Annotation reAnnotation(Annotation annotation) { if (value.startsWith("[")) { isArray2 = true; } - if (basicValue.contains(value)) { + if (basicValueSet.contains(value)) { newValueSub = value; } else if (value.startsWith("Ljava/util/") || !value.endsWith(";")) { newValueSub = value; @@ -537,7 +538,7 @@ protected Annotation reAnnotation(Annotation annotation) { if (value.startsWith("[")) { isArray = true; } - if (basicValue.contains(value)) { + if (basicValueSet.contains(value)) { newValue = value; } else if (value.startsWith("Ljava/util/") || value.startsWith("Ljava/lang/") || !value.startsWith("L")) { newValue = value; @@ -559,7 +560,7 @@ protected Annotation reAnnotation(Annotation annotation) { if (value.startsWith("[")) { isArray2 = true; } - if (basicValue.contains(value)) { + if (basicValueSet.contains(value)) { newValue = value; } else if (value.startsWith("Ljava/util/") || !value.endsWith(";")) { newValue = value; @@ -665,6 +666,7 @@ public Set getAnnotation(Set annotat String newType = DefineUtils.getDefineClassName(classProcessor.classProcess(DefineUtils.getDalvikClassName(type)).className, isArray); Set sets = annotation.getElements(); Set newAnnotationElement = new HashSet(); + Set basicValueSet = new HashSet<>(basicValue); for (AnnotationElement annotationElement : sets) { String name = annotationElement.getName(); EncodedValue encodedValue = annotationElement.getValue(); @@ -678,7 +680,7 @@ public Set getAnnotation(Set annotat if (value.startsWith("[")) { isArray1 = true; } - if (basicValue.contains(value)) { + if (basicValueSet.contains(value)) { newValue = value; } else if (value.startsWith("Ljava/util/") || !value.endsWith(";") || value.startsWith("Ljava/lang/")||!value.startsWith("L")) { newValue = value; @@ -694,7 +696,7 @@ public Set getAnnotation(Set annotat if (value.startsWith("[")) { isArray2 = true; } - if (basicValue.contains(value)) { + if (basicValueSet.contains(value)) { newValueSub = value; } else if (value.startsWith("Ljava/util/") || value.startsWith("Ljava/lang/") || !value.endsWith(";")) { newValueSub = value; @@ -719,7 +721,7 @@ public Set getAnnotation(Set annotat isArray3 = true; } String newValue = null; - if (basicValue.contains(value)) { + if (basicValueSet.contains(value)) { newValue = value; } else if (value.startsWith("Ljava/util/") || value.startsWith("Ljava/lang/") || !value.endsWith(";")) { newValue = value; @@ -774,7 +776,7 @@ public Set getAnnotation(Set annotat if (value.startsWith("[")) { isArray2 = true; } - if (basicValue.contains(value)) { + if (basicValueSet.contains(value)) { newValueSub = value; } else if (value.startsWith("Ljava/util/") || value.startsWith("Ljava/lang/") || !value.endsWith(";")) { newValueSub = value; diff --git a/atlas-update/src/main/java/com/taobao/atlas/dexmerge/dx/merge/DexTransform.java b/atlas-update/src/main/java/com/taobao/atlas/dexmerge/dx/merge/DexTransform.java index 98a11fc2d..586926324 100644 --- a/atlas-update/src/main/java/com/taobao/atlas/dexmerge/dx/merge/DexTransform.java +++ b/atlas-update/src/main/java/com/taobao/atlas/dexmerge/dx/merge/DexTransform.java @@ -232,7 +232,7 @@ public DexTransform uninoStringValues(Dex baseDex) { return this; } - public DexTransform markClassDef(Dex baseDex,ListclassNames) { + public DexTransform markClassDef(Dex baseDex,SetclassNames) { for (ClassDef classDef:dex.classDefs()) { int typeId = classDef.getTypeIndex(); String value = dex.typeNames().get(typeId);