Initial support for R8 based tracing of resource access.

This adds R class specific tracing to the enqueuer marking resource
reachable in the model when we read fields in the R class.

We build ir for the R classes in the analysis to extract the assigned
values of both integer fields and array values in stylable arrays.

This setup only works with non final fields in the R classes (outside
of testing) since we otherwise would not get the field reads.

Bug: b/287398085
Bug: b/310556986
Change-Id: I4553be74fc3856ee42fc2cf9f771ea98190a4b0e
diff --git a/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java b/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java
index d8ac6a9..8273c96 100644
--- a/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java
+++ b/src/resourceshrinker/java/com/android/build/shrinker/r8integration/R8ResourceShrinkerState.java
@@ -19,6 +19,7 @@
 import java.util.List;
 
 public class R8ResourceShrinkerState {
+
   private R8ResourceShrinkerModel r8ResourceShrinkerModel;
 
   public List<String> trace(int id) {
@@ -32,6 +33,10 @@
     r8ResourceShrinkerModel.instantiateFromResourceTable(inputStream);
   }
 
+  public R8ResourceShrinkerModel getR8ResourceShrinkerModel() {
+    return r8ResourceShrinkerModel;
+  }
+
   public static class R8ResourceShrinkerModel extends ResourceShrinkerModel {
 
     public R8ResourceShrinkerModel(