2014-12-19 9 views
8

प्रक्रिया से मेरा मतलब है कि हम क्या 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 प्रक्रिया चल के नाम है। इसलिए हम आवेदन जानकारी प्राप्त करने के लिए मूल रूप से प्रक्रिया नाम का उपयोग पैकेज नाम के रूप में कर रहे हैं।

  1. सबसे पहले यह दृष्टिकोण सही है?
  2. दूसरा यह सच है कि यदि हम गतिविधियों/सेवाओं आदि के लिए प्रक्रिया प्रदान नहीं करते हैं तो नई प्रक्रिया पैकेज नाम के समान नाम के साथ बनाई गई है?

उत्तर

9

डिफ़ॉल्ट Android के द्वारा प्रक्रिया नाम के रूप में पैकेज का नाम लेता है। लेकिन यदि आप मैनिफेस्ट फ़ाइल android:process="com.example.newprocessname" में एप्लिकेशन टैग में प्रोसेस प्रॉपर्टी को परिभाषित करते हैं तो एप्लिकेशन इस नाम "com.example.newprocessname" के साथ चलाएगा।

अपने प्रश्नों के लिए के रूप में,

  • 1-> इस मामले में अपने आवेदन नाम डिफ़ॉल्ट पैकेज नाम के समान है, यही कारण है कि यह काम कर रहा है। प्रक्रिया नाम बदलने का प्रयास करें। यह काम नहीं करेगा।

  • 2-> यही सच है। यह डिफ़ॉल्ट रूप से है। नीचे दिए गए लिंक में: का संदर्भ लें "प्रक्रिया एंड्रॉयड": https://developer.android.com/guide/topics/manifest/application-element.html

आशा यह आपके सवाल का जवाब!

संबंधित मुद्दे