2014年Android基础知识和开发4748891.pptVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二步 Zygote Servicemanager和zygote进程就奠定了Android的基础。Zygote这个进程起来才会建立起真正的Android运行空间,初始化建立的Service都是Navtive service.在.rc脚本文件中zygote的描述: service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server 所以Zygote从main(…)@frameworks/base/cmds/app_main.cpp开始 (1) main(…)@frameworks/base/cmds/app_main.cpp建立Java Runtime runtime.start(com.android.internal.os.ZygoteInit, startSystemServer); (2) runtime.start@AndroidRuntime.cpp 建立虚拟机通过运行:com.android.internal.os.ZygoteInit:main函数。 * (3)main()@com.android.internal.os.ZygoteInit//正真的Zygote。 代码位置在frameworks/base/core/java/com/android/internal/os/ zygoteInit.java,内部调用下面语句。 registerZygoteSocket();//登记Listen端口 startSystemServer(); 这样进入Zygote服务框架。 经过这几个步骤,Zygote就建立好了,利用Socket通讯,接收ActivityManangerService的请求,Fork应用程序。 * 第三步 System Server(frameworks/base/services/java/com/android/server/systemserver.java) startSystemServer@com.android.internal.os.ZygoteInit在Zygote上fork了一个进程: com.android.server.SystemServer.于是 SystemServer@(SystemServer.java)就建立了。Android的所有服务循 环框架都是建立 SystemServer@(SystemServer.java)上。在 SystemServer.java中看不到循环结构,只是可以看到建立了init2的实现 函数,建立了一大堆服务,并AddService到service Manager。 main() @ com/android/server/SystemServer { init1(); } Init1()是在Native空间实现的(frameworks\base\services\jni\com_andoird_server_systemServer.cpp)。我们一看这个函数就知道了,init1-system_init() @System_init.cpp * 在system_init()我们看到了循环闭合管理框架。 { Call com/android/server/SystemServer, init2 ... ProcessState::self()-startThreadPool(); IPCThreadState::self()-joinThreadPool(); } init2()@SystemServer.java中建立了Android中所有要用到的服务。 这个init2()建立了一个线程,来New Service和 AddService来建立服 务 * * AJFJDSHFDHGKHFKLGHSKHGLKDHGJHLKSHDGJLSHLGDHSLHG * 概述 Android系统是基于Linux内核的手机操作系统平台,要深入系统的学习Android,不仅仅是有Java和Android应用开发,必须要具备Linux,C/C++高级编程才能深入的涉及Android Framework和Android内核开发。 * * Applications Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的,它们的源代码是开放的,代码存放的位置在android_root/packages/apps。更加丰富的应用程序有待我们去开发! * Application Fra

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档