Update startup list generation using art profiles

Change-Id: I747191eb758e7b5bb5f2d811f56476b7d9d729e4
diff --git a/tools/startup/adb_utils.py b/tools/startup/adb_utils.py
index 976da7c..44f70aa 100755
--- a/tools/startup/adb_utils.py
+++ b/tools/startup/adb_utils.py
@@ -219,7 +219,7 @@
         % (profile_path, apk_path, apk_path), device_id)
   stdout = subprocess.check_output(cmd).decode('utf-8').strip()
   lines = stdout.splitlines()
-  classes_and_methods = []
+  classes_and_methods = {}
   flags_to_name = { 'H': 'hot', 'S': 'startup', 'P': 'post_startup' }
   for line in lines:
     flags = { 'hot': False, 'startup': False, 'post_startup': False }
@@ -229,7 +229,8 @@
       flags[flag_name] = True
       line = line[1:]
     assert line.startswith('L')
-    classes_and_methods.append({ 'descriptor': line, 'flags': flags })
+    descriptor = line
+    classes_and_methods[descriptor] = flags
   return classes_and_methods
 
 def get_screen_off_timeout(device_id=None):
diff --git a/tools/startup/generate_startup_descriptors.py b/tools/startup/generate_startup_descriptors.py
index 5116938..c4fa05a 100755
--- a/tools/startup/generate_startup_descriptors.py
+++ b/tools/startup/generate_startup_descriptors.py
@@ -29,7 +29,7 @@
         profile_classes_and_methods, iteration, options)
     current_startup_descriptors = \
         transform_classes_and_methods_to_r8_startup_descriptors(
-            profile_classes_and_methods, options)
+            profile_classes_and_methods)
   write_tmp_startup_descriptors(current_startup_descriptors, iteration, options)
   new_startup_descriptors = add_r8_startup_descriptors(
       startup_descriptors, current_startup_descriptors)
@@ -168,13 +168,13 @@
   print('Unrecognized line in logcat: %s' % line)
 
 def transform_classes_and_methods_to_r8_startup_descriptors(
-    classes_and_methods, options):
-  startup_descriptors = []
-  for class_or_method in classes_and_methods:
-    descriptor = class_or_method.get('descriptor')
-    flags = class_or_method.get('flags')
-    if should_include_startup_descriptor(descriptor, flags, options):
-      startup_descriptors.append(descriptor)
+    classes_and_methods):
+  startup_descriptors = {}
+  for startup_descriptor, flags in classes_and_methods.items():
+    startup_descriptors[startup_descriptor] = {
+      'conditional_startup': False,
+      'post_startup': flags['post_startup']
+    }
   return startup_descriptors
 
 def add_r8_startup_descriptors(old_startup_descriptors, startup_descriptors_to_add):
@@ -258,15 +258,14 @@
 def write_tmp_profile_classes_and_methods(
     profile_classes_and_methods, iteration, options):
   def item_to_string(item):
-    descriptor = item.get('descriptor')
-    flags = item.get('flags')
+    (descriptor, flags) = item
     return '%s%s%s%s' % (
         'H' if flags.get('hot') else '',
         'S' if flags.get('startup') else '',
         'P' if flags.get('post_startup') else '',
         descriptor)
   write_tmp_textual_artifact(
-      profile_classes_and_methods,
+      profile_classes_and_methods.items(),
       iteration,
       options,
       'profile.txt',