android - 如何在Android设备上获取已安装apk的子进程信息

标签 android subprocess adb

我们可以在AndroidManifest.xml 中为 Activity 或服务定义android:process,命名为子进程。 例如,我的包名称是 'com.test.main' 并且我定义了两个子流程:

android:process=":tool"
android:process=":bar"

我的问题是:

将apk文件安装到android设备后,我们如何获取所有这些子进程列表信息,例如com.test.main:toolcom.test.main:bar,通过 adb 或其他已安装的应用程序?

最佳答案

    String pkg = "com.google.android.gms";
    try {

        // Ref: https://developer.android.com/guide/components/processes-and-threads

        PackageInfo packageInfo = getPackageManager().getPackageInfo(pkg, PackageManager.GET_ACTIVITIES | PackageManager.GET_SERVICES | PackageManager.GET_RECEIVERS | PackageManager.GET_PROVIDERS);


        List<ComponentInfo> list = new ArrayList<>();

        if (packageInfo.activities != null) Collections.addAll(list, packageInfo.activities);
        if (packageInfo.services != null) Collections.addAll(list, packageInfo.services);
        if (packageInfo.receivers != null) Collections.addAll(list, packageInfo.receivers);
        if (packageInfo.providers != null) Collections.addAll(list, packageInfo.providers);

        for (ComponentInfo componentInfo : list) {

            Utils.log("componentInfo: " + componentInfo.processName);
        }

    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }

Log output

关于android - 如何在Android设备上获取已安装apk的子进程信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54456402/

相关文章:

java - 通过 Intent 卸载 Android 应用程序时崩溃

android - adb命令设置语音助手

php - 如何解析字符串以通过ADB发送短信

android - Bash ADB 使用变量调用应用程序

android - 加载图片显示加载进度

Android billing 空购买列表

android:在 XML 中使用颜色数组

python - 从子流程的子流程捕获输出

python3.6 - TypeError : write() argument must be str, 不是字节 - 但不涉及文件

python - 我无法在子进程中从 os.system 获得相同的结果