Android ROM开发之定制Google SetupWizard

之前的博客Android ROM开发之预制GMS 给自己挖了一个坑——针对定制GMS会另写一篇,本篇补坑。定制GMS本身是一个很广泛的问题,简单的如根据需求取舍GMS包中的某些应用,复杂点的如定制Chrome的书签,主页,设置项等。本篇拿如何定制Google SetupWizard(SUW)开刀,通过本篇也可看出Google是如何在不公开GMS代码的前提下给众多合作伙伴预留下可定制的方法的。

定制 SUW 需要了解下面的知识点

SUW 部分页面是可以在源码中实现的

SUW只在第一次开机才运行,通过它可以设置系统语言、时区、Wifi 开关、Google 帐号等,它是一个隶属与GMS包里的独立应用,但这个应用的某些页面是可以在源码中实现的。
这里写图片描述
比如上面这个界面黑色框起来的部分就是在Settings下面实现的,这点是我在做Settins下的锁屏功能时发现的,Settings的锁屏一改动,上图的界面也跟着改变了,然后停在该界面用命令
adb shell dumpsys activity activities|grep mFocusedActivity
查看当前页面在哪个包中,输出信息如下:
mFocusedActivity: ActivityRecord{2a1f2a3b u0 com.android.settings/.SetupChooseLockGeneric t2}
原来发现它的实现类在Settings模块下的SetupChooseLockGeneric类中。

wizard_script配置文件

wizard_script 文件定义了 SUW 的页面跳转行为,要追加页面就需要更改 wizard_script 文件内容。这个信息Google在发布GMS包时会有专门文档做说明,由于牵涉保密性,这里无法共享出来了。wizard_script文件的内容形式如下:

<WizardAction wizard:uri="intent:#Intent;action=com.google.android.setupwizard.START_VPA;end" id="start_vpa">
    <result wizard:action="date_time" />
</WizardAction>
<WizardAction wizard:uri="intent:#Intent;action=com.android.setupwizard.DATE_TIME;end" id="date_time">
    <result wizard:action=
  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 34
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值