2014-12-19 5 views
8

По процессу я имею в виду, что мы предлагаем в android:process и пакете я имею в виду пакета вИмя процесса совпадает с именем пакета в android?

<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 это имя процесса бега. Поэтому мы в основном используем имя процесса в качестве имени пакета для получения информации о приложении.

  1. В первую очередь, этот подход правильный?
  2. Во-вторых, верно ли, что если мы не предоставляем процесс для деятельности/услуг и т. Д., Новый процесс создается с тем же именем, что и имя пакета?

ответ

9

По умолчанию андроид принимает имя пакета как имя процесса. Но если вы определяете свойство процесса в теге приложения в файле манифеста android:process="com.example.newprocessname", то приложение будет запускаться с этим именем «com.example.newprocessname».

Что касается ваших вопросов,

  • 1-> В этом случае имя вашего приложения совпадает с именем пакета по умолчанию, поэтому он работает. Попробуйте изменить имя процесса. Это не сработает.

  • 2-> Это правда. Это по умолчанию. Обратитесь к «андроиду: процесс» в следующей ссылке: https://developer.android.com/guide/topics/manifest/application-element.html

Надеется, что это ответ на ваш вопрос!

 Смежные вопросы

  • Нет связанных вопросов^_^