请修复一下安卓低版本上的removeTasksForPackage无效,内存占用不显示等问题
Closed this issue · 3 comments
- 如下所有通过github.tornaco.android.thanos.core.app.ActivityManager.getAndroidService()获取IActivityManager需要判断如果不满足安卓版本O以上应为ActivityManagerNative.getDefault();否则会导致在安卓7.0上task.removeTasksForPackage无效,主界面内存环形图百分百始终为0且进程界面内存为0,以及最近任务卡片模糊无效等问题。
public static void i0(int i) {
try {
github.tornaco.android.thanos.core.app.ActivityManager.getAndroidService().removeTask(i);
} catch (RemoteException e) {
lba.y("ActivityManager.getAndroidService().removeTask(taskId)", new Object[0], e);
}
}
thanox 5.2.5中的sp类,github.tornaco.android.thanos.core.app.ActivityManager$1类两个类中IActivityManager.Stub.asInterface(ServiceManager.getService("activity"));也要修改为ActivityManagerNative.getDefault();
-
在Android10及以上中mLruProcesses位于com.android.server.am.ProcessList;而Android9.0及以下中mLruProcesses位于
com.android.server.am.ActivityManagerService;所以thanox5.2.5的j8,a9两个类中需要判断是否满足安卓版本Q以上。
原有代码:
H=a9Var.H();
Object processListAsObject = XAMS.getProcessListAsObject(H);
if (processListAsObject == null) {
lba.v("isPackageRunningXOrNull processList is null.");
} else {
bool = Boolean.valueOf(XAMS.getLruProcessPackages(processListAsObject).contains(pkg2));
}
应该修改为:
Object processListAsObject = XAMS.getProcessListAsObject(H);
if (processListAsObject == null) {
pba.V("isPackageRunningXOrNull processList is null.");
} else {
if (OsUtils.isQOrAbove()) {
H = processListAsObject;
}
bool = Boolean.valueOf(XAMS.getLruProcessPackages(H).contains(pkg2));
} -
界面初始化时,app克隆【ic_nav_app_clone】应该加入版本判断OsUtils.isROrAbove.否则出现首次安装完毕xposed激活前出现app克隆功能,重启激活后该功能又消失的问题。问题代码在thanox5.2.5的cs6类中。
另外manifestPackageName【类名github.tornaco.android.thanos.core.pm.Package】是安卓O及以上才有的
@gameboyout 太棒了,我晚点改完试试,感谢!