现在的位置: 首页 > 综合 > 正文

Android系统学习1

2013年02月08日 ⁄ 综合 ⁄ 共 1555字 ⁄ 字号 评论关闭

    一直使用delphi,从大学到工作,一直依靠控件,当现在控件越来越少的时候发现自己

像刚毕业的学生,什么都不会,从两条路选择,一个是从头学delphi,要么继续用控件,从

头学就要从最开始的底层学习,消息啊,线程啊,流的,等等可是delphi的路现在是越走

越窄,一般的公司也都是停留在维护阶段了,既然要下决心从头学起,那么为什么不学一

个新的技术呢,那么就学自己喜欢的移动设备吧,Android可是个好东西,开源,免费,

从现在开始记录学习过程吧。

Android从系统架构

   Android从系统架构上来说总共分为五个层,依次是应用程序层,应用程序框架层,系统运

        行库层,Linux内核层。

  1、应用程序层  

                             一些基本的功能就在这个里,比如主界面,短信,日历,地图等等,他需要

                               应用程度框架层的支持也可以使用JAVA通过JNI方式,那么什么是JNI呢,

                              JNI(java Native Interface) java的本地调用,百度是这么说的估计是为了调用

                              底层的C/C++语言,谁让JAVA太高层了呢。

 2、应用程序框架层 

                              这个层就为了开发人员写应用程序所使用的API框架,封装了大多数的功能,

                             比如活动管理器,窗口管理器视图系统等等,硬件的就有电话拨打,地图服务,

                             蓝牙,USB,传感器等等

3、系统运行库层   

                          这层就比较底层了,分为两部分,一个呢程序库,为应用程序框架层提供服务,

                           比如什么数据库,2D3D的图形引擎图片和字体的显示,浏览器的支持等等,

                            另一个就是运行时库,分为核心库和虚拟机,培训的时候说在电脑上为了适应

                             跨平台而产生了虚机机,到手机上就从底层支持了JAVA,支持是支持了,

                            怎么还存在虚机机,反正这里是不太了解了。

4、Linux层  如内存管理,进程,驱动模块,网络栈,都在这里,存在于软件和硬件之间,

                           硬件时钟,内存分配,Kernel调试,日志,电源管理

                              金山电源管理那软件是不是就在这里写的?IPC机制(进程间通信)

Android初始化流程

       1、开机 - Linux Kernel - Init                            

        2、初始化后呢会产生两个进程,一个是守护进程,一个是Zygote进程,感觉像一个是管理硬件的,一个是管理软件的

        3、守护进程会开启四个守护进程,1、USB守护进程,2、Android Debug Bridge守护进程来管理ADB连接,

                                                                      3、Debug守护进程,4、无线接口守护进程

        4、Zygote会初始化一个Dalvik虚拟机实例,装载监听,管理应用程序的进程

        5、然后初始化Runtime进程,有两个操作,初始化服务管理器和注册服务管理器,然后发送一个请求到Zygote,开启系统

              服务,那边就建立了个虚拟机的实例,开启系统服务

        6、以后的事好像就是从虚拟机开始了,启动原生系统服务,SurfaceFlinger和AudioFlinger注册到服务管理器作为IPC服务的目标

        7、系统服务将启动android管理服务,都被注册到服务器管理器上

        8、最后所有服务都处于等待状态,等待程序运行。

 

今天到这里,再学再写。

主要就是Android的系统结构和初始化流程。

抱歉!评论已关闭.