c# - 我可以使用 Xamarin 应用程序监控 Android 设备上所有打开的应用程序吗?
问题描述
我可以使用 Xamarin 应用程序来监控 Android 设备上打开的所有应用程序吗?我四处搜索,发现如何打开应用程序,但不知道如何查看已打开的应用程序。此外,是否有等效于 Windows System.Diagnostics 性能计数器类?
解决方案
1.您可以使用以下代码获取正在运行的应用程序进程。
ActivityManager activityManager = GetSystemService(Context.ActivityService) as ActivityManager;
ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
activityManager.GetMemoryInfo(memoryInfo);
List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = activityManager.RunningAppProcesses as List<ActivityManager.RunningAppProcessInfo>;
然后,您可以遍历调用的列表runningAppProcesses
,并在需要时询问进程信息类以获取其他信息,这些信息可以在此处找到。
这里有几个例子:
- ProcessName - 此对象关联的进程的名称。
- Pid - 此进程的 pid;如果没有,则为 0。
- Uid - 此进程的用户 ID。
2.有关信息PerformanceCounter
,您可以查看:https ://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.performancecounter?view=netframework-4.8
推荐阅读
- c# - 基于 Unity 容器中的特定类型解析对象的问题
- javascript - 与使用 csrf 令牌的锚标记一起使用时,javascript:history.go(-1) 缺少超链接功能
- sass - Scss 主题依赖于带有预定义变量的主体类
- angular - 如何在 ngbootstrap 日期范围选择器 Angular 2 中获取选定日期的数量
- java - 带有 docx4j 的 HTML/CSS 形状
- pandas - 在保持样本特征的同时增加样本量
- c++ - 无法使用 FreeRTOS+FAT 读取大于 2Kb 的文件
- c# - Shader.Find("Standart") 返回 null
- android - android studio 没有链接到缺少的资源
- arrays - mongodb 查询数组中的数组 数组中的数组