通过流程我的意思是我们在android:process
提供的内容,而我的意思是包含在
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.osg.appkiller"
android:versionCode="1"
android:versionName="1.0" >
更多详情Processes and Threads - Android Developer
我想获取所有正在运行的应用程序的应用程序名称。所以这就是我在查看各种来源后所做的事情(并且有效)。
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是进程运行的名称。所以我们基本上使用进程名称作为包名来获取应用程序信息。
答案 0 :(得分:10)
默认情况下,android将包名称作为进程名称。但是,如果在清单文件android:process="com.example.newprocessname"
中的应用程序标记中定义流程属性,则应用程序将使用此名称运行&#34; com.example.newprocessname&#34;。
至于你的问题,
1→在这种情况下,您的应用程序名称与默认包名称相同,这就是它的工作原理。尝试更改进程名称。它不起作用。
2→这是真的。它是默认的。请参阅&#34; android:process&#34;在以下链接中:https://developer.android.com/guide/topics/manifest/application-element.html
希望这能回答你的问题!