【问题标题】:Android - See where app size comes fromAndroid - 查看应用程序大小的来源
【发布时间】:2015-07-02 16:40:59
【问题描述】:

我的应用在第一次下载时大小合适,但在使用 OAuth 授权一些网站并稍微使用该应用后,我迅速获得了大约 10-12 兆。我想看看所有这些额外数据是从哪里来的,因为我确信通过使用 OAuth 进行授权,每个站点只使用了大约 2 meg。

我不确定是否以某种方式保存了太多 oauth 凭据,或者将太多东西保存到 sharedpreferences ...

有什么方法可以分析我的应用程序下载版本的数据以查看这些数据的来源?

【问题讨论】:

    标签: android oauth size sharedpreferences application-size


    【解决方案1】:

    您的应用本身在设备上的大小不会改变。

    可以改变的是应用在您的设备上存储的数据的大小。大多数私有应用数据存储在/data/data/<com.example.yourapp>。我会从那里寻找大文件开始。

    需要注意的一些事情是您的应用不再需要的缓存文件,或者在通过 OAuth 流程后增长的 SQLite 数据库。也有可能仅仅添加一个 SQLite 数据库就可以解释差异,这取决于您的应用程序的起始大小。

    【讨论】:

    • 好的,谢谢!实际上是我的 webview 缓存导致了问题。我通过调用 myWebView.clearCache(true); 解决了这个问题;这清除了我的应用程序中所有 webviews 的缓存(应用程序默认使用相同的 webview 缓存,因此此方法默认清除所有缓存)。
    【解决方案2】:

    减少总内存分配或使应用程序在使用大量内存时尽可能流畅运行的一个技巧是定期调用函数System.gc();

    我知道这不是一种监控内存来源的方法,但如果您在每次应用关闭网站或导航到新网站时调用它,或者以您决定的定期间隔调用它,它会清除内存没有被使用,使整体体验更流畅。

    【讨论】:

    • 啊,你指的是错误的内存类型。我不确定我所说的数据的确切名称是什么,但是如果您进入 android 设置中的应用程序设置,它会显示在“数据”下,与“应用程序”分开,后者是您的应用程序的数据安装时。 “数据”是使用的额外数据,例如 sharedpreferences。
    猜你喜欢
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多