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

企业网站备案申请jssdk wordpress

企业网站备案申请,jssdk wordpress,嵊州建设银行取款网站,微信端微网站怎么做现在再回顾一下Application的启动流程#xff0c;总的来说#xff0c;虽然进程的发起是由ATMS服务发起的#xff0c;但是进程的启动还是由AMS负责#xff0c;所以需要调用AMS的startProcess()接口完成进程启动流程#xff0c;AMS要处理的事情很多#xff0c;它将事务交给…现在再回顾一下Application的启动流程总的来说虽然进程的发起是由ATMS服务发起的但是进程的启动还是由AMS负责所以需要调用AMS的startProcess()接口完成进程启动流程AMS要处理的事情很多它将事务交给得力助手ProcessList去完成通过调用ProcessList的startProcessLocked()将进程的启动交给ProcessList对象去管理它类似一个数组里面存放着许多的ProcessRecord对象每个ProcessRecord对象是一个application进程的抽象保存着app进程的各种属性信息和动态数据但是新进程的创建也不是在它手上直接创建的而是由它内部的工具类Process调用ZygoteProcess的start()方法进行创建这个方法的核心功能就是组织准备进程启动所需要的一切资源打包成Argus参数消息然后通过socket发送给ZygoteServer进程ZygoteServer进程有一个runSelecpLoop()循环接收指令的处理当它接收到进程启动的消息后会将消息及其参数内容解析出来然后调用ProcessOneCommand()接口进一步处理包括fork()操作fork成功后需要关闭原Zygote的服务器socket, 以及初始化虚拟机进入nativen层注册初始化binder等这里面还会进入ZygoteConnection类中通过反射的的方法拿到ActivityThread类中的main方法成功执行main函数 这一篇文章可以来详细分析一下执行main函数的过程中又做了什么操作呢大家可以结合下面这张图进行分析 ActivityThread.java-main();AndroidOS.install();Looper.prepareMainLoop();//重要核心代码ActivityThread thread new ActivityThread(); ////之前systemserve调用attach传入的是true,这里到应用进程传入false就行thread.attach(false, startSeq);--//为什么要调用attach函数在里面会调用AMS的attachApplicaation接口final IActivityManager mgr ActivityManager.getService();//问题mAppThread是什么final ApplicationThread mAppThread new ApplicationThread();而ApplicationThread extends IApplicationThread.Stub. 所以mAppThread就是IBinder,是APP给服务端侧使用的IBinder.mgr.attachApplication(mAppThread, startSeq); //通过此接口将APP的IBinder传给AMS--ActivityManagerService.java-attachApplication():--attachApplicationLocked(thread); //此thread就是mAppThread.--thread.bindApplication(); //thread就是APP的Ibinder, 现在这个是在AMS中调用APP的IBinder,就是thread--ActivityThread.java: sendMessage(H.BIND_APPLICATION); //发送消息....会进入handleBindApplication()接收消息处理过程--Application app; //构建applicationapp data.info.makeApplication();--通过反射的方法new出来一个ApplicationnewApplication();--Application app getFactory().instantiateApplication(cl,className);app.attach(context);--application.java-attach():--attachBaseContext(context); //执行application的生命周期之前先执行attachBaseContext这个接口--installContentProviders(); //启动安装provider组件启动provider的生命周期为app运行操作数据库做准备。--installProviders(); //安装provider对其初始化mInstrumentation.callApplicationOnCreate(app);--app.onCreate();//执行Application的onCreate生命周期意味着application已经启动了。ProcessRecord app; //这个就是代表着一个进程。ProcessRecord就等价于Application进程这个进程在framework层的抽象就是ProcessRecord--ProcessRecord里面有一个IApplicationThread thread对象app mPidsSelfLocked.get(pid);//将mAppThread存入ProcessRecord中的IApplicationThread对象中就是IBinder。app.makeActive(thread, mProcessState); //这个thread就是上面的mAppThread.--...thread _thread; //(_thread是参数实参就是mAppThread,应用的IBinder, 这里的thread就是ProcessRecord内的IApplicationThread对象)mProcessList.updateLruProcessLocked(); //把app对应的processRecord给它添加到ProcessList列表中。--mLruProcesses.add(pos, app); //这个ProcessList给AMS使用AMS通过持有ProcessList间接访问ProcessRecord.//最终层层调用到ActivityStackSupervisormAtmInternal.attachApplication(); //mAtmInternal是ActivityTaskManagerInternal--mRootWindowContainer.attachApplication(wpc);//RootWindowContainer.java的一个实 例 --RootWindowContainer::startActivityForAttachedApplicationIfNeeded();//开始activity的生命周期--mStackSupervisor.realStartActivityLocked(r,app,...); //执行activity生命周期流程。Looper.loop();//一直循环保障进程一直执行如果退出说明程序关闭 知识点AMS-持有ProcessList列表每个列表是ProcessRecord对象每一个ProcessRecord对象内持有一个IApplicationThread对象它就是IBinder,也就是说AMS要与某一个APP通信通过这个路线:AMS-ProcessList-ProcessRecord-IAPPlicationThread拿到IBinder然后调Application的服务然后就是可以执行APP的生命周期流程。简化之就是AMS-...-IApplicationThread. application启动时会通过AMS的IBinder远程调用ApplicationThread的BindApplication(),在创建App的时候先创建Application对象然后再进行installProvider等后续的处理处理的过程主要做两件事一个是创建ProcessRecord并登录在ProcessList中然后是开始执行ActivityStackSupervisor的realStartActivityLocked方法开启activity生命周期流程的执行
http://www.w-s-a.com/news/493684/

相关文章:

  • 工业网站素材重庆关键词自动排名
  • 拖拽式网站建设费用微网站怎么做的好名字
  • 长沙电信网站备案谷歌推广怎么做最有效
  • 网站建设与管理总结报告华为开发者联盟
  • 门诊部网站建设天空建筑网站
  • 扬州市城乡建设网站高端品牌鞋子有哪些牌子
  • 杭州网站建设招聘网长沙网络销售公司
  • 网站制作一年多少钱免费做电子章网站
  • 信誉好的营销网站建设徐州市铜山新区建设局网站
  • 建行网站关于我们山西seo和网络推广
  • 1m带宽做网站怎么样深圳网站建设制作开发公司
  • 网站建设 服务内容 费用郴州网站建设公司哪里有
  • 网站关键词重要性育才网站建设
  • 网络安全形势下怎么建设学校网站wordpress最新主题下载
  • 自己建设网站需要什么条件.gs域名做网站怎么样
  • 网上做公益的网站推广手机卡返佣平台
  • 网站是公司域名是个人可以南京建设银行官方网站
  • 做互联网网站的会抓百度网盟推广 网站
  • 商务网站开发设计结论微信报名小程序怎么制作
  • 网站建设销售简历wordpress七比2
  • 制作网站报价工程项目查询哪个网站
  • 深圳移动网站建设制作公司网站建设的认识
  • 网站建设脚本语言有哪些想开网店哪个平台好
  • 视频网站用什么做的好深圳的小程序开发公司
  • 南京网站定制开发商城网站免费模板
  • 青海学会网站建设公司照片组合拼图
  • 中国建设银行福清分行网站爱站网权重查询
  • 外贸通网站建设网站建设7个主要流程图
  • 元气森林网络营销方式医疗网站优化怎么做
  • 手机网站制作报价表做网站公司做网站公司