修改编译和目标版本为31 适配安卓12

This commit is contained in:
TonyJiangWJ 2022-01-15 18:49:45 +08:00
parent 6ecd99ea9c
commit f0195fc4eb
10 changed files with 92 additions and 68 deletions

View File

@ -96,7 +96,7 @@ android {
reset()
// Specifies a list of ABIs that Gradle should create APKs for.
include "armeabi-v7a", "arm64-v8a"
include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
// include "x86", "armeabi-v7a"
// Specifies that we do not want to also generate a universal APK that includes all ABIs.
@ -141,7 +141,7 @@ dependencies {
})
kapt 'com.jakewharton:butterknife-compiler:10.2.3'
// Android supports
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.multidex:multidex:2.0.1'
@ -201,10 +201,10 @@ dependencies {
exclude group: 'com.android.support'
})
// WorkManager
implementation 'androidx.work:work-runtime:2.5.0'
implementation 'androidx.work:work-runtime:2.7.1'
// Android job
implementation 'com.evernote:android-job:1.4.2'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.3'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.8.1'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.3'
// Optional, if you use support library fragments:
debugImplementation 'com.squareup.leakcanary:leakcanary-support-fragment:1.6.3'

View File

@ -4,13 +4,15 @@
package="org.autojs.autojs">
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.READ_LOGS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
@ -19,6 +21,7 @@
<!-- 非Auto.js运行必需不会主动申请某些脚本可以自行申请-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<!-- Ad SDK Permissions -->
@ -26,7 +29,6 @@
<application
xmlns:tools="http://schemas.android.com/tools"
android:name="org.autojs.autojs.App"
android:allowBackup="false"
android:icon="@drawable/autojs_material"
@ -35,7 +37,8 @@
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:replace="android:label, android:icon, android:allowBackup">
tools:replace="android:label, android:icon, android:allowBackup"
tools:targetApi="m">
<meta-data
android:name="android.max_aspect"
@ -45,7 +48,8 @@
android:name="org.autojs.autojs.ui.splash.SplashActivity"
android:hardwareAccelerated="true"
android:label="@string/app_name"
android:theme="@style/AppTheme.Splash">
android:theme="@style/AppTheme.Splash"
android:exported="true">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER"/>
@ -57,12 +61,14 @@
android:hardwareAccelerated="true"
android:label="@string/app_name"
android:launchMode="singleTask"
android:theme="@style/AppTheme.FullScreen">
android:theme="@style/AppTheme.FullScreen"
android:exported="true">
</activity>
<activity
android:name="org.autojs.autojs.external.shortcut.ShortcutActivity"
android:taskAffinity="org.autojs.autojs.external.shortcut.ShortcutActivity"
android:theme="@android:style/Theme.NoDisplay">
android:theme="@android:style/Theme.NoDisplay"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
@ -86,37 +92,39 @@
android:launchMode="standard"
android:multiprocess="true"
android:taskAffinity="org.autojs.autojs.edit"
android:exported="false"
android:theme="@style/EditorTheme">
</activity>
<activity android:name=".ui.settings.AboutActivity_"/>
<activity android:name=".ui.settings.AboutActivity_" android:exported="false"/>
<activity
android:name=".ui.settings.SettingsActivity_"
android:name=".ui.settings.SettingsActivity_" android:exported="false"
android:theme="@style/AppTheme.Settings"/>
<activity android:name="org.autojs.autojs.ui.error.ErrorReportActivity"/>
<activity android:name="org.autojs.autojs.ui.error.ErrorReportActivity" android:exported="false"/>
<activity
android:name=".external.tasker.TaskerScriptEditActivity_"
android:configChanges="orientation|screenSize"
android:configChanges="orientation|screenSize" android:exported="false"
/>
<activity android:name="org.autojs.autojs.ui.edit.ViewSampleActivity"/>
<activity android:name="org.autojs.autojs.ui.edit.ViewSampleActivity" android:exported="false"/>
<activity
android:name=".ui.user.LoginActivity_"
android:name=".ui.user.LoginActivity_" android:exported="false"
android:windowSoftInputMode="adjustResize"/>
<activity
android:name=".ui.user.RegisterActivity_"
android:name=".ui.user.RegisterActivity_" android:exported="false"
android:windowSoftInputMode="adjustResize"/>
<activity android:name=".ui.user.WebActivity_"/>
<activity android:name=".ui.user.WebActivity_" android:exported="false"/>
<activity
android:name=".ui.project.BuildActivity_"
android:configChanges="orientation|screenSize"/>
<activity android:name=".ui.project.ProjectConfigActivity_"/>
<activity android:name=".ui.log.LogActivity_"/>
<activity android:name=".ui.doc.DocumentationActivity_"/>
<activity android:name=".ui.shortcut.ShortcutIconSelectActivity_"/>
<activity android:name=".ui.timing.TimedTaskSettingActivity_"/>
android:configChanges="orientation|screenSize" android:exported="false"/>
<activity android:name=".ui.project.ProjectConfigActivity_" android:exported="false"/>
<activity android:name=".ui.log.LogActivity_" android:exported="false"/>
<activity android:name=".ui.doc.DocumentationActivity_" android:exported="false"/>
<activity android:name=".ui.shortcut.ShortcutIconSelectActivity_" android:exported="false"/>
<activity android:name=".ui.timing.TimedTaskSettingActivity_" android:exported="false"/>
<activity
android:name="org.autojs.autojs.ui.shortcut.ShortcutCreateActivity"
android:theme="@style/AppTheme.Transparent"/>
<activity android:name=".external.widget.ScriptWidgetSettingsActivity_">
android:theme="@style/AppTheme.Transparent" android:exported="false"/>
<activity android:name=".external.widget.ScriptWidgetSettingsActivity_"
android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
@ -127,20 +135,21 @@
</activity>
<activity
android:name="org.autojs.autojs.ui.error.IssueReporterActivity"
android:name="org.autojs.autojs.ui.error.IssueReporterActivity" android:exported="false"
android:theme="@style/IssueReporterTheme"/>
<service android:name="org.autojs.autojs.external.foreground.ForegroundService"/>
<service android:name="org.autojs.autojs.external.ScriptExecutionIntentService"/>
<service android:name="org.autojs.autojs.external.foreground.ForegroundService" android:exported="false"/>
<service android:name="org.autojs.autojs.external.ScriptExecutionIntentService" android:exported="false"/>
<activity android:name=".external.tasker.TaskPrefEditActivity_"/>
<activity android:name=".external.tasker.TaskPrefEditActivity_" android:exported="false"/>
<service
android:name="org.autojs.autojs.external.tile.LayoutBoundsTile"
android:icon="@drawable/ic_circular_menu_bounds"
android:label="@string/text_inspect_layout_bounds"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
android:exported="true">
<meta-data
android:name="android.service.quicksettings.ACTIVE_TILE"
android:value="false"/>
@ -153,7 +162,8 @@
android:name="org.autojs.autojs.external.tile.LayoutHierarchyTile"
android:icon="@drawable/ic_circular_menu_hierarchy"
android:label="@string/text_inspect_layout_hierarchy"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
android:exported="true">
<meta-data
android:name="android.service.quicksettings.ACTIVE_TILE"
@ -175,7 +185,8 @@
</intent-filter>
</activity-alias>
<receiver android:name="org.autojs.autojs.external.receiver.StaticBroadcastReceiver">
<receiver android:name="org.autojs.autojs.external.receiver.StaticBroadcastReceiver"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.QUICKBOOT_POWERON"/>
@ -199,7 +210,8 @@
<action android:name="android.intent.action.WALLPAPER_CHANGED"/>
<action android:name="android.intent.action.USER_UNLOCKED"/>
<action android:name="android.intent.action.USER_PRESENT"/>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"
tools:ignore="BatteryLife" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
@ -227,7 +239,8 @@
<activity
android:name="org.autojs.autojs.external.open.EditIntentActivity"
android:icon="@drawable/autojs_material"
android:label="@string/text_edit_script">
android:label="@string/text_edit_script"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.EDIT"/>
@ -246,7 +259,8 @@
android:icon="@drawable/autojs_material"
android:label="@string/text_run_script"
android:taskAffinity="org.autojs.autojs.external.open.RunIntentActivity"
android:theme="@android:style/Theme.NoDisplay">
android:theme="@android:style/Theme.NoDisplay"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.EDIT"/>
@ -264,7 +278,8 @@
android:name="org.autojs.autojs.external.open.ImportIntentActivity"
android:icon="@drawable/autojs_material"
android:label="@string/text_import_script"
android:theme="@style/AppTheme.Transparent">
android:theme="@style/AppTheme.Transparent"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.EDIT"/>
@ -282,13 +297,15 @@
<service
android:name="com.stardust.notification.NotificationListenerService"
android:label="@string/app_name"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"
android:exported="false">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService"/>
</intent-filter>
</service>
<receiver android:name="org.autojs.autojs.external.widget.ScriptWidget">
<receiver android:name="org.autojs.autojs.external.widget.ScriptWidget"
android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
@ -298,13 +315,15 @@
android:resource="@xml/script_widget_config"/>
</receiver>
<receiver android:name="org.autojs.autojs.timing.TaskReceiver">
<receiver android:name="org.autojs.autojs.timing.TaskReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.stardust.autojs.action.task"/>
</intent-filter>
</receiver>
<receiver android:name=".timing.work.AlarmManagerProvider">
<receiver android:name=".timing.work.AlarmManagerProvider"
android:exported="false">
<intent-filter>
<action android:name="com.stardust.autojs.action.check_task"/>
<action android:name="com.android.deskclock.ALARM_ALERT"/>

