private InspectorModulesProvider createWebkitModulesProvider() { return () -> new Stetho.DefaultInspectorModulesBuilder(context).runtimeRepl( new JsRuntimeReplFactoryBuilder(context) .addFunction("activity", new BaseFunction() { @Override public Object call(org.mozilla.javascript.Context cx, Scriptable scope, Scriptable thisObj, Object[] args) { return activityProvider.getCurrentActivity(); } }).build() ).finish(); }
@Override public void onCreate() { super.onCreate(); if (null == demoAppContext) { demoAppContext = getApplicationContext(); } // queues = Volley.newRequestQueue(demoAppContext); // CrashHandler crashHandler = CrashHandler.getInstance(); // crashHandler.init(getApplicationContext()); // crashHandler.initActivityContainer(container); container = new ArrayList<>(5); if (Constants.IS_OPEN_UI_BLOCK_CANARY) { sContext = this; BlockCanary.install(this, new DemoBlockCanaryContext()).start(); } if (Constants.IS_OPEN_LEAK_CANARY) { refWatcher = initLeakCanary(); } if (Constants.IS_OPEN_STETHO) { // 查看 dumpapp 信息 // Stetho.initialize(Stetho.newInitializerBuilder(this).enableDumpapp(new DumperPluginsProvider() { // @Override // public Iterable<DumperPlugin> get() { // return new Stetho.DefaultDumperPluginsBuilder(DemoApplication.this).provide(new HelloWorldDumperPlugin()).provide(new APODDumperPlugin(DemoApplication.this.getContentResolver())).finish(); // } // }).enableWebKitInspector(new ExtInspectorModulesProvider(DemoApplication.this)).build()); // 调用 JS Stetho.initialize(Stetho.newInitializerBuilder(DemoApplication.this).enableWebKitInspector(new InspectorModulesProvider() { @Override public Iterable<ChromeDevtoolsDomain> get() { return new Stetho.DefaultInspectorModulesBuilder(DemoApplication.this).runtimeRepl(new JsRuntimeReplFactoryBuilder(DemoApplication.this) // Pass to JavaScript: var foo = "bar"; .addVariable("foo", "bar").build()).finish(); } }).build()); } }