全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1基础简介1.1Android是什么? Android是一款为移动设备构建的软件堆栈,包括操作系统,中间件和主要的应用程序。Android SDK提供了必要的工具和API使你可以通过java来开发Android的应用程序。1.1.1特点l 应用程序框架 使组件可被重用和替换l Dalvik虚拟机专门为移动设备做了优化 l 内置浏览器基于开源的WebKit引擎l 优化的图像处理提供自定义的2D图像处理库,3D的图像处理基于OpenGL ES 1.0规范(硬件可加速)l SQLite结构化数据库l 媒体支持常见的视频,音频和静止的图片格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF )l GSM电话依赖于硬件l 蓝牙,EDGE,3G和WIFI(依赖于硬件)l 摄像头,GPS,指南针和加速计(依赖于硬件)l 丰富的开发环境包括模拟器,调试工具,内存与性能分析工具,和为Eclipse提供的插件 1.1.2架构下图列出了Android系统的主要组成部分。每个组成部分都会在下面详细介绍。应用层: 同Android一起发布的还有一系列的核心应用程序包括Emial客户端,短信程序,日历,地图,浏览器,联系人等。所有的这些程序都是用JAVA语言开发的。应用框架层: Android开发平台的开放性使开发者可以创造极为丰富和有创造力的应用。开发人员可以自由的使用硬件设备带来的便利,访问位置信息,运行后台服务,设置闹钟,在状态栏添加通知,等等。开发者和系统核心应用程序一样,可以调用所有的应用程序框架API。应用程序框架旨在简化组件的重用;每个应用程序发布的功能都可以被其他的程序使用(这同时要受限于框架的安全约束)。同样该机制允许组件被用户替换。所有应用程序都是由一系列的服务和系统构成的,包括:l 用来构建程序的丰富,可扩展的界面,包括List,Grids,输入框,按钮,甚至一个可嵌入的浏览器。l Content Providers 提供程序间的数据访问;访问其他程序(通讯录)的数据或者共享自己的数据;l Resource Manager 提供访问本地字符串,图片和布局文件等非编码资源;l Notification Manager 程序可以通过通知管理器在状态栏显示自定义的提示l Activity Manager 负责管理应用程序的生命周期,并提供一个通用的Backstack(返回栈)导航更多的详情和程序演示,请查看NotePade 教程。系统库: Android包含了一套不同的系统组件需要调用的C/C+的库。这些功能(库里实现的功能)通过应用程序框架提供给开发人员使用。下面列出了一部分的核心库:l 系统C库 - 标准的C 系统库(libc)的一个BSD衍生实现,为嵌入式的Linux基础设备做了调整;l 媒体库 - 基于PacketVideo的OpenCORE;该库支持多种常用视频音乐格式的播放,录音;也支持静态的图片格式包括MPEG4,H.264,MP3,AAC,AMR,JPG和PNG;l Surfac管理器 - 管理多个程序访问显示子系统和2D与3D图形层的无缝结合l LibWebCore - 一个新式的网页浏览器引擎,他不仅提供了Android的浏览器还提供了一个可嵌入的WebView;l SGL - 基于2D图形的引擎l 3D库 - 基于OpenGL ES1.0APIs 实现;该库不仅允许3D的硬件加速还支持高度优化的3D软件光栅;l FreeType - 提供点阵字和矢量字的渲染;l SQLite - 为所有应用程序提供了一个强大的轻量级的关系数据库引擎Android运行时:Android包含了一套的Core Lib 用来保证大部分的Java语言中的Core Lib的功能在Android里面可以使用;每个Android应用程序都运行在自己独有的进程中,并且每个应用都会有一个Dalvik虚拟机的实例。Dalvik被设计成在一个设备中可以有效的运行多个虚拟机实例。Dalvik虚拟机执行的可执行文件(.dex)已经优化到可以占用最小的内存空间。Dalvik虚拟机是基于寄存器的,他可以运行的不是由JAVA编译器编译的.class文件而是已经被dx工具转化为.dex格式的文件。Dalvik虚拟机的基本功能比如线程,低级别的内存管理等需要依赖于Linux内核。Linux内核Android的主要系统服务像安全,内存管理,进程管理,网络协议和驱动模型等依赖于Linux2.6。Linux内核在硬件和软件堆栈中扮演着抽象层的作用。2应用程序基础Android的应用程序是由JAVA语言编写的。Android SDK工具将代码和所有的数据,资源文件一起编译到一个后缀名为 .apk 的Android安装包里面。.apk文件中的所有代码都被认为是一个应用程序,Android设备也是用该文件来安装应用程序。每个被安装到手机上的Android应用程序都会运行在他自己的安全沙盒中:l Android操作系统是一个多用户的Linux系统,每个应用程序都以不同的用户存在于系统中;l 默认情况下,系统会为每个应用程序分配一个独一无二的Linux用户ID(ID只会被系统使用,应用程序不知道此ID)。系统会为应用程序中的所有文件设置权限,以此来保证只有也被赋予相同用户ID的程序可以访问它们;l 每个进程都有它自己的虚拟机,所以应用程序的代码运行在一个和其他程序隔离的环境中;l 默认情况下,每个应用程序都运行在它自己的Linux进程中。当应用程序的组件需要被执行的时候,Android系统启动该进程;当该进程不需要或者系统必须为其他的程序回收内存的时候,Android系统杀死该进程。这样一来,Android系统遵循这最小特权的原理。默认情况下每个应用程序只可以访问他正常运行时需要的部分,其他部分访问不了。这就创造了一个安全的环境,在这种环境中应用程序不可以访问没有被授权的部分系统文件或者功能。但是,有一种方法可以使数据在应用程序间共享,或者应用程序可以访问系统提供的服务:l 可以让两个不同的程序共享同一个Linux用户ID,在这种情况下它们可以访问对方的文件。为了节省系统的资源,拥有相同用户ID的程序也可以被放在一个共同的Linux进程中运行,并且共享着同一个虚拟机(应用程序必须使用相同的证书进行签名);l 应用程序也可以请求访问系统数据的权限,比如用户的联系人,SMS信息,SD卡,照相机,蓝牙等等。所有的这些权限必须在用户安装的时候授予。上面的这些涵盖的基础知识是关于Android应用程序如何在系统中存在。余下的章节将向您介绍:l 使用系统组件定义你的应用程序l 在manifest文件中为你的程序声明组件和请求系统特性l 资源文件和程序的代码时分开的,这就可以让你的程序在不同设备上优美的优化它的功能。应用程序组件 应用程序组件是Android程序的重要组成部分。每个组件都是系统进入你的程序的接口(Point)。不是所有的组件都是用户的入口,或者相互依赖程序进入彼此的入口,但是每一个组件都作为独立的实体存在,起着特定的作用-每个组件都是帮助用户定义应用程序所有行为组成部分。一共有四重不同类型的应用程序组件。每个组件为了不同的目的,有着不同的生命周期。下面就来介绍这四种不同的组件:Activities每个Activity都代表了一个用户交互的界面。例如,Email程序会含有一个activity用于显示新邮件的列表,另一的activity用来撰写邮件,还有一个activity用来读邮件。虽然activity运行在一起,形成了统一的用户体验的Email程序,但是每个activity是相互独立的。这样来说,另一个程序也可以启动其中的一个activity(如果Email程序允许的话)。例如,照相程序在需要共享图片的时候,可以启动EMail程序中的编辑邮件的activity。每个activity都是继承自父类Activity。ServicesService是运行在后台的一种组件,一般用来执行长时间耗时的操作或者跨进程的工作(remote proces
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年二级建造师考试试题及参考答案详解(培优)
- 冠县事业编招聘2019年考试真题及答案解析-1
- 2025~2025华为认证考试题库及答案第942期
- 上半年延边朝鲜族自治州龙井市事业单位招聘考试试题
- 工会职工技能考试题库及答案
- 人口统计复习题PDF
- 中信券商面试题目及答案
- 四川省医学预防考试题库
- 2025年软件工程师算法真题卷
- 2025年二级建造师考试试题一带答案详解(培优)
- 财务管理专业职业生涯规划
- 交通事故调查报告范本
- 咖啡师(高级)职业技能鉴定参考试题(附答案)
- 三方询价报价单合同
- 解除土地协议合同
- 方法总比困难多培训
- 《图像处理与机器视觉 》 教学大纲
- 雷火灸技术操作流程图及考核标准
- 体育场馆羽毛球馆运营策略考核试卷
- 卫生室废弃药品管理制度
- 2025浙江嘉兴市南湖区人民政府办公室公开招聘编外用工1人高频重点提升(共500题)附带答案详解
评论
0/150
提交评论