gpt4 book ai didi

android - ApplicationInfo LoadLabel 增加了我的服务的内存消耗(android)

转载 作者:行者123 更新时间:2023-11-29 21:58:25 35 4
gpt4 key购买 nike

我编写了一个 android 服务,用于计算安装在手机上的应用程序列表并获取应用程序名称。

代码大致是这样的:

List<PackageInfo> appListInfo = pm.getInstalledPackages(0);
for (PackageInfo p : appListInfo) { p.applicationInfo.loadLabel(pm).toString()); }

我观察到的是,在所有 packageInfo 对象上调用 loadLabel 函数会大大增加内存消耗。我的服务通常需要 3-5 MB,执行此代码时会飙升至 16 MB。

虽然,这个内存最终会被释放(当 GC 运行时)并且服务回到 3-5mb,我想知道是否可以避免这种峰值并仍然实现我的目标

我想要这个的原因是,我计划将这个应用程序作为轻量级进行营销,如果这种情况持续发生,这是不可能的。

最佳答案

我也遇到了同样的问题。我的应用程序通常使用 32mb 到 50mb 的峰值。 loadLabel 在可运行对象中被调用,该可运行对象每 x 秒/分钟从服务中调用一次。我已经看到内存高达 90mb。我信任 GC,但我的应用会记录数据并且需要一直运行,因此它很可能被操作系统终止。

我的解决方案是使 ApplicationInfo 为空,然后调用 System.gc() 来释放内存。这样我的应用就保持在 32mb。

如果谁有更好的方法请告诉我们。

关于android - ApplicationInfo LoadLabel 增加了我的服务的内存消耗(android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12600974/

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