Android介绍

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 所有的应用程序其实是一组服务和系统,包括:
• 视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用程 序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器
• 内容提供者(Content Providers)——使应用程序能访问其他应用程 序(如通讯录)的数据,或共享自己的数据
Application Framework
P.9
• 通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的 应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行 后台服务、设置闹钟、向状态栏添加通知等等,很多很多。
• 开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系 结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他 应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机 制允许用户替换组件。
• Dalvik虚拟机依赖于Linux 内核提供基本功能,如线程和底层内存 管理。
Libraries
P.8
• Android包含一个C/C++库的集合,供Android系统的各个组件使用。这 些功能通过Android的应用程序框架(application framework)暴露给开 发者。下面列出一些核心库:
• Android概述
What is Android?
P.4
• Android一词的本义指“机器人”,同时也是 Google于2007年11月5日宣布的基于Linux平 台的开源手机操作系统的名称,该平台由操作 系统、中间件、用户界面和应用软件组成,号 称是首个为移动终端打造的真正开放和完整的 移动软件。
Android Runtime
P.7
• Android包含一个核心库的集合,提供大部分在Java编程语言核 心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中 的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一 个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格 式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存 和处理器速度有限的系统。
• 大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于 寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更 多指令,而基于寄存器的机器指令更大。dx 是一套工具,可以将 Java .class 转换成 .dex 格式。一个dex文件通常会有多个.class。 由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以 ODEX结尾。
Linux Kernel
P.6
• Android基于Linux 2.6提供核心系统服务,例如:安全、 内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体 硬件细节而为上层提供统一的服务。
• 分层的好处就是使用下层提供的服务而为上层提供统 一的服Байду номын сангаас,屏蔽本层及以下层的差异,当本层及以下 层发生了变化不会影响到上层。也就是说各层各尽其 职,各层提供固定的SAP(Service Access Point), 专业点可以说是高内聚、低耦合。
• LibWebCore——新式的Web浏览器引擎,驱动Android 浏览器和内嵌的 web视图
• SGL——基本的2D图形引擎
• 3D库——基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包含 高度优化的3D软件光栅
• FreeType ——位图和矢量字体渲染
• SQLite ——所有应用程序都可以使用的强大而轻量级的关系数据库引擎
• Dalvik 和标准Java 虚拟机(JVM)首要差别:Dalvik 基于寄存器,而 JVM 基于栈。 基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。
• Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的 时候所有程序都被关闭。 – 1:Dalvik主要是完成对象生命周期管理,堆栈管理,线程管理,安全和异常 管理,以及垃圾回收等等重要功能。 – 2:Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一 个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。 – 3:不同于Java虚拟机运行java字节码,Dalvik虚拟机运行的是其专有的文件 格式Dex – 4:dex文件格式可以减少整体文件尺寸,提高I/o操作的类查找速度。 – 5:odex是为了在运行过程中进一步提高性能,对dex文件的进一步优化。 – 6:所有的Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的 依赖操作系统的线程调度和管理机制 – 7:有一个特殊的虚拟机进程Zygote,他是虚拟机实例的孵化器。它在系统启 动的时候就会产生,它会完成虚拟机的初始化,库的加载,预制类库和初始 化的操作。如果系统需要一个新的虚拟机实例,它会迅速复制自身,以最快 的数据提供给系统。对于一些只读的系统库,所有虚拟机实例都和Zygote共 享一块内存区域。
P.21
• Android Tools
» Aapt » Adb » Ddms » Monkey » Mksdcard
Tools-aapt
P.22
• aapt即Android Asset Packaging Tool , 在SDK的tools/目录下. 该工具可 以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk). 也可将资源文件编 译成二进制文件.
OpenGL
P.19
• OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、 跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL 是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。
• Android采用的是OpenGL ES. OpenGL ES是一套专门为手持和嵌入式 系统设计的3D引擎API.
• XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。 而HTML是用来定义数据的,重在数据的显示模式。
• XML与数据库不同,数据库提供了更强有力的数据存储和分析能力,例 如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。
SQLite
P.18
• SQLite,是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已 经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备 中,可能只需要几百K的内存就够了。 – 轻量级:使用SQLite只需要一个动态库就可以使用他的全部功能. – 独立性:SQLite数据库的核心引擎不需要依赖第三方软件. – 隔离性: SQLite数据库中所有的信息(比如表,图,触发器等)都包含在一 个文件夹内,方便管理和维护. – 跨平台: SQLite目前支持大部分操作系统. – 多语言接口: SQLite数据库支持多语言编程接口. – 安全性: SQLite数据库通过数据库级上的独占性和共享锁来实现独立 事务处理,这意味着多个进程可以在同一个时间从同一数据库读取数 据,但只能有一个可以写入数据.
FreeType
P.20
• FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎, 它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持单色位图、反 走样位图的渲染。FreeType库是高度模块化的程序库,使用ANSI C开发。 因此,FreeType的用户可以灵活地对它进行裁剪。
• 尽管你可能没有直接使用过aapt工具, 但是build scripts和IDE插件会使用 这个工具打包apk文件构成一个Android 应用程序.
• 查看apk文件时建议最好直接用winrar等程序来更方便。
Tools-adb
P.23
• ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个 工具可以直接操作管理android模拟器或者真实的andriod设备,它的主要 功能有: – 运行设备的shell(命令行) – 管理模拟器或设备的端口映射 – 计算机和设备之间上传/下载文件 – 将本地apk软件安装至模拟器或android设备
Applications
P.10
• Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、 日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编 程语言写的。更加丰富的应用程序有待我们去开发!
• 从上面我们知道Android的架构是分层的,非常清晰,分工很明确。 Android本身是一套软件堆叠(Software Stack),或称为「软件叠层架 构」,叠层主要分成三层:操作系统、中间件、应用程序。从上面我们 也看到了开源的力量,一个个熟悉的开源软件在这里贡献了自己的一份 力量。
XML
P.17
• XML(Extensible Markup Language)即可扩展标记语言,它与HTML 一样,都是SGML(Standard Generalized Markup Language,标准通用标 记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处 理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存 储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方 式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML 极其简单易于掌握和使用。
• 资源管理器(Resource Manager)——提供访问非代码资源,如本地 化字符串、图形和布局文件
• 通知管理器(Notification Manager)——使所有的应用程序能够在状 态栏显示自定义警告
• 活动管理器(Activity Manager)——管理应用程序生命周期,提供通用 的导航回退功能
P.11
P.12
• Android开发环境
Android开发环境
P.13
• Windows下的应用开发环境主要要安装以下几个: – JDK 1.6 – Android SDK 1.6 – Eclipse IDE – Android SDK setup
P.14
• Android相关技术
» Vitual Machine » XML » SQLite » OpenGL » FreeType
Dalvik VM&JAVA VM
P.16
• Dalvik是Google公司设计用于Android平台的Java虚拟机。它可以支持已转换 为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为 Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
• 系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux 设备
• 媒体库——基于PacketVideo的OpenCORE。这些库支持播放和录制许 多流行的音频和视频格式,以及静态图像文件,包括MPEG4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG
• 界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和三 维图形层
• Android主要分成三部分:底层以Linux内核工 作为基础,由C语言开发,只提供基本功能; 中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。最上层是各种应用软 件,包括通话程序,短信程序等,应用软件则 由各公司自行开发,以Java作为编写程序的一 部分。
P.5
Android介绍
Android开发环境、工具介绍
Lenovo Mobile Confidential © 2009 Lenovo Mobile
联想移动TD研发部
Outline
P.2
• Android是什么 • Android怎么开始 • Android相关技术 • Android Tools
P.3
相关文档
最新文档