gpt4 book ai didi

Android:如何获取前台应用程序的进程ID

转载 作者:行者123 更新时间:2023-12-03 09:42:54 25 4
gpt4 key购买 nike

首先,请注意,这个问题与我在 SO 上找到的所有“android 前台应用程序”问题不同,请继续阅读 :-)
我正在尝试使用 golang 编写一个供我自己使用的 android 应用程序,而不使用 android-sdk 或 ndk(这是关键点)。这很简单,只需使用 golang 编写一个 http 服务,为 arm CPU 编译它,瞧我的应用程序正在运行,只需访问 http://localhost 即可访问。
为了我的应用程序的目的,我需要知道当前正在运行的前台应用程序,以精确定义它:

  • 前台应用程序是占据屏幕的应用程序,或者具有“Activity ”的应用程序(请原谅我不是 Android 开发人员)。
  • 前台应用程序所依赖的任何东西(例如服务)都不是我感兴趣的。
  • 如果手机被锁定/屏幕关闭,我希望解决方案告诉我没有前台应用程序。

  • 而且由于我不使用任何 android,只是将手机视为 LINUX 机器,我希望解决方案使用 native LINUX 方式,例如通过检查/proc,或调用任何已安装的 android 命令行工具(包括通过这些命令行工具发送消息),但 不是 使用任何 SDK/NDK 方式,因此我必须使用 java 或将这些东西合并到我的应用程序中。

    最佳答案

    从 Android SDK 26 开始(如果我没记错的话)应用程序在 -one-User-per-App 上执行,因此(即)WhatsApp 在 UID=30 上运行,Telegram 在 UID=76 上运行,因此执行“ps”的 ROOT 命令-A -o PID,USER,NAME"你可以解析输出然后杀死所有你不想被执行的进程。

    36119 u30_a149     <WhatsApp_packagename>
    36203 u76_a211 <Telegram_packagename>
    37399 root [kworker/1:2H]
    37423 u0_a329 su
    38069 root sh
    如果没有 Root 权限,您想要实现的任何事情都是不可能的,因为不可能拒绝执行应用程序或在没有 super 用户权限的情况下杀死它。

    关于Android:如何获取前台应用程序的进程ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47978632/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com