从任何Android应用程序获取GID

时间:2012-07-24 09:36:12

标签: android process

每当我们启动任何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是否有可能。

1 个答案:

答案 0 :(得分:1)

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

修改 我对applicationInfo有点困惑。您可以使用PackageManager's方法getPackageGids(String packageName),也可以获取所有PackageInfo,然后读取gids字段的值。