Retain dalvik JNI annotations despite retention policy.

Change-Id: Ib9d2bad49adc2cf2b89b4b699550c0b6a0809c42
diff --git a/src/main/java/com/android/tools/r8/graph/DexItemFactory.java b/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
index dd22db9..c1004de 100644
--- a/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
+++ b/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
@@ -326,6 +326,12 @@
   public final DexType annotationReachabilitySensitive =
       createType("Ldalvik/annotation/optimization/ReachabilitySensitive;");
 
+  // Runtime affecting yet class-retained annotations.
+  public final DexType dalvikFastNativeAnnotation =
+      createType("Ldalvik/annotation/optimization/FastNative;");
+  public final DexType dalvikCriticalNativeAnnotation =
+      createType("Ldalvik/annotation/optimization/CriticalNative;");
+
   private static final String METAFACTORY_METHOD_NAME = "metafactory";
   private static final String METAFACTORY_ALT_METHOD_NAME = "altMetafactory";
 
diff --git a/src/main/java/com/android/tools/r8/graph/JarClassFileReader.java b/src/main/java/com/android/tools/r8/graph/JarClassFileReader.java
index 168d3e9..5a80fe0 100644
--- a/src/main/java/com/android/tools/r8/graph/JarClassFileReader.java
+++ b/src/main/java/com/android/tools/r8/graph/JarClassFileReader.java
@@ -169,10 +169,14 @@
     if (application.options.readCompileTimeAnnotations) {
       return true;
     }
+    DexType type = application.getTypeFromDescriptor(desc);
+    if (type == application.options.itemFactory.dalvikFastNativeAnnotation
+        || type == application.options.itemFactory.dalvikCriticalNativeAnnotation) {
+      return true;
+    }
     if (application.options.processCovariantReturnTypeAnnotations) {
       // @CovariantReturnType annotations are processed by CovariantReturnTypeAnnotationTransformer,
       // they thus need to be read here and will then be removed as part of the processing.
-      DexType type = application.getTypeFromDescriptor(desc);
       return CovariantReturnTypeAnnotationTransformer.isCovariantReturnTypeAnnotation(
           type, application.options.itemFactory);
     }