zoukankan      html  css  js  c++  java
  • [置顶] Android Provision (Setup Wizard)


    Android中很多框架性的设计都已经存在了,但在市场上的发布版本里却因为没有很好的理解Android的设计意图而进行自己的定制,或者自己又做一 个冗余的实现。Android中的Provision其实就是类似刚出厂时或者恢复出厂设置之后,一步一步引导用户完成各种设置的Setup Wizard程序。

     

    在Android的原生代码中,Provision并没有被编译进系统,这可能是Provision不被人所知的原因。另外SdkSetup是一个实现相同功能的程序,从名字来看,SdkSetup是被用来在模拟环境中完成初始设置的程序。

     

    Provision在其AndroidManifest.xml中被定义如下:

     

    [html] view plaincopy
     
    1. <application> <activity=  
    2. => <intent-filter=> <action= /> <category= /> <category= /> </intent-filter> </activity> >  
     

    Activity DefaultActivity的category被定义成HOME,并且priority为1,是比系统Launcher启动还要早的程序。

     

    Provision中DefaultActivity的实现如下:

     

    [java] view plaincopy
     
    1. publicclass   
    2. protectedvoid super   
    3. );  
    4.   
    5. newthisclass );  
    6.   
    7. }  
     

    DefaultActivity的原生实现只做了两件事:

    1. 没有UI界面,只是设置Setting项里的Settings.Secure.DEVICE_PROVISIONED为1,指示其他Framework和其他程序,机器已经Provisioned。
    2. Line#10~#12之后,Launcher才会被启动,完成整个启动过程。

    注意:还没有Provisioned的机器,有些功能的表现是不一样的。比如,如果还没有Provisioned,锁屏程序不会锁屏;对HOME key的处理也不同;电话也是打不进来的,etc。

     

    通过Provision,可以定制:

    •  加入一些初始设置项的设定,比如时区/时间初始设定,背景数据是否允许,是否允许安装非Android市场上的程序,等不需要用户干预就可以完 成的设置。具体也可看SdkSetup中的DefaultActivity完成的设置,除了多了些设置项的设置,并没有太多区别。
    •  加入UI设计,引导用户一步步完成需要用户参与选择或输入的设置过程,也就是Setup Wizard的工作。
     
  • 相关阅读:
    React同构直出优化总结
    Kubenertes资源分配之Request和Limit解析
    Node Server零基础——开发环境文件自动重载
    Vue组件开发实践之scopedSlot的传递
    【干货合集】Docker快速入门与进阶
    ES6 中的 Set
    十个书写Node.js REST API的最佳实践(上)
    oozie配置安装与原理
    Livy原理详解
    阿里(蚂蚁金服)招聘
  • 原文地址:https://www.cnblogs.com/xgjblog/p/4103694.html
Copyright © 2011-2022 走看看