try to fix crash under android19
This commit is contained in:
@@ -9,8 +9,8 @@ android {
|
|||||||
applicationId "com.stardust.scriptdroid"
|
applicationId "com.stardust.scriptdroid"
|
||||||
minSdkVersion 17
|
minSdkVersion 17
|
||||||
targetSdkVersion 23
|
targetSdkVersion 23
|
||||||
versionCode 145
|
versionCode 146
|
||||||
versionName "2.0.13 Beta3"
|
versionName "2.0.14 Alpha"
|
||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
ndk {
|
ndk {
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
module.exports = function(){
|
|
||||||
|
|
||||||
}
|
|
||||||
12
app/src/main/assets/sample/图片与图色处理/颜色获取和检测.js
Normal file
12
app/src/main/assets/sample/图片与图色处理/颜色获取和检测.js
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
if(!requestScreenCapture()){
|
||||||
|
toast("请求截图失败");
|
||||||
|
}
|
||||||
|
sleep(2000);
|
||||||
|
var x = 760;
|
||||||
|
var y = 180;
|
||||||
|
//获取在点(x, y)处的颜色
|
||||||
|
var c = images.pixel(captureScreen(), x, y);
|
||||||
|
//显示该颜色
|
||||||
|
toast((c >>> 0).toString(16));
|
||||||
|
//检测在点(x, y)处是否有颜色0x73bdb6 (模糊比较)
|
||||||
|
toast(images.detectsColor(captureScreen(), x, y, 0x73bdb6))
|
||||||
@@ -1,18 +1,23 @@
|
|||||||
|
|
||||||
module.exports = function(__runtime__, scope){
|
module.exports = function(__runtime__, scope){
|
||||||
var images = {};
|
var images = {};
|
||||||
|
if(android.os.Build.VERSION.SDK_INT < 19){
|
||||||
|
return images;
|
||||||
|
}
|
||||||
|
|
||||||
var colorFinder = __runtime__.images.colorFinder;
|
var rtImages = __runtime__.getImages();
|
||||||
|
|
||||||
images.requestScreenCapture = __runtime__.images.requestScreenCapture.bind(__runtime__.images);
|
var colorFinder = rtImages.colorFinder;
|
||||||
|
|
||||||
images.captureScreen = __runtime__.images.captureScreen.bind(__runtime__.images);
|
images.requestScreenCapture = rtImages.requestScreenCapture.bind(rtImages);
|
||||||
|
|
||||||
images.saveImage = __runtime__.images.saveImage.bind(__runtime__.images);
|
images.captureScreen = rtImages.captureScreen.bind(rtImages);
|
||||||
|
|
||||||
images.pixel = __runtime__.images.pixel;
|
images.saveImage = rtImages.saveImage.bind(rtImages);
|
||||||
|
|
||||||
images.detectsColor = __runtime__.images.detectsColor.bind(__runtime__.images);
|
images.pixel = rtImages.pixel;
|
||||||
|
|
||||||
|
images.detectsColor = rtImages.detectsColor.bind(rtImages);
|
||||||
|
|
||||||
images.findColor = function(img, color, options){
|
images.findColor = function(img, color, options){
|
||||||
if(typeof(color) == 'string'){
|
if(typeof(color) == 'string'){
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.stardust.autojs.runtime;
|
package com.stardust.autojs.runtime;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.os.Build;
|
||||||
import android.support.annotation.CallSuper;
|
import android.support.annotation.CallSuper;
|
||||||
|
|
||||||
import com.stardust.autojs.engine.ScriptEngine;
|
import com.stardust.autojs.engine.ScriptEngine;
|
||||||
@@ -40,12 +41,12 @@ public abstract class AbstractScriptRuntime {
|
|||||||
@ScriptVariable
|
@ScriptVariable
|
||||||
public UI ui;
|
public UI ui;
|
||||||
|
|
||||||
@ScriptVariable
|
|
||||||
public Images images;
|
|
||||||
|
|
||||||
@ScriptVariable
|
@ScriptVariable
|
||||||
public Dialogs dialogs;
|
public Dialogs dialogs;
|
||||||
|
|
||||||
|
private Images images;
|
||||||
|
|
||||||
private static WeakReference<Context> applicationContext;
|
private static WeakReference<Context> applicationContext;
|
||||||
|
|
||||||
public AbstractScriptRuntime(UiHandler uiHandler, Console console, AccessibilityBridge bridge, AppUtils appUtils, ScreenCaptureRequester screenCaptureRequester) {
|
public AbstractScriptRuntime(UiHandler uiHandler, Console console, AccessibilityBridge bridge, AppUtils appUtils, ScreenCaptureRequester screenCaptureRequester) {
|
||||||
@@ -54,7 +55,9 @@ public abstract class AbstractScriptRuntime {
|
|||||||
this.automator = new SimpleActionAutomator(bridge, this);
|
this.automator = new SimpleActionAutomator(bridge, this);
|
||||||
this.info = bridge.getInfoProvider();
|
this.info = bridge.getInfoProvider();
|
||||||
this.ui = new UI(uiHandler.getContext());
|
this.ui = new UI(uiHandler.getContext());
|
||||||
images = new Images(uiHandler.getContext(), this, screenCaptureRequester);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||||
|
images = new Images(uiHandler.getContext(), this, screenCaptureRequester);
|
||||||
|
}
|
||||||
dialogs = new Dialogs(app, uiHandler);
|
dialogs = new Dialogs(app, uiHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,6 +112,12 @@ public abstract class AbstractScriptRuntime {
|
|||||||
|
|
||||||
@CallSuper
|
@CallSuper
|
||||||
public void onStop() {
|
public void onStop() {
|
||||||
images.releaseScreenCapturer();
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||||
|
images.releaseScreenCapturer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getImages() {
|
||||||
|
return images;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user