Move dexdiag out of the release APEX, to avoid dependencies on
lib{proc,mem}info there.

Also deduped the dexdump and dexlist checks in art_apex_test.py.

Test: art/build/apex/runtests.sh (on aosp_taimen, aosp_cf_x86_phone, hikey64_only)
Bug: 124293228
Bug: 118374951
Change-Id: I8b4c09222cafa4150a1753637b6aa5349bf4477c
diff --git a/build/apex/Android.bp b/build/apex/Android.bp
index bfa4043..3d5d039 100644
--- a/build/apex/Android.bp
+++ b/build/apex/Android.bp
@@ -82,11 +82,15 @@
 
 // Tools common to both device APEX and host APEX. Derived from art-tools in art/Android.mk.
 art_tools_common_binaries = [
-    "dexdiag",
     "dexdump",
     "dexlist",
 ]
 
+// Tools common to both device and host debug APEXes.
+art_tools_debug_binaries = [
+    "dexdiag",
+]
+
 // Tools exclusively for the device APEX derived from art-tools in art/Android.mk.
 art_tools_device_only_binaries = [
     // oatdump cannot link with host linux_bionic due to not using clang lld;
@@ -108,9 +112,6 @@
     "hprof-conv",
 ]
 
-art_tools_device_binaries = art_tools_common_binaries + art_tools_device_only_binaries
-art_tools_host_binaries = art_tools_common_binaries + art_tools_host_only_binaries
-
 // Libraries needed to use com.android.runtime.host for zipapex run-tests
 art_runtime_host_run_test_libs = [
     "libartd-disassembler"
@@ -207,7 +208,8 @@
             binaries: art_runtime_base_binaries_prefer32,
         },
         first: {
-            binaries: art_tools_device_binaries,
+            binaries: art_tools_common_binaries
+                + art_tools_device_only_binaries,
         }
     },
     binaries: [
@@ -246,7 +248,8 @@
                 + art_runtime_debug_binaries_prefer32_device,
         },
         first: {
-            binaries: art_tools_debug_device_only_binaries,
+            binaries: art_tools_debug_binaries
+                + art_tools_debug_device_only_binaries,
         }
     },
     certificate: ":com.android.runtime.debug.certificate",
@@ -278,7 +281,9 @@
                 + art_runtime_debug_binaries_both_host,
         },
         first: {
-            binaries: art_tools_host_binaries
+            binaries: art_tools_common_binaries
+                + art_tools_debug_binaries  // Host APEX is always debug.
+                + art_tools_host_only_binaries
                 + art_runtime_base_binaries_prefer32
                 + art_runtime_debug_binaries_prefer32,
         }
diff --git a/build/apex/art_apex_test.py b/build/apex/art_apex_test.py
index a1fe713..d60020c 100755
--- a/build/apex/art_apex_test.py
+++ b/build/apex/art_apex_test.py
@@ -383,8 +383,10 @@
     # Check the APEX manifest.
     self._checker.check_file('apex_manifest.json')
 
-    # Check base binaries for ART.
+    # Check binaries for ART.
     self._checker.check_executable('dex2oat')
+    self._checker.check_executable('dexdump')
+    self._checker.check_executable('dexlist')
     self._checker.check_executable('dexoptanalyzer')
     self._checker.check_executable('profman')
     self._checker.check_symlinked_multilib_executable('dalvikvm')
@@ -468,9 +470,6 @@
     self._checker.check_executable('art_prepostinstall_utils')
 
     # Check binaries for ART.
-    self._checker.check_executable('dexdiag')
-    self._checker.check_executable('dexdump')
-    self._checker.check_executable('dexlist')
     self._checker.check_executable('oatdump')
 
     # Check internal libraries for ART.
@@ -498,10 +497,6 @@
     self._checker.check_native_library('libtombstoned_client')
     self._checker.check_native_library('libz')
 
-    # TODO(b/124293228): Figure out why we get these.
-    self._checker.check_prefer64_library('libmeminfo')
-    self._checker.check_prefer64_library('libprocinfo')
-
     # TODO(b/124293228): Cuttlefish puts ARM libs in a lib/arm subdirectory.
     # Check that properly on that arch, but for now just ignore the directory.
     self._checker.ignore_path('lib/arm')
@@ -541,8 +536,6 @@
   def run(self):
     # Check binaries for ART.
     self._checker.check_executable('dexdiag')
-    self._checker.check_executable('dexdump')
-    self._checker.check_executable('dexlist')
 
     # Check debug binaries for ART.
     self._checker.check_executable('dexoptanalyzerd')
@@ -591,6 +584,8 @@
     # package we need to look out for dependencies that should go through
     # exported library stubs (until b/128708192 is fixed).
     self._checker.check_optional_native_library('libvixld')  # Only on ARM/ARM64
+    self._checker.check_prefer64_library('libmeminfo')
+    self._checker.check_prefer64_library('libprocinfo')
 
 
 class NoSuperfluousBinariesChecker: