diff --git a/autojs/src/main/AndroidManifest.xml b/autojs/src/main/AndroidManifest.xml index 2475da504..fa2e72b4b 100644 --- a/autojs/src/main/AndroidManifest.xml +++ b/autojs/src/main/AndroidManifest.xml @@ -11,6 +11,8 @@ + + diff --git a/autojs/src/main/assets/modules/__images__.js b/autojs/src/main/assets/modules/__images__.js index d2a2e3db7..be6de96ad 100644 --- a/autojs/src/main/assets/modules/__images__.js +++ b/autojs/src/main/assets/modules/__images__.js @@ -13,7 +13,7 @@ module.exports = function (runtime, scope) { if (Array.isArray(list)) { this.matches = list; } else { - this.matches = runtime.bridges.bridges.toArray(list); + this.matches = runtime.bridges.toArray(list); } this.__defineGetter__("points", () => { if (typeof (this.__points__) == 'undefined') { diff --git a/autojs/src/main/java/com/stardust/autojs/AutoJs.java b/autojs/src/main/java/com/stardust/autojs/AutoJs.java index 5d9592418..0dca35c7f 100644 --- a/autojs/src/main/java/com/stardust/autojs/AutoJs.java +++ b/autojs/src/main/java/com/stardust/autojs/AutoJs.java @@ -22,7 +22,7 @@ import com.stardust.autojs.engine.LoopBasedJavaScriptEngine; import com.stardust.autojs.engine.RootAutomatorEngine; import com.stardust.autojs.engine.ScriptEngineManager; -import com.stardust.autojs.rhino.InterruptibleAndroidContextFactory; +import com.stardust.autojs.rhino.AndroidContextFactory; import com.stardust.autojs.runtime.ScriptRuntime; import com.stardust.autojs.runtime.accessibility.AccessibilityConfig; import com.stardust.autojs.runtime.api.AppUtils; @@ -133,7 +133,7 @@ protected void initScriptEngineManager() { } protected void initContextFactory() { - ContextFactory.initGlobal(new InterruptibleAndroidContextFactory(new File(mContext.getCacheDir(), "classes"))); + ContextFactory.initGlobal(new AndroidContextFactory(new File(mContext.getCacheDir(), "classes"))); } protected ScriptRuntime createRuntime() { diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/nativeview/NativeView.java b/autojs/src/main/java/com/stardust/autojs/core/ui/nativeview/NativeView.java index acd822439..8a10bba31 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/ui/nativeview/NativeView.java +++ b/autojs/src/main/java/com/stardust/autojs/core/ui/nativeview/NativeView.java @@ -1,17 +1,14 @@ package com.stardust.autojs.core.ui.nativeview; -import android.graphics.PorterDuff; import android.view.View; -import android.widget.Button; import com.stardust.autojs.core.ui.JsViewHelper; import com.stardust.autojs.core.ui.ViewExtras; import com.stardust.autojs.core.ui.attribute.ViewAttributes; import com.stardust.autojs.rhino.NativeJavaObjectWithPrototype; +import com.stardust.autojs.runtime.ScriptRuntime; -import org.mozilla.javascript.NativeJavaObject; import org.mozilla.javascript.NativeObject; -import org.mozilla.javascript.ScriptRuntime; import org.mozilla.javascript.Scriptable; public class NativeView extends NativeJavaObjectWithPrototype { @@ -45,7 +42,7 @@ public LongClickEvent(View view) { private final View mView; private final ViewPrototype mViewPrototype; - public NativeView(Scriptable scope, View view, Class staticType, com.stardust.autojs.runtime.ScriptRuntime runtime) { + public NativeView(Scriptable scope, View view, Class staticType, ScriptRuntime runtime) { super(scope, view, staticType); mViewAttributes = ViewExtras.getViewAttributes(view, runtime.ui.getResourceParser()); mView = view; diff --git a/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt b/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt index 51dfa0a0e..5fcd7345d 100644 --- a/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt +++ b/autojs/src/main/java/com/stardust/autojs/engine/RhinoJavaScriptEngine.kt @@ -7,18 +7,19 @@ import com.stardust.autojs.engine.module.AssetAndUrlModuleSourceProvider import com.stardust.autojs.engine.module.ScopeRequire import com.stardust.autojs.execution.ExecutionConfig import com.stardust.autojs.project.ScriptConfig +import com.stardust.autojs.rhino.AndroidContextFactory import com.stardust.autojs.rhino.RhinoAndroidHelper import com.stardust.autojs.rhino.TopLevelScope import com.stardust.autojs.runtime.ScriptRuntime import com.stardust.autojs.script.JavaScriptSource -import com.stardust.automator.UiObjectCollection import com.stardust.pio.UncheckedIOException -import org.mozilla.javascript.* +import org.mozilla.javascript.Context +import org.mozilla.javascript.Script +import org.mozilla.javascript.Scriptable +import org.mozilla.javascript.ScriptableObject import org.mozilla.javascript.commonjs.module.provider.SoftCachingModuleScriptProvider import java.io.IOException import java.io.InputStreamReader -import java.io.Reader -import java.util.* import java.util.concurrent.ConcurrentHashMap /** @@ -28,29 +29,26 @@ import java.util.concurrent.ConcurrentHashMap open class RhinoJavaScriptEngine(private val mAndroidContext: android.content.Context) : JavaScriptEngine() { - val context: Context - private val mScriptable: TopLevelScope + val context: Context = enterContext() + private val mScriptable: TopLevelScope = createScope(this.context) lateinit var thread: Thread private set - private val initScript: Script - get() { - return sInitScript ?: try { - val reader = InputStreamReader(mAndroidContext.assets.open("init.js")) - val script = context.compileReader(reader, SOURCE_NAME_INIT, 1, null) - sInitScript = script - script - } catch (e: IOException) { - throw UncheckedIOException(e) - } + private val initScript: Script by lazy