From 2c990e19660a5698892f4bb95d811f08bfd170bb Mon Sep 17 00:00:00 2001
From: hyb1996 <946994919@qq.com>
Date: Fri, 27 Oct 2017 19:46:31 +0800
Subject: [PATCH] refactor: move some classes in package api to package core
---
app/src/main/AndroidManifest.xml | 2 +-
.../stardust/scriptdroid/autojs/AutoJs.java | 6 ++--
.../tool/AccessibilityServiceTool.java | 2 +-
.../src/main/assets/javascript_engine_init.js | 2 +-
.../main/assets/modules/__RootAutomator__.js | 2 +-
autojs/src/main/assets/modules/__images__.js | 10 +++----
autojs/src/main/assets/modules/__ui__.js | 2 +-
autojs/src/main/assets/modules/__web__.js | 4 +--
.../codegeneration/AutoScriptGenerator.java | 4 ---
.../accessibility}/UiSelector.java | 3 +-
.../api => core/eventloop}/EventEmitter.java | 4 +--
.../api => core}/image/ColorDetector.java | 4 +--
.../api => core}/image/ColorFinder.java | 2 +-
.../api => core}/image/ColorIterator.java | 3 +-
.../image/ConcurrentColorIterator.java | 3 +-
.../image/ScreenCaptureRequestActivity.java | 2 +-
.../image/ScreenCaptureRequester.java | 2 +-
.../api => core}/image/ScreenCapturer.java | 2 +-
.../core/inputevent/InputEventObserver.java | 2 +-
.../inputevent}/RootAutomator.java | 4 ++-
.../InputEventToAutoFileRecorder.java | 2 +-
.../InputEventToRootAutomatorRecorder.java | 2 --
.../autojs/core/templatematching/Test.java | 3 --
.../ui/BlockedMaterialDialog.java | 2 +-
.../ui/ConvertLayoutInflater.java | 18 ++----------
.../api => core}/ui/JsLayoutInflater.java | 2 +-
.../api => core}/ui/JsViewHelper.java | 2 +-
.../api => core}/ui/widget/JsButton.java | 5 +---
.../api => core}/ui/widget/JsEditText.java | 3 +-
.../api => core}/ui/widget/JsFrameLayout.java | 5 ++--
.../ui/widget/JsLinearLayout.java | 5 ++--
.../ui/widget/JsRelativeLayout.java | 5 ++--
.../api => core}/ui/widget/JsTextView.java | 5 +---
.../api => core}/ui/xml/AttributeHandler.java | 2 +-
.../api => core}/ui/xml/NodeHandler.java | 2 +-
.../api => core}/ui/xml/XmlConverter.java | 5 +---
.../api => core/util}/ProcessShell.java | 5 ++--
.../{runtime/api => core/util}/Shell.java | 3 +-
.../api => core/web}/InjectableWebClient.java | 2 +-
.../api => core/web}/InjectableWebView.java | 2 +-
.../autojs/engine/RootAutomatorEngine.java | 4 +--
.../autojs/runtime/ScriptRuntime.java | 12 ++++----
.../autojs/runtime/api/AbstractShell.java | 8 +++---
.../autojs/runtime/api/{ui => }/Dialogs.java | 3 +-
.../stardust/autojs/runtime/api/Events.java | 1 +
.../runtime/api/{image => }/Images.java | 5 +++-
.../autojs/runtime/api/{ui => }/UI.java | 4 ++-
.../autojs/runtime/api/crypto/Crypto.java | 28 -------------------
.../stardust/autojs/util/ProcessUtils.java | 2 +-
.../com/stardust/autojs/ExampleUnitTest.java | 4 ---
.../runtime/api/ui/XmlConverterTest.java | 2 +-
.../inrt/rt/AccessibilityServiceTool.java | 2 +-
.../com/stardust/auojs/inrt/rt/AutoJs.java | 9 ++----
53 files changed, 81 insertions(+), 148 deletions(-)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core/accessibility}/UiSelector.java (98%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core/eventloop}/EventEmitter.java (98%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/image/ColorDetector.java (98%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/image/ColorFinder.java (99%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/image/ColorIterator.java (98%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/image/ConcurrentColorIterator.java (97%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/image/ScreenCaptureRequestActivity.java (97%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/image/ScreenCaptureRequester.java (97%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/image/ScreenCapturer.java (99%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core/inputevent}/RootAutomator.java (97%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/BlockedMaterialDialog.java (99%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/ConvertLayoutInflater.java (82%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/JsLayoutInflater.java (81%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/JsViewHelper.java (95%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/widget/JsButton.java (80%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/widget/JsEditText.java (88%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/widget/JsFrameLayout.java (86%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/widget/JsLinearLayout.java (84%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/widget/JsRelativeLayout.java (83%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/widget/JsTextView.java (81%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/xml/AttributeHandler.java (99%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/xml/NodeHandler.java (98%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core}/ui/xml/XmlConverter.java (98%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core/util}/ProcessShell.java (98%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core/util}/Shell.java (98%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core/web}/InjectableWebClient.java (99%)
rename autojs/src/main/java/com/stardust/autojs/{runtime/api => core/web}/InjectableWebView.java (96%)
rename autojs/src/main/java/com/stardust/autojs/runtime/api/{ui => }/Dialogs.java (97%)
rename autojs/src/main/java/com/stardust/autojs/runtime/api/{image => }/Images.java (97%)
rename autojs/src/main/java/com/stardust/autojs/runtime/api/{ui => }/UI.java (88%)
delete mode 100644 autojs/src/main/java/com/stardust/autojs/runtime/api/crypto/Crypto.java
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7616cb72..b9ae1c9e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -97,7 +97,7 @@
diff --git a/app/src/main/java/com/stardust/scriptdroid/autojs/AutoJs.java b/app/src/main/java/com/stardust/scriptdroid/autojs/AutoJs.java
index ac61aee3..253671c0 100644
--- a/app/src/main/java/com/stardust/scriptdroid/autojs/AutoJs.java
+++ b/app/src/main/java/com/stardust/scriptdroid/autojs/AutoJs.java
@@ -22,15 +22,15 @@ import com.stardust.autojs.runtime.exception.ScriptException;
import com.stardust.autojs.runtime.api.AbstractShell;
import com.stardust.autojs.runtime.api.AppUtils;
import com.stardust.autojs.runtime.api.Console;
-import com.stardust.autojs.runtime.api.image.ScreenCaptureRequester;
+import com.stardust.autojs.core.image.ScreenCaptureRequester;
import com.stardust.autojs.core.inputevent.InputEventObserver;
import com.stardust.autojs.script.AutoFileSource;
import com.stardust.autojs.script.JavaScriptSource;
import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.Pref;
import com.stardust.scriptdroid.R;
-import com.stardust.autojs.runtime.api.image.ScreenCaptureRequestActivity;
-import com.stardust.autojs.runtime.api.Shell;
+import com.stardust.autojs.core.image.ScreenCaptureRequestActivity;
+import com.stardust.autojs.core.util.Shell;
import com.stardust.autojs.core.console.StardustConsole;
import com.stardust.util.ScreenMetrics;
import com.stardust.util.Supplier;
diff --git a/app/src/main/java/com/stardust/scriptdroid/tool/AccessibilityServiceTool.java b/app/src/main/java/com/stardust/scriptdroid/tool/AccessibilityServiceTool.java
index 06eb0b75..fc15357d 100644
--- a/app/src/main/java/com/stardust/scriptdroid/tool/AccessibilityServiceTool.java
+++ b/app/src/main/java/com/stardust/scriptdroid/tool/AccessibilityServiceTool.java
@@ -7,7 +7,7 @@ import android.text.TextUtils;
import com.stardust.scriptdroid.Pref;
import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.R;
-import com.stardust.autojs.runtime.api.ProcessShell;
+import com.stardust.autojs.core.util.ProcessShell;
import com.stardust.scriptdroid.accessibility.AccessibilityService;
import com.stardust.view.accessibility.AccessibilityServiceUtils;
diff --git a/autojs/src/main/assets/javascript_engine_init.js b/autojs/src/main/assets/javascript_engine_init.js
index 7f17b7e3..fda1ad45 100644
--- a/autojs/src/main/assets/javascript_engine_init.js
+++ b/autojs/src/main/assets/javascript_engine_init.js
@@ -47,4 +47,4 @@ require("__general__")(__runtime__, this);
})(__that__);
__importClass__(android.view.KeyEvent);
-__importClass__(com.stardust.autojs.runtime.api.Shell);
+__importClass__(com.stardust.autojs.core.util.Shell);
diff --git a/autojs/src/main/assets/modules/__RootAutomator__.js b/autojs/src/main/assets/modules/__RootAutomator__.js
index 82a91ba4..8d909602 100644
--- a/autojs/src/main/assets/modules/__RootAutomator__.js
+++ b/autojs/src/main/assets/modules/__RootAutomator__.js
@@ -1,6 +1,6 @@
module.exports = function(__runtime__, scope){
function RootAutomator(){
- this.__ra__ = Object.create(new com.stardust.autojs.runtime.api.RootAutomator(scope.context));
+ this.__ra__ = Object.create(new com.stardust.autojs.core.inputevent.RootAutomator(scope.context));
var methods = ["sendEvent", "touch", "setScreenMetrics", "touchX", "touchY", "sendSync", "sendMtSync", "tap",
"swipe", "press", "longPress", "touchDown", "touchUp", "touchMove", "getDefaultId", "setDefaultId", "exit"];
for(var i = 0; i < methods.length; i++){
diff --git a/autojs/src/main/assets/modules/__images__.js b/autojs/src/main/assets/modules/__images__.js
index d957b25c..68597f3f 100644
--- a/autojs/src/main/assets/modules/__images__.js
+++ b/autojs/src/main/assets/modules/__images__.js
@@ -70,15 +70,15 @@ module.exports = function(__runtime__, scope){
function getColorDetector(color, algorithm, threshold){
switch(algorithm){
case "rgb":
- return new com.stardust.autojs.runtime.api.image.ColorDetector.RGBDistanceDetector(color, threshold);
+ return new com.stardust.autojs.core.image.ColorDetector.RGBDistanceDetector(color, threshold);
case "equal":
- return new com.stardust.autojs.runtime.api.image.ColorDetector.EqualityDetector(color);
+ return new com.stardust.autojs.core.image.ColorDetector.EqualityDetector(color);
case "diff":
- return new com.stardust.autojs.runtime.api.image.ColorDetector.DifferenceDetector(color, threshold);
+ return new com.stardust.autojs.core.image.ColorDetector.DifferenceDetector(color, threshold);
case "rgb+":
- return new com.stardust.autojs.runtime.api.image.ColorDetector.WeightedRGBDistanceDetector(color, threshold);
+ return new com.stardust.autojs.core.image.ColorDetector.WeightedRGBDistanceDetector(color, threshold);
case "hs":
- return new com.stardust.autojs.runtime.api.image.ColorDetector.HSDistanceDetector(color, threshold);
+ return new com.stardust.autojs.core.image.ColorDetector.HSDistanceDetector(color, threshold);
}
throw new Error("Unknown algorithm: " + algorithm);
}
diff --git a/autojs/src/main/assets/modules/__ui__.js b/autojs/src/main/assets/modules/__ui__.js
index c2ecdd52..c4f7e092 100644
--- a/autojs/src/main/assets/modules/__ui__.js
+++ b/autojs/src/main/assets/modules/__ui__.js
@@ -52,7 +52,7 @@ module.exports = function(__runtime__, scope){
}
ui.findViewByStringId = function(view, id){
- return com.stardust.autojs.runtime.api.ui.JsViewHelper.findViewByStringId(view, id);
+ return com.stardust.autojs.core.ui.JsViewHelper.findViewByStringId(view, id);
}
function decorate(view){
diff --git a/autojs/src/main/assets/modules/__web__.js b/autojs/src/main/assets/modules/__web__.js
index 0bbd42cc..12bf0fa3 100644
--- a/autojs/src/main/assets/modules/__web__.js
+++ b/autojs/src/main/assets/modules/__web__.js
@@ -2,11 +2,11 @@
module.exports = function(__runtime__, scope){
scope.newInjectableWebClient = function(){
- return new com.stardust.autojs.runtime.api.InjectableWebClient(org.mozilla.javascript.Context.getCurrentContext(), scope);
+ return new com.stardust.autojs.core.web.InjectableWebClient(org.mozilla.javascript.Context.getCurrentContext(), scope);
}
scope.newInjectableWebView = function(activity){
- return new com.stardust.autojs.runtime.api.InjectableWebView(scope.activity, org.mozilla.javascript.Context.getCurrentContext(), scope);
+ return new com.stardust.autojs.core.web.InjectableWebView(scope.activity, org.mozilla.javascript.Context.getCurrentContext(), scope);
}
}
diff --git a/autojs/src/main/java/com/stardust/autojs/codegeneration/AutoScriptGenerator.java b/autojs/src/main/java/com/stardust/autojs/codegeneration/AutoScriptGenerator.java
index 8d815570..3cd6cbfa 100644
--- a/autojs/src/main/java/com/stardust/autojs/codegeneration/AutoScriptGenerator.java
+++ b/autojs/src/main/java/com/stardust/autojs/codegeneration/AutoScriptGenerator.java
@@ -1,9 +1,5 @@
package com.stardust.autojs.codegeneration;
-import com.stardust.autojs.runtime.api.UiSelector;
-import com.stardust.automator.UiGlobalSelector;
-import com.stardust.automator.UiObject;
-
/**
* Created by Stardust on 2017/8/4.
*/
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/UiSelector.java b/autojs/src/main/java/com/stardust/autojs/core/accessibility/UiSelector.java
similarity index 98%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/UiSelector.java
rename to autojs/src/main/java/com/stardust/autojs/core/accessibility/UiSelector.java
index cb72dcc9..8893e549 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/UiSelector.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/accessibility/UiSelector.java
@@ -1,10 +1,9 @@
-package com.stardust.autojs.runtime.api;
+package com.stardust.autojs.core.accessibility;
import android.support.annotation.NonNull;
import android.util.Log;
import android.view.accessibility.AccessibilityNodeInfo;
-import com.stardust.autojs.core.accessibility.AccessibilityBridge;
import com.stardust.autojs.annotation.ScriptInterface;
import com.stardust.autojs.runtime.accessibility.AutomatorConfig;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/EventEmitter.java b/autojs/src/main/java/com/stardust/autojs/core/eventloop/EventEmitter.java
similarity index 98%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/EventEmitter.java
rename to autojs/src/main/java/com/stardust/autojs/core/eventloop/EventEmitter.java
index b9109416..701dc541 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/EventEmitter.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/eventloop/EventEmitter.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api;
+package com.stardust.autojs.core.eventloop;
import android.support.annotation.NonNull;
@@ -92,7 +92,7 @@ public class EventEmitter {
private Map mListenersMap = new HashMap<>();
public static int defaultMaxListeners = 10;
private int mMaxListeners = defaultMaxListeners;
- ScriptBridges mBridges;
+ protected ScriptBridges mBridges;
public EventEmitter(ScriptBridges bridges) {
mBridges = bridges;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorDetector.java b/autojs/src/main/java/com/stardust/autojs/core/image/ColorDetector.java
similarity index 98%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorDetector.java
rename to autojs/src/main/java/com/stardust/autojs/core/image/ColorDetector.java
index e5a4241d..76a1fef4 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorDetector.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/image/ColorDetector.java
@@ -1,9 +1,7 @@
-package com.stardust.autojs.runtime.api.image;
+package com.stardust.autojs.core.image;
import android.graphics.Color;
-import java.util.Comparator;
-
/**
* Created by Stardust on 2017/5/20.
*/
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorFinder.java b/autojs/src/main/java/com/stardust/autojs/core/image/ColorFinder.java
similarity index 99%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorFinder.java
rename to autojs/src/main/java/com/stardust/autojs/core/image/ColorFinder.java
index fb8dd117..ac9053ad 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorFinder.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/image/ColorFinder.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.image;
+package com.stardust.autojs.core.image;
import android.graphics.Point;
import android.graphics.Rect;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorIterator.java b/autojs/src/main/java/com/stardust/autojs/core/image/ColorIterator.java
similarity index 98%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorIterator.java
rename to autojs/src/main/java/com/stardust/autojs/core/image/ColorIterator.java
index e63aec1c..87db8a69 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ColorIterator.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/image/ColorIterator.java
@@ -1,8 +1,7 @@
-package com.stardust.autojs.runtime.api.image;
+package com.stardust.autojs.core.image;
import android.graphics.Rect;
import android.media.Image;
-import android.util.Log;
import java.nio.ByteBuffer;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ConcurrentColorIterator.java b/autojs/src/main/java/com/stardust/autojs/core/image/ConcurrentColorIterator.java
similarity index 97%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/image/ConcurrentColorIterator.java
rename to autojs/src/main/java/com/stardust/autojs/core/image/ConcurrentColorIterator.java
index e4b0fb95..3a0a0a56 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ConcurrentColorIterator.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/image/ConcurrentColorIterator.java
@@ -1,8 +1,7 @@
-package com.stardust.autojs.runtime.api.image;
+package com.stardust.autojs.core.image;
import android.graphics.Rect;
import android.media.Image;
-import android.util.Log;
import java.nio.ByteBuffer;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCaptureRequestActivity.java b/autojs/src/main/java/com/stardust/autojs/core/image/ScreenCaptureRequestActivity.java
similarity index 97%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCaptureRequestActivity.java
rename to autojs/src/main/java/com/stardust/autojs/core/image/ScreenCaptureRequestActivity.java
index ee41dc0b..b87ef052 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCaptureRequestActivity.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/image/ScreenCaptureRequestActivity.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.image;
+package com.stardust.autojs.core.image;
import android.app.Activity;
import android.content.Context;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCaptureRequester.java b/autojs/src/main/java/com/stardust/autojs/core/image/ScreenCaptureRequester.java
similarity index 97%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCaptureRequester.java
rename to autojs/src/main/java/com/stardust/autojs/core/image/ScreenCaptureRequester.java
index 66a9620b..91707757 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCaptureRequester.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/image/ScreenCaptureRequester.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.image;
+package com.stardust.autojs.core.image;
import android.app.Activity;
import android.content.Context;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCapturer.java b/autojs/src/main/java/com/stardust/autojs/core/image/ScreenCapturer.java
similarity index 99%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCapturer.java
rename to autojs/src/main/java/com/stardust/autojs/core/image/ScreenCapturer.java
index 8749d26f..d966fb8e 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/ScreenCapturer.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/image/ScreenCapturer.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.image;
+package com.stardust.autojs.core.image;
import android.app.Activity;
import android.content.Context;
diff --git a/autojs/src/main/java/com/stardust/autojs/core/inputevent/InputEventObserver.java b/autojs/src/main/java/com/stardust/autojs/core/inputevent/InputEventObserver.java
index 99d74dbe..11326c33 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/inputevent/InputEventObserver.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/inputevent/InputEventObserver.java
@@ -5,7 +5,7 @@ import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.stardust.autojs.core.record.inputevent.EventFormatException;
-import com.stardust.autojs.runtime.api.Shell;
+import com.stardust.autojs.core.util.Shell;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.regex.Matcher;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/RootAutomator.java b/autojs/src/main/java/com/stardust/autojs/core/inputevent/RootAutomator.java
similarity index 97%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/RootAutomator.java
rename to autojs/src/main/java/com/stardust/autojs/core/inputevent/RootAutomator.java
index aa164194..bd5e3cfd 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/RootAutomator.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/inputevent/RootAutomator.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api;
+package com.stardust.autojs.core.inputevent;
import android.content.Context;
import android.os.SystemClock;
@@ -6,7 +6,9 @@ import android.support.annotation.Nullable;
import android.view.ViewConfiguration;
import com.stardust.autojs.core.inputevent.InputDevices;
+import com.stardust.autojs.core.util.ProcessShell;
import com.stardust.autojs.engine.RootAutomatorEngine;
+import com.stardust.autojs.runtime.api.AbstractShell;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.util.ScreenMetrics;
diff --git a/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToAutoFileRecorder.java b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToAutoFileRecorder.java
index 6fd9c6e1..1b81445d 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToAutoFileRecorder.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToAutoFileRecorder.java
@@ -6,8 +6,8 @@ import android.util.Log;
import com.stardust.autojs.core.inputevent.InputEventCodes;
import com.stardust.autojs.core.inputevent.InputEventObserver;
+import com.stardust.autojs.core.inputevent.RootAutomator;
import com.stardust.autojs.engine.RootAutomatorEngine;
-import com.stardust.autojs.runtime.api.RootAutomator;
import com.stardust.pio.UncheckedIOException;
import com.stardust.util.ScreenMetrics;
diff --git a/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToRootAutomatorRecorder.java b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToRootAutomatorRecorder.java
index b8908b7f..30fba9b0 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToRootAutomatorRecorder.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/record/inputevent/InputEventToRootAutomatorRecorder.java
@@ -1,12 +1,10 @@
package com.stardust.autojs.core.record.inputevent;
import android.support.annotation.NonNull;
-import android.util.Log;
import com.stardust.autojs.core.inputevent.InputEventCodes;
import com.stardust.autojs.core.inputevent.InputEventObserver;
import com.stardust.autojs.engine.RootAutomatorEngine;
-import com.stardust.autojs.runtime.api.RootAutomator;
import static com.stardust.util.ScreenMetrics.getDeviceScreenHeight;
import static com.stardust.util.ScreenMetrics.getDeviceScreenWidth;
diff --git a/autojs/src/main/java/com/stardust/autojs/core/templatematching/Test.java b/autojs/src/main/java/com/stardust/autojs/core/templatematching/Test.java
index 8c406c65..63a8e87c 100644
--- a/autojs/src/main/java/com/stardust/autojs/core/templatematching/Test.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/templatematching/Test.java
@@ -1,10 +1,7 @@
package com.stardust.autojs.core.templatematching;
-import android.graphics.Color;
import android.media.Image;
-import com.stardust.autojs.runtime.api.image.Images;
-
/**
* Created by Stardust on 2017/10/5.
*/
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/BlockedMaterialDialog.java b/autojs/src/main/java/com/stardust/autojs/core/ui/BlockedMaterialDialog.java
similarity index 99%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/BlockedMaterialDialog.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/BlockedMaterialDialog.java
index 25004e3e..1577fcfe 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/BlockedMaterialDialog.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/BlockedMaterialDialog.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.ui;
+package com.stardust.autojs.core.ui;
import android.app.Activity;
import android.content.Context;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/ConvertLayoutInflater.java b/autojs/src/main/java/com/stardust/autojs/core/ui/ConvertLayoutInflater.java
similarity index 82%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/ConvertLayoutInflater.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/ConvertLayoutInflater.java
index 02b87194..6aa66adf 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/ConvertLayoutInflater.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/ConvertLayoutInflater.java
@@ -1,30 +1,18 @@
-package com.stardust.autojs.runtime.api.ui;
+package com.stardust.autojs.core.ui;
import android.content.Context;
import android.text.InputType;
-import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.nickandjerry.dynamiclayoutinflator.lib.DynamicLayoutInflator;
-import com.stardust.autojs.runtime.api.ui.widget.JsFrameLayout;
-import com.stardust.autojs.runtime.api.ui.xml.XmlConverter;
+import com.stardust.autojs.core.ui.widget.JsFrameLayout;
+import com.stardust.autojs.core.ui.xml.XmlConverter;
import com.stardust.util.MapEntries;
-import org.xml.sax.SAXException;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-import org.xmlpull.v1.XmlPullParserFactory;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.lang.reflect.Field;
-import java.util.HashMap;
import java.util.Map;
-import javax.xml.parsers.ParserConfigurationException;
-
/**
* Created by Stardust on 2017/5/14.
*/
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/JsLayoutInflater.java b/autojs/src/main/java/com/stardust/autojs/core/ui/JsLayoutInflater.java
similarity index 81%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/JsLayoutInflater.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/JsLayoutInflater.java
index fbd06558..b0635818 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/JsLayoutInflater.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/JsLayoutInflater.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.ui;
+package com.stardust.autojs.core.ui;
import android.content.Context;
import android.view.View;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/JsViewHelper.java b/autojs/src/main/java/com/stardust/autojs/core/ui/JsViewHelper.java
similarity index 95%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/JsViewHelper.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/JsViewHelper.java
index a0e00ade..3d07f45d 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/JsViewHelper.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/JsViewHelper.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.ui;
+package com.stardust.autojs.core.ui;
import android.content.res.Resources;
import android.support.annotation.Nullable;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsButton.java b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsButton.java
similarity index 80%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsButton.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsButton.java
index 8c3c43f8..54ceb624 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsButton.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsButton.java
@@ -1,10 +1,7 @@
-package com.stardust.autojs.runtime.api.ui.widget;
+package com.stardust.autojs.core.ui.widget;
import android.content.Context;
-import android.os.Build;
-import android.support.annotation.RequiresApi;
import android.util.AttributeSet;
-import android.widget.Button;
/**
* Created by Stardust on 2017/5/15.
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsEditText.java b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsEditText.java
similarity index 88%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsEditText.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsEditText.java
index c9d79fac..201f8b39 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsEditText.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsEditText.java
@@ -1,8 +1,7 @@
-package com.stardust.autojs.runtime.api.ui.widget;
+package com.stardust.autojs.core.ui.widget;
import android.content.Context;
import android.util.AttributeSet;
-import android.widget.EditText;
/**
* Created by Stardust on 2017/5/15.
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsFrameLayout.java b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsFrameLayout.java
similarity index 86%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsFrameLayout.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsFrameLayout.java
index 00676431..a72f141c 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsFrameLayout.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsFrameLayout.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.ui.widget;
+package com.stardust.autojs.core.ui.widget;
import android.content.Context;
import android.os.Build;
@@ -11,8 +11,7 @@ import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
-import com.nickandjerry.dynamiclayoutinflator.lib.DynamicLayoutInflator;
-import com.stardust.autojs.runtime.api.ui.JsViewHelper;
+import com.stardust.autojs.core.ui.JsViewHelper;
/**
* Created by Stardust on 2017/5/14.
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsLinearLayout.java b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsLinearLayout.java
similarity index 84%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsLinearLayout.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsLinearLayout.java
index 9a27c169..04fc4ee9 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsLinearLayout.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsLinearLayout.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.ui.widget;
+package com.stardust.autojs.core.ui.widget;
import android.content.Context;
import android.os.Build;
@@ -8,8 +8,7 @@ import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
-import com.nickandjerry.dynamiclayoutinflator.lib.DynamicLayoutInflator;
-import com.stardust.autojs.runtime.api.ui.JsViewHelper;
+import com.stardust.autojs.core.ui.JsViewHelper;
/**
* Created by Stardust on 2017/5/14.
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsRelativeLayout.java b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsRelativeLayout.java
similarity index 83%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsRelativeLayout.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsRelativeLayout.java
index 26533ba2..e8335c18 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsRelativeLayout.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsRelativeLayout.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.ui.widget;
+package com.stardust.autojs.core.ui.widget;
import android.content.Context;
import android.os.Build;
@@ -7,8 +7,7 @@ import android.util.AttributeSet;
import android.view.View;
import android.widget.RelativeLayout;
-import com.nickandjerry.dynamiclayoutinflator.lib.DynamicLayoutInflator;
-import com.stardust.autojs.runtime.api.ui.JsViewHelper;
+import com.stardust.autojs.core.ui.JsViewHelper;
/**
* Created by Stardust on 2017/5/14.
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsTextView.java b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsTextView.java
similarity index 81%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsTextView.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsTextView.java
index fc51a9e4..820fe3aa 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/widget/JsTextView.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/widget/JsTextView.java
@@ -1,11 +1,8 @@
-package com.stardust.autojs.runtime.api.ui.widget;
+package com.stardust.autojs.core.ui.widget;
import android.content.Context;
-import android.os.Build;
import android.support.annotation.Nullable;
-import android.support.annotation.RequiresApi;
import android.util.AttributeSet;
-import android.widget.TextView;
/**
* Created by Stardust on 2017/5/15.
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/xml/AttributeHandler.java b/autojs/src/main/java/com/stardust/autojs/core/ui/xml/AttributeHandler.java
similarity index 99%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/xml/AttributeHandler.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/xml/AttributeHandler.java
index f23d98b1..e9688860 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/xml/AttributeHandler.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/xml/AttributeHandler.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.ui.xml;
+package com.stardust.autojs.core.ui.xml;
import org.w3c.dom.Node;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/xml/NodeHandler.java b/autojs/src/main/java/com/stardust/autojs/core/ui/xml/NodeHandler.java
similarity index 98%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/xml/NodeHandler.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/xml/NodeHandler.java
index 893d2a92..963b986d 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/xml/NodeHandler.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/xml/NodeHandler.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.ui.xml;
+package com.stardust.autojs.core.ui.xml;
import org.w3c.dom.Node;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/xml/XmlConverter.java b/autojs/src/main/java/com/stardust/autojs/core/ui/xml/XmlConverter.java
similarity index 98%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/xml/XmlConverter.java
rename to autojs/src/main/java/com/stardust/autojs/core/ui/xml/XmlConverter.java
index 1aeaf154..dde43b5a 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/xml/XmlConverter.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/ui/xml/XmlConverter.java
@@ -1,6 +1,4 @@
-package com.stardust.autojs.runtime.api.ui.xml;
-
-import com.stardust.util.MapEntries;
+package com.stardust.autojs.core.ui.xml;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
@@ -11,7 +9,6 @@ import org.xml.sax.SAXException;
import java.io.IOException;
import java.io.StringReader;
-import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ProcessShell.java b/autojs/src/main/java/com/stardust/autojs/core/util/ProcessShell.java
similarity index 98%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ProcessShell.java
rename to autojs/src/main/java/com/stardust/autojs/core/util/ProcessShell.java
index 2f8aa0f7..26755b48 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ProcessShell.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/util/ProcessShell.java
@@ -1,8 +1,9 @@
-package com.stardust.autojs.runtime.api;
+package com.stardust.autojs.core.util;
import android.util.Log;
+import com.stardust.autojs.runtime.api.AbstractShell;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.autojs.util.ProcessUtils;
import com.stardust.pio.UncheckedIOException;
@@ -12,8 +13,6 @@ import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.Reader;
/**
* Created by Stardust on 2017/1/20.
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Shell.java b/autojs/src/main/java/com/stardust/autojs/core/util/Shell.java
similarity index 98%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/Shell.java
rename to autojs/src/main/java/com/stardust/autojs/core/util/Shell.java
index 22581fb4..835ee518 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Shell.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/util/Shell.java
@@ -1,10 +1,11 @@
-package com.stardust.autojs.runtime.api;
+package com.stardust.autojs.core.util;
import android.content.Context;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.util.Log;
+import com.stardust.autojs.runtime.api.AbstractShell;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.autojs.runtime.ScriptRuntime;
import com.stardust.lang.ThreadCompat;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebClient.java b/autojs/src/main/java/com/stardust/autojs/core/web/InjectableWebClient.java
similarity index 99%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebClient.java
rename to autojs/src/main/java/com/stardust/autojs/core/web/InjectableWebClient.java
index 726b4b02..5099e301 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebClient.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/web/InjectableWebClient.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api;
+package com.stardust.autojs.core.web;
import android.annotation.SuppressLint;
import android.util.Log;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebView.java b/autojs/src/main/java/com/stardust/autojs/core/web/InjectableWebView.java
similarity index 96%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebView.java
rename to autojs/src/main/java/com/stardust/autojs/core/web/InjectableWebView.java
index e40b95b4..7e34f406 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/InjectableWebView.java
+++ b/autojs/src/main/java/com/stardust/autojs/core/web/InjectableWebView.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api;
+package com.stardust.autojs.core.web;
import android.content.Context;
import android.webkit.ValueCallback;
diff --git a/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java b/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java
index 347fb089..395daa73 100644
--- a/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java
+++ b/autojs/src/main/java/com/stardust/autojs/engine/RootAutomatorEngine.java
@@ -3,10 +3,8 @@ package com.stardust.autojs.engine;
import android.content.Context;
import android.preference.PreferenceManager;
import android.util.Log;
-import android.util.Patterns;
-import com.stardust.autojs.runtime.api.AbstractShell;
-import com.stardust.autojs.runtime.api.ProcessShell;
+import com.stardust.autojs.core.util.ProcessShell;
import com.stardust.autojs.core.inputevent.InputDevices;
import com.stardust.autojs.runtime.exception.ScriptException;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java b/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java
index 08767d18..2172b923 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java
+++ b/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java
@@ -17,19 +17,19 @@ import com.stardust.autojs.runtime.api.Engines;
import com.stardust.autojs.runtime.api.Events;
import com.stardust.autojs.runtime.api.Loopers;
import com.stardust.autojs.runtime.api.Timers;
-import com.stardust.autojs.runtime.api.UiSelector;
-import com.stardust.autojs.runtime.api.image.Images;
-import com.stardust.autojs.runtime.api.image.ScreenCaptureRequester;
-import com.stardust.autojs.runtime.api.ui.Dialogs;
+import com.stardust.autojs.core.accessibility.UiSelector;
+import com.stardust.autojs.runtime.api.Images;
+import com.stardust.autojs.core.image.ScreenCaptureRequester;
+import com.stardust.autojs.runtime.api.Dialogs;
import com.stardust.autojs.runtime.exception.ScriptEnvironmentException;
import com.stardust.autojs.runtime.exception.ScriptException;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.autojs.core.accessibility.SimpleActionAutomator;
import com.stardust.concurrent.VolatileBox;
-import com.stardust.autojs.runtime.api.ui.UI;
+import com.stardust.autojs.runtime.api.UI;
import com.stardust.pio.UncheckedIOException;
import com.stardust.util.ClipboardUtil;
-import com.stardust.autojs.runtime.api.ProcessShell;
+import com.stardust.autojs.core.util.ProcessShell;
import com.stardust.util.ScreenMetrics;
import com.stardust.util.SdkVersionUtil;
import com.stardust.util.Supplier;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/AbstractShell.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/AbstractShell.java
index 4c985fc2..24911ec7 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/AbstractShell.java
+++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/AbstractShell.java
@@ -28,10 +28,10 @@ public abstract class AbstractShell {
}
}
- static final String COMMAND_SU = "su";
- static final String COMMAND_SH = "sh";
- static final String COMMAND_EXIT = "exit\n";
- static final String COMMAND_LINE_END = "\n";
+ protected static final String COMMAND_SU = "su";
+ protected static final String COMMAND_SH = "sh";
+ protected static final String COMMAND_EXIT = "exit\n";
+ protected static final String COMMAND_LINE_END = "\n";
private int mTouchDevice = -1;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/Dialogs.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Dialogs.java
similarity index 97%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/Dialogs.java
rename to autojs/src/main/java/com/stardust/autojs/runtime/api/Dialogs.java
index 2d567ec0..65d3013a 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/Dialogs.java
+++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Dialogs.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.ui;
+package com.stardust.autojs.runtime.api;
import android.app.Activity;
import android.content.Context;
@@ -9,6 +9,7 @@ import com.afollestad.materialdialogs.MaterialDialog;
import com.afollestad.materialdialogs.Theme;
import com.stardust.autojs.R;
import com.stardust.autojs.annotation.ScriptInterface;
+import com.stardust.autojs.core.ui.BlockedMaterialDialog;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.autojs.runtime.api.AppUtils;
import com.stardust.concurrent.VolatileBox;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Events.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Events.java
index d070d92d..86f08401 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Events.java
+++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Events.java
@@ -10,6 +10,7 @@ import android.view.accessibility.AccessibilityEvent;
import com.stardust.autojs.R;
import com.stardust.autojs.core.accessibility.AccessibilityBridge;
+import com.stardust.autojs.core.eventloop.EventEmitter;
import com.stardust.autojs.runtime.ScriptBridges;
import com.stardust.autojs.runtime.exception.ScriptException;
import com.stardust.autojs.core.inputevent.InputEventObserver;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/Images.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Images.java
similarity index 97%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/image/Images.java
rename to autojs/src/main/java/com/stardust/autojs/runtime/api/Images.java
index b82d8dc5..e37a7307 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/Images.java
+++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Images.java
@@ -1,4 +1,4 @@
-package com.stardust.autojs.runtime.api.image;
+package com.stardust.autojs.runtime.api;
import android.app.Activity;
import android.content.Context;
@@ -15,6 +15,9 @@ import android.view.Display;
import android.view.Surface;
import android.view.WindowManager;
+import com.stardust.autojs.core.image.ColorFinder;
+import com.stardust.autojs.core.image.ScreenCaptureRequester;
+import com.stardust.autojs.core.image.ScreenCapturer;
import com.stardust.autojs.runtime.ScriptRuntime;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.autojs.annotation.ScriptVariable;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/UI.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/UI.java
similarity index 88%
rename from autojs/src/main/java/com/stardust/autojs/runtime/api/ui/UI.java
rename to autojs/src/main/java/com/stardust/autojs/runtime/api/UI.java
index 1666aa05..458bb0f7 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/UI.java
+++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/UI.java
@@ -1,7 +1,9 @@
-package com.stardust.autojs.runtime.api.ui;
+package com.stardust.autojs.runtime.api;
import android.content.Context;
+import com.stardust.autojs.core.ui.ConvertLayoutInflater;
+import com.stardust.autojs.core.ui.JsLayoutInflater;
import com.stardust.autojs.rhino.ProxyObject;
import org.mozilla.javascript.Scriptable;
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/crypto/Crypto.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/crypto/Crypto.java
deleted file mode 100644
index 2fdd5589..00000000
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/crypto/Crypto.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.stardust.autojs.runtime.api.crypto;
-
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-
-import javax.crypto.Cipher;
-import javax.crypto.KeyGenerator;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.SecretKey;
-
-import static javax.crypto.Cipher.ENCRYPT_MODE;
-
-/**
- * Created by Stardust on 2017/9/20.
- */
-
-public class Crypto {
-
- public Cipher createCipher(String algorithm, String password) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException {
- javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance(algorithm);
- KeyGenerator keyGenerator = KeyGenerator.getInstance(algorithm);
- keyGenerator.init(128, new SecureRandom(password.getBytes()));
- SecretKey secretKey = keyGenerator.generateKey();
- cipher.init(ENCRYPT_MODE, secretKey);
- return cipher;
- }
-}
diff --git a/autojs/src/main/java/com/stardust/autojs/util/ProcessUtils.java b/autojs/src/main/java/com/stardust/autojs/util/ProcessUtils.java
index 4deee6a2..5a4f2a8d 100644
--- a/autojs/src/main/java/com/stardust/autojs/util/ProcessUtils.java
+++ b/autojs/src/main/java/com/stardust/autojs/util/ProcessUtils.java
@@ -2,7 +2,7 @@ package com.stardust.autojs.util;
import android.util.Log;
-import com.stardust.autojs.runtime.api.ProcessShell;
+import com.stardust.autojs.core.util.ProcessShell;
import java.lang.reflect.Field;
diff --git a/autojs/src/test/java/com/stardust/autojs/ExampleUnitTest.java b/autojs/src/test/java/com/stardust/autojs/ExampleUnitTest.java
index f7c84114..5d8c23ee 100644
--- a/autojs/src/test/java/com/stardust/autojs/ExampleUnitTest.java
+++ b/autojs/src/test/java/com/stardust/autojs/ExampleUnitTest.java
@@ -1,11 +1,7 @@
package com.stardust.autojs;
-import com.stardust.autojs.runtime.api.image.ColorDetector;
-
import org.junit.Test;
-import java.util.Arrays;
-
/**
* Example local unit test, which will execute on the development machine (host).
*
diff --git a/autojs/src/test/java/com/stardust/autojs/runtime/api/ui/XmlConverterTest.java b/autojs/src/test/java/com/stardust/autojs/runtime/api/ui/XmlConverterTest.java
index 020f62bc..b6e00c15 100644
--- a/autojs/src/test/java/com/stardust/autojs/runtime/api/ui/XmlConverterTest.java
+++ b/autojs/src/test/java/com/stardust/autojs/runtime/api/ui/XmlConverterTest.java
@@ -1,6 +1,6 @@
package com.stardust.autojs.runtime.api.ui;
-import com.stardust.autojs.runtime.api.ui.xml.XmlConverter;
+import com.stardust.autojs.core.ui.xml.XmlConverter;
import org.junit.Test;
import org.xml.sax.SAXException;
diff --git a/inrt/src/main/java/com/stardust/auojs/inrt/rt/AccessibilityServiceTool.java b/inrt/src/main/java/com/stardust/auojs/inrt/rt/AccessibilityServiceTool.java
index 9e455ee3..28ac126e 100644
--- a/inrt/src/main/java/com/stardust/auojs/inrt/rt/AccessibilityServiceTool.java
+++ b/inrt/src/main/java/com/stardust/auojs/inrt/rt/AccessibilityServiceTool.java
@@ -7,7 +7,7 @@ import android.provider.Settings;
import android.text.TextUtils;
import com.stardust.auojs.inrt.App;
-import com.stardust.autojs.runtime.api.ProcessShell;
+import com.stardust.autojs.core.util.ProcessShell;
import java.util.Locale;
diff --git a/inrt/src/main/java/com/stardust/auojs/inrt/rt/AutoJs.java b/inrt/src/main/java/com/stardust/auojs/inrt/rt/AutoJs.java
index 23c360d3..723434ec 100644
--- a/inrt/src/main/java/com/stardust/auojs/inrt/rt/AutoJs.java
+++ b/inrt/src/main/java/com/stardust/auojs/inrt/rt/AutoJs.java
@@ -24,11 +24,9 @@ import com.stardust.autojs.engine.ScriptEngineManager;
import com.stardust.autojs.runtime.ScriptRuntime;
import com.stardust.autojs.runtime.api.AbstractShell;
import com.stardust.autojs.runtime.api.AppUtils;
-import com.stardust.autojs.runtime.api.Console;
-import com.stardust.autojs.core.console.NoOpConsole;
-import com.stardust.autojs.runtime.api.Shell;
-import com.stardust.autojs.runtime.api.image.ScreenCaptureRequestActivity;
-import com.stardust.autojs.runtime.api.image.ScreenCaptureRequester;
+import com.stardust.autojs.core.util.Shell;
+import com.stardust.autojs.core.image.ScreenCaptureRequestActivity;
+import com.stardust.autojs.core.image.ScreenCaptureRequester;
import com.stardust.autojs.core.console.StardustConsole;
import com.stardust.autojs.runtime.exception.ScriptException;
import com.stardust.autojs.script.AutoFileSource;
@@ -39,7 +37,6 @@ import com.stardust.util.UiHandler;
import com.stardust.view.accessibility.AccessibilityInfoProvider;
import com.stardust.view.accessibility.AccessibilityService;
import com.stardust.view.accessibility.AccessibilityServiceUtils;
-import com.stardust.view.accessibility.LayoutInspector;
import com.stardust.view.accessibility.NotificationListener;