“存储空间不足”data过小的通知分析DeviceStorageMonitorService类

位置

DeviceStorageMonitorService.java (frameworks\base\services\java\com\android\server\)

一. 三个关键变量:

private static final int DEFAULT_THRESHOLD_PERCENTAGE = 10;private static final int DEFAULT_FULL_THRESHOLD_BYTES = 1*1024*1024; // 1MBprivate static final long DEFAULT_DISK_FREE_CHANGE_REPORTING_THRESHOLD = 2 * 1024 * 1024; // 2MB

二. 参数调用的地方
在整个android目录中, 三个常量被调用的地方, 都只是在DeviceStorageMonitorService.java中

DEFAULT_THRESHOLD_PERCENTAGE(10) : private long getMemThreshold();return 1300234 * 10 = 13,002,340DEFAULT_FULL_THRESHOLD_BYTES(10M) : private int getMemFullThreshold()return 10,485,760DEFAULT_DISK_FREE_CHANGE_REPORTING_THRESHOLD(5M=5,242,880) : private final void restatDataDir();threshold = 5,242,880 delta = mFreeMem = 101,482,696

三. 函数被调用的地方
DeviceStorageMonitorService构造中

private long mMemLowThreshold = getMemThreshold();

四. DeviceStorageMonitorService的调用追踪

private final void checkMemory(boolean checkCache) -> 判断() ->private final void sendNotification()

在sendNotification()中将剩余内存的值存入intent中, 然后广播出去, 广播类型为ACTION_MANAGE_PACKAGE_STORAGE
此通知的标题为 “存储空间不足(Low on space)”
通知的内容为 “手机内存空间所剩不多了(Phone storage space is getting low)”

五. DEFAULT_FULL_THRESHOLD_BYTES的调用追踪

private final void checkMemory(boolean checkCache) -> 判断() ->private final void sendFullNotification() ->sendStickyBroadcast(intent.ACTION_DEVICE_STORAGE_FULL)

若data目录小于DEFAULT_FULL_THRESHOLD_BYTES, 则不在接收短信.

六. DEFAULT_DISK_FREE_CHANGE_REPORTING_THRESHOLD 调用追踪

private final void checkMemory(boolean checkCache) ->EventLog.writeEvent(EventLogTags.FREE_STORAGE_CHANGED, mFreeMem)

经过jwisp烧录到真机上发现, 真正有可能有用的是百分比报警, 那只需要设置下面这个参数即可:
DEFAULT_THRESHOLD_PERCENTAGE

转载自 “存储空间不足”data过小的通知分析DeviceStorageMonitorService类 | 卓派

更多相关文章

  1. Android 8.0 跳转通知设置界面适配
  2. 状态栏通知Notification用法
  3. android 获取存储空间大小
  4. android Notification 通知封装
  5. Android判断当前应用通知是否打开,跳转到打开通知界面
  6. Android 8.0 通知显示
  7. Android 判断应用是否开启了通知权限
  8. 关于android示例程序(bitmapfun)——高效加载图片的坑爹地方

随机推荐

  1. Android4: 旋转屏幕时禁止Activity重启
  2. Android02--debug.keystore的注册信息
  3. Android(安卓)Spinner
  4. Android(安卓)ApiDemos示例解析(193):Vie
  5. android常用开源库分享
  6. smack 源码分析- PacketWriter (android
  7. Android多媒体框架初步分析
  8. Android经典的大牛博客推荐
  9. Android(安卓)layer type与WebView白屏
  10. android开发资源网站,下载各版本SDK源码、