0

每当我们启动任何 Activity 时,我们都会获得有关 uid、gid 等的信息,如下所示:

I/ActivityManager( 1986): Start proc app.processName for activity hostingNameStr: pid=3641 uid=10109 gids={3003, 1007}

现在使用 PackageManager,我们可以得到 packageName、uid 和 pid,如下所示:

List<ApplicationInfo> packages = pm
                .getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo packageInfo : packages) {
    Log.d("ME", "packageInfo is  :" + packageInfo);
    Log.d("ME", "Installed package :" + packageInfo.packageName);
    Log.d("ME", "Package process for " + packageInfo.packageName+"-->" + packageInfo.processName);
    Log.d("ME", "Package uid for " + packageInfo.packageName+"-->"+packageInfo.uid);
}

但是在这里,我无法获得 gid,所以想知道像这样获得 gid 是否可能。

4

1 回答 1

1

尝试查看Process类提供的方法。例如,在你的情况下getGidForName(String name)。它返回 int 值,GID,但我不知道如何选择所有 gid 的列表。

编辑: 我对 applicationInfo 有点困惑。您可以使用PackageManager 的方法 getPackageGids(String packageName) 或者您可以获取所有 PackageInfo 然后读取该gids字段的值。

于 2012-07-24T11:54:12.223 回答