Camera: Add NativeCoverageHackInstrumentationListener

The listener will invoke signal 37 when native code coverage is
enabled, so that coverage results are dumped correctly for native
in-process libraries that are used during test runs.

Test: atest CtsCameraTestCases --experimental-coverage
Bug: 294102327
Change-Id: If8aeba5d62c7d539f0097139cc950aedd5a2c227
diff --git a/tests/camera/Android.bp b/tests/camera/Android.bp
index c6120df..77d35c9 100644
--- a/tests/camera/Android.bp
+++ b/tests/camera/Android.bp
@@ -71,6 +71,7 @@
         "androidx.camera_camera-core",
         "androidx.camera_camera-extensions",
         "androidx.camera_camera-lifecycle",
+        "modules-utils-native-coverage-listener",
     ],
     jni_libs: [
         "libctscamera2_jni",
diff --git a/tests/camera/AndroidTest.xml b/tests/camera/AndroidTest.xml
index 34daae5..187bafd 100644
--- a/tests/camera/AndroidTest.xml
+++ b/tests/camera/AndroidTest.xml
@@ -41,5 +41,7 @@
         <option name="test-timeout" value="24000000" />
         <option name="hidden-api-checks" value="false" />
         <option name="isolated-storage" value="false" />
+        <!-- Ensure native coverage info is dumped at end of the test -->
+        <option name="device-listeners" value="com.android.modules.utils.testing.NativeCoverageHackInstrumentationListener" />
     </test>
 </configuration>