如何获取在Android设备上安装的APK的子流程信息

问题描述 投票:1回答:1

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

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

我的问题是:

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

android subprocess adb
1个回答
0
投票
    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

© www.soinside.com 2019 - 2024. All rights reserved.