当前位置: 首页> 汽车> 维修 > 东莞响应式网站_自己怎么设计图片_国外免费网站域名服务器查询软件_微信搜一搜seo

东莞响应式网站_自己怎么设计图片_国外免费网站域名服务器查询软件_微信搜一搜seo

时间:2025/7/14 3:19:08来源:https://blog.csdn.net/qq_25406415/article/details/146321058 浏览次数: 2次
东莞响应式网站_自己怎么设计图片_国外免费网站域名服务器查询软件_微信搜一搜seo

获取应用相关信息:

PS:manifest标签中设置以下属性表示系统应用
android:process="system" android:sharedUserId="android.uid.system"

//获取所有应用(非系统apk,有些应用获取不到)
List<ApplicationInfo> installedApplications = getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA);

获取缓存,apk体积,存储大小,版本号等:

    //全局变量,保存当前查询包得信息private long cachesize ; //缓存大小private long datasize  ;  //数据大小private long codesize  ;  //应用程序大小private long totalsize ; //总大小//获取相关数据public void  queryPacakgeSize() {getPackageSizeInfo(new PackageStatsObserver());}/** * 8.0及以下回调使用* */private class PackageStatsObserver extends IPackageStatsObserver.Stub {@Overridepublic void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException {Log.d("hsh", "packageName = "+pStats.packageName+"---"+(pStats.cacheSize + pStats.externalCacheSize));// 在此处理 PackageStats 数据// TODO Auto-generated method stubcachesize = pStats.cacheSize  ; //缓存大小datasize = pStats.dataSize  ;  //数据大小codesize = pStats.codeSize  ;  //应用程序大小totalsize = cachesize + datasize + codesize ;
//            Log.i("hsh", "cachesize--->"+cachesize+" datasize---->"+datasize+ " codeSize---->"+codesize)  ;setViewData();}}/** * 获取apk体积,内存,缓存信息* */private void getPackageSizeInfo( IPackageStatsObserver.Stub observer) {Context context = SettingApplication.getInstance();if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {final StorageStatsManager storageStatsManager = (StorageStatsManager) context.getSystemService(Context.STORAGE_STATS_SERVICE);final StorageManager storageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);try {StorageStats storageStats = storageStatsManager.queryStatsForPackage(applicationInfo.storageUuid,applicationInfo.packageName, UserHandle.getUserHandleForUid(applicationInfo.uid));
//                StorageStats storageStats = storageStatsManager.queryStatsForUid(applicationInfo.storageUuid, applicationInfo.uid);cachesize = storageStats.getCacheBytes();//缓存大小datasize = storageStats.getDataBytes();//数据大小codesize = storageStats.getAppBytes();//应用程序大小totalsize = cachesize + datasize + codesize ;
//                Log.i("hsh", "packageName:"+this.applicationInfo+",,"+cachesize + ",," + datasize + ",," + codesize+",,"+totalsize);setViewData();} catch (Exception e) {e.printStackTrace();}} else {//9.0及以上此方法无效,会抛出错误try {Method method = pm.getClass().getMethod("getPackageSizeInfo", String.class, IPackageStatsObserver.class);method.invoke(pm, this.applicationInfo.packageName, observer);}  catch (Exception e) {e.printStackTrace();}}}private void  setViewData(){try {ApplicationInfo app = mContext.getPackageManager().getApplicationInfo(this.applicationInfo.packageName, 0);PackageInfo packageInfo = pm.getPackageInfo(app.packageName, PackageManager.GET_SIGNATURES);//赋值缓存tvAppCacheData.setText(formateFileSize(datasize));//有些apk获取不到内存大小,所以通过file.length()去获取if (!TextUtils.isEmpty(applicationInfo.sourceDir)) {File file = new File(applicationInfo.sourceDir);tvAppMemoryData.setText(formateFileSize(file.length()));//赋值apk大小} else {tvAppMemoryData.setText(formateFileSize(codesize));}//获取版apk其他应用消息,比如说版本versionCode,versionName等tvAppVersionCode.setText(packageInfo.versionName);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}}//系统函数,字符串转换 long -String (kb)private String formateFileSize(long size){return Formatter.formatFileSize(mContext, size);}

清除缓存,通过反射deleteApplicationCacheFiles清除缓存数据,看了下没什么效果改成clearApplicationUserData后测试可以:

  public  void deleteDir(String packageName) {try {Method method = pm.getClass().getMethod("clearApplicationUserData",String.class,IPackageDataObserver.class);// 指定目标应用包名(如 com.example.app)method.invoke(pm, packageName, new IPackageDataObserver.Stub() {@Overridepublic void onRemoveCompleted(String pkg, boolean success) {// 清理完成回调Log.i(TAG, "onRemoveCompleted: "+pkg+"====="+success);ToastUtil.s(R.string.str_clear_cache);}});} catch (Exception e) {e.printStackTrace();}}

PS:查看底层代码发现8.0以后被强制抛出异常

关键字:东莞响应式网站_自己怎么设计图片_国外免费网站域名服务器查询软件_微信搜一搜seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: