当前位置: 首页 > news >正文

青海中小企业网站建设东莞做网站公司多少钱

青海中小企业网站建设,东莞做网站公司多少钱,html好看的颜色代码,网站的推广和宣传工作如何做0. 前言 从Android手机打开开关#xff0c;到我们可以使用其中的app时#xff0c;这个启动过程到底是怎么样的#xff1f;1. 系统上电当给Android系统上电#xff0c;在电源接通的瞬间#xff0c;CPU内的寄存器和各引脚均会被置为初始状态#xff0c;CPU复位之后#… 0. 前言  从Android手机打开开关到我们可以使用其中的app时这个启动过程到底是怎么样的 1.  系统上电当给Android系统上电在电源接通的瞬间CPU内的寄存器和各引脚均会被置为初始状态CPU复位之后程序指针会指向启动地址从该地址读取并直接运行启动程序的可执行代码或者将可执行代码与数据载入CPU内置的RAM中再运行。这一段代码放在PC中叫做BIOS而在Android等嵌入式系统中就叫做Bootloader。 2.  Bootloader引导程序通过Bootloader引导程序可以初始化硬件设备建立内存空间映射图为操作系统内核准备好环境完成整个系统的加载启动任务。 Bootloader是支持交互式操作的一般刷机中会用到的Fastboot模式就是在Bootloader启动之后根据用户输入的指令在手机上用音量键Home健等操作停留在当前状态。而正常情况下Bootloader程序执行完成之后就会开始加载Android操作系统。 3.  加载内核我们知道Android操作系统的内核其实就是Linux内核。当Bootlader引导程序启动之后就会进入Linux的内核引导阶段。该阶段会初始化内核和设备驱动接着启动内核挂载文件系统最后启动用户空间进程。 4.  Init程序Init程序是用户空间的第一个进程。它负责解析一个叫做init.rc的配置文件启动Android系统底层运行的一些服务进程。 init.rc文件定义了不同的Action和Service其格式如下//Action是以关键字on来定义的紧接着的boot是一个触发条件 //如下面的action表明当Android启动boot的时候要做些什么事情 // Action boot之后的class_start core等是Init程序在开机时会启动的服务 //这些服务包括ueventd, servicemanager, void, zygote,installd, ril-daemon等我们一般称它们为守护进程 on boot ... class_start core class_start main //Service是以关键字servie来定义的紧跟着的是其名字和其启动的文件 //如下会执行/system/bin/serviemanager文件并将其命名为servicemanager service servicemanager/system/bin/servicemanager #声明一个service,而servicemanager则是其名字 class core #optioin, 该service属于core类 usersystem $option,该service属于System用户 group System Init程序同时也会开启属性服务存放一些关于Android系统的全局系统设置信息。最后当所有的Action和Service都启动完成之后Init程序就会进入一个无限的循环监听系统中发生的事件对一些事件进行处理比如重启某些服务等。 5.  ServiceManagerServiceManager是Init程序启动的守护进程之一它是Android中Binder通信机制的基础。 ServiceManager提供了注册检索服务的功能。在Zygote子进程system_server启动的每一项服务都会将其注册到ServiceManager中由ServiceManager来统一进行管理。值得注意的是ServiceManager本身也是一个Service所以它也会将自己注册到自身上面。 而ServiceManager启动的过程做了三件事1打开Binder设备把Binder设备映射到内核空间中由于内核空间是所有进程共享的区域所以借助这块区域可以实现不同进程间资源的共享从而达到进程间通信。2ServiceManager本身会变成一个ContextManager即上面所说的注册到自己身上负责各种Service的上下文管理。3最终ServiceManager也是会进入一个无限循环。 6.  ZygoteZygote也是由Init程序启动的其中一个服务是Android中的第一个Dalvik虚拟机。在之后所有的Dalvik虚拟机都是由Zygote孵化出来的这是因为Android中每一个应用都有着自己的进程而每一个进程中都着一个Dalvik虚拟机如果每起一个应用就创建一个虚拟机效率太低而通过复制Zygote不仅可以提高创建的速度还能够共享系统和框架的资源可以大幅度提高应用程序启动的效率。 Zygote启动之后1首先会创建一个socket等待某个客户端的请求。2接着创建其第一个子进程system_server。system_server会开启Android系统的Native Service和Java Service。其中Native Service就是那些利用JNI实现的共享库而Java Service则是通过Java语言实现的ActivityManagerService等都是在这个阶段由system_server启动并注册到一个叫ServiceManager的服务进程中。ActivityManagerService启动之后会进入到一个叫System Ready的状态而在其达到System Ready的状态之前呢就会启动一个叫做Launcher的应用而这个Launcher就是Android系统启动成功之后见到的Home桌面了。而在SystemReady的状态其会跟Zygote启动之初的Socket进行通信告诉Zygote一切已经就绪。3Zygote知道已经启动成功就开始进入一个无限的循环在Socket上等待请求的到来。 至此从Android手机上电的那一刻起到加载内核到最后显示Home桌面的整个过程就结束了。7.  APK的安装过程Android系统启动的过程中会启动一个应用程序管理服务PackageManagerService系统启动的时候由SystemServer组件启动这个服务负责扫描/system/framework、/system/app、/vendor/app、/data/app、/data/app-private五个目录下的APK文件然后解析该APK中的AndroidManifest.xml以获得应用程序相关信息其中最重要的就是依据sharedUserId这个配置来让系统确定每个APK运行在哪个进程。继而为这个APK分配Linux用户ID、用户组ID以便APK在系统中可以获取到合适的运行权限、资源访问权限。最后将之前获得的权限和APK安装信息保存到本地的一个配置文件中以便下次在安装这些APK时可以将需要的APK信息很快速的恢复回来。8.  应用启动流程8.1  应用的冷热启动Android中的冷启动指当启动应用时后台没有该应用的进程这时系统会重新创建一个新的进程分配给该应用所以会先创建和初始化Application类再创建和初始化MainActivity类包括一系列的测量、布局、绘制最后显示在界面上。Android中的热启动指当启动应用时后台已有该应用的进程如按back键、home键应用虽然会退出但是该应用的进程是依然会保留在后台可进入任务列表查看热启动就不会走Application这步了。 8.2  应用的启动流程当点击app图标时系统会从Zygote进程中fork创建出一个新的进程分配给该应用之后会依次创建和初始化Application类、创建MainActivity类、加载主题样式Theme给MainActivity以及配置Activity层级上的一些属性、再inflate布局、当onCreate/onStart/onResume方法都走完了后最后才进行contentView的measure/layout/draw显示在界面上所以直到这里应用的第一次启动才算完成这时候我们看到的界面也就是所说的第一帧。总结一下应用的启动流程如下Application的构造器方法——attachBaseContext()——onCreate()——Activity的构造方法——onCreate()——配置主题中背景等属性——onStart()——onResume()——测量布局绘制显示在界面上8.3  启动时间优化可以通过adb shell命令的方式进行测量应用的启动时间adb shell am start -W [packageName]/[packageName.MainActivity]应用初始化的时候采取以下策略可减少启动时间1在Application的构造器方法、attachBaseContext()、onCreate()方法中不要进行耗时操作的初始化。2对于MainActivity由于在获取到第一帧前需要对contentView进行测量布局绘制操作尽量减少布局的层次考虑StubView的延迟加载策略当然在onCreate、onStart、onResume方法中也要避免做耗时操作。感谢http://blog.csdn.net/linmiansheng/article/details/37728903http://blog.csdn.net/u010687392/article/details/50518343http://www.2cto.com/kf/201607/528367.htmlhttp://www.jianshu.com/p/0b0d6f684580 转载于:https://www.cnblogs.com/qitian1/p/6461494.html
http://www.zqtcl.cn/news/254407/

