流程是指我们提供的android:process
产品,包装是指包装
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.osg.appkiller"
android:versionCode="1"
android:versionName="1.0" >
我想获取所有正在运行的应用程序的应用程序名称。所以这就是我在查看各种来源后所做的(并且它有效)。
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
PackageManager packageManager = getPackageManager();
final List<RunningAppProcessInfo> runningProcesses = activityManager.getRunningAppProcesses();
for(RunningAppProcessInfo processInfo : runningProcesses) {
CharSequence appName = null;
try {
appName = packageManager.getApplicationLabel(packageManager.getApplicationInfo(processInfo.processName, PackageManager.GET_META_DATA));
} catch (NameNotFoundException e) {
Log.e(TAG,"Application info not found for process : " + processInfo.processName,e);
}
}
如果您看到 PackageManager.getApplicationInfo 的文档
ApplicationInfo android.content.pm.PackageManager.getApplicationInfo(String packageName, int flags) throws NameNotFoundException
但我正在路过
processInfo.processName
其中 processName 是正在运行的进程的名称。所以我们基本上是使用进程名作为包名来获取应用程序信息。
- 首先,这种方法是否正确?
- 其次,如果我们不为活动/服务等提供流程,是否会创建与包名称相同的新流程?