【Android源码 栏目提醒】:网学会员在Android源码 频道为大家收集整理了“手机安卓Android系统概述 - 电子电信“提供大家参考,希望对大家有所帮助!
AndroidWelcome everybody! 陈 逢 Agenda
Android简介 系统框架介绍 系统启动分析 APP开发平台搭建 Emulator 演示 Agenda
Android简介 系统框架介绍 系统启动分析 APP开发平台搭建 Emulator 演示 引入
Android印象(一):海信之
Android 引入
Android印象(二) 引入
Android印象(三) 美国旧金山时间2010年5月19日上午10点30分,万众瞩 目的Google I/O大会正式开幕 Google TV 亮相
Android概念 What ? 机器人?
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端(电视)打造的真正开放和完整的移动软件。
它采用了软件堆层software stack,又名软件叠层的架构,主要分为三部分:底层以Linux核心为基础,由c语言开发,只提供基本功能。
中间层包括函数库Library和虚拟机Virtual Machine,由C开发。
最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以java编写。
Android 特点 特性 应用程序框架 支持组件的复用和更换 Dalvik 虚拟机 专门为移动设备进行过优化 集成的浏览器 基于开源的 WebKit 引擎 ,TV上会内置Chrome 浏览器 优化的图形机制 自定义的2D图形库,基于OpenGL ES 1.0规范的 3D图形实现(本项为硬件加速器可选) SQLite 轻量级的数据库,支持结构化数据的存储 媒体支持 面向常见的音频、视频以及静态图形档案格式 MPEG4 H.264 MP3 AAC AMR JPG PNG GIF GSM 技术 GSM:global system for mobile communications 依 赖硬件支持 Bluetooth EDGE 3G and WiFi 依赖硬件支持 Camera GPS compass and accelerometer 依赖硬件支持 Rich development environment 丰富的开发环境,包含一套 硬件仿真器,一些用于程序调试、内存和性能剖析的工具,以及 支持Eclipse集成开发环境的插件(ADT )。
Agenda
Android简介 系统框架介绍 系统启动分析 APP开发平台搭建 Emulator 演示Framework 文件呈现形式 各个层的呈现形式,Zygote是Linux依据init.rc 产生的第一个Process Framework ---Application Applications 应用
Android将预装一组核心应用程序,包括 email客户端、短信服务、日历日程、地图 服务、浏览器、联系人和其他应用程序。
所有应用程序都是Java编程语言编写的。
Framework --- Application Frameworks (一) Application Frameworks 应用框架 上文所提的核心应用程序就是依赖框架层次API开发的,程序员们 当然也可以充分使用这些API。
应用架构设计的初衷是:简化组件 复用机制;任何应用都能发布自己的功能,这些功能又可以被任 何其他应用使用(当然要受来自框架的强制安全规范的约束)。
和复用机制相同,框架允许组件的更换。
所有应用都是一组服务和系统,一般包含: 一套丰富且可扩展的视图 组件,含有lists grids text boxes buttons 甚至嵌入的网络浏览器 Content Providers (内容提供器) 使一个应用可以访问另外一个 应用的数据(如联系人),或者使一个应用内部可以共享自身数 据 Resource Manager (资源管理器),提供对非编码资源——例如 本地化字符串、图形和布局文件——的访问通道 Notification Manager (通告管理器),使应用在状态栏显示自定 义的警报通知。
Activity Manager (行动管理器)负责管理应用的生命周期,提供 通用导航回退支持MVC(Moudle---View---Control) Framework --- Application Frameworks (二) 应用框架是:某特定应用领域Domain中,程式间的共同 结构。
让该领域中的程式师们,依共同结构开发程序, 使程序间具有一致性,增加程序的清晰,以低程序 的设计与维护费用。
所谓「共同结构」,包括通用的类别、物件、函数, 及其间的稳定关系。
由于框架是通用的,大家能共享 Share 之,增加工作效,提升软体师的生产 Productivity。
拿个简单子说吧!以下两图,抽象 下? Framework --- Application Frameworks (三)☆抽象——从相似的事物中,抽离出其共同点,得到抽象框架。
☆衍生——以抽象框架为基础,添加些功能,成为具体事物。
☆一群抽象类别,类别内有函数,函数内有指,但有些函数内的指令 从缺,预给应用程式师补充之。
☆ 抽象类别间之稳定关系。
public myFunction int x abs y …… abs是您已很熟悉的库存函数,它诞生在先,是前辈;您的程序晚辈诞生在后,是晚辈。
这是传统呼叫法:晚辈呼叫前辈。
一般类别库Class Library含有现成的类别,这些类别含有函数,可供新类别的函数呼叫之。
如,先有个Person 父类别如下:public class Person private String namepublic void SetNameString na name na public void Display System.out.printlnName: name 接着,您可以写个子类别Customer 去继承它,并且调用它的函数,如下:public class Customer extends Person public void Init super.SetName“Tom” public void Show super.Display 上述的Init呼叫晚辈SetName函数。
或者,写个JMain 类别:public class JMain private ppublic void Init p new Customerp.SetName“Tom”public void Show p.Display // Shape.java // JMain.javapackage _framework import .//导入包public class Shape class JP extends JPanel public void Paint this.Draw public void paintComponentGraphicspublic abstract void Draw gr super.paintComponentsgr// Circle.java Circle cir new Circlegrpackage _objects cir.SetValue160 100 45import java.awt.Color Shape sp cirimport java.awt.Graphics sp.Paintimport _framework. public class Circle extends Shape public class JMain extends JFrame private Graphics m_gr public JMain setTitleprivate int x y radius setSize400 300 public CircleGraphics gr m_gr gr public static void mainString argspublic void SetValueint x0 int y0 int rad JMain frm new JMainx x0 y y0 JP panel new JPradius rad frm.addpanel frm.setDefaultCloseOperationJFramepublic void Draw XIT_ON_CLOSE//画圆 frm.setVisibletruem_gr.setColorColor.BLACK m_gr.drawOvalx-radius y-radius 2radius 2radius Framework Libraries 库 --- LibrariesAndroid包含一套C/C库,
Android系统的各式组件都在使用。
这些功能通过
Android应用框架暴露给开发人员。
下面列举一 些核心库: System C library - 衍生于BSD的标准C系统库(libc)实现注:BSD: Berkeley Software Distribution,伯克利软件套件是Unix的衍生系统,1970年代 由伯克利加州大学开创,尤其支持嵌入式的基于Linux的设备。
Media Libraries - 媒体库基于PacketVideos OpenCORE;媒体库支持很 多流行音频和视频格式、静态图形文件(包括MPEG4 H.264 MP3 AAC AMR JPG and PNG )的播放和录制 Surface Manager - 管理范围:对子系统显示功能的访问,跨应用的无缝 组合2D和2D图形层 LibWebCore - 是流行的浏览器引擎,可以支持
Android浏览器和嵌入应用 的WEB视图组件 SGL - 底层的2D图形引擎 3D libraries - 该类库使用硬件3D加速器(如果硬件支持的话)或者内置 的、高度优化的3D软件加速机制。
FreeType - 支持位图和矢量字体 SQLite - 能干、轻量级的关系型数据库引擎,面向所有应用 Framework ---
Android Runtime
Android Runtime
Android运行时
Android的核心类库提供Java类库所提供的绝大部分功 能。
每个
Android应用都运行在自己的进程上,享有Dalvik虚 拟机为它分配的专有实例。
为了支持多个虚拟机在同一个 设备上高效运行,Dalvik被改写过。
与Java虚拟机 Dalvik虚拟机执行的是Dalvik格式的可执行文件 (.dex)——该格式经过优化,以降低内存耗用到最低。
Java编译器将Java源文件转为class文件,class文件又被 内置的dx工具转化为dex格式文件,这种文件在Dalvik虚 拟机上注册并运行。
在一些底层功能——比如线程和低内存管理方面,Dalvik 虚拟机是依赖Linux内核的。
Framework --- Linux Kernel Linux Kernel Linux内核
Android依赖Linux 2.6版,提供核心系统服 务:安全、内存管理、进程管理、网络 组、驱动模型。
内核部分还相当于一个介 于硬件层和系统中其他软件组之间的一个 抽象层次。