UsageStatsManager总结

总结

1、功能

UsageStatsManager用于查询应用使用详情,配置详情,事件日志数据,开发过程中可以通过这个接口获取应用使用数据,然后自定义展示方式。本地数据存储在/data/system/usagestats/目录下,该目录下以不同的类型分为5个文件夹,分别是:

  • daily
  • weekly
  • monthly
  • yearly
  • version(文件)
    当查询的时候,对应了四个不同的变量,去查询对应文件夹下的数据,每个文件的名称是时间戳。四个类型是:
	public static final int INTERVAL_DAILY = 0;
    /**
     * An interval type that spans a week. See {@link #queryUsageStats(int, long, long)}.
     */
    public static final int INTERVAL_WEEKLY = 1;
    /**
     * An interval type that spans a month. See {@link #queryUsageStats(int, long, long)}.
     */
    public static final int INTERVAL_MONTHLY = 2;
    /**
     * An interval type that spans a year. See {@link #queryUsageStats(int, long, long)}.
     */
    public static final int INTERVAL_YEARLY = 3;

2、部分细节

  • 读取数据的时候先从本地磁盘读取,完了之后再从内存里面读取,两份数据合并到一个列表里面返回。
  • 写数据的时候,并不是马上写到磁盘,而是等20分钟之后再往磁盘里面写,避免频繁IO。
  • 读写使用数据属于IO操作,客户端不应该在主线程调用读数据接口,即使在工作线程也不应该过于频繁,否则性能会受到很大的影响。

3、流程图概览

UsageStatsManager总结_第1张图片
清晰图片地址:https://i.loli.net/2019/04/17/5cb6f88451ea3.jpg
文章将会同步到公众号:Android部落格。

你可能感兴趣的:(Android)