6.1.0 - 变更包名 新增投影媒体权限开关/tasks模块 扩展内置模块方法 重构内置模块及构建脚本

This commit is contained in:
SuperMonster003
2022-05-26 19:18:16 +08:00
parent e0374a835e
commit f68ad1c993
770 changed files with 15821 additions and 14759 deletions

View File

@@ -1,113 +1,13 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion versions.project.compile
defaultConfig {
applicationId 'com.stardust.auojs.inrt'
minSdkVersion versions.project.mini
targetSdkVersion versions.project.target
versionCode versions.project.appVersionCode
versionName versions.project.appVersionName
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
multiDexEnabled true
}
lintOptions {
abortOnError false
disable 'MissingTranslation'
disable 'ExtraTranslation'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_16
targetCompatibility JavaVersion.VERSION_16
}
splits {
// Configures multiple APKs based on ABI.
abi {
// Enables building multiple APKs per ABI.
enable true
// By default all ABIs are included, so use reset() and include to specify that we only
// want APKs for x86 and x86_64.
// Resets the list of ABIs that Gradle should create APKs for to none.
reset()
// Specifies a list of ABIs that Gradle should create APKs for.
include 'x86', 'armeabi-v7a'
// Specifies that we do not want to also generate a universal APK that includes all ABIs.
universalApk false
}
}
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
ext {
applicationId = 'com.stardust.autojs.inrt'
namespace = applicationId
}
def buildApkPluginForAbi(File pluginProjectDir, String abi) {
copy {
from file('..\\app\\release\\')
into new File(pluginProjectDir, 'app\\src\\main\\assets')
def fileName = 'inrt-' + abi + '-release.apk'
include fileName
rename fileName, 'template.apk'
}
exec {
workingDir pluginProjectDir
commandLine 'gradlew.bat', 'assembleRelease'
}
copy {
from new File(pluginProjectDir, 'app\\build\\outputs\\apk\\release')
into file('..\\common\\release')
def fileName = '打包插件-' + versions.project.appVersionName + '-release.apk'
include fileName
rename fileName, '打包插件-' + abi + '-' + versions.project.appVersionName + '-release.apk'
}
}
task buildApkPlugin {
doLast {
def pluginProjectDirPath = '..\\..\\AutoJsApkBuilderPlugin'
def pluginProjectDir = file(pluginProjectDirPath)
if (!pluginProjectDir.exists() || !pluginProjectDir.isDirectory()) {
println 'pluginProjectDir not exists'
return
}
buildApkPluginForAbi(pluginProjectDir, 'armeabi-v7a')
}
}
tasks.whenTaskAdded { task ->
if (task.name == 'assembleRelease') {
task.finalizedBy 'buildApkPlugin'
}
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_16
}
}
repositories {
google()
apply {
from rootProject.file('config.gradle')
}
dependencies {
testImplementation "junit:junit:${versions.junit}"
implementation project(':automator')
implementation project(':common')
// Indirect: automator, common
implementation project(':autojs')
}

View File

@@ -1,26 +0,0 @@
package com.stardust.auojs.inrt;
import android.content.Context;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumentation test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.stardust.auojs.inrt", appContext.getPackageName());
}
}

View File

@@ -1,67 +1,83 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.stardust.auojs.inrt">
xmlns:tools="http://schemas.android.com/tools"
package="com.stardust.autojs.inrt">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />
<uses-permission
android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<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_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission
android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" />
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
<uses-permission
android:name="android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<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.SYSTEM_ALERT_WINDOW"/>
<!-- 非Auto.js运行必需不会主动申请某些脚本可以自行申请-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<!-- 非Auto.js运行必需不会主动申请某些脚本可以自行申请 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application
android:name=".App"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="inrt"
android:supportsRtl="true"
android:theme="@style/ScriptTheme"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning"
tools:replace="android:label, android:allowBackup"
tools:targetApi="m">
<activity android:name=".LogActivity">
android:name=".App"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="inrt"
android:supportsRtl="true"
android:theme="@style/ScriptTheme"
android:usesCleartextTraffic="true"
tools:replace="android:label, android:allowBackup"
tools:targetApi="m"
tools:ignore="DataExtractionRules">
</activity>
<activity android:name=".LogActivity" />
<activity
android:name=".SplashActivity"
android:theme="@style/AppTheme.Splash">
android:name=".SplashActivity"
android:theme="@style/AppTheme.Splash"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SettingsActivity"/>
<activity android:name=".SettingsActivity" />
<service
android:name="com.stardust.notification.NotificationListenerService"
android:label="inrt"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
android:name="com.stardust.notification.NotificationListenerService"
android:label="inrt"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"
android:exported="false">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService"/>
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="org.autojs.autojs.inrt.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
android:name="androidx.core.content.FileProvider"
android:authorities="org.autojs.autojs6.inrt.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
</application>

View File

