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. newthisclass );
  5. }

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的工作。
 

[置顶] Android Provision (Setup Wizard)的更多相关文章

  1. Android 初始化Setup Wizard——Provision

    今天说说Provision这个APK,可能很多朋友都不知道有这个APK存在.Provision的作用很简单,就是一个系统初始化引导程序,原生的Android里面Provision只做了一件事,就是写入 ...

  2. [置顶] Android开发笔记(成长轨迹)

    分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...

  3. [置顶] Android AlarmManager实现不间断轮询服务

    在消息的获取上是选择轮询还是推送得根据实际的业务需要来技术选型,例如对消息实时性比较高的需求,比如微博新通知或新闻等那就最好是用推送了.但如果只是一般的消息检测比如更新检查,可能是半个小时或一个小时一 ...

  4. [置顶] [Android源码分析]inquiry result引起的上层变化分析

    在上一篇文章中,我们详细分析了android是如何解析蓝牙反馈上来的搜索到的设备信息,本文将会继续分析这些信息到了上层之后是如何处理. 8.inquiry result引起的上层变化 我们知道inqu ...

  5. [置顶] Android四大组件之BroadcastReceiver

    Android四大组件之BroadcastReceiver Broadcast Receiver 广播接收器,是一种负责接收广播消息并对消息做出响应的组件,和Service一样并不提供与用户交互的UI ...

  6. [置顶] Android图片异步加载之Android-Universal-Image-Loader

    将近一个月没有更新博客了,由于这段时间以来准备毕业论文等各种事务缠身,一直没有时间和精力沉下来继续学习和整理一些东西.最近刚刚恢复到正轨,正好这两天看了下Android上关于图片异步加载的开源项目,就 ...

  7. [置顶] Android 状态栏那些小坑?

    背景:因为之前老板上次问我我们的app能不能自定义上面的状态栏我说可以啊!当时没管,今天试了下果然很多坑,之前github上也有很多大佬写了一个开源库有兴趣的可以点进去看下支持DrawLayout沉侵 ...

  8. [置顶] Android 适配真要命?

    原始尺寸场景 相信大家对上面也有所有耳闻另外就是如何计算屏幕的密度一般都是按照勾股定理例如中等屏幕密度 480^2+800^2开根号 然后除以当前屏幕尺寸3.5-4.2之间尺寸. 对于刚出来的那些An ...

  9. [置顶] Android 2016新技术

    版权声明:分享技术,传播快乐.如果本博客对你有帮助,请在我的博客首页为我打赏吧! 2016你需要了解Android有以下新兴的技术与框架,有些也许还不成熟,但是你应该去了解下,也许就是未来的方向. K ...

随机推荐

  1. websphere变成英文了

    ebsphere页面怎么变成中文? 浏览器 -- internet选项 --  常规 -- "语言" -- 打开后: 1. 如果只有"英语(美国)[en-US]" ...

  2. 亚马逊 在线测试题目 amazon

    分析:其实就是求矩形中某一个点到其他点的距离加权最小 方法一: 对每一个点求其到其他点的加权距离,然后比较最小.由于有M*N个点,对每一个点求加权距离是O(M*N)的,所以整体时间复杂度是O(M*M* ...

  3. PE文件之资源讲解

    资源是PE文件中非常重要的部分,几乎所有的PE文件中都包含资源,与导入表与导出表相比,资源的组织方式要复杂得多,要了解资源的话,重点在于了解资源整体上的组织结构. 我们知道,PE文件资源中的内容包括: ...

  4. AngularJs学习笔记--directive

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/directive Directive是教HTML玩一些新把戏的途径.在DOM编译期间,directiv ...

  5. Google Chrome 浏览器禁用缓存

    在使用 Google Chrome 浏览器调试 js 时,会发现修改完 js 不会立即生效,这是由于 chrome 浏览器缓存的原因,而在火狐下没有这个问题.经常使用 chrome 浏览器调试 js ...

  6. codeforces 425B Sereja and Table(状态压缩,也可以数组模拟)

    题目 给出一个n*m的01矩阵, 让你最多改变k个里面的值(0变1,1变0), 使得0.1的连通分量是矩阵.输出最少步数 1 ≤ n, m ≤ 100; 1 ≤ k ≤ 10 题解: 如果01连通分量 ...

  7. POJ 3243 Clever Y (求解高次同余方程A^x=B(mod C) Baby Step Giant Step算法)

    不理解Baby Step Giant Step算法,请戳: http://www.cnblogs.com/chenxiwenruo/p/3554885.html #include <iostre ...

  8. [C++]iostream的几种输入形式

    做ACM题的时候,发现cin并不能满足所有输入要求.比如说: 每行给出一款运动鞋信息,若该款写不打折,则先后给出每种运动鞋单价P,所购买的数量Q:若打折,则先后给出每种运动鞋单价P,所购买的数量Q,折 ...

  9. Cygwin,Mingw

    MinGW vs Cygwin MinGW是Minimalistic GNU for Windows的缩写,也就是Win版的GCC. Cygwin则是全面模拟了Linux的接口,提供给运行在它上面的的 ...

  10. Java加密技术

    相关链接: Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC Java加密技术(二)——对称加密DES&AES Java加密技术(三)——PBE算法  ...