View File

@ -13,7 +13,6 @@ import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.SimpleTarget
import com.bumptech.glide.request.transition.Transition
import com.flurry.android.FlurryAgent
import com.squareup.leakcanary.LeakCanary
import com.stardust.app.GlobalAppContext
import com.stardust.autojs.core.ui.inflater.ImageLoader
import com.stardust.autojs.core.ui.inflater.util.Drawables
@ -67,12 +66,6 @@ class App : MultiDexApplication() {
crashHandler.setBuglyHandler(Thread.getDefaultUncaughtExceptionHandler())
Thread.setDefaultUncaughtExceptionHandler(crashHandler)
if (LeakCanary.isInAnalyzerProcess(this)) {
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return
}
//LeakCanary.install(this);
}

View File

@ -3,37 +3,44 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.stardust.autojs">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<application
>
<activity
android:name=".execution.ScriptExecuteActivity"
android:name=".execution.ScriptExecuteActivity" android:exported="false"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@style/ScriptTheme"/>
<activity
android:name="com.stardust.autojs.core.permission.PermissionRequestActivity"
android:excludeFromRecents="true"
android:excludeFromRecents="true" android:exported="false"
android:taskAffinity="com.stardust.autojs.runtime.api.image.ScreenCaptureRequestActivity"
android:theme="@style/ScriptTheme.Transparent"/>
<activity
android:name="com.stardust.autojs.core.image.capture.ScreenCaptureRequestActivity"
android:excludeFromRecents="true"
android:excludeFromRecents="true" android:exported="false"
android:taskAffinity="com.stardust.autojs.runtime.api.image.ScreenCaptureRequestActivity"
android:theme="@style/ScriptTheme.Transparent"/>
<service
android:name="com.stardust.autojs.core.accessibility.AccessibilityService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:exported="false">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService"/>
</intent-filter>

