Download presentation
Presentation is loading. Please wait.
1
Android 课程讲义 智能手机开发
2
课程结构 目标:了解智能手机开发现状,Android平台体系结构和应用程序模型,覆盖了几个主要技术应用。 用户界面 数据存取 平台综述
HelloAndroid 平台综述 开发环境 程序结构 数据存取 网络连接 硬件访问 图形编程 用户界面 HelloWorld FileAndroid HttpAndroid CameraAndroid HelloAndroid 浙江大学计算机学院
3
课程结构 Android平台综述: 开发环境: 应该程序: 典型应用: 平台介绍、开发者社区 构建Android开发环境 应用程序结构
用户界面 图形编程 数据存取 网络连接 硬件访问 浙江大学计算机学院
4
获取Android资料的途径 http://developer.android.com
有时需要翻墙 下载SDK等相关软件 查看文档 在线帮助 开发社区 浙江大学计算机学院
5
1、平台概述 智能手机开发
6
开放手机联盟 开放手机联盟,Open Handset Alliance:是美国Google 公司与2007 年11 月5 日宣布组建的一个全球性的联盟组织。 联盟将会支持Google 发布的Android 手机操作系统或者应用软件,共同开发名为Android 的开放源代码的移动系统。 开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员数量已经达到了43 家。 浙江大学计算机学院
7
移动手机联盟创始成员 Aplix、Ascender、Audience、Broadcom、中国移动、eBay、Esmertec、谷歌、宏达电、英特尔、KDDI、Living Image、LG、Marvell、摩托罗拉、NMS、NTT DoCoMo、Nuance、Nvidia、PacketVideo、高通、三星、SiRF、SkyPop、Sonic Network、Sprint Nextel、Synaptics、TAT、意大利电信、西班牙电信、德州仪器、T-Mobile和Wind River。 浙江大学计算机学院
8
浙江大学计算机学院
9
Google Phone 浙江大学计算机学院
10
OHA与Android OHA是一个软硬件开发者组织,包括 Google, NTT DoCoMo, Sprint Nextel, and HTC … 目标: 加速智能移动设备的发展 提供用户更多更好更便宜的服务 由OHA开发的Android™,是第一个完整的、开放的、免费的智能移动开发平台。 浙江大学计算机学院
11
Android Android 软件系列包括操作系统、中间件和一些关键应用。
Android是基于JAVA的系统,运行在 Linux 2.6核上。 Android SDK 提供多种开发所必要的工具与API。 浙江大学计算机学院
12
特点1 应用框架可以重复使用,其组件也可以更换。 Dalvik虚拟机针对移动设备进行了优化。
优化的图形能力支持2D、3D图形(OpenGL ES 1.0 )。 集成了基于开源WebKit引掣的浏览器。 SQLite作为结构化数据存储。 浙江大学计算机学院
13
特点2 多媒体支持多种音频、视频格式。 GSM Telephony (hardware dependent)
支持蓝牙Bluetooth,3G和WiFi 支持照相机、GPS、指南针和加速度仪等传感器硬件。 丰富的开发环境。包括模拟机、调试工具、内存运行检测,以及为Eclipse IDE所写的插件。 浙江大学计算机学院
14
Android的优势 源代码完全开放,便于开发人员更清楚的把握实现细节,便于提高开发人员的技术水平,有利于开发出更具差异性的应用。
采用了对有限内存、电池和CPU 优化过的虚拟机Dalvik,Android 的运行速度比想象的要快很多。 运营商(中国移动等)的大力支持,产业链条的热捧。 良好的盈利模式(3/7 开),产业链条的各方:运营商、制造商、独立软件生产商都可以获得不错的利益。将移动终端的评价标准从硬件向软件转变,极大的激发了软件开发者的热情。 Android 的源代码遵循Apache V2 软件许可,而不是通常的GPL v2 许可。有利于商业开发。 具有强大的Linux 社区的支持。 浙江大学计算机学院
15
Android的不足 由于采用了Java 作为应用开发语言,目前可用的传统第三方应用还很少,但由于Android 是一款完全开源的移动计算平台,相信第三方应用会很快的丰富起来。 Google 提供了一套Java 核心包(J2SE 5,J2SE 6)的有限子集,尚不承诺遵守Java 任何Java 规范,可能会造成Java 阵营的进一步分裂。 现有应用完善度不太够,需要的开发工作量较大。 基于QEMU 开发的模拟器调试手段不十分丰富,只支持通话、SMS等,速度慢。 暂不具备Push Mail 和Office(DataViz、QuickOffice 计划近期推出)功能,目前主要面向的是普通消费者用户,对商业用户支持尚弱。 浙江大学计算机学院
16
系统环境 Android SDK所支持的操作系统: Windows XP (32-bit) or Vista (32- or 64-bit)
Mac OS X or later (x86 only) Linux (tested on Linux Ubuntu Dapper Drake) 浙江大学计算机学院
17
Android的系统架构 浙江大学计算机学院
18
Linux Kernel Android 基于Linux内核,但不是Linux
内核提供系统核心服务,如进程、内存、电源管理,网络连接,驱动与安全等。 并不包括全部的Linux。 浙江大学计算机学院
19
Android内核 Linux 内核位于硬件和软件堆之间的抽象层 核心服务:安全机制、内存管理、进程管理、网络、硬件驱动。
内核扮演的是硬件层和系统其它层次之间的一个抽象层的概念。 操作系统的初始化和编程接口和标准的Linux 系统是有所不同的。 浙江大学计算机学院
20
Libraries Bionic Libc Function Libraries Native Servers
Hardware Abstraction Libraries 浙江大学计算机学院
21
Libraries C/C++库:被各种Android 组件使用通过应用程序框架开发者可以使用其功能包括:
媒体库:MPEG4 H.264 MP3 JPG PNG ..... WebKit/LibWebCore:Web 浏览引擎 SQLite 关系数据库引擎 2D,3D 图形库、引擎 浙江大学计算机学院
22
Function Libraries WebKit 多媒体框架 SQLite 基于开源WebKit的浏览器
支持CSS、Javascript、DOM、Ajax 多媒体框架 基于PacketVideo OpenCORE平台 支持标准音频、视频 SQLite 轻型数据库,支持多种平台 浙江大学计算机学院
23
Native Servers-Surface
为多种应用提供2D、3D表面设计 浙江大学计算机学院
24
Native Servers-Audio 音频处理 浙江大学计算机学院
25
Hardware Abstraction Libs
硬件虚拟层 User space C/C++ library layer 硬件接口驱动 使Android平台逻辑与硬件接口分离 浙江大学计算机学院
26
Andoid Runtime 应用开发语言:Java Dalvik虚拟机 Java标准库 指令 : Dalvik Excutable
把java代码编译为Dalvik可执行文件(dex format) 浙江大学计算机学院
27
运行环境 核心库提供的Java 功能Dalvik 虚拟机依赖于Linux 内核, 可同时运行多个Dalvik 虚拟机,
每一个Android 应用程序在它自己的Dalvik VM 实例中运行VM 执行优化的Dalvik 可执行文件(.dex) Dx-工具把编译过的Java 文件转换为dex 文件 浙江大学计算机学院
28
Dalvik Virtual Machine
Android custom implementation virtual machine Provides application portability and runtime consistency Runs optimized file format (.dex) and Dalvik bytecode Java .class / .jar files converted to .dex at build time Designed for embedded environment Supports multiple virtual machine processes per device Highly CPU-optimized bytecode interpreter Efficiently Using runtime memory Core Libraries Core APIs for Java language provide a powerful, yet simple and familiar development platform 浙江大学计算机学院
29
DVM vs JVM DVM Google Dalvik excutable JVM Sun Java bytecode 浙江大学计算机学院
30
Application Framework
浙江大学计算机学院 30
31
Applications Framework
Activity manager 管理运行应用程序 Content Provider 在各应用之间共享数据 Resource Manager 管理非代码资源 Notification Manager 显示用户提示和状态栏 Views System 可扩展显示,可构建UI 浙江大学计算机学院
32
应用和框架 核心应用,例如联系人,电子邮件,电话,浏览器,日历,地图, ... 充分访问所有核心应用框架API 简化组件的重用
用Java 编写应用程序 浙江大学计算机学院
33
Applications JAVA编写的应用程序 浙江大学计算机学院
34
开发环境 IDE – Eclipse Eclipse plug-in - ADT
Software Development Kit (SDK) Android Emulator Debuger 浙江大学计算机学院
35
Constants int BASE Oct. 2008 The original, first, version of Android.
Feb. 2009 First Android update, officially called 1.1. CUPCAKE May 2009 Android 1.5. CUR_DEVELOPMENT Magic version number for a current development build, which has not yet turned into an official release. DONUT Sep. 2009 Android 1.6. ECLAIR Nov. 2009 Android 2.0: Applications targeting this or a later release will get these new changes in behavior: The Service.onStartCommand function will return the new START_STICKY behavior instead of the old compatibility START_STICKY_COMPATIBILITY. ECLAIR_0_1 Dec. 2009 Android 2.0.1 ECLAIR_MR1 Jan. 2010 Android 2.1 浙江大学计算机学院
36
Thank you! 浙江大学计算机学院
Similar presentations