如何获取应用程序的所有信息(Apk大小,缓存大小,数据大小,总缓存大小)

问题描述 投票:1回答:1

为了获得在问题中提及的信息,我尝试使用隐藏的Api(使用AIDL),它在低于26的Api中有效,但在26或27以下的Api中不起作用。

java.lang.UnsupportedOperationException: Shame on you for calling the hidden API getPackageSizeInfoAsUser(). Shame!

我确实做到了:http://allandroidprojects.blogspot.com/2016/06/android-get-cache-size-data-size-apk.html

此解决方案被接受,但是在oreo中不起作用:

Getting installed app size

该帖子中提到的另一个解决方案是:

final PackageManager pm = context.getPackageManager();
ApplicationInfo applicationInfo = pm.getApplicationInfo(appInfo.getPackage(), 0);
File file = new File(applicationInfo.publicSourceDir);
int size = file.length();

通过使用上述方法,我无法获得所有应用程序的大小,因为它仅给我基本apk大小,而不是其他应用程序内容:

log:

2019-07-02 11:48:16.082 4069-4069/com.example.getallinstallapp D/AppSize: :com.android.cts.priv.ctsshim:6044
2019-07-02 11:48:16.098 4069-4069/com.example.getallinstallapp D/AppSize: :/system/priv-app/GoogleExtServices/GoogleExtServices.apk
2019-07-02 11:48:16.099 4069-4069/com.example.getallinstallapp D/AppSize: :Android Services Library:10924
2019-07-02 11:48:16.154 4069-4069/com.example.getallinstallapp D/AppSize: :/data/app/com.example.voicelockreenginer-nhzu_JLVE6Eh5C-sfg-asg==/base.apk
2019-07-02 11:48:16.154 4069-4069/com.example.getallinstallapp D/AppSize: :VoiceScreenLock:144984
2019-07-02 11:48:16.163 4069-4069/com.example.getallinstallapp D/AppSize: :/system/app/CubeLiveWallpapers/CubeLiveWallpapers.apk
2019-07-02 11:48:16.163 4069-4069/com.example.getallinstallapp D/AppSize: :Example Wallpapers:22868
2019-07-02 11:48:16.169 4069-4069/com.example.getallinstallapp D/AppSize: :/system/priv-app/TelephonyProvider/TelephonyProvider.apk
2019-07-02 11:48:16.169 4069-4069/com.example.getallinstallapp D/AppSize: :Phone and Messaging Storage:137053
2019-07-02 11:48:16.196 4069-4069/com.example.getallinstallapp D/AppSize: :/system/priv-app/CalendarProvider/CalendarProvider.apk
2019-07-02 11:48:16.196 4069-4069/com.example.getallinstallapp D/AppSize: :Calendar Storage:127531
2019-07-02 11:48:16.202 4069-4069/com.example.getallinstallapp D/AppSize: :/system/priv-app/MediaProvider/MediaProvider.apk
2019-07-02 11:48:16.202 4069-4069/com.example.getallinstallapp D/AppSize: :Media Storage:133272
2019-07-02 11:48:16.214 4069-4069/com.example.getallinstallapp D/AppSize: :/system/priv-app/GoogleOneTimeInitializer/GoogleOneTimeInitializer.apk
2019-07-02 11:48:16.214 4069-4069/com.example.getallinstallapp D/AppSize: :Google One Time Init:58568
2019-07-02 11:48:16.229 4069-4069/com.example.getallinstallapp D/AppSize: :/system/app/GoogleExtShared/GoogleExtShared.apk
2019-07-02 11:48:16.229 4069-4069/com.example.getallinstallapp D/AppSize: :Android Shared Library:4774
2019-07-02 11:48:16.236 4069-4069/com.example.getallinstallapp D/AppSize: :/system/priv-app/WallpaperCropper/WallpaperCropper.apk
2019-07-02 11:48:16.236 4069-4069/com.example.getallinstallapp D/AppSize: :com.android.wallpapercropper:25986  

这里给我的VoiceScreenLock:144984大小约为144 kb,但实际大小约为13.5至14 MB。

上述方法也返回正确的apk大小。因此,为了更清晰起见,我转到了设备浏览器。https://ibb.co/r2ys3ZW

您可以看到要获得整个应用程序的大小,我需要合并该文件夹中所有.apk的结果。

我如何获得适当的应用大小和所提及的其他信息?

为了获得在问题中提及的信息,我尝试使用隐藏的Api(使用AIDL),它在26以下的Api中有效,但在26或27以下的Api中无效。在奥利奥中,这是给我的:java.lang.UnsupportedOperationException:感到羞耻...) >

android android-package-managers
1个回答
0
投票

我在移动媒体存储中使用的是vivo 1610移动设备,半小时后会自动充满,一旦有人修复,请告诉我

© www.soinside.com 2019 - 2024. All rights reserved.