diff options
Diffstat (limited to 'attribute_stats')
-rw-r--r-- | attribute_stats/src/Analyzer.java | 87 |
1 files changed, 3 insertions, 84 deletions
diff --git a/attribute_stats/src/Analyzer.java b/attribute_stats/src/Analyzer.java index 8da53ea..a6bbb4a 100644 --- a/attribute_stats/src/Analyzer.java +++ b/attribute_stats/src/Analyzer.java @@ -34,11 +34,8 @@ import java.io.StringReader; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -62,7 +59,6 @@ public class Analyzer { private List<File> mDirectories; private File mCurrentFile; - private boolean mListAdvanced; /** Map from view id to map from attribute to frequency count */ private Map<String, Map<String, Usage>> mFrequencies = @@ -78,10 +74,9 @@ public class Analyzer { private int mLayoutFileCount; private File mXmlMetadataFile; - private Analyzer(List<File> directories, File xmlMetadataFile, boolean listAdvanced) { + private Analyzer(List<File> directories, File xmlMetadataFile) { mDirectories = directories; mXmlMetadataFile = xmlMetadataFile; - mListAdvanced = listAdvanced; } public static void main(String[] args) { @@ -95,21 +90,14 @@ public class Analyzer { File metadataFile = null; List<File> directories = new ArrayList<File>(); - boolean listAdvanced = false; for (int i = 0, n = args.length; i < n; i++) { String arg = args[i]; - if (arg.equals("--list")) { - // List ALL encountered attributes - listAdvanced = true; - continue; - } - // The -metadata flag takes a pointer to an ADT extra-view-metadata.xml file // and attempts to insert topAttrs attributes into it (and saves it as same // file +.mod as an extension). This isn't listed on the usage flag because // it's pretty brittle and requires some manual fixups to the file afterwards. - if (arg.equals("--metadata")) { + if (arg.equals("-metadata")) { i++; File file = new File(args[i]); if (!file.exists()) { @@ -137,18 +125,13 @@ public class Analyzer { directories.add(directory); } - new Analyzer(directories, metadataFile, listAdvanced).analyze(); + new Analyzer(directories, metadataFile).analyze(); } private void analyze() { for (File directory : mDirectories) { scanDirectory(directory); } - - if (mListAdvanced) { - listAdvanced(); - } - printStatistics(); if (mXmlMetadataFile != null) { @@ -540,69 +523,6 @@ public class Analyzer { System.out.println("Done - wrote " + output.getPath()); } - //private File mPublicFile = new File(location, "data/res/values/public.xml"); - private File mPublicFile = new File("/Volumes/AndroidWork/git/frameworks/base/core/res/res/values/public.xml"); - - private void listAdvanced() { - Set<String> keys = new HashSet<String>(1000); - - // Merged usages across view types - Map<String, Usage> mergedUsages = new HashMap<String, Usage>(100); - - for (Entry<String,Map<String,Usage>> entry : mFrequencies.entrySet()) { - String view = entry.getKey(); - if (view.indexOf('.') != -1 && !view.startsWith("android.")) { - // Skip custom views etc - continue; - } - Map<String, Usage> map = entry.getValue(); - for (Usage usage : map.values()) { -// if (usage.count == 1) { -// System.out.println("Only found *one* usage of " + usage.attribute); -// } -// if (usage.count < 4) { -// System.out.println("Only found " + usage.count + " usage of " + usage.attribute); -// } - - String attribute = usage.attribute; - int index = attribute.indexOf(':'); - if (index == -1 || attribute.startsWith("android:")) { - Usage merged = mergedUsages.get(attribute); - if (merged == null) { - merged = new Usage(attribute); - merged.count = usage.count; - mergedUsages.put(attribute, merged); - } else { - merged.count += usage.count; - } - } - } - } - - for (Usage usage : mergedUsages.values()) { - String attribute = usage.attribute; - if (usage.count < 4) { - System.out.println("Only found " + usage.count + " usage of " + usage.attribute); - continue; - } - int index = attribute.indexOf(':'); - if (index != -1) { - attribute = attribute.substring(index + 1); // +1: skip ':' - } - keys.add(attribute); - } - - List<String> sorted = new ArrayList<String>(keys); - Collections.sort(sorted); - System.out.println("\nEncountered Attributes"); - System.out.println("-----------------------------"); - for (String attribute : sorted) { - System.out.println(attribute); - } - - System.out.println(); - } - private static class Usage implements Comparable<Usage> { public String attribute; public int count; @@ -619,7 +539,6 @@ public class Analyzer { count++; } - @Override public int compareTo(Usage o) { // Sort by decreasing frequency, then sort alphabetically int frequencyDelta = o.count - count; |