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

网站制作维护价格百度提交

网站制作维护价格,百度提交,品牌建设论文怎么写,国外有没有网站是做潘多拉的AMS是什么? AMS管理着activity,Service, Provide, BroadcastReceiver android10后:出现ATMS,ActivityTaskManagerService:ATMS是从AMS中抽出来,单独管理着原来AMS中的Activity组件 。 现在我们对AMS的分析,也就包含对…
  • AMS是什么?

AMS管理着activity,Service, Provide, BroadcastReceiver
android10后:出现ATMS,ActivityTaskManagerService:ATMS是从AMS中抽出来,单独管理着原来AMS中的Activity组件 。
现在我们对AMS的分析,也就包含对ATMS的分析了。

  • AMS如何被别人管理?---被SystemServer的SystemServiceManager所管理
  • AMS如何被人使用?  ---通过将自己的Binder对象公布给ServiceManager,供APP使用
  • AMS如何启动? ----通过SystemServer中的SystemServiceManager的startService进行启动

这些涉及到SystemServer进程,专用门于管理AMS等各种服务的。

SystemServer.java->main():startBootStrap();//启动atms.-->atm = mSystemServiceManager.startService(ActivityTaskManagerService.LiftCycle.className).getService();

SystemServer->借助SystemServiceManager辅助类来管理90个多Services,所以不同的Services均需要封装成统一的父类即SystemService,这样一来方便让SystemServiceManager对它们进行统一管理 。(具体细节可以查看安卓启动流程关于SystemServer启动运行部分)
 

AMS、ATMS是给Application使用的, 怎么给Application使用的。通过Binder给到Application使用,我们需要将这些ATMS\AMS等服务的Binder注册进ServiceManager. Application要使用它们的时候,会去公共的ServiceManager中去查找对应的ATMS或AMS的binder,通过他们提供的Binder接口来使用这些服务的。为了完成这些服务,所以这些在SystemServer中的Service在进行类定义时必须将自己extends 成IBinder(Stub类),这样他们才能把自己的服务公布到ServiceManager中。

然后SystemServiceManager如何管理这些Services呢?是通过SystemService这个类(即LifeCycle)中的统一的接口如start(), stop(),restart()等
去间接管理各类Service.

  • 补充:关于类结构设计启发:

如果需要让一个类继承多个父类时,java语言做不到,怎么办?
解决办法:可以在类里面创建一个内部类(LiftCycle),内部类去继承需要的父类SystemService,在这个内部类里面与我们的外部类(ATMS)结合来完成所有的功能。

  • 下面聊聊AMS的职责:

以ATMS为例,ATMS的onStart()服务做了以下动作:

publishBinderService();//公布服务
mService.start();//调用atms服务的start接口。-->atms在这个接口中只做一件事://将ATMS自已添加到LocalServices中,这个比较重要,除了让别人使用ATMS这个服务之外,//SystemServer进程自己有时也需要获取使用这些服务,所以需要添加到LocalServices中。LocalServices.addService(); 

上面的逻辑可以看出ATMS启动的时候没做什么事情。

  • 下面看看AMS启动:
ActivityManagerService.java->start():mProcessCpuThread.start(); //cpu监控线程mBatteryStatsService.publish(); //注册 电池状态及权限管理

SystemServer在启动完AMS后,会通过AMS启动电池管理等各种处理,AMS要做的任务太多了
如下所示:

mAMS->initPowerManagement();
mAMS->setSystemProcess(); //为app进程安排后期的各种进程的监控。
  -->注册Activity至AMS内的ServiceManager类中
     注册服务的ProcStats,进程状态
     注册服务的meminfo,内存信息
     注册服务的gfxinfo,图像信息
     注册服务的dbinfo,数据库信息
     注册服务的cpuinfo,cpu信息
     注册服务的processinfo,进程信息等,还有缓存,权限等

以上工作是为了后期可以通过adb命令去收集这些信息,adb去调用dump接口(),
把这些关键的信息收集起来。因此AMS要做非常多的事情,所以将ATMS(只管理Activity部分)剥离出去。

 

http://www.hengruixuexiao.com/news/15573.html

相关文章:

  • 淮阴区建设局网站球队世界排名榜
  • 装饰网站设计模板下载品牌营销包括哪些方面
  • 学做静态网站百度网络营销中心
  • 网站开发人员工资计入无形资产2021友情链接qq群
  • 机械网站建设中心关键词站长工具
  • 做国际网站一般做什么风格关键词排名提高方法
  • 电力网站怎么做网站 seo
  • php怎么做直播网站百度网盘客服电话人工服务
  • 已经有网站怎么做淘宝客百度搜索风云榜游戏
  • 网站设置的用途推广普通话的重要意义
  • 全球网站排名前十营销型网站的公司
  • 如何查询关键词的搜索量seo营销专员
  • wordpress系统速度慢seo推广需要多少钱
  • 自己做网站背景图片百度风云榜官网
  • 浦口区网站建设技术指导域名邮箱 400电话
  • 深圳网站建设黄浦网络-骗钱链接生成器在线制作
  • 中山建网站互联网全网推广
  • 网站开发和移动开发线上线下整合营销方案
  • 景区网站怎么做的百度网站的网址是什么
  • 做网站哪个公司头条新闻
  • 仿照别的网站做我的百度网盘登录入口
  • seo做的比较好的网站的几个特征开封网络推广公司
  • 上海模板建站多少钱网络广告策划方案范文
  • 做qq主题的网站搜狗站长平台主动提交
  • 建设厅副厅长百度seo推广工具
  • 自己怎么做网站模块中国网新山东
  • 网站建设规划书费用预算昆明seo推广外包
  • php做的网站模板下载地址seo优化资源
  • 广东门户网站建设手机百度网页版入口
  • 做推广网站有什么浅议网络营销论文