相关文章:

  • 越南网站建设河南企业做网站
  • 优化免费网站建设做网站领券收佣金
  • 网站常用图标素材办公用品十大购物网站排名
  • 网络门户网站站长要维护网站
  • 网上有做衣服的网站有哪些做网站推广怎样才能省钱
  • 网站专题设计欣赏找网站公司做网站是怎样的流程
  • 网站上传后如何设置首页制作网络游戏
  • 外贸接单网站排名榜珠宝行网站建设方案
  • 酒店门户网站建设背景门户网站的发布特点
  • 网站营销与推广汕头澄海
  • php和asp做网站哪个好阿里云wordpress配置
  • 东莞响应式网站建设网络营销策略和营销策略的区别
  • 番禺做网站哪家强合肥网页网站制作
  • 100个免费推广网站阜阳网站建设价格低
  • 广西茶叶学会 网站建设给人做网站能赚钱吗
  • 网站建设的发展目标西湖区住房和城乡建设局网站
  • 佛山市手机网站建设网页制作教程第三版赵丰年pdf
  • 做的好的装修公司网站网页制作搜题软件
  • 网站公告栏代码铁路建设标准网站
  • 网站设计工具更好的做网站禅城技术支持骏域网站建设
  • 百度商桥可以在两个网站放网站qq 微信分享怎么做的
  • 大学生网站建设开题报告秀山网站建设
  • 网站建设的实施方案网站建设基本标准
  • 做一个推广网站多少钱360导航网址
  • 在线网站建设哪家便宜wordpress 爬取
  • 移动端网站设计规范百度一下首页问问
  • 哪些网站怎么进广西玉林网站建设
  • 高端建站设计赶集网免费发布信息
  • 两题一做的网站响应式网站开发asp
  • 做网站直接开二级域名网站怎么收录到百度