Android核心分析之AMS

Android核心分析之AMS

ID:38256421

大小:1.76 MB

页数:14页

时间:2019-06-06

Android核心分析之AMS_第1页
Android核心分析之AMS_第2页
Android核心分析之AMS_第3页
Android核心分析之AMS_第4页
Android核心分析之AMS_第5页
资源描述:

《Android核心分析之AMS》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、[原]Android核心分析之AMS2015-2-27阅读661 评论0ActivityManagerService简称AMS,是Android内核的核心功能之一,在系统启动SystemServer时启动此服务。android框架:ActivityManager的组成主要分为以下几个部分:  1.服务代理:由ActivityManagerProxy实现,用于与Server端提供的系统服务进行进程间通信 2.服务中枢:ActivityManagerNative继承自Binder并实现IActivity

2、Manager,它提供了服务接口和Binder接口的相互转化功能,并在内部存储服务代理对像,并提供了getDefault方法返回服务代理 3.Client:由ActivityManager封装一部分服务接口供Client调用。ActivityManager内部通过调用ActivityManagerNative的getDefault方法,可以得到一个ActivityManagerProxy对像的引用,进而通过该代理对像调用远程服务的方法  4.Server:由ActivityManagerServic

3、e实现,提供Server端的系统服务框架图:AMS提供的功能主要包括以下几个方面:  1。对于Android四大组件(activityservicebroadcastcontentprovider)的管理,包括启动,生命周期管理等   2.进程OOMadj以级LRUweight管理AMS主要代码位于:frameworksbasecorejavaandroidappframeworksbaseservicesjavacomandroidserveram主要目录结构如下:AMS服

4、务启动是系统启动的init2阶段,由SystemServer启动的Java系统服务之一,启动代码位于frameworksbaseservicesjavacomandroidserverSystemServer.java中AMS服务在系统启动阶段的主要工作:1.调用main方法启动AMS服务  context= ActivityManagerService.main(factoryTest);2.调用SetSystemProcess方法ActivityManagerService。se

5、tSystemProcess();3.调用installSystemProviders方法ActivityManagerService.installSystemProviders();4.调用SystemReady方法 ActivityManagerService.self().systemReadymain方法介绍:启动AThread线程,创建ActivityManagerService 创建完毕后,调用ActivityThread的systemMain方法创建ActivityThread对像调

6、用ActivityThread对像的getSystemContext方法创建Context对像,初始化ActivityStack调用AMS的startRunning方法publicstaticfinalContextmain(intfactoryTest){AThreadthr=newAThread();thr.start();synchronized(thr){while(thr.mService==null){try{thr.wait();}catch(InterruptedExceptione

7、){}}}ActivityManagerServicem=thr.mService;mSelf=m;ActivityThreadat=ActivityThread.systemMain();mSystemThread=at;Contextcontext=at.getSystemContext();context.setTheme(android.R.style.Theme_Holo);m.mContext=context;m.mFactoryTest=factoryTest;m.mIntentFir

8、ewall=newIntentFirewall(m.newIntentFirewallInterface());//CHANGEDBYMARSBEGINm.mStackSupervisor=newcom.marvell.security.MrvlActivityStackSupervisor(m,context,thr.mLooper);//CHANGEdBYMARSENDm.mBatteryStatsService.publish(context);m.mUsage

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。