2014-12-19 10 views
8

Poprzez proces Znaczy co oferujemy w android:process oraz pakietu Znaczy pakiet wCzy nazwa procesu jest taka sama, jak nazwa pakietu w systemie Android?

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

Więcej szczegółów Processes and Threads - Android Developer

chciałem dostać nazwy stosowania wszystkich uruchomionych aplikacji. Tak właśnie zrobiłem po przeanalizowaniu różnych źródeł (i to działa).

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

Jeśli widzisz Dokumentacja dla PackageManager.getApplicationInfo

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

ale ja przechodząc

processInfo.processName 

gdzie ProcessName jest nazwa biegu procesowego. Więc w zasadzie używamy nazwy procesu jako nazwy pakietu, aby uzyskać informacje o aplikacji.

  1. Po pierwsze czy to podejście jest prawidłowe?
  2. Po drugie, czy prawdą jest, że jeśli nie zapewniamy procesu dla działań/usług itp. Tworzony jest nowy proces o takiej samej nazwie jak nazwa pakietu?

Odpowiedz

9

Domyślnie android przyjmuje nazwę pakietu jako nazwę procesu. Ale jeśli zdefiniujesz właściwość procesu w znaczniku aplikacji w pliku manifestu android:process="com.example.newprocessname", aplikacja uruchomi się z tą nazwą "com.example.newprocessname".

Co do pytania,

Mam nadzieję, że to odpowiada na twoje pytanie!

Powiązane problemy