perf: class.java.name hint

Cannot access 'java.lang.constant.Constable' which is a supertype of 'java.lang.Class'. Check your module classpath for missing or conflicting dependencies
This commit is contained in:
lisonge 2024-09-09 21:59:44 +08:00
parent fc18ef63a2
commit 6ef8b16998

View File

@ -4,14 +4,10 @@ package li.songe.gkd.shizuku
import android.app.ActivityManager import android.app.ActivityManager
import android.app.IActivityTaskManager import android.app.IActivityTaskManager
import android.content.ComponentName import android.content.ComponentName
import android.content.Context
import android.content.ServiceConnection import android.content.ServiceConnection
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.hardware.input.IInputManager
import android.os.IBinder import android.os.IBinder
import android.os.SystemClock
import android.view.Display import android.view.Display
import android.view.MotionEvent
import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.LogUtils
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@ -22,6 +18,7 @@ import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import li.songe.gkd.META import li.songe.gkd.META
import li.songe.gkd.app
import li.songe.gkd.composition.CanOnDestroy import li.songe.gkd.composition.CanOnDestroy
import li.songe.gkd.data.DeviceInfo import li.songe.gkd.data.DeviceInfo
import li.songe.gkd.util.json import li.songe.gkd.util.json
@ -103,14 +100,14 @@ fun IActivityTaskManager.safeGetTasks(log: Boolean = true): List<ActivityManager
} }
} }
fun newInputManager(): IInputManager? { //fun newInputManager(): IInputManager? {
val service = SystemServiceHelper.getSystemService(Context.INPUT_SERVICE) // val service = SystemServiceHelper.getSystemService(Context.INPUT_SERVICE)
if (service == null) { // if (service == null) {
LogUtils.d("shizuku 无法获取 " + Context.INPUT_SERVICE) // LogUtils.d("shizuku 无法获取 " + Context.INPUT_SERVICE)
return null // return null
} // }
return service.let(::ShizukuBinderWrapper).let(IInputManager.Stub::asInterface) // return service.let(::ShizukuBinderWrapper).let(IInputManager.Stub::asInterface)
} //}
fun CanOnDestroy.useShizukuAliveState(): StateFlow<Boolean> { fun CanOnDestroy.useShizukuAliveState(): StateFlow<Boolean> {
@ -156,28 +153,28 @@ fun useSafeGetTasksFc(
} }
} }
fun IInputManager.safeClick(x: Float, y: Float): Boolean? { //fun IInputManager.safeClick(x: Float, y: Float): Boolean? {
// 模拟 abd shell input tap x y 传递的 pressure // // 模拟 abd shell input tap x y 传递的 pressure
// 下面除了 pressure 的常量来自 MotionEvent obtain 方法 // // 下面除了 pressure 的常量来自 MotionEvent obtain 方法
val downTime = SystemClock.uptimeMillis() // val downTime = SystemClock.uptimeMillis()
val downEvent = MotionEvent.obtain( // val downEvent = MotionEvent.obtain(
downTime, downTime, MotionEvent.ACTION_DOWN, x, y, 1.0f, 1.0f, 0, 1.0f, 1.0f, 0, 0 // downTime, downTime, MotionEvent.ACTION_DOWN, x, y, 1.0f, 1.0f, 0, 1.0f, 1.0f, 0, 0
) // pressure=1.0f // ) // pressure=1.0f
val upEvent = MotionEvent.obtain( // val upEvent = MotionEvent.obtain(
downTime, downTime, MotionEvent.ACTION_UP, x, y, 0f, 1.0f, 0, 1.0f, 1.0f, 0, 0 // downTime, downTime, MotionEvent.ACTION_UP, x, y, 0f, 1.0f, 0, 1.0f, 1.0f, 0, 0
) // pressure=0f // ) // pressure=0f
return try { // return try {
val r1 = injectInputEvent(downEvent, 2) // val r1 = injectInputEvent(downEvent, 2)
val r2 = injectInputEvent(upEvent, 2) // val r2 = injectInputEvent(upEvent, 2)
r1 && r2 // r1 && r2
} catch (e: Exception) { // } catch (e: Exception) {
LogUtils.d(e) // LogUtils.d(e)
null // null
} finally { // } finally {
downEvent.recycle() // downEvent.recycle()
upEvent.recycle() // upEvent.recycle()
} // }
} //}
//fun useSafeInjectClickEventFc( //fun useSafeInjectClickEventFc(
// scope: CoroutineScope, // scope: CoroutineScope,
@ -249,8 +246,8 @@ data class UserServiceWrapper(
suspend fun newUserService(): UserServiceWrapper = suspendCoroutine { continuation -> suspend fun newUserService(): UserServiceWrapper = suspendCoroutine { continuation ->
val serviceArgs = Shizuku.UserServiceArgs( val serviceArgs = Shizuku.UserServiceArgs(
ComponentName( ComponentName(
META.appId, app,
UserService::class.java.name UserService::class.java
) )
).daemon(false).processNameSuffix( ).daemon(false).processNameSuffix(
"service-for-${if (META.debuggable) "gkd-debug" else "gkd-release"}" "service-for-${if (META.debuggable) "gkd-debug" else "gkd-release"}"