gpt4 book ai didi

java - 安装后可以限制应用程序大小吗?

转载 作者:行者123 更新时间:2023-11-29 09:26:29 24 4
gpt4 key购买 nike

在测试设备上安装应用程序后,应用程序的大小随着我每天的使用而增加。但我想限制我的应用程序大小,比如说最多 100mb。意味着当应用程序大小达到 100 mb 时,新数据必须覆盖旧数据,即应用程序大小无论如何都不能超过 100mb。

最佳答案

这是可能的,尽管它会更难一些,因为您必须同时做两件事:

  1. Learn the exact app size after installation
  2. Constantly monitor and control the app cache and storage

您可能已经注意到,应用安装到设备后,.apk 或 .aab( bundle )的大小远小于应用的实际大小。但是您可以使用 org.reflection API 和 PackageManager 在运行时通过几行代码来获取它:

PackageManager pm = getPackageManager();

Method getPackageSizeInfo = pm.getClass().getMethod("getPackageSizeInfo", String.class, IPackageStatsObserver.class);

getPackageSizeInfo.invoke(pm, "com.android.mms", new IPackageStatsObserver.Stub() {

@Override
public void onGetStatsCompleted(PackageStats pStats, boolean succeeded)
throws RemoteException {

Log.i(TAG, "Size of the installed app: " + pStats.codeSize);
}
});

这将是您希望在安装后立即运行的代码,并保存该值,因为稍后您将使用它通过将它与您拥有的其他缓存相结合来计算磁盘上的大小。

其次,每次你要持久化一些东西——无论是使用SharedPreferences,数据库(SQLite)还是保存到一个文件,你都必须计算保存数据的字节数,并计算保存数据和安装后应用大小的总和。

此外,我建议获得精确度的最佳方法是将所有内容保存到文件中,并避免使用数据库和SharedPreferences,因为这样更容易并保持一致以获得确切的文件大小。当你的文件大小 + 安装后的应用程序大小 > 100mb,你可以告诉用户,他不能再保存数据,必须释放一些空间等。

我希望你明白了..

关于java - 安装后可以限制应用程序大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59065008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com