//获取apk大小
public static String getPkgSize(final Context context, String pkgName) throws NoSuchMethodException,
InvocationTargetException, IllegalAccessException {
// getPackageSizeInfo是PackageManager中的一个private方法,所以需要通过反射的机制来调用
Method method = PackageManager.class.getMethod("getPackageSizeInfo",
String.class, IPackageStatsObserver.class);
// 调用 getPackageSizeInfo 方法,需要两个参数:1、需要检测的应用包名;2、回调
method.invoke(context.getPackageManager(), pkgName,
new IPackageStatsObserver.Stub() {
@Override
public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException {
// 子线程中默认无法处理消息循环,自然也就不能显示Toast,所以需要手动Looper一下
Looper.prepare();
// 从pStats中提取各个所需数据
// Toast.m
Android--获取apk大小
最新推荐文章于 2021-12-28 15:35:51 发布
本文介绍了如何通过AIDL(Android Interface Definition Language)在Android中获取APK的应用程序包大小。首先,需要添加相关权限,然后创建`android.content.pm`包,并在其中定义两个AIDL文件:IPackageStatsObserver.aidl和PackageStats.aidl。通过这些步骤,开发者可以实现APK大小的程序化获取。
摘要由CSDN通过智能技术生成