DropBoxManagerServer-日志文件管理

来源:互联网 发布:java中级工程师面试题 编辑:程序博客网 时间:2024/06/05 05:17

DropBoxManagerServer(DBMS): 

用于生成和管理系统运行时的一些日志文件,这些日志文件大多记录的是系统或某个应用出错是的信息。

DBMS构造方法都做了什么?

/*DropBoxManagerServer构造方法*/public DropBoxManagerServer(final Context context, File path){//path指定dropbox的路径为/data/system/dropboxmDropBoxDir = path;mContext = context;mContentResolver = context.getContentResolver();IntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_DEVICE_STORAGE_LOW);filter.addAction(Intent.ACTION_BOOT_COMPLETED);//注册一个广播,当系统启动完毕后或者存储空间不足时,会收到广播context.registerReceiver(mReceiver, filter);//当Settins数据库相应项发生变化时,也需要告知DBMS进行相应处理mContentResolver.registerContentObserver(Settings.Secure.CONTENT_URI, true, new ContentObserver(new Handler()) {public void onChange(boolean selfChange) {mReceiver.onReceiver(context, (Intent)null)}});}
由代码可知:
DBMS注册了一个BroadCastReceiver对象,同时会监听Settings数据库的变动,其处理在BroadCastReceiver
的onReceiver函数中,该函数在3中情况下会被调用:
1. 当系统启动完毕时,由BOOT_COMPLETED广播触发;
2. 当内存空间不足时,由DEVICE_STORAGE_LOW广播触发;
3. 当Settings数据库发生变化时,该函数也会被触发。
该函数的主要功能是,当系统存储空间不足的情况下,会删除一些日志文件以节省内存空间。

DBMS和Settings数据库

/*
DBMS的运行依赖一些配置项,这些配置项都是通过SettingsProvider操作Settings数据库来设置和查询的。
SettingsProvider是系统中一个重要的APK,如果删除了该APK,系统将不能正常运行。

与DBMS相关的配置:
//用来判断是否允许记录该tag类型的日志文件,默认允许生成任何tag类型的文件
Secure.DRAPBOX_TAG_PREFIX + tag : "dropbox:" + tag
//用于控制每个日志文件的存活时间,默认是三天,超过3天的额日志文件会被删除,以节省空间
Secure.DRAPBOX_AGE_SECONDS: "dropbox_age_seonds"
//用于控制系统保存日志文件的个数,默认是1000个
Secure.DRAPBOX_MAX_FILES: "drop_max_files"
//用于控制dropbox目录占存储容量的百分比,默认为10%
Secure.DRAPBOX_QUOTA_PERCENT: "drop_quota_percent"
//用于控制dropbox不能使用的存储空间比例,默认是10%,也就是说,dropbox最多只能占用90%
Secure.DRAPBOX_RESEVER_PERCENT: "dropbox_resever_percent"
//dropbox最大使用的空间大小,默认是5KB
Secure.DRAPBOX_QUOTA_KB: "dropbox_quota_kb"
以上这些和系统相关的配置项都在Settings数据库的Secure表中。
*/




0 0
原创粉丝点击