View File

@ -206,7 +206,7 @@ class SimpleActionAutomator(
ScriptRuntime.requiresApi(24)
if (!::mGlobalActionAutomator.isInitialized) {
mGlobalActionAutomator =
GlobalActionAutomator(Handler(mScriptRuntime.get()?.loopers?.servantLooper)) {
GlobalActionAutomator(mScriptRuntime.get()?.loopers?.servantLooper?.let { Handler(it) }) {
ensureAccessibilityServiceEnabled()
return@GlobalActionAutomator mAccessibilityBridge.service!!
}

View File

@ -63,7 +63,9 @@ class ScriptCanvasView(context: Context, scriptRuntime: ScriptRuntime) : Texture
canvas = lockCanvas()
scriptCanvas.setCanvas(canvas)
emit("draw", scriptCanvas, this@ScriptCanvasView)
unlockCanvasAndPost(canvas)
if (canvas != null) {
unlockCanvasAndPost(canvas)
}
canvas = null
val dt = mTimePerDraw - (SystemClock.uptimeMillis() - time)
if (dt > 0) {

View File

@ -117,7 +117,7 @@ class GlobalActionAutomator(private val mHandler: Handler?, private val serviceP
private fun gesturesWithoutHandler(description: GestureDescription): Boolean {
prepareLooperIfNeeded()
val result = VolatileBox(false)
val handler = Handler(Looper.myLooper())
val handler = Looper.myLooper()?.let { Handler(it) }
service.dispatchGesture(description, object : AccessibilityService.GestureResultCallback() {
override fun onCompleted(gestureDescription: GestureDescription) {
result.set(true)

View File

@ -84,7 +84,7 @@ open class AccessibilityNodeInfoAllocator {
key.recycle()
notRecycledCount++
if (DEBUG)
Log.w(TAG, value)
value?.let { Log.w(TAG, it) }
} catch (ignored: IllegalStateException) {
}

View File

@ -15,7 +15,8 @@
<!-- 非Auto.js运行必需不会主动申请某些脚本可以自行申请-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:ignore="CoarseFineLocation" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:ignore="CoarseFineLocation" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
@ -30,13 +31,14 @@
tools:ignore="GoogleAppIndexingWarning"
tools:replace="android:label, android:allowBackup"
tools:targetApi="m">
<activity android:name=".LogActivity">
<activity android:name=".LogActivity" android:exported="false">
</activity>
<activity
android:name=".SplashActivity"
android:theme="@style/AppTheme.Splash">
android:theme="@style/AppTheme.Splash"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
@ -44,12 +46,13 @@
</intent-filter>
</activity>
<activity android:name=".SettingsActivity"/>
<activity android:name=".SettingsActivity" android:exported="false"/>
<service
android:name="com.stardust.notification.NotificationListenerService"
android:label="inrt"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"
android:exported="false">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService"/>
</intent-filter>

View File

@ -1,8 +1,8 @@
{
"appVersionCode": 470,
"appVersionName": "4.1.22.0108 Modify",
"target": 28,
"appVersionCode": 471,
"appVersionName": "4.1.22.0115.alpha Modify",
"target": 31,
"mini": 21,
"compile": 28,
"compile": 31,
"buildTool": "30.0.3"
}