每当我们启动任何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是否有可能。
答案 0 :(得分:1)
尝试查看Process
类提供的方法。例如,在您的情况下getGidForName(String name)
。它返回int值,GID,但我不知道如何选择所有gid的列表。
修改强>
我对applicationInfo有点困惑。您可以使用PackageManager's方法getPackageGids(String packageName),也可以获取所有PackageInfo,然后读取gids
字段的值。