Android5.1 原生应用设置(Settings)主界面启动流程

本文详细解析了Android 5.1原生应用Settings的主界面启动流程,从AndroidManifest.xml中发现Settings的启动入口,再到Settings.java和SettingsActivity.java中了解onCreate方法和如何展示主界面Dashboard。DashboardSummary.java负责创建和更新设置界面的各个类别,通过加载dashboard_categories.xml资源文件来构建设置项。
摘要由CSDN通过智能技术生成
别小看Android系统的设置程序,原生的Settings程序居然有10万行代码量,快赶上Kernel V1.0版本的代码量了,之所以这么多代码主要就是设置的功能点非常多非常杂,有的模块也很复杂,有的直接跟整个framework机制或流程有关,所以导致某些bug变成了重量级的问题,难以一时半会看出端倪,需要花费一定的时间去跟踪,比如跟踪系统的语言切换,当初这个bug我也是跟了16个小时,发现要从正面出击解决问题的可能性太小,后来在板型的overlay目录中进行一个覆盖配置,问题得到解决。

废话不多说,直接看代码吧,拿到一个app,肯定是从AndroidManifest.xml入手,因为这里会登记app要求的权限,Receiver监听,Activity或者Service等等,其中写明有 android.intent.category.DEFAULT和android.intent.category.LAUNCHER的Activity就是app的入口Activity:

1./packages/apps/Settings/AndroidManifest.xml

 98         <activity-aliasandroid:name="Settings"

 99                android:taskAffinity="com.android.settings"

100                 android:label="@string/settings_label_launcher"

101                android:launchMode="singleTask"

102                android:targetActivity="Settings">

103            <intent-filter>

104                <action android:name="android.intent.action.MAIN" />

105                <category android:name="android.intent.category.DEFAULT" />

106                <category android:name="android.intent.category.LAUNCHER" />

107            </intent-filter>

108        </activity-alias>

 

这里才是真正的入口:

 85         <activity android:name="Settings"
   86                 android:taskAffinity="com.android.settings"
   87                 android:label="@string/settings_label_launcher"
   88                 android:launchMode="singleTask">
   89             <intent-filter>
   90                 <action android:name="android.settings.SETTINGS" />
   91                 <category android:name="android.intent.category.DEFAULT" />
   92             </intent-filter>
   93             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
   94                 android:value="true" />
   95         </activity>

 

2./packages/apps/Settings/src/com/android/settings/Settings.java

24        public class Settings extendsSettingsActivity {  //继承自SettingsActivity

 

 

3./packages/apps/Settings/src/com/android/settings/SettingsActivity.java

489    @Override

490    protected voidonCreate(Bundle savedState) {

491        super.onCreate(savedState);

563            if (!mIsShowingDashboard) {      

564                // Search is shown we are launched thru a Settings "shortcut". UPwill be shown

565                // only if it is a sub settings

566                if (mIsShortcut) {

567                    mDisplayHomeAsUpEnabled = isSubSettings;

568                    mDisplaySearch = false;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android 5.1是一个广泛使用的操作系统版本,支持HDMI输出功能。要设置HDMI分辨率,可以按照以下步骤进行: 1. 首先,将Android设备与HDMI显示器或电视连接。确保HDMI线缆正常连接。 2. 在Android设备上打开设置菜单。可以通过下拉通知栏或点击屏幕上的设置图标来访问设置菜单。 3. 在设置菜单中,向下滚动并找到“显示”选项。点击进入显示设置页面。 4. 在显示设置页面中,可能会看到“屏幕投射”或“显示模式”的选项。点击进入相关设置。 5. 在屏幕投射或显示模式设置页面中,可以看到HDMI选项。点击进入HDMI设置。 6. 在HDMI设置页面中,通常会有分辨率选项。点击进入分辨率设置。 7. 在分辨率设置页面中,可以看到可用的分辨率选项列表。根据显示器或电视的支持能力和个人偏好,选择所需的分辨率。 8. 选择完分辨率后,点击确认或应用。系统将应用所选的分辨率设置。 9. 返回到上一个菜单或屏幕,查看是否已成功设置HDMI分辨率。显示器或电视上的画面应该会根据所选的分辨率进行调整。 需要注意的是,不同的Android设备或系统版本可能会有略微不同的设置流程。因此,根据具体的设备和系统版本,上述步骤可能会有所变化。但总体而言,通过进入设置菜单,找到显示设置,再进入HDMI设置,选择适当的分辨率,就可以完成Android 5.1设置HDMI分辨率的流程。 ### 回答2: Android 5.1版本的设备在设置HDMI分辨率时,可以按照以下步骤进行操作: 1. 连接HDMI线缆:首先,将一端的HDMI线缆插入Android设备的HDMI输出接口,另一端插入显示设备(如电视或投影仪)的HDMI输入接口。 2. 打开设置界面:在Android设备上,找到并点击打开“设置应用程序,通常可以在应用程序列表中找到该选项。 3. 进入显示设置:在“设置界面中,向下滚动并找到“显示”选项,点击进入显示设置界面。 4. 选择HDMI设置:在显示设置界面中,找到并点击“HDMI”选项,这将打开HDMI设置界面。 5. 选择分辨率:在HDMI设置界面中,通常会显示可用的HDMI分辨率选项。根据你的显示设备和个人需求,选择适当的分辨率选项。 6. 保存设置:选择完分辨率后,点击界面上的“保存”或“应用”按钮,以保存并应用新的HDMI分辨率设置。 7. 测试分辨率:你可以通过在显示设备上观察图像是否清晰和完整来测试新的HDMI分辨率设置。如果满意,设置流程就结束了。 请注意,以上步骤仅适用于Android 5.1版本的系统设备,不同的Android版本或设备类型可能略有不同。确保你的设备支持HDMI输出功能并运行在Android 5.1版本或更高版本。 ### 回答3: 要设置Android 5.1的HDMI分辨率,可以按照以下流程操作: 1. 首先,确保你的Android设备已连接到HDMI显示器上。 2. 在设备上滑动屏幕,进入菜单,找到并点击“设置”图标。 3. 在设置菜单中,向下滚动找到“显示”或类似的选项,并点击进入。 4. 在显示设置菜单中,找到“屏幕分辨率”或类似的选项,并点击进入。 5. 系统会列出可用的屏幕分辨率选项。根据你的需求和HDMI显示器的能力,选择一个适合的分辨率。 6. 点击选中分辨率后,系统会提示你是否确认应用此分辨率。确认后,系统会应用新的分辨率设置。 7. 返回到菜单或桌面,你会注意到HDMI显示器的分辨率已经改变为你所设置的分辨率。 需要注意的是,不同的Android设备可能会在设置菜单的布局和选项名称上有所区别,具体操作可能会有所不同。但一般来说,通过“设置”-“显示”-“屏幕分辨率”可以找到相关的选项。 如果你在Android设备上找不到上述选项,可能是因为该设备的固件版本或制造商定制的界面导致了菜单布局的差异。在这种情况下,你可能需要查阅设备的用户手册或进行在线搜索来了解具体的设置方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值