What's the difference between creating the object using AndroidJavaObject and AndroidJNI.NewObject?
new AndroidJavaObject("android.content.Intent", ACTION_SEND);
vs
IntPtr intentClass = AndroidJNI.FindClass("android.content.Intent");
IntPtr intentConstructor = AndroidJNI.GetMethodID(IntentClass,"<init>","(Ljava/lang/String;)V");
jvalue[] intentParameters = new jvalue[1];
intentParameters[0] = ACTION_SEND;
IntPtr intentObject = AndroidJNI.NewObject(intentClass, intentConstructor, intentParameters);
Is AndroidJavaObject just a shorter version or there are any downsides?
AndroidJavaObjectconstructor always callsFindClassinternally without any kind of caching. There are times where you might prefer just callingFindClassonce and saving the result as a global reference for repeated use (e.g. trying to useFindClassfor non-system classes on a purely native thread can be problematic).