2014-12-19 19 views
8

Con processo Voglio dire, che mettiamo a disposizione in android:process e dal pacchetto intendo pacchetto nellaIl nome del processo è uguale al nome del pacchetto in Android?

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.osg.appkiller" 
    android:versionCode="1" 
    android:versionName="1.0" > 

Maggiori dettagli Processes and Threads - Android Developer

ho voluto ottenere i nomi delle applicazioni di tutte le applicazioni in esecuzione. Quindi questo è quello che ho fatto dopo aver guardato varie fonti (e funziona).

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); 
     } 
    } 

Se vedi Documentazione per PackageManager.getApplicationInfo

ApplicationInfo android.content.pm.PackageManager.getApplicationInfo(String packageName, int flags) throws NameNotFoundException 

ma sto passando

processInfo.processName 

dove processName è il nome del processo in esecuzione. Quindi stiamo fondamentalmente usando il nome del processo come nome del pacchetto per ottenere informazioni sull'applicazione.

  1. Prima di tutto questo approccio è corretto?
  2. In secondo luogo è vero che se non forniamo il processo per attività/servizi, ecc. Viene creato un nuovo processo con lo stesso nome del nome del pacchetto?

risposta

9

Per impostazione predefinita Android assume il nome del pacchetto come nome del processo. Ma se si definisce la proprietà del processo nel tag dell'applicazione nel file manifest android:process="com.example.newprocessname", l'applicazione verrà eseguita con questo nome "com.example.newprocessname".

Per quanto riguarda le vostre domande,

Spero che questo risponde alla tua domanda!