ActivityManager PackageManager

  1.  ActivityManager.RunningAppProcessInfo類  封裝了正在運行的進程信息(一個進程裏能夠運行一個或多個應用程序)

  2.  private ActivityManager mActivityManager;
     private PackageManager pm;
  3. public void showPross(){
      mActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
      ActivityManager.MemoryInfo info = new ActivityManager.MemoryInfo();
      mActivityManager.getMemoryInfo(info);  
      Log.v("Bob","系統剩餘內存:"+(info.availMem >> 20)+"m");//byte爲單位
      Log.v("Bob","系統是否處於低內存運行:"+info.lowMemory);
      Log.v("Bob","當系統剩餘內存低於"+(info.threshold >> 20)+"m時就當作低內存運行");
      List<RunningAppProcessInfo> list =  mActivityManager.getRunningAppProcesses();
      for(RunningAppProcessInfo item : list){
       Log.v("Bob","進程ID"+item.pid);
       Log.v("Bob","用戶ID"+item.uid);
       Log.v("Bob","進程名"+item.processName);
       Log.v("Bob","進程ID"+item.pid);
       String[] pkgList = item.pkgList;
       for(int i = 0; i < pkgList.length;i++)
        Log.v("Bob","包名"+pkgList[i]);
       
       int[] myMempid = new int[] { item.pid };
       Debug.MemoryInfo[] memoryInfo = mActivityManager.getProcessMemoryInfo(myMempid);
       int memSize = memoryInfo[0].dalvikPrivateDirty;//kb爲單位
       Log.v("Bob","進程佔用內存"+memSize);
      }
     }
  4.  public void killPross(String name){//當此線程對應的程序開啓了service 線程會重啓。
      //權限<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
        mActivityManager.killBackgroundProcesses(name);
     }
  5.  public void showPackage(){
      pm = this.getPackageManager();
      List<ApplicationInfo> listAppcations = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
      Collections.sort(listAppcations,new ApplicationInfo.DisplayNameComparator(pm));// 排序
      
      for (ApplicationInfo app : listAppcations){
       
       Log.v("Bob","包名"+app.packageName);
      }
     }
相關文章
相關標籤/搜索