Remove some SOA from JNI internal.

Remove or reduce scope of scoped object accesses in JNI internal. Turn a
PrettyMethod and string compare into a pointer comparison.

Change-Id: I6f8ac8f6a4741916769288c4d6d411c7e0f40ef4
diff --git a/src/well_known_classes.h b/src/well_known_classes.h
index 90b33c1..fd8f19b 100644
--- a/src/well_known_classes.h
+++ b/src/well_known_classes.h
@@ -30,7 +30,8 @@
 
 struct WellKnownClasses {
   static void InitClasses(JNIEnv* env);
-  static void Init(JNIEnv* env);
+  static void Init(JNIEnv* env);  // Run before native methods are registered.
+  static void LateInit(JNIEnv* env);  // Run after native methods are registered.
 
   static Class* ToClass(jclass global_jclass)
       SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
@@ -71,6 +72,7 @@
   static jmethodID java_lang_ref_FinalizerReference_add;
   static jmethodID java_lang_ref_ReferenceQueue_add;
   static jmethodID java_lang_reflect_InvocationHandler_invoke;
+  static jmethodID java_lang_Runtime_nativeLoad;
   static jmethodID java_lang_Short_valueOf;
   static jmethodID java_lang_Thread_init;
   static jmethodID java_lang_Thread_run;