fix: app memory leak; feat: app foreground service

This commit is contained in:
hyb1996
2018-09-19 14:40:05 +08:00
parent 44fe0079c3
commit 62aafaf06b
22 changed files with 167 additions and 305 deletions

View File

@@ -6,6 +6,7 @@ import com.stardust.autojs.engine.ScriptEngine;
import com.stardust.autojs.engine.ScriptEngineManager;
import com.stardust.autojs.runtime.exception.ScriptInterruptedException;
import com.stardust.autojs.script.ScriptSource;
import com.stardust.lang.ThreadCompat;
/**
* Created by Stardust on 2017/5/1.
@@ -24,6 +25,7 @@ public class RunnableScriptExecution extends ScriptExecution.AbstractScriptExecu
@Override
public void run() {
ThreadCompat.currentThread().setName("ScriptThread-" + getId() + "[" + getSource() + "]");
execute();
}

View File

@@ -3,6 +3,7 @@ package com.stardust.autojs.rhino;
import android.util.Log;
import com.android.dx.command.dexer.Main;
import com.android.dx.dex.file.DexFile;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;

View File

@@ -46,7 +46,7 @@ public class Threads {
TimerThread thread = createThread(runnable);
synchronized (mThreads) {
mThreads.add(thread);
thread.setName(thread.getName() + " (Spawn-" + mSpawnCount + ")");
thread.setName(mMainThread.getName() + " (Spawn-" + mSpawnCount + ")");
mSpawnCount++;
}
thread.start();

View File

@@ -19,6 +19,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.Collections;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
@@ -35,7 +36,7 @@ public class JsBeautifier {
void onException(Exception e);
}
private Executor mExecutor = Executors.newSingleThreadExecutor();
private ExecutorService mExecutor = Executors.newSingleThreadExecutor();
private Context mContext;
private Function mJsBeautifyFunction;
private org.mozilla.javascript.Context mScriptContext;
@@ -122,4 +123,9 @@ public class JsBeautifier {
}
}
public void shutdown(){
mExecutor.shutdownNow();
mView = null;
}
}