《Android介绍与开发环境搭建ppt课件》由会员分享,可在线阅读,更多相关《Android介绍与开发环境搭建ppt课件(59页珍藏版)》请在金锄头文库上搜索。
1、Android开发课程-Android介绍与开发环境搭建Android开发课程1Android 软件工程师系列课程软件工程师系列课程本章目标手机操作系统介绍Android平台概述Android系统架构Android系统版本Android应用领域Android开发环境搭建Android项目的目录结构Android开发内容Android核心组件介绍2手机操作系统介绍3Android 软件工程师系列课程软件工程师系列课程手机操作系统目前手机操作系统主要有六种:PalmOS由3Com公司的PalmComputing开发32位嵌入式操作系统所占的内存小不具备录音和MP3播放功能Symbian由Symbi
2、an开发和维护,后被诺基亚收购实时多任务的32位操作系统功耗低、内存占用少、应用界面框架灵活不开放核心代码,但公开API文档4Android 软件工程师系列课程软件工程师系列课程手机操作系统Linux由计算机Linux操作系统演变而来开放源代码有一些先天不足WindowsPhone7由微软公司推出的移动设备操作系统播放音视频、浏览网页、MSN聊天、收发电子邮件硬件配置高、耗电量大、电池续航时间短、硬件成本高5Android 软件工程师系列课程软件工程师系列课程手机操作系统iPhoneOS由苹果公司开发的操作系统iPhoneOS的系统构架支持内置加速器Android由谷歌发布的基于Linux的开
3、源手机平台Android的组成第一个完全定制、免费、开放的手机平台使用Java语言开发支持多种硬件设备6Android平台概述7Android 软件工程师系列课程软件工程师系列课程Android平台概述Android的本义指“机器人”,是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称。Android是Google与开放手机联盟(Moto,高通,宏达,飞利浦,三星,T-Mobile等30多家企业)合作开发和推进的操作系统。Google通过与运营商、设备制造商、开发商等结成深层次的合作伙伴关系,建立标准化、开放式的移动软件平台,在移动产业内形成一个开放式的生态系
4、统。市场上第一款支持Android的手机是在2008年9月22日发布的由HTC制造幵由T-Mobile供应的G1。8Android 软件工程师系列课程软件工程师系列课程开放手机联盟开放手机联盟(OpenHandsetAlliance,OHA)由谷歌公司于2007年发起的一个全球性的联盟组织,成立时包含34家联盟成员,现在已经增加到50家。联盟组织的目标研发移动设备的新技术,用以大幅削减移动设备开发与推广成本。同时通过联盟各个合作方的努力,建立了移动通信领域新的合作环境,促进了创新移动设备的开发,创造了目前移动平台实现的用户体验。9Android 软件工程师系列课程软件工程师系列课程开放手机联盟
5、开放手机联盟成员电信运营商半导体芯片商手机硬件制造商软件厂商商品化公司10Android 软件工程师系列课程软件工程师系列课程开放手机联盟电信运营商:中国移动通信、KDDI(日本)、NTTDoCoMo(日本)、SprintNextel(美国)、T-Mobile(美国)、Telecom(意大利)、中国联通、Softbank(日本)、Telefonica(西班牙)和Vodafone(英国)。11Android 软件工程师系列课程软件工程师系列课程开放手机联盟半导体芯片商:Audience(美国)、AKM(日本)、ARM(英国)、AtherosCommunications(美国)、Broadcom(
6、美国)、Intel(美国)、Marvell(美国)、nVIDIA(美国)、Qualcomm(美国)、SiRF(美国)、Synaptics(美国)、ST-Ericsson(意大利、法国和瑞典)和TexasInstruments(美国)。12Android 软件工程师系列课程软件工程师系列课程开放手机联盟手机硬件制造商:Acer(中国台湾)、华硕(中国台湾)、Garmin(中国台湾)、宏达电(中国台湾)、LG(韩国)、三星(韩国)、华为(中国)、摩托罗拉(美国)、索尼爱立信(日本和瑞典)和东芝(日本)。13Android 软件工程师系列课程软件工程师系列课程开放手机联盟软件厂商:AscenderC
7、orp(美国)、eBay(美国)、谷歌(美国)、LivingImage(日本)、NuanceCommunications(美国)、Myraid(瑞士)、Omron(日本)、PacketVideo(美国)、SkyPop(美国)、Svox(瑞士)和SONiVOX(美国)14Android 软件工程师系列课程软件工程师系列课程开放手机联盟商品化公司:AplixCorporation(日本)、NoserEngineering(瑞士)、Borqs(中国)、TAT-TheAstonishing(瑞典)、TelecaAB(瑞典)和WindRiver(美国)15Android 软件工程师系列课程软件工程师系列
8、课程市场份额16Android 软件工程师系列课程软件工程师系列课程薪资调查17Android 软件工程师系列课程软件工程师系列课程系统特点开放的平台Dalvik虚拟机针对移动设备进行了优化。优化的图形能力支持2D、3D图形(OpenGLES1.0)。集成了基于开源WebKit引掣的浏览器。SQLite作为结构化数据存储。多媒体支持多种音频、视频格式。支持蓝牙Bluetooth,3G和WiFi支持照相机、GPS、指南针和加速度仪等传感器硬件依托Java丰富的编程资源丰富的开发环境。包括模拟机、调试工具、内存运行检测,以及为EclipseIDE所写的插件。18Android系统架构19Andro
9、id 软件工程师系列课程软件工程师系列课程系统架构20Android 软件工程师系列课程软件工程师系列课程Linux内核Android依赖Linux内核2.6提供核心系统服务,比如安全、内存管理、进程管理、网络、硬件驱动。在这里,Linux内核扮演的是硬件层和系统其他层次之间的一个抽象层的概念。需要注意的是,这个操作系统并非类GNU/Linux的,因为其系统库,系统初始化和编程接口都和标准的Linux系统是有所不同的。Android底层和普通内核没有什么大的区别,我们可以将其当作一个Linux来进行开发。21Android 软件工程师系列课程软件工程师系列课程Lib和运行环境Library以c
10、/c+开发,属于系统元件,开发者可以透过ApplicationFramework来使用这些功能。丰富的库类支持:2D和3D图像库OpenGLES、数据库SQLite、对象数据库db4o库类、媒体库、基于Linux底层系统C库等等,让应用开发更简单多样。CoreLibraries:对应于JavaProgrammingLanguage。DalvikVirtualMachine(简称DVM):针对手机开发虚拟机。22Android 软件工程师系列课程软件工程师系列课程应用和框架ApplicationFramework:Google提供API,此framework内已经具备多种不同的基础模块,在开发应
11、用程序时,可以直接使用。Applications:包含内建的应用程序-联系人、eMail、Map、QQ等等;从Market上面下载的软件;自己开发的软件。23Android系统版本24Android 软件工程师系列课程软件工程师系列课程系统版本25Android应用领域26Android 软件工程师系列课程软件工程师系列课程应用领域智能手机领域摩托罗拉依靠Android操作系统起死回生。除了诺基亚和苹果,其他的手机厂商全部支持Android。2012年第三季度,美国智能手机市场出货量Android占44%,而且还在快速上升。苹果占23%,其他系统都在快速下降。27Android 软件工程师系列
12、课程软件工程师系列课程应用领域平板电脑领域iPad依然占据平板电脑的绝大部分江山。其他厂商做的平板基本上都采用Android平台,如三星、爱国者、联想等。山寨厂商都采用Android平台。28Android 软件工程师系列课程软件工程师系列课程应用领域智能电视领域中国电子视像协会基本定调中国的智能电视系统都会采用Android平台。现在主要的厂商如:海尔、TCL、创维、海信、长虹都在研发Android平台的智能电视。29Android 软件工程师系列课程软件工程师系列课程应用领域其他消费类电子领域汽车车载电子设备医疗类电子设备家庭电子设备30Android环境搭建31Android 软件工程师
13、系列课程软件工程师系列课程Ubuntu下搭建Android环境什么是Ubuntu?Android与Linux的关系为什么要用Ubuntu?如何安装Ubuntu?Ubuntu下搭建Android开发环境Ubuntu下访问Windows文件夹32Android 软件工程师系列课程软件工程师系列课程什么是UbuntuUbuntu是一个以桌面应用为主的Linux操作系统。Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量
14、,用户可以方便地从社区获得帮助。33Android 软件工程师系列课程软件工程师系列课程Android与Linux的关系从系统设计角度:Android采用Linux做为内核。Android对Linux内核做了修改,以适应其在移动设备上的应用。从开发应用的角度:Android的工程编译环境需要在Linux下配置。Android的某些调试手段需要用到Linux的一些命令行脚本。Android的模拟器在Linux上运行会快一些。34Android 软件工程师系列课程软件工程师系列课程为什么要用UbuntuUbuntu是目前全球使用最多的Linux发行版,目前全球的装机量已达1,000万,有强大的社区
15、支持和资源。Ubuntu项目完全遵从开源软件开发的原则;并且鼓励人们使用、完善并传播开源软件。也就是Ubuntu目前是并将永远是免费的。35Android 软件工程师系列课程软件工程师系列课程如何安装Ubuntu两种方式:1、在硬盘上完全安装一个Ubuntu操作系统。2、在Window操作系统下,安装一个虚拟机软件(例如VMWare),然后再在虚拟机上安装Ubuntu。优劣比较:1、如果要获得完全的性能,请在硬盘上独立安装一个完整的Ubuntu操作系统。驱动开发者推荐用此种方式。2、如果为了方便与Windows系统的切换,大部分时间还在Windows上开发,建议通过虚拟机软件安装Ubuntu。
16、应用开发者推荐使用此方式。36Android 软件工程师系列课程软件工程师系列课程搭建Android开发环境需要准备以下软件:1、JDK:JAVA程序开发包和运行时环境2、Eclipse:集成的IDE开发环境3、ADT:专门为Android开发定制的Eclipse插件4、AndroidSDKLinux:Android应用开发SDK推荐使用版本:1、JDKjdk-6u24-linux-i586.bin(32bit)2、Eclipseeclipse-java-helios-SR2-linux-gtk.tar.gz(32bit)3、ADTADT-10.0.1.zip4、AndroidSDKandro
17、id-sdk-linux_86.tar.gz37Android 软件工程师系列课程软件工程师系列课程1.安装JDK1.将jdk-6u24-linux-i586.bin放置于目标目录下,例如/home/KingArthur/work(这个自己定义文件夹,无所谓,但要和将来配置的环境变量中的路径一致)。2.打开命令行终端,进入放置jdk的目录:$cd/home/KingArthur/work3.更改文件权限为可执行,在命令行下输入以下命令:$sudochmod+xjdk-6u24-linux-i586.bin4.解压文件,在命令行下输入以下命令(./表示执行程序):$./jdk-6u24-linu
18、x-i586.bin这样该目录下就会出现jdk1.6.0_24的文件夹,JDK安装完毕。备注:命令行终端的打开方法,在系统面板上【应用程序】-【附件】-【终端】或【Applications】-【Accessories】-【Terminal】菜单中。38Android 软件工程师系列课程软件工程师系列课程2.JAVA环境变量的配置打开命令行终端,输入以下命令:$sudogedit/etc/profile在打开的profile文件最后添加如下内容:exportJAVA_HOME=/home/KingArthur/work/jdk1.6.0_24exportJRE_HOME=/home/KingAr
19、thur/work/jdk1.6.0_24/jreexportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$JAVA_HOME/binexportCLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/jre/lib然后重启系统!3、验证是否配置成功:重启后,打开命令行,输入:$javaversion如果返回以下内容,说明设置成功:javaversion1.6.0_24Java(TM)SERuntimeEnvironment(build1.6.0_24-b07)JavaHotSpot(TM)ServerVM(build19.1
20、-b02,mixedmode)39Android 软件工程师系列课程软件工程师系列课程3、安装Eclipse将eclipse-java-helios-SR2-linux-gtk.tar.gz解压到/home/KingArthur/work这个之前设定好的目录。双击eclipse就能启动了。40Android 软件工程师系列课程软件工程师系列课程4.安装其Android插件(ADT)打开菜单Help-InstallNewSoftware,在AvailabeSoftware中加入地址http:/dl- 软件工程师系列课程软件工程师系列课程5.配置Linux版本的AndroidSDK将android
21、-sdk-linux_86.tar.gz解压到一个文件夹中,在eclipse中配置一下即可。Eclipse重启后,选择WindowPreferences.,在打开的属性框,选择Android,在SDKlocation中输入你的AndroidSDK所在的目录,然后按Apply按钮。AndroidSDK的配置(与JDK大同小异)打开命令行终端,输入以下命令:$sudogedit/etc/profile在打开的profile文件添加如下内容:exportANDROID_HOME=/home/KingArthur/work/android-sdk-linux_x86exportJAVA_HOME=/h
22、ome/KingArthur/work/jdk1.6.0_24exportJRE_HOME=/home/KingArthur/work/jdk1.6.0_24/jreexportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$JAVA_HOME/bin:$ANDROID_HOME/toolsexportCLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/jre/lib42Android 软件工程师系列课程软件工程师系列课程6.创建Android模拟器Ubuntu下的Linux开发环境就安装完毕了,赶快使用eclipse中的W
23、indow-AndroidSDKandAVDManager来创建一个模拟器并启动。43Android项目目录结构44Android 软件工程师系列课程软件工程师系列课程项目目录结构45Android 软件工程师系列课程软件工程师系列课程项目目录结构-src1.src文件夹-用于放置源程序系统生成了一个HelloWorld.java文件。他导入了两个类android.app.Activity和android.os.Bundle,HelloWorld类继承自Activity且重写了onCreate方法。46Android 软件工程师系列课程软件工程师系列课程项目目录结构-src1.android.
24、app.Activity类:因为几乎所有的活动(activities)都是与用户交互的,所以Activity类关注创建窗口,你可以用方法setContentView(View)将自己的UI放到里面。然而活动通常以全屏的方式展示给用户,也可以以浮动窗口或嵌入在另外一个活动中。有两个方法是几乎所有的Activity子类都实现的:1.onCreate(Bundle):初始化你的活动(Activity),比如完成一些图形的绘制。最重要的是,在这个方法里你通常将用布局资源(layoutresource)调用setContentView(int)方法定义你的UI,和用findViewById(int)在你
25、的UI中检索你需要编程地交互的小部件(widgets)。setContentView指定由哪个文件指定布局(main.xml),可以将这个界面显示出来,然后我们进行相关操作,我们的操作会被包装成为一个意图,然后这个意图对应有相关的activity进行处理。2.onPause():处理当离开你的活动时要做的事情。最重要的是,用户做的所有改变应该在这里提交(通常ContentProvider保存数据)。2.android.os.Bundle类:从字符串值映射各种可打包的(Parcelable)类型(Bundle单词就是捆绑的意思,所有这个类很好理解和记忆)。如该类提供了公有方法publicbool
26、eancontainKey(Stringkey),如果给定的key包含在Bundle的映射中返回true,否则返回false。该类实现了Parceable和Cloneable接口,所以它具有这两者的特性。47Android 软件工程师系列课程软件工程师系列课程项目目录结构-gen2.gen文件夹-自动生成R.java文件,用于引用资源文件(即res目录下的数据)R.java是在建立项目时自动生成的,这个文件是只读模式的,不能更改。R.java文件中定义了一个类R,R类中包含很多静态类,且静态类的名字都与res中的一个名字对应,即R类定义该项目所有资源的索引。通过R.java我们可以很快地查找我
27、们需要的资源,另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。48Android 软件工程师系列课程软件工程师系列课程项目目录结构-assets3.assets文件夹-用于放置原始文件,Android不会对此目录下的文件做任何处理,这是其与res目录不同的地方包含应用系统需要使用到的诸如mp3、视频类的文件。49Android 软件工程师系列课程软件工程师系列课程项目目录结构-res4.res文件夹-资源目录,包含你项目中的资源文件并将编译进应用程序。向此目录添加资源时,会被R.java自动记录。新建一个项目,res
28、目录下会有三个子目录:drawable、layout、values。res/drawable-用于放置图片之类的资源res/drawable-hdpi高密度图片,res/drawable-ldpi低密度图片res/drawable-mdpi中等密度的图片这三个文件夹是存放图片的,不同之处在于分辨率,是为了适应不同手机屏幕分辨率不同的情况。50Android 软件工程师系列课程软件工程师系列课程项目目录结构-resres/layout-用于放置布局用的xml文件;layout:界面布局文件(main.xml)与WEB应用中的HTML类同。res/values-用于放置一些常量数据values:软
29、件上所需要显示的各种文字。可以存放多个*.xml文件,还可以存放不同类型的数据。比如arrays.xml、colors.xml、dimens.xml、styles.xml。51Android 软件工程师系列课程软件工程师系列课程AndroidManifest.xmlAndroidManifest.xml-Android程序的清单文件,相当于配置文件,配置应用程序名称、图标、Activity、Service、Receiver等。项目的总配置文件,记录应用中所使用的各种组件。这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服
30、务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。AndroidManifest.xml将包含如下设置:applicationpermissions、Activities、intentfilters等。52Android 软件工程师系列课程软件工程师系列课程AndroidManifest.xml这是项目的重要配置文件,诸如Activity,权限,Intent等都在这里配置:1.Package:定义了该应用的包。2.android:versionCode定义了应用的版本号3.android:versionName定义了应
31、用的版本名字4.application标签定义了一个应用,一个项目最多有一个Application标签。5.android:icon=drawable/icon定义了应用的图标引用资源文件中的icon图片6.android:label=string/app_name定义了应用的名称7.activity标签定义了一个Activity,你的每一个Activity必须在这里定义,否则不能运行.8.Android:name定义了Activity的类名,这里的.HelloWorld是以上面的Package定义为基础的,也就是Package(com.flysnow)加上这个android:name(.He
32、lloWorld)要能定位到这个Activity(com.flysnow.HelloWorld),否则就是找不到.9.android:label定义了该Activity的标题10.intent-filter定义一个Intent过滤器,用于标记对应的Activity,以便Android系统能找到该Activity,定义的是隐性的Intent,主要使用两个子标签action和category来区分每个Intent。53Android开发核心类54Android 软件工程师系列课程软件工程师系列课程开发核心类android.app:提供高层的程序模型、提供基本的运行环境android.content
33、:包含各种的对设备上的数据进行访问和发布的类android.database:通过内容提供者浏览和操作数据库android.graphics:底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.android.location:定位和相关服务的类android.media:提供一些类管理多种音频、视频的媒体接口:提供帮助网络访问的类,超过通常的.*接口android.os:提供了系统服务、消息传输、IPC机制android.opengl:提供OpenGL的工具android.provider:提供类访问Android的内容提供者android.telephony:提供与拨打
34、电话相关的API交互android.view:提供基础的用户界面接口框架android.util:涉及工具性的方法,例如时间日期的操作android.webkit:默认浏览器操作接口android.widget:包含各种UI元素(大部分是可见的)在应用程序的屏幕中使用55Android核心组件介绍56Android 软件工程师系列课程软件工程师系列课程核心组件介绍注册组件Activities(活动)Service(服务)BroadcastReceiver(广播接收器)ContentProvider(内容提供器)Intent(意图)Notification(通知)57Android 软件工程师系列课程软件工程师系列课程工作任务1.安装Ubuntu操作系统。2.配置Android开发环境。3.新建Android项目。4.运行Android项目。58Android 软件工程师系列课程软件工程师系列课程Thankforyourtime!翟国栋作品59