private static AppInstrumentation create() { Instrumentation instrumentation = ActivityThread.mInstrumentation.get(VirtualCore.mainThread()); if (instrumentation instanceof AppInstrumentation) { return (AppInstrumentation) instrumentation; } return new AppInstrumentation(instrumentation); }
public static AppInstrumentation getDefault() { if (gDefault == null) { synchronized (AppInstrumentation.class) { if (gDefault == null) { gDefault = create(); } } } return gDefault; }
void injectAll() throws Throwable { for (IInjector injector : mInjectors.values()) { injector.inject(); } // XXX: Lazy inject the Instrumentation, addInjector(AppInstrumentation.getDefault()); }
@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 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; } }
@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); }
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); }
public static AppInstrumentation getDefault() { if (gDefault == null) { synchronized (AppInstrumentation.class) { if (gDefault == null) { gDefault = create(); } } } return gDefault; }
callUiCallback(intent, false);
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); }
public static AppInstrumentation getDefault() { if (gDefault == null) { synchronized (AppInstrumentation.class) { if (gDefault == null) { gDefault = create(); } } } return gDefault; }
@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; } }
@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 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); }
callUiCallback(intent, false);