Add android_sdk to third_party to be used by golem when benchmarking

Right now the runners cannot build the target because they are missing
the android sdk.

Change-Id: I5d8ba65e1b1090628957c7285dc26edb2bd69e67
diff --git a/third_party/android_sdk.tar.gz.sha1 b/third_party/android_sdk.tar.gz.sha1
new file mode 100644
index 0000000..ebc2c1d
--- /dev/null
+++ b/third_party/android_sdk.tar.gz.sha1
@@ -0,0 +1 @@
+fdbcfa08e6a1772bc9569bf706819a95a15bc3a0
\ No newline at end of file
diff --git a/tools/apk_masseur.py b/tools/apk_masseur.py
index 4b13a32..0edd032 100755
--- a/tools/apk_masseur.py
+++ b/tools/apk_masseur.py
@@ -88,7 +88,7 @@
   aligned_apk = os.path.join(temp, 'aligned.apk')
   zipalign_path = (
       'zipalign' if 'build_tools' in os.environ.get('PATH')
-      else os.path.join(utils.ANDROID_BUILD_TOOLS, 'zipalign'))
+      else os.path.join(utils.getAndroidBuildTools(), 'zipalign'))
   cmd = [
     zipalign_path,
     '-f',
diff --git a/tools/apk_utils.py b/tools/apk_utils.py
index 41c80c2..86f1fe8 100644
--- a/tools/apk_utils.py
+++ b/tools/apk_utils.py
@@ -26,7 +26,7 @@
 def sign_with_apksigner(
     unsigned_apk, signed_apk, keystore, password='android', quiet=False):
   cmd = [
-    os.path.join(utils.ANDROID_BUILD_TOOLS, 'apksigner'),
+    os.path.join(utils.getAndroidBuildTools(), 'apksigner'),
     'sign',
     '-v',
     '--ks', keystore,
diff --git a/tools/download_all_benchmark_dependencies.py b/tools/download_all_benchmark_dependencies.py
index 43ec0ab..2717c45 100755
--- a/tools/download_all_benchmark_dependencies.py
+++ b/tools/download_all_benchmark_dependencies.py
@@ -13,9 +13,8 @@
 
 def Main():
   gradle.RunGradle(BUILD_TARGETS)
-  # Download opensource_apps and place in build.
   utils.DownloadFromX20(utils.OPENSOURCE_APPS_SHA_FILE)
-
+  utils.DownloadFromX20(utils.ANDROID_SDK + '.tar.gz.sha1')
 
 if __name__ == '__main__':
   sys.exit(Main())
diff --git a/tools/golem.py b/tools/golem.py
index a535133..6552145 100755
--- a/tools/golem.py
+++ b/tools/golem.py
@@ -9,6 +9,7 @@
 
 LINKED_THIRD_PARTY_DIRECTORIES = [
     'android_jar',
+    'android_sdk',
     'benchmarks',
     'framework',
     'gmail',
diff --git a/tools/run_on_as_app.py b/tools/run_on_as_app.py
index 998c9ef..fef337a 100755
--- a/tools/run_on_as_app.py
+++ b/tools/run_on_as_app.py
@@ -185,7 +185,7 @@
     cmd = [jdk.GetJavaExecutable(), '-ea', '-jar', r8_jar, 'extractmarker', apk]
   elif os.path.isfile(r8lib_jar):
     cmd = [jdk.GetJavaExecutable(), '-ea', '-cp', r8lib_jar,
-        'com.android.tools.r8.SwissArmyKnife', 'extractmarker', apk]
+        'com.android.tools.r8.ExtractMarker', apk]
   else:
     script = os.path.join(utils.TOOLS_DIR, 'extractmarker.py')
     cmd = ['python', script, apk]
@@ -452,7 +452,7 @@
       app, config, checkout_dir, proguard_config_dest)
 
   env = {}
-  env['ANDROID_HOME'] = utils.ANDROID_HOME
+  env['ANDROID_HOME'] = utils.getAndroidHome()
   env['JAVA_OPTS'] = '-ea:com.android.tools.r8...'
 
   releaseTarget = config.get('releaseTarget')
@@ -774,6 +774,9 @@
     if os.path.exists(WORKING_DIR):
       shutil.rmtree(WORKING_DIR)
     shutil.copytree(utils.OPENSOURCE_APPS_FOLDER, WORKING_DIR)
+    os.environ[utils.ANDROID_HOME_ENVIROMENT_NAME] = os.path.join(
+        utils.ANDROID_SDK)
+    os.environ[utils.ANDROID_TOOLS_VERSION_ENVIRONMENT_NAME] = '28.0.3'
 
   if not os.path.exists(WORKING_DIR):
     os.makedirs(WORKING_DIR)
diff --git a/tools/utils.py b/tools/utils.py
index f2df0ed..12535be 100644
--- a/tools/utils.py
+++ b/tools/utils.py
@@ -21,6 +21,7 @@
 TOOLS_DIR = defines.TOOLS_DIR
 REPO_ROOT = defines.REPO_ROOT
 THIRD_PARTY = defines.THIRD_PARTY
+ANDROID_SDK = os.path.join(THIRD_PARTY, 'android_sdk')
 MEMORY_USE_TMP_FILE = 'memory_use.tmp'
 DEX_SEGMENTS_RESULT_PATTERN = re.compile('- ([^:]+): ([0-9]+)')
 BUILD = os.path.join(REPO_ROOT, 'build')
@@ -69,13 +70,17 @@
     'third_party/opensource_apps.tar.gz.sha1')
 OPENSOURCE_APPS_FOLDER = os.path.join(REPO_ROOT, 'third_party/opensource_apps/')
 
-
-# Common environment setup.
+ANDROID_HOME_ENVIROMENT_NAME = "ANDROID_HOME"
+ANDROID_TOOLS_VERSION_ENVIRONMENT_NAME = "ANDROID_TOOLS_VERSION"
 USER_HOME = os.path.expanduser('~')
-ANDROID_HOME = os.path.join(USER_HOME, 'Android', 'Sdk')
-ANDROID_BUILD_TOOLS_VERSION = '28.0.3'
-ANDROID_BUILD_TOOLS = os.path.join(
-    ANDROID_HOME, 'build-tools', ANDROID_BUILD_TOOLS_VERSION)
+
+def getAndroidHome():
+  return os.environ.get(
+      ANDROID_HOME_ENVIROMENT_NAME, os.path.join(USER_HOME, 'Android', 'Sdk'))
+
+def getAndroidBuildTools():
+  version = os.environ.get(ANDROID_TOOLS_VERSION_ENVIRONMENT_NAME, '28.0.3')
+  return os.path.join(getAndroidHome(), 'build-tools', version)
 
 def Print(s, quiet=False):
   if quiet:
@@ -270,10 +275,9 @@
   PrintCmd(cmd)
   subprocess.check_call(cmd)
 
-def create_archive(name):
-  return create_archive(name, [name])
-
-def create_archive(name, sources):
+def create_archive(name, sources=None):
+  if not sources:
+    sources = [name]
   tarname = '%s.tar.gz' % name
   with tarfile.open(tarname, 'w:gz') as tar:
     for source in sources: