android.content.pm.PackageStats Java Examples
The following examples show how to use
android.content.pm.PackageStats.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Installer.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
public void getAppSize(String uuid, String[] packageNames, int userId, int flags, int appId, long[] ceDataInodes, String[] codePaths, PackageStats stats) throws InstallerException { if (!checkBeforeRemote()) return; try { final long[] res = mInstalld.getAppSize(uuid, packageNames, userId, flags, appId, ceDataInodes, codePaths); stats.codeSize += res[0]; stats.dataSize += res[1]; stats.cacheSize += res[2]; stats.externalCodeSize += res[3]; stats.externalDataSize += res[4]; stats.externalCacheSize += res[5]; } catch (Exception e) { throw InstallerException.from(e); } }
Example #2
Source File: DiskStatsLoggingService.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
public void run() { FileCollector.MeasurementResult mainCategories; try { mainCategories = FileCollector.getMeasurementResult(mContext); } catch (IllegalStateException e) { // This can occur if installd has an issue. Log.e(TAG, "Error while measuring storage", e); finishJob(true); return; } FileCollector.MeasurementResult downloads = FileCollector.getMeasurementResult(mDownloadsDirectory); boolean needsReschedule = true; List<PackageStats> stats = mCollector.getPackageStats(TIMEOUT_MILLIS); if (stats != null) { needsReschedule = false; logToFile(mainCategories, downloads, stats, mSystemSize); } else { Log.w(TAG, "Timed out while fetching package stats."); } finishJob(needsReschedule); }
Example #3
Source File: CleanCacheActivity.java From Bailan with Apache License 2.0 | 6 votes |
@Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { //获取缓存 long cache = pStats.cacheSize; if(cache>0){ try { CacheInfo cacheInfo = new CacheInfo(); PackageManager pm = getPackageManager(); //添加缓存信息到ui界面 //获取包名 cacheInfo.packname = pStats.packageName; PackageInfo packInfo = pm.getPackageInfo(cacheInfo.packname, 0); cacheInfo.cachesize = cache; cacheInfo.appname = packInfo.applicationInfo.loadLabel(pm).toString(); cacheInfo.icon = packInfo.applicationInfo.loadIcon(pm); Message msg = Message.obtain(); msg.obj = cacheInfo; handler.sendMessage(msg); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } }
Example #4
Source File: DiskStatsFileLogger.java From android_9.0.0_r45 with Apache License 2.0 | 6 votes |
/** * A given package may exist for multiple users with distinct sizes. This function filters * the packages that do not belong to user 0 out to ensure that we get good stats for a subset. * @return A mapping of package name to merged package stats. */ private ArrayMap<String, PackageStats> filterOnlyPrimaryUser() { ArrayMap<String, PackageStats> packageMap = new ArrayMap<>(); for (PackageStats stat : mPackageStats) { if (stat.userHandle != UserHandle.USER_SYSTEM) { continue; } PackageStats existingStats = packageMap.get(stat.packageName); if (existingStats != null) { existingStats.cacheSize += stat.cacheSize; existingStats.codeSize += stat.codeSize; existingStats.dataSize += stat.dataSize; existingStats.externalCacheSize += stat.externalCacheSize; existingStats.externalCodeSize += stat.externalCodeSize; existingStats.externalDataSize += stat.externalDataSize; } else { packageMap.put(stat.packageName, new PackageStats(stat)); } } return packageMap; }
Example #5
Source File: MainActivity.java From styT with Apache License 2.0 | 6 votes |
@Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { String packageName = pStats.packageName; long cacheSize = pStats.cacheSize; long codeSize = pStats.codeSize; long dataSize = pStats.dataSize; cacheS += cacheSize; // sb.delete(0, sb.length()); if (cacheSize > 0) { sb.append("") .append("") .append("") .append("") ; //Log.e("aaaa", sb.toString()); } }
Example #6
Source File: AppSizeUtil.java From AndroidGodEye with Apache License 2.0 | 6 votes |
/** * 获取应用大小8.0以下 */ @SuppressWarnings("JavaReflectionMemberAccess") private static void getAppSizeLowerO(Context context, @NonNull final OnGetSizeListener listener) { try { Method method = PackageManager.class.getMethod("getPackageSizeInfo", String.class, IPackageStatsObserver.class); // 调用 getPackageSizeInfo 方法,需要两个参数:1、需要检测的应用包名;2、回调 method.invoke(context.getPackageManager(), context.getPackageName(), new IPackageStatsObserver.Stub() { @Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) { AppSizeInfo ctAppSizeInfo = new AppSizeInfo(); ctAppSizeInfo.cacheSize = pStats.cacheSize; ctAppSizeInfo.dataSize = pStats.dataSize; ctAppSizeInfo.codeSize = pStats.codeSize; listener.onGetSize(ctAppSizeInfo); } }); } catch (Throwable e) { listener.onError(e); } }
Example #7
Source File: StorageActivity.java From AndroidDemo with MIT License | 6 votes |
@Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { sb.setLength(0); sb.append(pStats.packageName) .append("\ncode = ") .append(getUnit(pStats.codeSize)) .append(" ,data = ") .append(getUnit(pStats.dataSize)) .append(" ,cache = ") .append(getUnit(pStats.cacheSize)); Message msg = handler.obtainMessage(); msg.obj = sb.toString(); msg.sendToTarget(); }
Example #8
Source File: MainActivity.java From stynico with MIT License | 6 votes |
@Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { String packageName = pStats.packageName; long cacheSize = pStats.cacheSize; long codeSize = pStats.codeSize; long dataSize = pStats.dataSize; cacheS += cacheSize; // sb.delete(0, sb.length()); if (cacheSize > 0) { sb.append("") .append("") .append("") .append("") ; //Log.e("aaaa", sb.toString()); } }
Example #9
Source File: CleanCacheActivity.java From Bailan with Apache License 2.0 | 6 votes |
@Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { //获取缓存 long cache = pStats.cacheSize; if(cache>0){ try { CacheInfo cacheInfo = new CacheInfo(); PackageManager pm = getPackageManager(); //添加缓存信息到ui界面 //获取包名 cacheInfo.packname = pStats.packageName; PackageInfo packInfo = pm.getPackageInfo(cacheInfo.packname, 0); cacheInfo.cachesize = cache; cacheInfo.appname = packInfo.applicationInfo.loadLabel(pm).toString(); cacheInfo.icon = packInfo.applicationInfo.loadIcon(pm); Message msg = Message.obtain(); msg.obj = cacheInfo; handler.sendMessage(msg); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } }
Example #10
Source File: CleanerService.java From android-cache-cleaner with MIT License | 5 votes |
private long addPackage(List<AppsListItem> apps, PackageStats pStats, boolean succeeded) { long cacheSize = 0; if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { cacheSize += pStats.cacheSize; } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { cacheSize += pStats.externalCacheSize; } if (!succeeded || cacheSize <= 0) { return 0; } try { PackageManager packageManager = getPackageManager(); ApplicationInfo info = packageManager.getApplicationInfo(pStats.packageName, PackageManager.GET_META_DATA); apps.add(new AppsListItem(pStats.packageName, packageManager.getApplicationLabel(info).toString(), packageManager.getApplicationIcon(pStats.packageName), cacheSize)); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return cacheSize; }
Example #11
Source File: AppUtils.java From FlyWoo with Apache License 2.0 | 5 votes |
/** * 返回用户已安装应用列表 */ public static List<AppEntity> getAppList(Context context) { PackageManager pm = context.getPackageManager(); List<PackageInfo> packageInfos = pm.getInstalledPackages(0); List<AppEntity> appInfos = new ArrayList<AppEntity>(); for (PackageInfo packageInfo : packageInfos) { ApplicationInfo app = packageInfo.applicationInfo; if ((app.flags & ApplicationInfo.FLAG_SYSTEM) == 0) { // 非系统应用 File apkfile = new File(app.sourceDir); PackageStats stats = new PackageStats(packageInfo.packageName); AppEntity appInfo = new AppEntity(app.sourceDir); appInfo.setPackageName(packageInfo.packageName); appInfo.setVersionCode(packageInfo.versionCode); appInfo.setVersionName(packageInfo.versionName); appInfo.setUid(app.uid); appInfo.setIcon(app.loadIcon(pm)); appInfo.setAppName(app.loadLabel(pm).toString()); appInfo.setCacheSize(stats.cacheSize); appInfo.setDataSize(stats.dataSize); appInfos.add(appInfo); } } return appInfos; }
Example #12
Source File: AppManagerEngine.java From MobileGuard with MIT License | 5 votes |
/** * get app size by package name * @param context * @param packageName package name * @param listener it will be call when success to get size */ public static void getAppSize(Context context, String packageName, final AppSizeInfoListener listener) { // check argument if(null == listener) { throw new NullPointerException("listener can't be null"); } if(TextUtils.isEmpty(packageName)) { throw new IllegalArgumentException("packageName can't be empty"); } // get pm PackageManager pm = context.getPackageManager(); Method getPackageSizeInfo = null; try { // get method getPackageSizeInfo getPackageSizeInfo = pm.getClass().getMethod( "getPackageSizeInfo", String.class, IPackageStatsObserver.class); // call method getPackageSizeInfo.invoke(pm, packageName, new IPackageStatsObserver.Stub() { @Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { // call listener listener.onGetSizeInfoCompleted( new AppSizeInfo(pStats.cacheSize, pStats.dataSize, pStats.codeSize)); } }); } catch (Exception e) { e.printStackTrace(); } }
Example #13
Source File: SysCacheScanTask.java From FileManager with Apache License 2.0 | 5 votes |
@Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { mScanCount++; if (succeeded && pStats != null) { JunkInfo info = new JunkInfo(); info.setPackageName(pStats.packageName) .setName(pStats.packageName) .setSize(pStats.cacheSize + pStats.externalCacheSize); if (info.getSize() > 0) { mSysCaches.add(info); mTotalSize += info.getSize(); } mCallBack.onProgress(info); } if (mScanCount == mTotalCount) { JunkInfo junkInfo = new JunkInfo(); junkInfo.setName(App.sContext.getString(R.string.system_cache)) .setSize(mTotalSize) .setChildren(mSysCaches) .setVisible(true) .setChild(false) .isCheck(false); Collections.sort(mSysCaches); Collections.reverse(mSysCaches); ArrayList<JunkInfo> list = new ArrayList<>(); list.add(junkInfo); mCallBack.onFinish(list); } }
Example #14
Source File: dex_smali.java From stynico with MIT License | 5 votes |
@Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { String packageName = pStats.packageName; long cacheSize = pStats.cacheSize; long codeSize = pStats.codeSize; long dataSize = pStats.dataSize; // sb.delete(0, sb.length()); if (cacheSize > 0) { } }
Example #15
Source File: AnimatedEditText.java From stynico with MIT License | 5 votes |
@Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { String packageName = pStats.packageName; long cacheSize = pStats.cacheSize; long codeSize = pStats.codeSize; long dataSize = pStats.dataSize; // sb.delete(0, sb.length()); if (cacheSize > 0) { } }
Example #16
Source File: via_webviwe.java From styT with Apache License 2.0 | 5 votes |
@Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { long cacheSize = pStats.cacheSize; // sb.delete(0, sb.length()); if (cacheSize > 0) { } }
Example #17
Source File: DiskStatsFileLogger.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
private void addAppsToJson(JSONObject json) throws JSONException { JSONArray names = new JSONArray(); JSONArray appSizeList = new JSONArray(); JSONArray appDataSizeList = new JSONArray(); JSONArray cacheSizeList = new JSONArray(); long appSizeSum = 0L; long appDataSizeSum = 0L; long cacheSizeSum = 0L; boolean isExternal = Environment.isExternalStorageEmulated(); for (Map.Entry<String, PackageStats> entry : filterOnlyPrimaryUser().entrySet()) { PackageStats stat = entry.getValue(); long appSize = stat.codeSize; long appDataSize = stat.dataSize; long cacheSize = stat.cacheSize; if (isExternal) { appSize += stat.externalCodeSize; appDataSize += stat.externalDataSize; cacheSize += stat.externalCacheSize; } appSizeSum += appSize; appDataSizeSum += appDataSize; cacheSizeSum += cacheSize; names.put(stat.packageName); appSizeList.put(appSize); appDataSizeList.put(appDataSize); cacheSizeList.put(cacheSize); } json.put(PACKAGE_NAMES_KEY, names); json.put(APP_SIZES_KEY, appSizeList); json.put(APP_CACHES_KEY, cacheSizeList); json.put(APP_DATA_KEY, appDataSizeList); json.put(APP_SIZE_AGG_KEY, appSizeSum); json.put(APP_CACHE_AGG_KEY, cacheSizeSum); json.put(APP_DATA_SIZE_AGG_KEY, appDataSizeSum); }
Example #18
Source File: DiskStatsFileLogger.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
/** * Constructs a DiskStatsFileLogger with calculated measurement results. */ public DiskStatsFileLogger(MeasurementResult result, MeasurementResult downloadsResult, List<PackageStats> stats, long systemSize) { mResult = result; mDownloadsSize = downloadsResult.totalAccountedSize(); mSystemSize = systemSize; mPackageStats = stats; }
Example #19
Source File: DiskStatsLoggingService.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
private void logToFile(MeasurementResult mainCategories, MeasurementResult downloads, List<PackageStats> stats, long systemSize) { DiskStatsFileLogger logger = new DiskStatsFileLogger(mainCategories, downloads, stats, systemSize); try { mOutputFile.createNewFile(); logger.dumpToFile(mOutputFile); } catch (IOException e) { Log.e(TAG, "Exception while writing opportunistic disk file cache.", e); } }
Example #20
Source File: AppCollector.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
@Override public void handleMessage(Message msg) { switch (msg.what) { case MSG_START_LOADING_SIZES: { List<PackageStats> stats = new ArrayList<>(); List<UserInfo> users = mUm.getUsers(); for (int userCount = 0, userSize = users.size(); userCount < userSize; userCount++) { UserInfo user = users.get(userCount); final List<ApplicationInfo> apps = mPm.getInstalledApplicationsAsUser( PackageManager.MATCH_DISABLED_COMPONENTS, user.id); for (int appCount = 0, size = apps.size(); appCount < size; appCount++) { ApplicationInfo app = apps.get(appCount); if (!Objects.equals(app.volumeUuid, mVolume.getFsUuid())) { continue; } try { StorageStats storageStats = mStorageStatsManager.queryStatsForPackage(app.storageUuid, app.packageName, user.getUserHandle()); PackageStats packageStats = new PackageStats(app.packageName, user.id); packageStats.cacheSize = storageStats.getCacheBytes(); packageStats.codeSize = storageStats.getAppBytes(); packageStats.dataSize = storageStats.getDataBytes(); stats.add(packageStats); } catch (NameNotFoundException | IOException e) { Log.e(TAG, "An exception occurred while fetching app size", e); } } } mStats.complete(stats); } } }
Example #21
Source File: Installer.java From android_9.0.0_r45 with Apache License 2.0 | 5 votes |
public void getUserSize(String uuid, int userId, int flags, int[] appIds, PackageStats stats) throws InstallerException { if (!checkBeforeRemote()) return; try { final long[] res = mInstalld.getUserSize(uuid, userId, flags, appIds); stats.codeSize += res[0]; stats.dataSize += res[1]; stats.cacheSize += res[2]; stats.externalCodeSize += res[3]; stats.externalDataSize += res[4]; stats.externalCacheSize += res[5]; } catch (Exception e) { throw InstallerException.from(e); } }
Example #22
Source File: CleanerService.java From android-cache-cleaner with MIT License | 4 votes |
@Override protected List<AppsListItem> doInBackground(Void... params) { mCacheSize = 0; final List<ApplicationInfo> packages = getPackageManager().getInstalledApplications( PackageManager.GET_META_DATA); publishProgress(0, packages.size()); final CountDownLatch countDownLatch = new CountDownLatch(packages.size()); final List<AppsListItem> apps = new ArrayList<>(); try { for (ApplicationInfo pkg : packages) { mGetPackageSizeInfoMethod.invoke(getPackageManager(), pkg.packageName, new IPackageStatsObserver.Stub() { @Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { synchronized (apps) { publishProgress(++mAppCount, packages.size()); mCacheSize += addPackage(apps, pStats, succeeded); } synchronized (countDownLatch) { countDownLatch.countDown(); } } } ); } countDownLatch.await(); } catch (InvocationTargetException | InterruptedException | IllegalAccessException e) { e.printStackTrace(); } return new ArrayList<>(apps); }
Example #23
Source File: PackageStatsListener.java From openapk with GNU General Public License v3.0 | votes |
void onPackageStats(PackageStats packageStats);