Fix VPN service crash due to unhandled foreground start
Addressed issue where `CustomVpnService` fails to properly start in foreground, leading to a `ForegroundServiceDidNotStartInTimeException`. Added handling for service termination and cleanup to prevent abrupt failure.
This commit is contained in:
parent
3f3273e557
commit
1d65b8c5aa
|
@ -1,6 +1,7 @@
|
||||||
package com.example.studyapp;
|
package com.example.studyapp;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.app.ActivityManager;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.ServiceConnection;
|
import android.content.ServiceConnection;
|
||||||
|
@ -188,45 +189,63 @@ public class MainActivity extends AppCompatActivity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isServiceRunning(Context context, Class<?> serviceClass) {
|
||||||
|
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
|
||||||
|
if (manager != null) {
|
||||||
|
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
|
||||||
|
if (serviceClass.getName().equals(service.service.getClassName())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private void stopProxy(Context context) {
|
private void stopProxy(Context context) {
|
||||||
if (context == null) {
|
if (context == null) {
|
||||||
Log.e("stopProxy", "上下文为空,无法停止服务");
|
Log.e("stopProxy", "上下文为空,无法停止服务");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isServiceStopped = true;
|
if (!isServiceRunning(context, CustomVpnService.class)) {
|
||||||
try {
|
Log.w("stopProxy", "服务未运行,无法停止");
|
||||||
Object instance = ReflectionHelper.getInstance("com.example.studyapp.proxy.CustomVpnService", "instance");
|
return;
|
||||||
if (instance != null) {
|
|
||||||
// 尝试获取 onDestroy 方法并调用
|
|
||||||
Method onDestroyMethod = instance.getClass().getMethod("onDestroy");
|
|
||||||
onDestroyMethod.invoke(instance);
|
|
||||||
Log.d("stopProxy", "服务已成功停止");
|
|
||||||
} else {
|
|
||||||
isServiceStopped = false;
|
|
||||||
Log.w("stopProxy", "实例为空,服务可能未启动");
|
|
||||||
}
|
|
||||||
} catch (NoSuchMethodException e) {
|
|
||||||
isServiceStopped = false;
|
|
||||||
Log.e("stopProxy", "服务未提供 onDestroy 方法: " + e.getMessage(), e);
|
|
||||||
} catch (InvocationTargetException | IllegalAccessException e) {
|
|
||||||
isServiceStopped = false;
|
|
||||||
Log.e("stopProxy", "无法调用 onDestroy 方法: " + e.getMessage(), e);
|
|
||||||
} catch (Exception e) {
|
|
||||||
isServiceStopped = false;
|
|
||||||
Log.e("stopProxy", "停止服务时发生未知错误: " + e.getMessage(), e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 显示用户提示(主线程)
|
new Thread(() -> {
|
||||||
String message = isServiceStopped ? "VPN 服务已停止" : "停止 VPN 服务失败";
|
boolean isServiceStopped = true;
|
||||||
new Handler(Looper.getMainLooper()).post(() ->
|
try {
|
||||||
Toast.makeText(context, message, Toast.LENGTH_SHORT).show());
|
// 通过反射获取服务实例
|
||||||
|
Object instance = ReflectionHelper.getInstance("com.example.studyapp.proxy.CustomVpnService", "instance");
|
||||||
|
if (instance != null) {
|
||||||
|
// 获取并调用 stopService 方法
|
||||||
|
Method stopServiceMethod = instance.getClass().getDeclaredMethod("stopService", Intent.class);
|
||||||
|
stopServiceMethod.invoke(instance, intent);
|
||||||
|
Log.d("stopProxy", "服务已成功停止");
|
||||||
|
} else {
|
||||||
|
isServiceStopped = false;
|
||||||
|
Log.w("stopProxy", "实例为空,服务可能未启动");
|
||||||
|
}
|
||||||
|
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
|
||||||
|
isServiceStopped = false;
|
||||||
|
Log.e("stopProxy", "无法停止服务: " + e.getMessage(), e);
|
||||||
|
} catch (Exception e) {
|
||||||
|
isServiceStopped = false;
|
||||||
|
Log.e("stopProxy", "停止服务时发生未知错误: " + e.getMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 在主线程中更新用户提示
|
||||||
|
String message = isServiceStopped ? "VPN 服务已停止" : "停止 VPN 服务失败";
|
||||||
|
new Handler(Looper.getMainLooper()).post(() ->
|
||||||
|
Toast.makeText(context, message, Toast.LENGTH_SHORT).show());
|
||||||
|
}).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Intent intent;
|
||||||
private void handleVpnPermissionResult(int resultCode) {
|
private void handleVpnPermissionResult(int resultCode) {
|
||||||
if (resultCode == RESULT_OK) {
|
if (resultCode == RESULT_OK) {
|
||||||
|
|
||||||
Intent intent = new Intent(this, CustomVpnService.class);
|
intent = new Intent(this, CustomVpnService.class);
|
||||||
|
|
||||||
if (intent == null) {
|
if (intent == null) {
|
||||||
Log.e("handleVpnPermissionResult", "Intent is null. Cannot start service.");
|
Log.e("handleVpnPermissionResult", "Intent is null. Cannot start service.");
|
||||||
|
|
|
@ -2,12 +2,19 @@ package com.example.studyapp.proxy;
|
||||||
|
|
||||||
import static com.example.studyapp.utils.V2rayUtil.isV2rayRunning;
|
import static com.example.studyapp.utils.V2rayUtil.isV2rayRunning;
|
||||||
|
|
||||||
|
import android.app.Notification;
|
||||||
|
import android.app.NotificationChannel;
|
||||||
|
import android.app.NotificationManager;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.VpnService;
|
import android.net.VpnService;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.ParcelFileDescriptor;
|
import android.os.ParcelFileDescriptor;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.core.app.NotificationCompat;
|
||||||
|
|
||||||
|
import com.example.studyapp.R;
|
||||||
import com.example.studyapp.config.ConfigLoader;
|
import com.example.studyapp.config.ConfigLoader;
|
||||||
import com.example.studyapp.utils.V2rayUtil;
|
import com.example.studyapp.utils.V2rayUtil;
|
||||||
|
|
||||||
|
@ -35,6 +42,8 @@ public class CustomVpnService extends VpnService {
|
||||||
@Override
|
@Override
|
||||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||||
isVpnActive = true; // 服务启动时激活
|
isVpnActive = true; // 服务启动时激活
|
||||||
|
// 开始前台服务
|
||||||
|
startForeground(NOTIFICATION_ID, createNotification());
|
||||||
try {
|
try {
|
||||||
// 检查 V2ray 是否已启动,避免重复进程
|
// 检查 V2ray 是否已启动,避免重复进程
|
||||||
if (!isV2rayRunning()) {
|
if (!isV2rayRunning()) {
|
||||||
|
@ -51,6 +60,9 @@ public class CustomVpnService extends VpnService {
|
||||||
return START_STICKY;
|
return START_STICKY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final int NOTIFICATION_ID = 1;
|
||||||
|
|
||||||
|
|
||||||
private void startVpn() {
|
private void startVpn() {
|
||||||
try {
|
try {
|
||||||
// 配置虚拟网卡
|
// 配置虚拟网卡
|
||||||
|
@ -150,6 +162,25 @@ public class CustomVpnService extends VpnService {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Notification createNotification() {
|
||||||
|
NotificationManager notificationManager =
|
||||||
|
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
|
NotificationChannel channel = new NotificationChannel(
|
||||||
|
"vpn_service",
|
||||||
|
"VPN Service",
|
||||||
|
NotificationManager.IMPORTANCE_DEFAULT
|
||||||
|
);
|
||||||
|
notificationManager.createNotificationChannel(channel);
|
||||||
|
}
|
||||||
|
return new NotificationCompat.Builder(this, "vpn_service")
|
||||||
|
.setContentTitle("VPN 服务")
|
||||||
|
.setContentText("VPN 正在运行...")
|
||||||
|
.setSmallIcon(R.drawable.ic_launcher_foreground)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
|
@ -183,6 +214,39 @@ public class CustomVpnService extends VpnService {
|
||||||
Log.i("CustomVpnService", "VPN 服务已销毁");
|
Log.i("CustomVpnService", "VPN 服务已销毁");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean stopService(Intent name) {
|
||||||
|
isVpnActive = false; // 服务停止时停用
|
||||||
|
super.stopService(name);
|
||||||
|
|
||||||
|
// 停止处理数据包的线程
|
||||||
|
if (vpnTrafficThread != null && vpnTrafficThread.isAlive()) {
|
||||||
|
vpnTrafficThread.interrupt(); // 中断线程
|
||||||
|
try {
|
||||||
|
vpnTrafficThread.join(); // 等待线程停止
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
Log.e("CustomVpnService", "Error while stopping vpnTrafficThread", e);
|
||||||
|
Thread.currentThread().interrupt(); // 重新设置当前线程的中断状态
|
||||||
|
}
|
||||||
|
vpnTrafficThread = null; // 清空线程引用
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭 VPN 接口
|
||||||
|
if (vpnInterface != null) {
|
||||||
|
try {
|
||||||
|
vpnInterface.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
Log.e("CustomVpnService", "Error closing VPN interface: " + e.getMessage(), e);
|
||||||
|
}
|
||||||
|
vpnInterface = null; // 避免资源泄露
|
||||||
|
}
|
||||||
|
|
||||||
|
// 停止 V2Ray 服务
|
||||||
|
V2rayUtil.stopV2Ray();
|
||||||
|
Log.i("CustomVpnService", "VPN 服务已停止");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private volatile boolean isVpnActive = false; // 标志位控制数据包处理逻辑
|
private volatile boolean isVpnActive = false; // 标志位控制数据包处理逻辑
|
||||||
|
|
||||||
|
|
||||||
|
|
239
err.log
239
err.log
|
@ -1,137 +1,102 @@
|
||||||
2025-05-30 10:44:11.434 47349-47349 ShellUtils com.example.studyapp D Executing command: cmd settings2 delete global global_android_id
|
2025-05-30 11:18:50.925 54389-54744 CustomVpnService com.example.studyapp W VPN is not active. Skipping packet processing.
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr:
|
2025-05-30 11:18:50.929 300-315 ActivityManager system_server W Bringing down service while still waiting for start foreground: ServiceRecord{710855b u0 com.example.studyapp/.proxy.CustomVpnService}
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: Exception occurred while executing 'delete':
|
---------------------------- PROCESS ENDED (54389) for package com.example.studyapp ----------------------------
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: java.lang.SecurityException: You either need MANAGE_USERS, CREATE_USERS, or QUERY_USERS permission to: query user
|
2025-05-30 11:18:50.965 54389-54389 CustomVpnService com.example.studyapp I VPN 服务已停止
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.checkQueryOrCreateUsersPermission(UserManagerService.java:2854)
|
2025-05-30 11:18:50.965 54389-54389 stopProxy com.example.studyapp D 服务已成功停止
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.getUserInfo(UserManagerService.java:1428)
|
2025-05-30 11:18:50.966 54389-54389 Choreographer com.example.studyapp I Skipped 53 frames! The application may be doing too much work on its main thread.
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getUserInfo(UserController.java:2599)
|
2025-05-30 11:18:50.970 54389-54389 CustomVpnService com.example.studyapp I VPN 服务已销毁
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getCurrentUser(UserController.java:2539)
|
2025-05-30 11:18:50.970 54389-54389 AndroidRuntime com.example.studyapp D Shutting down VM
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.ActivityManagerService.getCurrentUser(ActivityManagerService.java:16355)
|
2025-05-30 11:18:50.971 54389-54389 AndroidRuntime com.example.studyapp E FATAL EXCEPTION: main (Ask Gemini)
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService$MyShellCommand.onCommand(SettingsService.java:263)
|
Process: com.example.studyapp, PID: 54389
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
|
android.app.RemoteServiceException$ForegroundServiceDidNotStartInTimeException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{710855b u0 com.example.studyapp/.proxy.CustomVpnService}
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at android.os.ShellCommand.exec(ShellCommand.java:38)
|
at android.app.ActivityThread.generateForegroundServiceDidNotStartInTimeException(ActivityThread.java:2005)
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService.onShellCommand(SettingsService.java:55)
|
at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:1979)
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.shellCommand(Binder.java:1049)
|
at android.app.ActivityThread.-$$Nest$mthrowRemoteServiceException(Unknown Source:0)
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.onTransact(Binder.java:877)
|
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2241)
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransactInternal(Binder.java:1285)
|
at android.os.Handler.dispatchMessage(Handler.java:106)
|
||||||
2025-05-30 10:44:11.446 47349-48462 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransact(Binder.java:1244)
|
at android.os.Looper.loopOnce(Looper.java:201)
|
||||||
2025-05-30 10:44:11.450 47349-47349 ShellUtils com.example.studyapp D Executing command: cmd settings2 delete global pm_list_features
|
at android.os.Looper.loop(Looper.java:288)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr:
|
at android.app.ActivityThread.main(ActivityThread.java:7930)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: Exception occurred while executing 'delete':
|
at java.lang.reflect.Method.invoke(Native Method)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: java.lang.SecurityException: You either need MANAGE_USERS, CREATE_USERS, or QUERY_USERS permission to: query user
|
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.checkQueryOrCreateUsersPermission(UserManagerService.java:2854)
|
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.getUserInfo(UserManagerService.java:1428)
|
Caused by: android.app.StackTrace: Last startServiceCommon() call for this service was made here
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getUserInfo(UserController.java:2599)
|
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1915)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getCurrentUser(UserController.java:2539)
|
at android.app.ContextImpl.startForegroundService(ContextImpl.java:1870)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.ActivityManagerService.getCurrentUser(ActivityManagerService.java:16355)
|
at android.content.ContextWrapper.startForegroundService(ContextWrapper.java:822)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService$MyShellCommand.onCommand(SettingsService.java:263)
|
at android.content.ContextWrapper.startForegroundService(ContextWrapper.java:822)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
|
at com.example.studyapp.MainActivity.handleVpnPermissionResult(MainActivity.java:241)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at android.os.ShellCommand.exec(ShellCommand.java:38)
|
at com.example.studyapp.MainActivity.onActivityResult(MainActivity.java:175)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService.onShellCommand(SettingsService.java:55)
|
at com.example.studyapp.MainActivity.startProxyServer(MainActivity.java:143)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.shellCommand(Binder.java:1049)
|
at com.example.studyapp.MainActivity.startProxyVpn(MainActivity.java:127)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.onTransact(Binder.java:877)
|
at com.example.studyapp.MainActivity.lambda$onCreate$1$com-example-studyapp-MainActivity(MainActivity.java:86)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransactInternal(Binder.java:1285)
|
at com.example.studyapp.MainActivity$$ExternalSyntheticLambda5.onClick(D8$$SyntheticClass:0)
|
||||||
2025-05-30 10:44:11.461 47349-48468 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransact(Binder.java:1244)
|
at android.view.View.performClick(View.java:7542)
|
||||||
2025-05-30 10:44:11.464 47349-47349 ShellUtils com.example.studyapp D Executing command: cmd settings2 delete global pm_list_libraries
|
at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1218)
|
||||||
2025-05-30 10:44:11.475 47349-48474 ShellUtils com.example.studyapp E Stderr:
|
at android.view.View.performClickInternal(View.java:7519)
|
||||||
2025-05-30 10:44:11.483 47349-48474 ShellUtils com.example.studyapp E Stderr: Exception occurred while executing 'delete':
|
at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
|
||||||
2025-05-30 10:44:11.483 47349-48474 ShellUtils com.example.studyapp E Stderr: java.lang.SecurityException: You either need MANAGE_USERS, CREATE_USERS, or QUERY_USERS permission to: query user
|
at android.view.View$PerformClick.run(View.java:29476)
|
||||||
2025-05-30 10:44:11.483 47349-48474 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.checkQueryOrCreateUsersPermission(UserManagerService.java:2854)
|
at android.os.Handler.handleCallback(Handler.java:942)
|
||||||
2025-05-30 10:44:11.483 47349-48474 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.getUserInfo(UserManagerService.java:1428)
|
at android.os.Handler.dispatchMessage(Handler.java:99)
|
||||||
2025-05-30 10:44:11.483 47349-48474 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getUserInfo(UserController.java:2599)
|
at android.os.Looper.loopOnce(Looper.java:201)
|
||||||
2025-05-30 10:44:11.483 47349-48474 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getCurrentUser(UserController.java:2539)
|
at android.os.Looper.loop(Looper.java:288)
|
||||||
2025-05-30 10:44:11.483 47349-48474 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.ActivityManagerService.getCurrentUser(ActivityManagerService.java:16355)
|
at android.app.ActivityThread.main(ActivityThread.java:7930)
|
||||||
2025-05-30 10:44:11.483 47349-48474 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService$MyShellCommand.onCommand(SettingsService.java:263)
|
at java.lang.reflect.Method.invoke(Native Method)
|
||||||
2025-05-30 10:44:11.483 47349-48474 ShellUtils com.example.studyapp E Stderr: at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
|
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
|
||||||
2025-05-30 10:44:11.483 47349-48474 ShellUtils com.example.studyapp E Stderr: at android.os.ShellCommand.exec(ShellCommand.java:38)
|
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
|
||||||
2025-05-30 10:44:11.483 47349-48474 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService.onShellCommand(SettingsService.java:55)
|
2025-05-30 11:18:50.973 300-4987 ActivityTaskManager system_server W Force finishing activity com.example.studyapp/.MainActivity
|
||||||
2025-05-30 10:44:11.484 47349-48474 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.shellCommand(Binder.java:1049)
|
2025-05-30 11:18:50.986 54389-54389 Process com.example.studyapp I Sending signal. PID: 54389 SIG: 9
|
||||||
2025-05-30 10:44:11.484 47349-48474 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.onTransact(Binder.java:877)
|
2025-05-30 11:18:51.022 300-10818 ActivityManager system_server I app.info.packageName:com.example.studyapp app.setKilled(true)
|
||||||
2025-05-30 10:44:11.484 47349-48474 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransactInternal(Binder.java:1285)
|
2025-05-30 11:18:51.022 300-10818 ActivityManager system_server I Process com.example.studyapp (pid 54389) has died: fg TOP
|
||||||
2025-05-30 10:44:11.484 47349-48474 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransact(Binder.java:1244)
|
2025-05-30 11:18:51.022 300-986 WindowManager system_server I WIN DEATH: Window{ce188c0 u0 com.example.studyapp/com.example.studyapp.MainActivity}
|
||||||
2025-05-30 10:44:11.488 47349-47349 ShellUtils com.example.studyapp D Executing command: cmd settings2 delete global anticheck_pkgs
|
2025-05-30 11:18:51.022 300-986 InputManager-JNI system_server W Input channel object 'ce188c0 com.example.studyapp/com.example.studyapp.MainActivity (client)' was disposed without first being removed with the input manager!
|
||||||
2025-05-30 10:44:11.505 47349-48480 ShellUtils com.example.studyapp E Stderr:
|
2025-05-30 11:18:51.054 300-319 WindowManager system_server W Failed to deliver inset state change to w=Window{ce188c0 u0 com.example.studyapp/com.example.studyapp.MainActivity EXITING} (Ask Gemini)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: Exception occurred while executing 'delete':
|
android.os.DeadObjectException
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: java.lang.SecurityException: You either need MANAGE_USERS, CREATE_USERS, or QUERY_USERS permission to: query user
|
at android.os.BinderProxy.transactNative(Native Method)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.checkQueryOrCreateUsersPermission(UserManagerService.java:2854)
|
at android.os.BinderProxy.transact(BinderProxy.java:584)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.getUserInfo(UserManagerService.java:1428)
|
at android.view.IWindow$Stub$Proxy.insetsControlChanged(IWindow.java:473)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getUserInfo(UserController.java:2599)
|
at com.android.server.wm.WindowState.notifyInsetsControlChanged(WindowState.java:4015)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getCurrentUser(UserController.java:2539)
|
at com.android.server.wm.InsetsStateController.lambda$notifyPendingInsetsControlChanged$4$com-android-server-wm-InsetsStateController(InsetsStateController.java:351)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.ActivityManagerService.getCurrentUser(ActivityManagerService.java:16355)
|
at com.android.server.wm.InsetsStateController$$ExternalSyntheticLambda2.run(Unknown Source:2)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService$MyShellCommand.onCommand(SettingsService.java:263)
|
at com.android.server.wm.WindowAnimator.executeAfterPrepareSurfacesRunnables(WindowAnimator.java:345)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
|
at com.android.server.wm.RootWindowContainer.performSurfacePlacementNoTrace(RootWindowContainer.java:832)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at android.os.ShellCommand.exec(ShellCommand.java:38)
|
at com.android.server.wm.RootWindowContainer.performSurfacePlacement(RootWindowContainer.java:777)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService.onShellCommand(SettingsService.java:55)
|
at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:177)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.shellCommand(Binder.java:1049)
|
at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:126)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.onTransact(Binder.java:877)
|
at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:115)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransactInternal(Binder.java:1285)
|
at com.android.server.wm.WindowSurfacePlacer$Traverser.run(WindowSurfacePlacer.java:57)
|
||||||
2025-05-30 10:44:11.506 47349-48480 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransact(Binder.java:1244)
|
at android.os.Handler.handleCallback(Handler.java:942)
|
||||||
2025-05-30 10:44:11.509 47349-47349 ShellUtils com.example.studyapp D Executing command: cmd settings2 delete global com.example.studyapp_android_id
|
at android.os.Handler.dispatchMessage(Handler.java:99)
|
||||||
2025-05-30 10:44:11.520 47349-48486 ShellUtils com.example.studyapp E Stderr:
|
at android.os.Looper.loopOnce(Looper.java:201)
|
||||||
2025-05-30 10:44:11.520 47349-48486 ShellUtils com.example.studyapp E Stderr: Exception occurred while executing 'delete':
|
at android.os.Looper.loop(Looper.java:288)
|
||||||
2025-05-30 10:44:11.520 47349-48486 ShellUtils com.example.studyapp E Stderr: java.lang.SecurityException: You either need MANAGE_USERS, CREATE_USERS, or QUERY_USERS permission to: query user
|
at android.os.HandlerThread.run(HandlerThread.java:67)
|
||||||
2025-05-30 10:44:11.520 47349-48486 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.checkQueryOrCreateUsersPermission(UserManagerService.java:2854)
|
at com.android.server.ServiceThread.run(ServiceThread.java:44)
|
||||||
2025-05-30 10:44:11.520 47349-48486 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.getUserInfo(UserManagerService.java:1428)
|
2025-05-30 11:18:51.054 300-319 WindowManager system_server W Exception thrown during dispatchAppVisibility Window{ce188c0 u0 com.example.studyapp/com.example.studyapp.MainActivity EXITING} (Ask Gemini)
|
||||||
2025-05-30 10:44:11.521 47349-48486 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getUserInfo(UserController.java:2599)
|
android.os.DeadObjectException
|
||||||
2025-05-30 10:44:11.521 47349-48486 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getCurrentUser(UserController.java:2539)
|
at android.os.BinderProxy.transactNative(Native Method)
|
||||||
2025-05-30 10:44:11.521 47349-48486 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.ActivityManagerService.getCurrentUser(ActivityManagerService.java:16355)
|
at android.os.BinderProxy.transact(BinderProxy.java:584)
|
||||||
2025-05-30 10:44:11.521 47349-48486 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService$MyShellCommand.onCommand(SettingsService.java:263)
|
at android.view.IWindow$Stub$Proxy.dispatchAppVisibility(IWindow.java:536)
|
||||||
2025-05-30 10:44:11.521 47349-48486 ShellUtils com.example.studyapp E Stderr: at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
|
at com.android.server.wm.WindowState.sendAppVisibilityToClients(WindowState.java:3478)
|
||||||
2025-05-30 10:44:11.521 47349-48486 ShellUtils com.example.studyapp E Stderr: at android.os.ShellCommand.exec(ShellCommand.java:38)
|
at com.android.server.wm.WindowContainer.sendAppVisibilityToClients(WindowContainer.java:1234)
|
||||||
2025-05-30 10:44:11.521 47349-48486 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService.onShellCommand(SettingsService.java:55)
|
at com.android.server.wm.WindowToken.setClientVisible(WindowToken.java:392)
|
||||||
2025-05-30 10:44:11.521 47349-48486 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.shellCommand(Binder.java:1049)
|
at com.android.server.wm.ActivityRecord.setClientVisible(ActivityRecord.java:6865)
|
||||||
2025-05-30 10:44:11.521 47349-48486 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.onTransact(Binder.java:877)
|
at com.android.server.wm.ActivityRecord.onAnimationFinished(ActivityRecord.java:7687)
|
||||||
2025-05-30 10:44:11.521 47349-48486 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransactInternal(Binder.java:1285)
|
at com.android.server.wm.ActivityRecord.postApplyAnimation(ActivityRecord.java:5512)
|
||||||
2025-05-30 10:44:11.521 47349-48486 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransact(Binder.java:1244)
|
at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5472)
|
||||||
2025-05-30 10:44:11.527 47349-47349 ShellUtils com.example.studyapp D Executing command: cmd settings2 delete global com.example.studyapp_adb_enabled
|
at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5476)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr:
|
at com.android.server.wm.AppTransitionController.handleClosingApps(AppTransitionController.java:1194)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: Exception occurred while executing 'delete':
|
at com.android.server.wm.AppTransitionController.handleAppTransitionReady(AppTransitionController.java:304)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: java.lang.SecurityException: You either need MANAGE_USERS, CREATE_USERS, or QUERY_USERS permission to: query user
|
at com.android.server.wm.RootWindowContainer.checkAppTransitionReady(RootWindowContainer.java:970)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.checkQueryOrCreateUsersPermission(UserManagerService.java:2854)
|
at com.android.server.wm.RootWindowContainer.performSurfacePlacementNoTrace(RootWindowContainer.java:834)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.getUserInfo(UserManagerService.java:1428)
|
at com.android.server.wm.RootWindowContainer.performSurfacePlacement(RootWindowContainer.java:777)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getUserInfo(UserController.java:2599)
|
at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:177)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getCurrentUser(UserController.java:2539)
|
at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:126)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.ActivityManagerService.getCurrentUser(ActivityManagerService.java:16355)
|
at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:115)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService$MyShellCommand.onCommand(SettingsService.java:263)
|
at com.android.server.wm.WindowSurfacePlacer$Traverser.run(WindowSurfacePlacer.java:57)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
|
at android.os.Handler.handleCallback(Handler.java:942)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at android.os.ShellCommand.exec(ShellCommand.java:38)
|
at android.os.Handler.dispatchMessage(Handler.java:99)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService.onShellCommand(SettingsService.java:55)
|
at android.os.Looper.loopOnce(Looper.java:201)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.shellCommand(Binder.java:1049)
|
at android.os.Looper.loop(Looper.java:288)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.onTransact(Binder.java:877)
|
at android.os.HandlerThread.run(HandlerThread.java:67)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransactInternal(Binder.java:1285)
|
at com.android.server.ServiceThread.run(ServiceThread.java:44)
|
||||||
2025-05-30 10:44:11.538 47349-48492 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransact(Binder.java:1244)
|
2025-05-30 11:18:51.473 300-318 ActivityTaskManager system_server W Activity top resumed state loss timeout for ActivityRecord{86432f9 u0 com.example.studyapp/.MainActivity} t-1 f}}
|
||||||
2025-05-30 10:44:11.542 47349-47349 ShellUtils com.example.studyapp D Executing command: cmd settings2 delete global com.example.studyapp_development_settings_enabled
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr:
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: Exception occurred while executing 'delete':
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: java.lang.SecurityException: You either need MANAGE_USERS, CREATE_USERS, or QUERY_USERS permission to: query user
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.checkQueryOrCreateUsersPermission(UserManagerService.java:2854)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at com.android.server.pm.UserManagerService.getUserInfo(UserManagerService.java:1428)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getUserInfo(UserController.java:2599)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.UserController.getCurrentUser(UserController.java:2539)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at com.android.server.am.ActivityManagerService.getCurrentUser(ActivityManagerService.java:16355)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService$MyShellCommand.onCommand(SettingsService.java:263)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at android.os.ShellCommand.exec(ShellCommand.java:38)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at com.android.providers.settings2.SettingsService.onShellCommand(SettingsService.java:55)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.shellCommand(Binder.java:1049)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.onTransact(Binder.java:877)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransactInternal(Binder.java:1285)
|
|
||||||
2025-05-30 10:44:11.552 47349-48498 ShellUtils com.example.studyapp E Stderr: at android.os.Binder.execTransact(Binder.java:1244)
|
|
||||||
2025-05-30 10:44:11.559 47349-47349 ShellUtils com.example.studyapp E Unsafe command, aborting.
|
|
||||||
2025-05-30 10:44:11.559 47349-47349 ShellUtils com.example.studyapp E Unsafe command, aborting.
|
|
||||||
2025-05-30 10:44:11.559 47349-47349 ShellUtils com.example.studyapp E Unsafe command, aborting.
|
|
||||||
2025-05-30 10:44:11.559 47349-47349 ShellUtils com.example.studyapp E Unsafe command, aborting.
|
|
||||||
2025-05-30 10:44:11.559 47349-47349 ShellUtils com.example.studyapp E Unsafe command, aborting.
|
|
||||||
2025-05-30 10:44:11.559 47349-47349 ShellUtils com.example.studyapp E Unsafe command, aborting.
|
|
||||||
2025-05-30 10:44:11.561 47349-47349 ShellUtils com.example.studyapp D Executing command: setprop ro.product.brand Vortex
|
|
||||||
2025-05-30 10:44:11.577 47349-47349 ShellUtils com.example.studyapp D Executing command: setprop ro.product.model HD65_Select
|
|
||||||
2025-05-30 10:44:11.596 47349-47349 ShellUtils com.example.studyapp D Executing command: setprop ro.product.manufacturer Vortex
|
|
||||||
2025-05-30 10:44:11.607 47349-47349 ShellUtils com.example.studyapp D Executing command: setprop ro.product.device HD65_Select
|
|
||||||
2025-05-30 10:44:11.618 47349-47349 ShellUtils com.example.studyapp D Executing command: setprop ro.product.name HD65_Select
|
|
||||||
2025-05-30 10:44:11.629 47349-47349 ShellUtils com.example.studyapp D Executing command: setprop ro.build.version.incremental 20240306
|
|
||||||
2025-05-30 10:44:11.639 47349-47349 ShellUtils com.example.studyapp E Unsafe command, aborting.
|
|
||||||
2025-05-30 10:44:11.641 47349-47349 ShellUtils com.example.studyapp D Executing command: setprop ro.board.platform sm8150p
|
|
||||||
2025-05-30 10:44:18.021 1922-2017 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=47349, user=u0_a108, name=Script helper, pkg=com.example.studyapp, res=213, time=2, total=5555, ts=1748573057819, pr=10, ni=-10, virt=14336, shr=122, s=S, cpu=0.0, mem=6.4, args=com.example.studyapp), MemEntity(id=null, pid=44048, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=134, time=1, total=5555, ts=1748573057819, pr=20, ni=0, virt=15360, shr=84, s=S, cpu=4.0, mem=4.0, args=org.autojs.autojs6)]
|
|
||||||
2025-05-30 10:44:19.046 47349-48504 OpenGLRenderer com.example.studyapp I Davey! duration=9184238016ms; Flags=0, FrameTimelineVsyncId=170027, IntendedVsync=62511622785102, Vsync=62511622785102, InputEventId=-800809781, HandleInputStart=62511623260371, AnimationStart=62511627975819, PerformTraversalsStart=62511628155764, DrawStart=62511628386455, FrameDeadline=9246742866199745, FrameInterval=62511623238789, FrameStartTime=16666666, SyncQueued=62511634800612, SyncStart=62511634851650, IssueDrawCommandsStart=62511634937977, SwapBuffers=62511636183011, FrameCompleted=9246749639371862, DequeueBufferDuration=19541, QueueBufferDuration=437760, GpuCompleted=9246749639371862, SwapBuffersCompleted=62511637142525, DisplayPresentTime=-1, CommandSubmissionCompleted=62511636183011,
|
|
||||||
2025-05-30 10:44:19.286 47349-47377 OpenGLRenderer com.example.studyapp I Davey! duration=9184238008ms; Flags=0, FrameTimelineVsyncId=170126, IntendedVsync=62511865084340, Vsync=62511865084340, InputEventId=-1040841467, HandleInputStart=62511865544853, AnimationStart=62511867959969, PerformTraversalsStart=62511868050379, DrawStart=62511868182202, FrameDeadline=9246749788748896, FrameInterval=62511865534937, FrameStartTime=16666667, SyncQueued=62511871580746, SyncStart=62511871616910, IssueDrawCommandsStart=62511871679030, SwapBuffers=62511872675583, FrameCompleted=9246749873903701, DequeueBufferDuration=14874, QueueBufferDuration=205902, GpuCompleted=9246749873903701, SwapBuffersCompleted=62511873285705, DisplayPresentTime=-1, CommandSubmissionCompleted=62511872675583,
|
|
||||||
2025-05-30 10:44:28.771 1922-2017 MemInfoService com.android.expansiontools D memScan: [MemEntity(id=null, pid=47349, user=u0_a108, name=Script helper, pkg=com.example.studyapp, res=213, time=3, total=5559, ts=1748573068370, pr=10, ni=-10, virt=14336, shr=122, s=S, cpu=0.0, mem=6.4, args=com.example.studyapp), MemEntity(id=null, pid=44048, user=u0_a100, name=AutoJs6, pkg=org.autojs.autojs6, res=134, time=1, total=5559, ts=1748573068370, pr=20, ni=0, virt=15360, shr=84, s=S, cpu=0.0, mem=4.0, args=org.autojs.autojs6)]
|
|
||||||
|
|
Loading…
Reference in New Issue