@@ -1,4 +1,4 @@
package com.stardust.auojs.inrt
package com.stardust.autojs.inrt
import android.app.Application
import android.graphics.Bitmap
@@ -11,15 +11,14 @@ import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.SimpleTarget
import com.bumptech.glide.request.transition.Transition
import com.stardust.app.GlobalAppContext
import com.stardust.auojs.inrt.autojs.AutoJs
import com.stardust.auojs.inrt.autojs.GlobalKeyObserver
import com.stardust.autojs.inrt.autojs.AutoJs
import com.stardust.autojs.inrt.autojs.GlobalKeyObserver
import com.stardust.autojs.core.ui.inflater.ImageLoader
import com.stardust.autojs.core.ui.inflater.util.Drawables
/**
* Created by Stardust on 2017/7/1.
*/
class App : Application() {
override fun onCreate() {

View File

@@ -1,4 +1,4 @@
package com.stardust.auojs.inrt
package com.stardust.autojs.inrt
import android.content.Intent
import android.os.Bundle
@@ -8,8 +8,8 @@ import android.view.Menu
import android.view.MenuItem
import android.view.View
import com.stardust.auojs.inrt.autojs.AutoJs
import com.stardust.auojs.inrt.launch.GlobalProjectLauncher
import com.stardust.autojs.inrt.autojs.AutoJs
import com.stardust.autojs.inrt.launch.GlobalProjectLauncher
import com.stardust.autojs.core.console.ConsoleView
import com.stardust.autojs.core.console.ConsoleImpl
@@ -45,6 +45,6 @@ class LogActivity : AppCompatActivity() {
companion object {
val EXTRA_LAUNCH_SCRIPT = "launch_script"
const val EXTRA_LAUNCH_SCRIPT = "launch_script"
}
}

View File

@@ -1,4 +1,4 @@
package com.stardust.auojs.inrt
package com.stardust.autojs.inrt
import android.content.SharedPreferences
import androidx.preference.PreferenceManager
@@ -8,7 +8,6 @@ import com.stardust.app.GlobalAppContext
/**
* Created by Stardust on 2017/12/8.
*/
object Pref {
private const val KEY_FIRST_USING = "key_first_using"

View File

@@ -1,4 +1,4 @@
package com.stardust.auojs.inrt
package com.stardust.autojs.inrt
import android.os.Bundle
import androidx.annotation.Nullable
@@ -8,7 +8,6 @@ import androidx.appcompat.widget.Toolbar
/**
* Created by Stardust on 2017/12/8.
*/
class SettingsActivity : AppCompatActivity() {
override fun onCreate(@Nullable savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

View File

@@ -1,10 +1,9 @@
package com.stardust.auojs.inrt
package com.stardust.autojs.inrt
import android.Manifest
import android.content.Intent
import android.content.pm.PackageManager.PERMISSION_DENIED
import android.graphics.Typeface
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
@@ -12,15 +11,13 @@ import android.widget.TextView
import android.widget.Toast
import androidx.annotation.NonNull
import androidx.annotation.Nullable
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import com.stardust.auojs.inrt.autojs.AutoJs
import com.stardust.auojs.inrt.launch.GlobalProjectLauncher
import com.stardust.autojs.inrt.autojs.AutoJs
import com.stardust.autojs.inrt.launch.GlobalProjectLauncher
/**
* Created by Stardust on 2018/2/2.
*/
class SplashActivity : AppCompatActivity() {
override fun onCreate(@Nullable savedInstanceState: Bundle?) {
@@ -71,7 +68,6 @@ class SplashActivity : AppCompatActivity() {
}
@RequiresApi(api = Build.VERSION_CODES.M)
private fun getRequestPermissions(permissions: Array<out String>): Array<String> {
val list = ArrayList<String>()
for (permission in permissions) {

View File

@@ -1,12 +1,12 @@
package com.stardust.auojs.inrt.autojs
package com.stardust.autojs.inrt.autojs
import android.annotation.SuppressLint
import android.app.Application
import android.content.Context
import com.stardust.app.GlobalAppContext
import com.stardust.auojs.inrt.LogActivity
import com.stardust.auojs.inrt.R
import com.stardust.auojs.inrt.SettingsActivity
import com.stardust.autojs.inrt.LogActivity
import com.stardust.autojs.inrt.R
import com.stardust.autojs.inrt.SettingsActivity
import com.stardust.autojs.core.accessibility.AccessibilityServiceTool
import com.stardust.autojs.runtime.ScriptRuntime
import com.stardust.autojs.runtime.api.AppUtils
@@ -19,7 +19,6 @@ import com.stardust.view.accessibility.AccessibilityService
/**
* Created by Stardust on 2017/4/2.
*/
class AutoJs private constructor(application: Application) : com.stardust.autojs.AutoJs(application) {
init {
@@ -46,7 +45,7 @@ class AutoJs private constructor(application: Application) : com.stardust.autojs
}
}
override fun waitForAccessibilityServiceEnabled() {
override fun waitForAccessibilityServiceEnabled(timeout: Long) {
if (AccessibilityService.instance != null) {
return
}
@@ -58,7 +57,7 @@ class AutoJs private constructor(application: Application) : com.stardust.autojs
}
if (errorMessage != null) {
getAccessibilityServiceTool().goToAccessibilitySetting()
if (!AccessibilityService.waitForEnabled(-1)) {
if (!AccessibilityService.waitForEnabled(timeout)) {
throw ScriptInterruptedException()
}
}

View File

@@ -1,10 +1,10 @@
package com.stardust.auojs.inrt.autojs
package com.stardust.autojs.inrt.autojs
import android.util.Log
import android.view.KeyEvent
import com.stardust.app.GlobalAppContext
import com.stardust.auojs.inrt.Pref
import com.stardust.autojs.inrt.Pref
import com.stardust.autojs.core.inputevent.InputEventObserver
import com.stardust.autojs.core.inputevent.ShellKeyObserver
import com.stardust.view.accessibility.AccessibilityService
@@ -13,7 +13,6 @@ import com.stardust.view.accessibility.OnKeyListener
/**
* Created by Stardust on 2017/8/14.
*/
class GlobalKeyObserver internal constructor() : OnKeyListener, ShellKeyObserver.KeyListener {
private var mVolumeDownFromShell: Boolean = false
private var mVolumeDownFromAccessibility: Boolean = false

View File

@@ -1,14 +1,13 @@
package com.stardust.auojs.inrt.autojs
package com.stardust.autojs.inrt.autojs
import com.stardust.app.GlobalAppContext
import com.stardust.auojs.inrt.R
import com.stardust.autojs.inrt.R
import com.stardust.autojs.execution.ScriptExecution
import com.stardust.autojs.execution.ScriptExecutionListener
/**
* Created by Stardust on 2017/5/3.
*/
class ScriptExecutionGlobalListener : ScriptExecutionListener {
override fun onStart(execution: ScriptExecution) {

View File

@@ -1,4 +1,4 @@
package com.stardust.auojs.inrt.autojs
package com.stardust.autojs.inrt.autojs
import android.content.Context
import com.stardust.autojs.engine.LoopBasedJavaScriptEngine

View File

@@ -1,4 +1,4 @@
package com.stardust.auojs.inrt.launch
package com.stardust.autojs.inrt.launch
import android.app.Activity
import android.content.Context
@@ -6,30 +6,25 @@ import android.content.Intent
import android.os.Handler
import android.os.Looper
import android.text.TextUtils
import com.stardust.auojs.inrt.BuildConfig
import com.stardust.auojs.inrt.LogActivity
import com.stardust.auojs.inrt.Pref
import com.stardust.auojs.inrt.autojs.AutoJs
import com.stardust.autojs.engine.encryption.ScriptEncryption
import com.stardust.autojs.execution.ExecutionConfig
import com.stardust.autojs.execution.ScriptExecution
import com.stardust.autojs.inrt.BuildConfig
import com.stardust.autojs.inrt.LogActivity
import com.stardust.autojs.inrt.Pref
import com.stardust.autojs.inrt.autojs.AutoJs
import com.stardust.autojs.project.ProjectConfig
import com.stardust.autojs.script.JavaScriptFileSource
import com.stardust.autojs.script.JavaScriptSource
import com.stardust.autojs.script.ScriptSource
import com.stardust.pio.PFiles
import com.stardust.pio.UncheckedIOException
import com.stardust.util.MD5
import java.io.File
import java.io.IOException
import java.lang.reflect.Field
/**
* Created by Stardust on 2018/1/24.
*/
open class AssetsProjectLauncher(private val mAssetsProjectDir: String, private val mActivity: Context) {
private val mProjectDir: String = File(mActivity.filesDir, "project/").path
private val mProjectConfig: ProjectConfig = ProjectConfig.fromAssets(mActivity, ProjectConfig.configFileOfDir(mAssetsProjectDir))

View File

@@ -1,4 +1,4 @@
package com.stardust.auojs.inrt.launch
package com.stardust.autojs.inrt.launch
import android.annotation.SuppressLint
import com.stardust.app.GlobalAppContext
@@ -6,6 +6,5 @@ import com.stardust.app.GlobalAppContext
/**
* Created by Stardust on 2018/3/21.
*/
@SuppressLint("StaticFieldLeak")
object GlobalProjectLauncher: AssetsProjectLauncher("project", GlobalAppContext.get())

View File

@@ -1,4 +1,4 @@
package com.stardust.auojs.inrt;
package com.stardust.autojs.inrt;
import com.stardust.util.AdvancedEncryptionStandard;
@@ -6,8 +6,6 @@ import org.junit.Test;
import java.util.Arrays;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*