From f62958655a75b0352ad28ea96b06f19239591a94 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sun, 9 Sep 2018 13:47:23 +0800 Subject: [PATCH] opt(autojs): optimize TimedTaskScheduler to schedule task --- .idea/caches/build_file_checksums.ser | Bin 733 -> 733 bytes app/build.gradle | 4 ++-- .../autojs/timing/TimedTaskScheduler.java | 8 +++++++- .../autojs/rhino/AndroidClassLoader.java | 9 ++++----- common/release/output.json | 2 +- inrt/build.gradle | 4 ++-- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 224313173dbab59dc4ed62ced8705d2a6e56149d..0c7fa5df2dc2aeb8da7bcab468e9a919c6dfb52c 100644 GIT binary patch delta 57 zcmV-90LK5_1>FUZm;|}GJ$I3ucMwDnfheX=`^lu8O=~VtPLi`D0ZRc8J+^9PPqxjQ Pj*qBnD9zublYRnU(_k4> delta 57 zcmV-90LK5_1>FUZm;|_`GS`uucMt)QIYQjd^qNUUlYRnU1;!dM diff --git a/app/build.gradle b/app/build.gradle index dfe84d40..050627bc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "org.autojs.autojs" minSdkVersion 17 targetSdkVersion 23 - versionCode 409 - versionName "4.0.2 Alpha4" + versionCode 410 + versionName "4.0.2 Alpha5" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true ndk { 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 d6eafe62..41e86084 100644 --- a/app/src/main/java/org/autojs/autojs/timing/TimedTaskScheduler.java +++ b/app/src/main/java/org/autojs/autojs/timing/TimedTaskScheduler.java @@ -6,8 +6,11 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Build; +import android.os.Parcelable; import android.util.Log; +import com.twofortyfouram.spackle.AlarmManagerCompat; + import java.util.concurrent.TimeUnit; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -57,9 +60,12 @@ public class TimedTaskScheduler extends BroadcastReceiver { context.sendBroadcast(timedTask.createIntent()); return; } + assert alarmManager != null; // FIXME: 2017/11/28 requestCode may > 65535 PendingIntent op = timedTask.createPendingIntent(context); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + alarmManager.setAlarmClock(new AlarmManager.AlarmClockInfo(millis, null), op); + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { alarmManager.setExact(AlarmManager.RTC_WAKEUP, millis, op); } else { alarmManager.set(AlarmManager.RTC_WAKEUP, millis, op); diff --git a/autojs/src/main/java/com/stardust/autojs/rhino/AndroidClassLoader.java b/autojs/src/main/java/com/stardust/autojs/rhino/AndroidClassLoader.java index 0fec757b..4af7009c 100644 --- a/autojs/src/main/java/com/stardust/autojs/rhino/AndroidClassLoader.java +++ b/autojs/src/main/java/com/stardust/autojs/rhino/AndroidClassLoader.java @@ -16,7 +16,6 @@ import java.util.ArrayList; import java.util.List; import dalvik.system.DexClassLoader; -import dalvik.system.DexFile; /** * Created by Stardust on 2017/4/5. @@ -26,7 +25,7 @@ public class AndroidClassLoader extends ClassLoader implements GeneratedClassLoa private final ClassLoader parent; - private List dx; + private List mDexClassLoaders; private final File dexFile; private final File odexOatFile; private final File classFile; @@ -41,7 +40,7 @@ public class AndroidClassLoader extends ClassLoader implements GeneratedClassLoa public AndroidClassLoader(ClassLoader parent, File dir) { this.parent = parent; mCacheDir = dir; - dx = new ArrayList<>(); + mDexClassLoaders = new ArrayList<>(); dexFile = new File(dir, "dex-" + hashCode() + ".jar"); odexOatFile = new File(dir, "odex_oat-" + hashCode() + ".tmp"); classFile = new File(dir, "class-" + hashCode() + ".jar"); @@ -92,7 +91,7 @@ public class AndroidClassLoader extends ClassLoader implements GeneratedClassLoa public DexClassLoader loadDex(File file) throws IOException { DexClassLoader loader = new DexClassLoader(file.getPath(), mCacheDir.getPath(), null, parent); - dx.add(loader); + mDexClassLoaders.add(loader); return loader; } @@ -131,7 +130,7 @@ public class AndroidClassLoader extends ClassLoader implements GeneratedClassLoa throws ClassNotFoundException { Class loadedClass = findLoadedClass(name); if (loadedClass == null) { - for (DexClassLoader dex : dx) { + for (DexClassLoader dex : mDexClassLoaders) { loadedClass = dex.loadClass(name); if (loadedClass != null) { break; diff --git a/common/release/output.json b/common/release/output.json index be3a3997..6ca2aae6 100644 --- a/common/release/output.json +++ b/common/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":409},"path":"commonRelease-4.0.2 Alpha4.apk","properties":{"packageId":"org.autojs.autojs","split":"","minSdkVersion":"17"}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":410},"path":"commonRelease-4.0.2 Alpha5.apk","properties":{"packageId":"org.autojs.autojs","split":"","minSdkVersion":"17"}}] \ No newline at end of file diff --git a/inrt/build.gradle b/inrt/build.gradle index 02ff13fd..7cc9d151 100644 --- a/inrt/build.gradle +++ b/inrt/build.gradle @@ -8,8 +8,8 @@ android { applicationId "com.stardust.auojs.inrt" minSdkVersion 17 targetSdkVersion 23 - versionCode 203 - versionName "4.0.0 Beta" + versionCode 210 + versionName "4.0.2 Alpha5" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" ndk { abiFilters 'armeabi-v7a'