1、 第第1章章 初识初识Android 内容概要内容概要 Android简介;Android环境搭建;Android Hello World示例。Android Android简介简介lAndroid一词的本义指“机器人”,Android是Google于07年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成。在国内,联想、戴尔、多普达、飞利浦、中兴、三星、摩托罗拉、等厂商已经推出基于Android平台的智能手机。在3G应用开发领域,Android的发展前景不容小视,也将会成为未来主流的手机操作系统。目前世界上常见的智能终端有四大系统,俗称四
2、大家:Symbian(塞班)、iOS、Android、Windows Phone7等系列。AndroidAndroid简介简介 软件应用类软件应用类AndroidAndroid开发人才占总需求开发人才占总需求72%72%Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。据职酷网数据统计显示:目前热招的Android技术相关岗位约有3882个,而一个月内的有效岗位量在2298个。主要热招职位包括Android开发工程师、Android软件工程师、Android应用开发
3、工程师、系统驱动工程师,Android手机游戏开发、Android系统软件开发、Android程序员、Android游戏应用版本管理、人机交互分析工程师、Android中间层开发工程师等。AndroidAndroid简介简介 开源性成安卓横扫江湖的利器开源性成安卓横扫江湖的利器 毫无疑问,Android已经统治了智能手机世界。开放式的平台以及丰富的硬件选择让它有了今天的辉煌。Android建立在Linux的开源性上,开放的平台允许任何移动终端厂商加入到Android联盟中来。目前世界知名的手机厂商如HTC、摩托罗拉、三星、LG等都已经投到Android帐下。Android系统广泛的开放性,是其
4、它系统所无法做到的。相比于苹果iOS、RIM黑莓等操作系统的封闭性,Android开放优势明显,可以吸引大量的应用开发者为其开发应用产品。Linux和Android的开源对开发者而言,意味着他们所开发的软件能够实现更多的功能。到现在为止Linux的版本也很多,Android也是如此,这么大的优势令Android手机开发已经成为众多程序员追捧的技术,具有广阔的就业前景!AndroidAndroid简介简介 Android平台的研发队伍阵容强大,包括摩托罗拉、Google、HTC(宏达电)、PHILIPS、T-Mobile、高通、魅族、三星、LG以及中国移动在内的34家企业,都将基于该平台开发手机
5、的新型业务,应用之间的通用性和互联性将在最大程度上得到保持。“开放手机联盟”表示,Android平台可以促使移动设备的创新,让用户体验到最优越的移动服务,同时,开发商也将得到一个新的开放级别,更方便的进行协同合作,从而保障新型移动设备的研发速度。AndroidAndroid简介简介2008年9月22日,美国运营商T-MobileUSA在纽约正式发布第一款Google手机T-Mobile G1。华为的S7平板电脑极速双核CPU、Android4.1系统、7英寸、支持3G通话、短信、彩信以及聊天等功能。AndroidAndroid简介简介将Android系统整体给移植到汽车的车载导航,实现各类车载
6、应用:收音机、电话、新闻、音乐播放器、视频播放器、图片浏览器、拨打电话以及发送短信等应用。在Android系统上开发一些应用,这些应用既可以安装到Android系统上也可以上架到APPStore上从而赚取广告费用,让自己足不出户就可以有收入和提成。Android发展历史2008年9月谷歌将发布的Android第一版将其命名规则变更为用甜点作为它们系统版本的代号的命名方法。甜点命名法开始于 Android 1.5 发布的时候。作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序:纸杯蛋糕(Android 1.5),甜甜圈(Android 1.6),松饼(Android 2.0/2.1),
7、冻酸奶(Android 2.2),姜饼(Android 2.3),蜂巢(Android 3.0),冰激凌三明治(Android 4.0),而最新一代Android版本名为果冻豆(Jelly Bean,Android4.1)。AndroidAndroid前景前景从左图的Android发展趋势来看,Android在未来会应用到生活中的各个方面并且在相当长的一段时间内会呈上升趋势,所以大家要相信自己的选择,坚信作为一个Android程序员会有“无限光辉的前景”。AndroidAndroid系统架构系统架构 AndroidAndroid系统架构系统架构 Android 基于Linux内核,但不是Lin
8、ux。内核提供系统核心服务,如进程、内存、电源管 理,网络连接,驱动与安全等。并不包括全部的Linux。AndroidAndroid系统架构系统架构 Linux 内核位于硬件和软件堆之间的抽象层 核心服务:安全机制、内存管理、进程管理、网络、硬件驱动。内核扮演的是硬件层和系统其它层次之间的一个抽象层的概念。操作系统的初始化和编程接口与标准的Linux 系统是有所不同的。AndroidAndroid系统架构系统架构 C/C+库:被各种Android 组件使用通过应用程序框架开发者可以使用其功能包括 媒体库:MPEG4 H.264 MP3 JPG PNG等。WebKit/LibWebCore:We
9、b 浏览引擎。SQLite 关系数据库引擎。2D,3D 图形库、引擎。AndroidAndroid系统架构系统架构1 1)WebKitWebKit基于开源WebKit的浏览器。支持CSS、Javascript、DOM、Ajax。2 2)多媒体框架)多媒体框架基于PacketVideo OpenCORE平台。支持标准音频、视频。3 3)SQLiteSQLite轻型数据库,支持多种平台。AndroidAndroid系统架构系统架构 硬件虚拟层硬件虚拟层 User space C/C+library layer 硬件接口驱动 使Android平台逻辑与硬件接口分离AndroidAndroid系统架构
10、系统架构 Android RuntimeAndroid Runtime Dalvik虚拟机 指令:Dalvik Excutable。Java标准库 把java代码编译为Dalvik可执行文件(dex format)。核心库提供的Java 功能Dalvik 虚拟机依赖于Linux 内核,可同时运行多个Dalvik 虚拟机,每一个Android 应用程序在它自己的Dalvik VM 实例中运行VM 执行优化的Dalvik 可执行文件(.dex)Dx-把编译过的Java文件转换为dex 文件AndroidAndroid系统架构系统架构 Application FrameWork Applicatio
11、n FrameWork层层 Activity managerActivity manager 管理运行应用程序 Content ProviderContent Provider 在各应用之间共享数据 Resource ManagerResource Manager 管理非代码资源 Notification ManagerNotification Manager 显示用户提示和状态栏 Views System Views System 可扩展显示,可构建可扩展显示,可构建UIUIAndroidAndroid系统架构系统架构l Application Application层层AndroidAnd
12、roid开发环境开发环境 JDK IDE Eclipse Eclipse plug-in-ADT Software Development Kit(SDK)Android Emulator DebugerAndroidAndroid开发环境开发环境 JDK1.6 JDK1.6下载网址:http:/ Eclipse下载网址:http:/www.eclipse.org/downloads/ADT ADT下载网址:http:/ Android SDK 2.x Android SDK 2.x下载网址:http:/ 手机连接电脑的驱动程序手机连接电脑的驱动程序 -推荐使用360手机驱动AndroidAn
13、droid Hello World Hello WorldAndroidAndroid Hello World Hello World打开Eclipse,新建项目(点击File New Project),在项目列表中展开Android目录,选择Android Project,如下图所示:AndroidAndroid应用程序架构应用程序架构l src/src/Java Java源代码存放目录源代码存放目录l gen/gen/自动生成目录自动生成目录 存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。这个文件由Android开发工具自动产生的。Android开发工
14、具会自动根据你放入res目录的xml界面文件、图标与常量,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。AndroidAndroid应用程序架构应用程序架构l res res/资源资源(Resource)(Resource)目录目录 在这个目录中我们可以存放应用使用到的各种资源,
15、如xml界面文件,图片或数据。l AndroidManifest.xml AndroidManifest.xml 功能清单文件功能清单文件 这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。l default.properties default.properties 项目环境信息项目环境信息 一般是不需要修改此文件。DalvikDalvik与与JVMJVMl DalvikDalvik和和Java
16、Java虚拟机虚拟机(JVM)(JVM)的差别的差别Dalvik 更适合手机所用的嵌入式环境,占用内存少。JVM 通用Java虚拟机。l Dalvik Dalvik虚拟机特点虚拟机特点Dalvik允许在有限的内存中同时运行多个虚拟机实例。每一个Dalvik 应用作为一个独立的Linux 进程执行。独立进程可防止在虚拟机崩溃的时候所有程序都被关闭。Dalvik 提供了一个拥有较Java少限制许可证的平台。AndroidAndroid中重要的包中重要的包 Android.app:提供高层的程序模型、提供基本的运行环境。Android.content:包含各种的对设备上的数据进行访问和发布的类。An
17、droid.database:通过内容提供者浏览和操作数据库。Android.graphics:底层的图形库,可以将它们直接绘制到屏幕上。Android.location:定位和相关服务的类。Android.media:提供一些类管理多种音频、视频的媒体接口。A:提供帮助网络访问的类,超过通常的.*接口。AndroidAndroid中重要的包中重要的包 Android.os:提供了系统服务、消息传输、IPC 机制。Android.opengl:提供OpenGL 的工具。Android.provider:提供类访问Android 的内容提供者。Android.telephony:提供与拨打电话相
18、关的API 交互。Android.view:提供基础的用户界面接口框架。Android.util:涉及工具性的方法,例如时间日期的操作。Android.webkit:默认浏览器操作接口。Android.widget:各种UI 元素(大部分可见)在应用程序的屏幕中使用。AndroidAndroid中的中的ApkApk ApkApk文件文件-Android-Android上的安装文件上的安装文件 Apk是Android 安装包的扩展名,一个Android 安装包包含了与该Android应用程序相关的所有文件。Apk文件将AndroidManifest.xml文件、应用程序代码(.dex 文件)、资
19、源文件和其他文件打成一个压缩包。一个工程只能打进一个.apk文件。Apk 文件的本质是一个zip包。AndroidAndroid模拟器模拟器 Android EmulatorAndroid Emulator 可模拟电话本、通话等功能 内置的浏览器和Google Maps都可以联网 可以使用键盘输入,可单击模拟器按键输入,可以使用鼠标单击、拖动屏幕进行操作。AndroidAndroid模拟器模拟器 模拟器和真机的不同之处 不支持呼叫和接听实际来电,但可以通过控制台模拟电话呼叫(呼入和呼出)。不支持USB连接。不支持相机/视频捕捉。不支持音频输入(捕捉),但支持输出(重放)。不支持扩展耳机。不能确定连接状态。不能确定电池电量水平和交流充电状态。不能确定SD卡的插入/弹出。不支持蓝牙。Thanks!