Android 根据包名获取应用的ROM占用大小,应用安装大小、缓存大小、数据大小等等

本文介绍如何利用Android的IPackageStatsObserver和PackageStats AIDL接口,通过反射技术获取第三方应用的ROM占用、安装大小、缓存和数据大小。详细步骤包括创建并集成AIDL文件,添加必要权限,以及展示关键Java代码实现。提供的测试结果显示,这种方法获取的结果与手机设置显示的大小一致。
摘要由CSDN通过智能技术生成

获取第三方应用rom大小,主要是通过系统接口IPackageStatsObserver和PackageStats来获取的,而这两个文件我们是直接访问不到的。这边是通过ADIL的方式来调用的。

1、创建两个AIDL文件IPackageStatsObserver和PackageStats,要求包名和sdk中本身文件的包名必须一致。

包名为:android.content.pm

创建目录为上图,IPackageStatsObserver文件内容为:



package android.content.pm;

import  android.content.pm.PackageStats;
/**
 * API for package data change related callbacks from the Package Manager.
 * Some usage scenarios include deletion of cache directory, generate
 * statistics related to code, data, cache usage(TODO)
 * {@hide}
 */
oneway interface IPackageStatsObserver {
    
    void onGetStatsCompleted(in PackageStats pStats, boolean succeeded);
}

PackageStats文件内容为:


package  android.content.pm;

parcelable Package
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值