diff --git a/app/src/main/java/org/autojs/autojs/autojs/AutoJs.java b/app/src/main/java/org/autojs/autojs/autojs/AutoJs.java index de163dae..5d0904ad 100644 --- a/app/src/main/java/org/autojs/autojs/autojs/AutoJs.java +++ b/app/src/main/java/org/autojs/autojs/autojs/AutoJs.java @@ -24,7 +24,6 @@ import org.autojs.autojs.Pref; import org.autojs.autojs.R; import org.autojs.autojs.external.fileprovider.AppFileProvider; import org.autojs.autojs.pluginclient.DevPluginService; -import org.autojs.autojs.timing.work.WorkProviderConstants; import org.autojs.autojs.ui.floating.FloatyWindowManger; import org.autojs.autojs.ui.floating.FullScreenFloatyWindow; import org.autojs.autojs.ui.floating.layoutinspector.LayoutBoundsFloatyWindow; @@ -93,6 +92,7 @@ public class AutoJs extends com.stardust.autojs.AutoJs { LocalBroadcastManager.getInstance(application).registerReceiver(mLayoutInspectBroadcastReceiver, intentFilter); this.enableDebugLog = PreferenceManager.getDefaultSharedPreferences(GlobalAppContext.get()) .getBoolean(GlobalAppContext.getString(R.string.key_enable_debug_log), false); + setLogFilePath(Pref.getScriptDirPath()); } private void capture(LayoutInspectFloatyWindow window) { diff --git a/app/src/main/java/org/autojs/autojs/timing/TimedTaskScheduler.java b/app/src/main/java/org/autojs/autojs/timing/TimedTaskScheduler.java index 4d51867b..1294e504 100644 --- a/app/src/main/java/org/autojs/autojs/timing/TimedTaskScheduler.java +++ b/app/src/main/java/org/autojs/autojs/timing/TimedTaskScheduler.java @@ -123,9 +123,9 @@ public class TimedTaskScheduler { public static WorkProvider getWorkProvider(Context context) { try { - PreferenceManager.getDefaultSharedPreferences(context).getString(WorkProviderConstants.ACTIVE_PROVIDER, WorkProviderConstants.WORK_MANAGER_PROVIDER); + PreferenceManager.getDefaultSharedPreferences(context).getString(WorkProviderConstants.ACTIVE_PROVIDER, WorkProviderConstants.ALARM_MANAGER_PROVIDER); } catch (Exception e) { - PreferenceManager.getDefaultSharedPreferences(context).edit().putString(WorkProviderConstants.ACTIVE_PROVIDER, WorkProviderConstants.WORK_MANAGER_PROVIDER).apply(); + PreferenceManager.getDefaultSharedPreferences(context).edit().putString(WorkProviderConstants.ACTIVE_PROVIDER, WorkProviderConstants.ALARM_MANAGER_PROVIDER).apply(); } String currentActive = PreferenceManager.getDefaultSharedPreferences(context) .getString(WorkProviderConstants.ACTIVE_PROVIDER, WorkProviderConstants.WORK_MANAGER_PROVIDER); diff --git a/app/src/main/java/org/autojs/autojs/tool/CrashHandler.java b/app/src/main/java/org/autojs/autojs/tool/CrashHandler.java index f488b7e0..f6c69cd0 100644 --- a/app/src/main/java/org/autojs/autojs/tool/CrashHandler.java +++ b/app/src/main/java/org/autojs/autojs/tool/CrashHandler.java @@ -12,9 +12,11 @@ import android.util.Log; import com.stardust.app.GlobalAppContext; +import org.apache.log4j.Logger; import org.autojs.autojs.BuildConfig; import org.mozilla.javascript.RhinoException; + import com.stardust.view.accessibility.AccessibilityService; import com.tencent.bugly.crashreport.BuglyLog; import com.tencent.bugly.crashreport.CrashReport; @@ -24,6 +26,7 @@ import java.util.Map; public class CrashHandler extends CrashReport.CrashHandleCallback implements UncaughtExceptionHandler { private static final String TAG = "CrashHandler"; + private static final Logger logger = Logger.getLogger(CrashHandler.class); private static int crashCount = 0; private static long firstCrashMillis = 0; private final Class mErrorReportClass; @@ -72,6 +75,7 @@ public class CrashHandler extends CrashReport.CrashHandleCallback implements Unc String msg = errorType + ": " + errorMessage; startErrorReportActivity(msg, errorStack); } catch (Throwable throwable) { + logger.error("崩溃了:", throwable); throwable.printStackTrace(); } return super.onCrashHandleStart(crashType, errorType, errorMessage, errorStack); diff --git a/autojs/src/main/java/com/stardust/autojs/AutoJs.java b/autojs/src/main/java/com/stardust/autojs/AutoJs.java index 7bd1b107..882501bd 100644 --- a/autojs/src/main/java/com/stardust/autojs/AutoJs.java +++ b/autojs/src/main/java/com/stardust/autojs/AutoJs.java @@ -6,14 +6,12 @@ import android.content.Context; import android.os.Build; import android.os.Bundle; -import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; - import com.stardust.app.OnActivityResultDelegate; import com.stardust.app.SimpleActivityLifecycleCallbacks; import com.stardust.autojs.core.accessibility.AccessibilityBridge; -import com.stardust.autojs.core.console.GlobalConsole; +import com.stardust.autojs.core.activity.ActivityInfoProvider; import com.stardust.autojs.core.console.ConsoleImpl; +import com.stardust.autojs.core.console.GlobalConsole; import com.stardust.autojs.core.image.capture.ScreenCaptureRequestActivity; import com.stardust.autojs.core.image.capture.ScreenCaptureRequester; import com.stardust.autojs.core.record.accessibility.AccessibilityActionRecorder; @@ -30,7 +28,6 @@ import com.stardust.autojs.script.JavaScriptSource; import com.stardust.util.ResourceMonitor; import com.stardust.util.ScreenMetrics; import com.stardust.util.UiHandler; -import com.stardust.autojs.core.activity.ActivityInfoProvider; import com.stardust.view.accessibility.AccessibilityNotificationObserver; import com.stardust.view.accessibility.AccessibilityService; import com.stardust.view.accessibility.LayoutInspector; @@ -40,6 +37,10 @@ import org.mozilla.javascript.WrappedException; import java.io.File; +import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; +import de.mindpipe.android.logging.log4j.LogConfigurator; + /** * Created by Stardust on 2017/11/29. */ @@ -265,4 +266,14 @@ public abstract class AutoJs { } } } + + protected void setLogFilePath(String path) { + LogConfigurator logConfigurator = new LogConfigurator(); + String pid = String.valueOf(android.os.Process.myPid()); + logConfigurator.setFilePattern("%d - [%p]\t[" + pid + "] %c - %m%n"); + logConfigurator.setFileName(path + "/.logs/autojs-log4j" + (BuildConfig.DEBUG ? "-debug" : "") + ".txt"); + // 设置最大10MB + logConfigurator.setMaxFileSize(10 * 1024 * 1024); + logConfigurator.configure(); + } } diff --git a/autojs/src/main/java/com/stardust/autojs/core/console/GlobalConsole.java b/autojs/src/main/java/com/stardust/autojs/core/console/GlobalConsole.java index 77edbf6f..4b064ee2 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/console/GlobalConsole.java +++ b/autojs/src/main/java/com/stardust/autojs/core/console/GlobalConsole.java @@ -29,7 +29,7 @@ public class GlobalConsole extends ConsoleImpl { String log = String.format(Locale.getDefault(), "%s/%s: %s", DATE_FORMAT.format(new Date()), getLevelChar(level), charSequence.toString()); LOGGER.log(toLog4jLevel(level), log); - android.util.Log.d(LOG_tAG, log); +// android.util.Log.d(LOG_tAG, log); super.println(level, log); return log; }