Enable InMemoryDexClassLoader vdex only for Q+ targets
Some legacy apps depend on InMemoryDexClassLoader not loading classes
immediately. Disable verification result caching for them.
Bug: 2131483
Test: art/test.py -b -r -t 692 -t 693
Change-Id: Ie230b837c2fdd5cda13e06faba501fe07e1f65bc
diff --git a/test/692-vdex-inmem-loader/src/Main.java b/test/692-vdex-inmem-loader/src/Main.java
index 6beef5c..53f4c36 100644
--- a/test/692-vdex-inmem-loader/src/Main.java
+++ b/test/692-vdex-inmem-loader/src/Main.java
@@ -64,6 +64,9 @@
System.loadLibrary(args[0]);
ClassLoader[] loaders = null;
+ // Feature only enabled for target SDK version Q and later.
+ setTargetSdkVersion(/* Q */ 29);
+
// Feature is disabled in debuggable mode because runtime threads are not
// allowed to load classes.
boolean featureEnabled = !isDebuggable();
@@ -108,6 +111,7 @@
}
private static native boolean isDebuggable();
+ private static native int setTargetSdkVersion(int version);
private static native void setProcessDataDir(String path);
private static native void waitForVerifier();
private static native boolean areClassesVerified(ClassLoader loader);