Android技术讲座(2):系统概述和学习之路
来源:互联网 发布:中国软件行业协会招聘 编辑:程序博客网 时间:2024/06/12 00:37
准备工作:
一、Android背景介绍
Android是一个开放的手机平台,为移动设备提供了一个包含操作系统、中间件及应用程序的软件叠层架构。Android SDK为开发人员使用Java语言编写Android平台下的应用程序提供了必要的工具和API。
1. Android的诞生
Android其实是一家公司的名称,这家公司的创始人名叫Andy Rubin。Andy Rubin原来是苹果公司的一名工程师,后来创办过几家公司。在创办Android公司时,Andy Rubin准备打造一个移动终端平台并将其对开发人员开放,后来Google收购了该公司,于是就有了今天如日中天的Android。
2. Android的特性
Android自推出以来如此受追捧不仅仅是因为网络巨头Google的大力扶持,Android自身所具有的特性才是吸引全球精英开发者的更重要原因。Android其主要特性如下:
- 应用程序框架:可以方便地重用和替换手机组件。
- Dalvik虚拟机:专为移动设备优化的虚拟机。
- 内部集成浏览器:基于开源的WebKit引擎。
- 优化的图形系统:其中自定义了2D图形库,3D图形库基于OpenGL ES 1.0,可选硬件加速。
- SQLite:集成了轻量级数据库管理系统。
- 多媒体支持:支持常见的音频和视频,以及各种图片格式,如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等。
- GSM技术、蓝牙、EDGE、3G和WiFi:需要硬件支持。
- 摄像头、GPS、罗盘、加速度计:需要硬件支持。
- 完备的开发环境:包括设备模拟器、调试工具、内存和性能分析工具,以及用于Eclipse开发环境的插件。
3. Android的优点
目前市面上的手机操作系统出了Android,还有Symbian、iPhone等,与这些手机操作系统相比,Android具有以下优点。
(1) 真正开放
Android平台提供了从底层操作系统到上层的程序界面的所有软件,使用这个平台无须缴纳任何授权许可费用,同时不同的厂商还可以根据自身需求修改和扩展Android平台。
(2) 应用程序相互平等
在Android平台下,除了应用程序运行的载体虚拟机之外,其它的软件是完全平等的。例如可以自己开发收发Email的应用程序来替换系统提供的相应软件。
(3) 应用程序之间沟通无限制
在Android平台下开发应用程序,可以方便地实现应用程序之间的数据共享,只需要经过简单的声明或操作,应用程序就可以访问或调用其他应用程序的功能,或者将自己的部分数据和功能提供给其他应用程序使用。
二、Android系统结构简介
- Android运行在linux kernel 2.6之上,但是把linux内受GNU协议约束的部分做了取代,这样在Android的程序可以用于商业目的。
- Linux 内核是硬件和软件层之间的抽象层。
- 中间件包括两部分:核心库和运行时(libraries & Android runtime)
- 核心库包括,SurfaceManager 显示系统管理库,负责把2D或3D内容显示到屏幕;Media Framework 媒体库,负责支持图像,支持多种视频和音频的录制和回放;SQlite 数据库,一个功能强大的轻量级嵌入式关系数据库;WebKit 浏览器引擎等。
- Dalvik虚拟机:区别于Java虚拟机的是,每一个Android 应用程序都在它自己的进程中运行,都有一个属于自己的Dalvik 虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。
- 丰富而又可扩展性的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids), 文本框(text boxes),按钮( buttons), 可嵌入的web 浏览器。
- 内容提供者(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。
- 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件( layoutfiles )。
- 通知管理器(Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。
- 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
三、AVD虚拟设备
四、Android应用程序结构分析
android.content :包含各种的对设备上的数据进行访问和发布的类
android.database :通过内容提供者浏览和操作数据库
android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
android.location :定位和相关服务的类
android.media :提供一些类管理多种音频、视频的媒体接口
android.net :提供帮助网络访问的类,超过通常的java.net.*接口
android.os :提供了系统服务、消息传输、IPC 机制
android.opengl :提供OpenGL 的工具
android.provider :提供类访问Android 的内容提供者
android.telephony :提供与拨打电话相关的API 交互
android.view :提供基础的用户界面接口框架
android.util :涉及工具性的方法,例如时间日期的操作
android.webkit :默认浏览器操作接口
android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用
7、AndroidManifest.xml是XML格式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包含应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等,而且每个Android程序必须在根目录下包含一个 AndroidManifest.xml文件
五、Android应用程序的运行和调试
六、Android游戏与应用开发最佳学习路线图
具体知识点与目标:
如何成为一个Android高手:
- Android技术讲座(2):系统概述和学习之路
- 学习spark之路-----------系统概述
- android系统移植之概述
- android系统移植之概述
- 浅谈Android之系统概述
- XML技术讲座之五
- 信息推荐系统学习笔记之概述
- 小白安卓学习第一章(Android系统概述)
- 序: Android 系统架构学习 概述
- Android自动化测试之Tmts系统概述
- Android电话系统之概述篇
- Android电话系统之概述篇
- Android电话系统之概述篇
- Android电话系统之概述篇
- Android SurfaceFlinger 学习之路(二)----SurfaceFlinger概述
- Android多线程系统概述(sundy深入浅出)之进程和线程
- android学习笔记之概述ContentProvider数据模型概述
- Android Animation学习之 Animation概述
- The New Methodology新方法论
- 十九、继承(二)通过继承 进行扩展
- UML 活动图
- 举一反三,动态查询,模板概念
- 二十、继承(三)Point这类物件
- Android技术讲座(2):系统概述和学习之路
- Java的身份证号码工具类
- Java编程中“为了性能”尽量要做到的一些地方
- 整数输出到txt文件
- 二十一、继承(四)@class命令
- Cocos2d-x初入学堂(8)-->CCLabel菜单项
- hdu 2087 剪花布条
- Could not open registry key 'Software\JavaSoft\Java Runtime Environment'的解决办法
- listview 按数字大小排序