public static AppInstrumentation getDefault() { if (gDefault == null) { synchronized (AppInstrumentation.class) { if (gDefault == null) { gDefault = create(); } } } return gDefault; }
@Override public void callApplicationOnCreate(Application app) { super.callApplicationOnCreate(app); }
@Override public Activity newActivity(Class<?> clazz, Context context, IBinder token, Application application, Intent intent, ActivityInfo info, CharSequence title, Activity parent, String id, Object lastNonConfigurationInstance) throws InstantiationException, IllegalAccessException { try { return super.newActivity(clazz, context, token, application, intent, info, title, parent, id, lastNonConfigurationInstance); } catch (Throwable e) { VLog.e(TAG, "activity crashed when call newActivity, clearing", e); // 1. tell ui that we launched(failed) callUiCallback(intent, false); // 3. rethrow throw e; } }
@Override public void callActivityOnDestroy(Activity activity) { VirtualCore.get().getComponentDelegate().beforeActivityDestroy(activity); super.callActivityOnDestroy(activity); VirtualCore.get().getComponentDelegate().afterActivityDestroy(activity); }
@Override public void callActivityOnPause(Activity activity) { VirtualCore.get().getComponentDelegate().beforeActivityPause(activity); super.callActivityOnPause(activity); VirtualCore.get().getComponentDelegate().afterActivityPause(activity); }
@Override public void callActivityOnResume(Activity activity) { VirtualCore.get().getComponentDelegate().beforeActivityResume(activity); VActivityManager.get().onActivityResumed(activity); super.callActivityOnResume(activity); VirtualCore.get().getComponentDelegate().afterActivityResume(activity); Intent intent = activity.getIntent(); callUiCallback(intent, true); }
BundleCompat.clearParcelledData(icicle); VirtualCore.get().getComponentDelegate().beforeActivityCreate(activity); IBinder token = mirror.android.app.Activity.mToken.get(activity); ActivityClientRecord r = VActivityManager.get().getActivityRecord(token); super.callActivityOnCreate(activity, icicle); } catch (Throwable e) { VLog.e(TAG, "activity crashed when call onCreate, clearing", e); callUiCallback(intent, false); VirtualCore.get().getComponentDelegate().afterActivityCreate(activity);
mTempLock = null; VirtualCore.get().getComponentDelegate().beforeApplicationCreate(mInitialApplication); try { mInstrumentation.callApplicationOnCreate(mInitialApplication); VirtualCore.get().getComponentDelegate().afterApplicationCreate(mInitialApplication);
@Override public void callActivityOnCreate(Activity activity, Bundle icicle, PersistableBundle persistentState) { if (icicle != null) { BundleCompat.clearParcelledData(icicle); } super.callActivityOnCreate(activity, icicle, persistentState); }
void injectAll() throws Throwable { for (IInjector injector : mInjectors.values()) { injector.inject(); } // XXX: Lazy inject the Instrumentation, addInjector(AppInstrumentation.getDefault()); }
private static AppInstrumentation create() { Instrumentation instrumentation = ActivityThread.mInstrumentation.get(VirtualCore.mainThread()); if (instrumentation instanceof AppInstrumentation) { return (AppInstrumentation) instrumentation; } return new AppInstrumentation(instrumentation); }
@Override public Object call(Object who, Method method, Object... args) throws Throwable { Intent intent = (Intent) args[1]; String type = (String) args[2]; intent.setDataAndType(intent.getData(), type); if (VirtualCore.get().getComponentDelegate() != null) { VirtualCore.get().getComponentDelegate().onSendBroadcast(intent); } Intent newIntent = handleIntent(intent); if (newIntent != null) { args[1] = newIntent; } else { return 0; } if (args[7] instanceof String || args[7] instanceof String[]) { // clear the permission args[7] = null; } return method.invoke(who, args); }
td = descriptionDelegate.getTaskDescription(td);
@Override public void callActivityOnDestroy(Activity activity) { VirtualCore.get().getComponentDelegate().beforeActivityDestroy(activity); super.callActivityOnDestroy(activity); VirtualCore.get().getComponentDelegate().afterActivityDestroy(activity); }
@Override public void callActivityOnPause(Activity activity) { VirtualCore.get().getComponentDelegate().beforeActivityPause(activity); super.callActivityOnPause(activity); VirtualCore.get().getComponentDelegate().afterActivityPause(activity); }
@Override public Activity newActivity(ClassLoader cl, String className, Intent intent) throws InstantiationException, IllegalAccessException, ClassNotFoundException { try { return super.newActivity(cl, className, intent); } catch (Throwable e) { VLog.e(TAG, "activity crashed when call newActivity, clearing", e); // 1. tell ui that we launched(failed) callUiCallback(intent, false); // 3. rethrow throw e; } }
public static AppInstrumentation getDefault() { if (gDefault == null) { synchronized (AppInstrumentation.class) { if (gDefault == null) { gDefault = create(); } } } return gDefault; }
@Override public void callActivityOnDestroy(Activity activity) { VirtualCore.get().getComponentDelegate().beforeActivityDestroy(activity); super.callActivityOnDestroy(activity); VirtualCore.get().getComponentDelegate().afterActivityDestroy(activity); }
@Override public Activity newActivity(Class<?> clazz, Context context, IBinder token, Application application, Intent intent, ActivityInfo info, CharSequence title, Activity parent, String id, Object lastNonConfigurationInstance) throws InstantiationException, IllegalAccessException { try { return super.newActivity(clazz, context, token, application, intent, info, title, parent, id, lastNonConfigurationInstance); } catch (Throwable e) { VLog.e(TAG, "activity crashed when call newActivity, clearing", e); // 1. tell ui that we launched(failed) callUiCallback(intent, false); // 3. rethrow throw e; } }
public static AppInstrumentation getDefault() { if (gDefault == null) { synchronized (AppInstrumentation.class) { if (gDefault == null) { gDefault = create(); } } } return gDefault; }