Android 11 Settings源码入门

TopLevelSettings通过AndroidXPreference来展示设置项列表,设置项列表的内容通过静态配置+动态添加的方式获取。

1,静态配置

所谓静态配置就是通过xml来配置。 如果你还不了解Preference,可以移步:www.jianshu.com/p/348eb0928… 简单了解一下

TopLevelSettings继承自抽象类DashboardFragment, 实现抽象方法getPreferenceScreenResId()并返回preference的配置文件即可完成静态配置。

@Override
protected int getPreferenceScreenResId() {
return R.xml.top_level_settings;
}

top_level_settings中配置了页面需要展示的配置项:

其中:

  • key:该配置项的主键
  • title:配置项的标题
  • summary:概要标题下面的文字
  • icon:前面的图标
  • order:用来做排序的,值越小则排行越靠前
  • fragment:点击该item要跳转的界面
  • controller:该item的控制器,控制它的内容展示,是否可用,也可以控制它的点击事件
2,动态添加

动态获取是根据特殊的action标记,通过packageManger查询系统中安装的符合对应action的应用,将其动态添加到列表中。

例如:网络流量监控,存储空间管理,默认应用等配置项都是动态添加的。

具体实现可以参看文章:MTK快霸是如何动态加载的

二,系统设置其他界面

系统设置中除了.homepage.SettingsHomepageActivity,其他大部分的Activity都定义在Settings中, 并且继承自SettingsActivity, 但其中并没有实现任何逻辑。因此,这些Activity的逻辑都是在SettingsActivity中实现。

/**

  • Top-level Settings activity
    */
    public class Settings extends SettingsActivity {

/*

  • Settings subclasses for launching independently.
    /
    public static class AssistGestureSettingsActivity extends SettingsActivity { /
    empty /}
    public static class BluetoothSettingsActivity extends SettingsActivity { /
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值