关于DeviceStorageMonitorService的部分总结:
1、 Android在Settingsprovider中进行配置“低存储空间”以及“满存储空间”策略阀值。
目前我的手机小于50M,则认定存储空间低。小于5M,则认为存储空间满。
2、 Android在内存低时,首先会启动自动清理机制,该机制会清理系统缓存。
触发条件为:1,可用空间小于“低存储空间”阀值,
2,本次新使用空间大小大于“开始清理缓存阀值”差值的1/4.
3、 何时会发送低存储通知?
当2中,清缓存,当前可用空间依旧小于“低存储空间”阀值时,发送通知。
4、 存储空间低通知,何时消除?
用户点击通知,会进入到存储页面,
用户可清楚部分文件数据,当当前可用空间不再小于“低存储空间”阀值时,通知自动消除。
5、 何时发送存储空间满通知?
当存储空间小于“满存储空间”阀值时,发送该通知。
6、 低存储空间计算方式?
大多数情况下为:data存储空间的10%。
dumpsys 可以看到部分信息:
mFreeMem=10.64 GB mTotalMemory=11.30 GB
mFreeMemAfterLastCacheClear=10.64 GB
mLastReportedFreeMem=10.64 GB mLastReportedFreeMemTime=-10m52s108ms
mLowMemFlag=false mMemFullFlag=false
mIsBootImageOnDisk=true mClearSucceeded=false mClearingCache=false
mMemLowThreshold=50.00 MB mMemFullThreshold=5.00 MB
mMemCacheStartTrimThreshold=38.75 MB mMemCacheTrimToThreshold=72.50 MB
DataPath =/data
SYSTEM_PATH =/system
CACHE_PATH =/cache
也就是说,监听的目录为data,system,cache目录等.