Подтвердить что ты не робот

Как программно извлекать все и выполнять размеры приложений, использование ЦП?

Я использую приложение Android для получения Все приложения и Запуск приложений и их размеры, использование и использование ЦП.

Но я получаю только все запущенные приложения Icon, Label и Packegename, которые не могут  извлекать размеры, использование и использование ЦП.

Я видел приложение в GooglePlayStore, которое AndroidSystem Info. В этом приложении представлена ​​вся информация о системе.

Я хочу получить эту информацию программно.

Кто-нибудь может помочь мне получить полную системную информацию.

спасибо заранее.................

Вот мой код:

Для получения всех приложений:

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
PackageManager pm = getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA);
ApplicationInfo entry = (ApplicationInfo) mListAppInfo.get(position);
ImageView ivAppIcon = (ImageView) v.findViewById(R.id.ivIcon);
TextView tvAppName = (TextView) v.findViewById(R.id.tvName);
TextView tvPkgName = (TextView) v.findViewById(R.id.tvPack);

// set data to display
ivAppIcon.setImageDrawable(entry.loadIcon(mPackManager));
tvAppName.setText(entry.loadLabel(mPackManager));
tvPkgName.setText(entry.packageName);

Для запуска приложений

ActivityManager activityManager = (ActivityManager)  getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runAppList = am.getRunningAppProcesses();
int listsize = runAppList.size();
Log.v("tag", "listsize..." + listsize);
4b9b3361

Ответ 1

Вы можете сделать это, используя IPackageStatsObserver.aidl. Создайте пакет android.content.pm в каталоге приложения src и выполните нижеприведенный код. Он вернет все размеры использования.

Method getPackageSizedInfo =pm.getClass().getMethod("getPackageSizeInfo",String.class,IPackageStatsObserver.class);

getPackageSizedInfo.invoke(pm, pkgname,new IPackageStatsObserver.Stub() {
@Override 
public void onGetStatsCompleted(PackageStats pStats, boolean succeeded)throws RemoteException {double size=(double)pStats.codeSize+pStats.cacheSize+pStats.dataSize;}
});