




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,Android开发课程,-Android介绍与开发环境搭建,Android开发课程,-翟国栋,2,本章目标,手机操作系统介绍Android平台概述Android系统架构Android系统版本Android应用领域Android开发环境搭建Android项目的目录结构Android开发内容Android核心组件介绍,3,手机操作系统介绍,4,手机操作系统,目前手机操作系统主要有六种:PalmOS由3Com公司的PalmComputing开发32位嵌入式操作系统所占的内存小不具备录音和MP3播放功能Symbian由Symbian开发和维护,后被诺基亚收购实时多任务的32位操作系统功耗低、内存占用少、应用界面框架灵活不开放核心代码,但公开API文档,5,手机操作系统,Linux由计算机Linux操作系统演变而来开放源代码有一些先天不足WindowsPhone7由微软公司推出的移动设备操作系统播放音视频、浏览网页、MSN聊天、收发电子邮件硬件配置高、耗电量大、电池续航时间短、硬件成本高,6,手机操作系统,iPhoneOS由苹果公司开发的操作系统iPhoneOS的系统构架支持内置加速器Android由谷歌发布的基于Linux的开源手机平台Android的组成第一个完全定制、免费、开放的手机平台使用Java语言开发支持多种硬件设备,7,Android平台概述,8,Android平台概述,Android的本义指“机器人”,是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称。Android是Google与开放手机联盟(Moto,高通,宏达,飞利浦,三星,T-Mobile等30多家企业)合作开发和推进的操作系统。Google通过与运营商、设备制造商、开发商等结成深层次的合作伙伴关系,建立标准化、开放式的移动软件平台,在移动产业内形成一个开放式的生态系统。市场上第一款支持Android的手机是在2008年9月22日发布的由HTC制造幵由T-Mobile供应的G1。,9,开放手机联盟,开放手机联盟(OpenHandsetAlliance,OHA)由谷歌公司于2007年发起的一个全球性的联盟组织,成立时包含34家联盟成员,现在已经增加到50家。联盟组织的目标研发移动设备的新技术,用以大幅削减移动设备开发与推广成本。同时通过联盟各个合作方的努力,建立了移动通信领域新的合作环境,促进了创新移动设备的开发,创造了目前移动平台实现的用户体验。,10,开放手机联盟,开放手机联盟成员电信运营商半导体芯片商手机硬件制造商软件厂商商品化公司,11,开放手机联盟,电信运营商:中国移动通信、KDDI(日本)、NTTDoCoMo(日本)、SprintNextel(美国)、T-Mobile(美国)、Telecom(意大利)、中国联通、Softbank(日本)、Telefonica(西班牙)和Vodafone(英国)。,12,开放手机联盟,半导体芯片商:Audience(美国)、AKM(日本)、ARM(英国)、AtherosCommunications(美国)、Broadcom(美国)、Intel(美国)、Marvell(美国)、nVIDIA(美国)、Qualcomm(美国)、SiRF(美国)、Synaptics(美国)、ST-Ericsson(意大利、法国和瑞典)和TexasInstruments(美国)。,13,开放手机联盟,手机硬件制造商:Acer(中国台湾)、华硕(中国台湾)、Garmin(中国台湾)、宏达电(中国台湾)、LG(韩国)、三星(韩国)、华为(中国)、摩托罗拉(美国)、索尼爱立信(日本和瑞典)和东芝(日本)。,14,开放手机联盟,软件厂商:AscenderCorp(美国)、eBay(美国)、谷歌(美国)、LivingImage(日本)、NuanceCommunications(美国)、Myraid(瑞士)、Omron(日本)、PacketVideo(美国)、SkyPop(美国)、Svox(瑞士)和SONiVOX(美国),15,开放手机联盟,商品化公司:AplixCorporation(日本)、NoserEngineering(瑞士)、Borqs(中国)、TAT-TheAstonishing(瑞典)、TelecaAB(瑞典)和WindRiver(美国),16,市场份额,17,薪资调查,18,系统特点,开放的平台Dalvik虚拟机针对移动设备进行了优化。优化的图形能力支持2D、3D图形(OpenGLES1.0)。集成了基于开源WebKit引掣的浏览器。SQLite作为结构化数据存储。多媒体支持多种音频、视频格式。支持蓝牙Bluetooth,3G和WiFi支持照相机、GPS、指南针和加速度仪等传感器硬件依托Java丰富的编程资源丰富的开发环境。包括模拟机、调试工具、内存运行检测,以及为EclipseIDE所写的插件。,19,Android系统架构,20,系统架构,21,Linux内核,Android依赖Linux内核2.6提供核心系统服务,比如安全、内存管理、进程管理、网络、硬件驱动。在这里,Linux内核扮演的是硬件层和系统其他层次之间的一个抽象层的概念。需要注意的是,这个操作系统并非类GNU/Linux的,因为其系统库,系统初始化和编程接口都和标准的Linux系统是有所不同的。Android底层和普通内核没有什么大的区别,我们可以将其当作一个Linux来进行开发。,22,Lib和运行环境,Library以c/c+开发,属于系统元件,开发者可以透过ApplicationFramework来使用这些功能。丰富的库类支持:2D和3D图像库OpenGLES、数据库SQLite、对象数据库db4o库类、媒体库、基于Linux底层系统C库等等,让应用开发更简单多样。CoreLibraries:对应于JavaProgrammingLanguage。DalvikVirtualMachine(简称DVM):针对手机开发虚拟机。,23,应用和框架,ApplicationFramework:Google提供API,此framework内已经具备多种不同的基础模块,在开发应用程序时,可以直接使用。Applications:包含内建的应用程序-联系人、eMail、Map、QQ等等;从Market上面下载的软件;自己开发的软件。,24,Android系统版本,25,系统版本,26,Android应用领域,27,应用领域,智能手机领域摩托罗拉依靠Android操作系统起死回生。除了诺基亚和苹果,其他的手机厂商全部支持Android。2012年第三季度,美国智能手机市场出货量Android占44%,而且还在快速上升。苹果占23%,其他系统都在快速下降。,28,应用领域,平板电脑领域iPad依然占据平板电脑的绝大部分江山。其他厂商做的平板基本上都采用Android平台,如三星、爱国者、联想等。山寨厂商都采用Android平台。,29,应用领域,智能电视领域中国电子视像协会基本定调中国的智能电视系统都会采用Android平台。现在主要的厂商如:海尔、TCL、创维、海信、长虹都在研发Android平台的智能电视。,30,应用领域,其他消费类电子领域汽车车载电子设备医疗类电子设备家庭电子设备,31,Android环境搭建,32,Ubuntu下搭建Android环境,什么是Ubuntu?Android与Linux的关系为什么要用Ubuntu?如何安装Ubuntu?Ubuntu下搭建Android开发环境Ubuntu下访问Windows文件夹,33,什么是Ubuntu,Ubuntu是一个以桌面应用为主的Linux操作系统。Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。,34,Android与Linux的关系,从系统设计角度:Android采用Linux做为内核。Android对Linux内核做了修改,以适应其在移动设备上的应用。从开发应用的角度:Android的工程编译环境需要在Linux下配置。Android的某些调试手段需要用到Linux的一些命令行脚本。Android的模拟器在Linux上运行会快一些。,35,为什么要用Ubuntu,Ubuntu是目前全球使用最多的Linux发行版,目前全球的装机量已达1,000万,有强大的社区支持和资源。Ubuntu项目完全遵从开源软件开发的原则;并且鼓励人们使用、完善并传播开源软件。也就是Ubuntu目前是并将永远是免费的。,36,如何安装Ubuntu,两种方式:1、在硬盘上完全安装一个Ubuntu操作系统。2、在Window操作系统下,安装一个虚拟机软件(例如VMWare),然后再在虚拟机上安装Ubuntu。优劣比较:1、如果要获得完全的性能,请在硬盘上独立安装一个完整的Ubuntu操作系统。驱动开发者推荐用此种方式。2、如果为了方便与Windows系统的切换,大部分时间还在Windows上开发,建议通过虚拟机软件安装Ubuntu。应用开发者推荐使用此方式。,37,搭建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、AndroidSDKandroid-sdk-linux_86.tar.gz,38,1.安装JDK,1.将jdk-6u24-linux-i586.bin放置于目标目录下,例如/home/KingArthur/work(这个自己定义文件夹,无所谓,但要和将来配置的环境变量中的路径一致)。2.打开命令行终端,进入放置jdk的目录:$cd/home/KingArthur/work3.更改文件权限为可执行,在命令行下输入以下命令:$sudochmod+xjdk-6u24-linux-i586.bin4.解压文件,在命令行下输入以下命令(./表示执行程序):$./jdk-6u24-linux-i586.bin这样该目录下就会出现jdk1.6.0_24的文件夹,JDK安装完毕。备注:命令行终端的打开方法,在系统面板上【应用程序】-【附件】-【终端】或【Applications】-【Accessories】-【Terminal】菜单中。,39,2.JAVA环境变量的配置,打开命令行终端,输入以下命令:$sudogedit/etc/profile在打开的profile文件最后添加如下内容:exportJAVA_HOME=/home/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/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-b02,mixedmode),40,3、安装Eclipse,将eclipse-java-helios-SR2-linux-gtk.tar.gz解压到/home/KingArthur/work这个之前设定好的目录。双击eclipse就能启动了。,41,4.安装其Android插件(ADT),打开菜单Help-InstallNewSoftware,在AvailabeSoftware中加入地址http:/dl-,42,5.配置Linux版本的AndroidSDK,将android-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=/home/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/lib,43,6.创建Android模拟器,Ubuntu下的Linux开发环境就安装完毕了,赶快使用eclipse中的Window-AndroidSDKandAVDManager来创建一个模拟器并启动。,44,Android项目目录结构,45,项目目录结构,46,项目目录结构-src,1.src文件夹-用于放置源程序系统生成了一个HelloWorld.java文件。他导入了两个类android.app.Activity和android.os.Bundle,HelloWorld类继承自Activity且重写了onCreate方法。,47,项目目录结构-src,1.android.app.Activity类:因为几乎所有的活动(activities)都是与用户交互的,所以Activity类关注创建窗口,你可以用方法setContentView(View)将自己的UI放到里面。然而活动通常以全屏的方式展示给用户,也可以以浮动窗口或嵌入在另外一个活动中。有两个方法是几乎所有的Activity子类都实现的:1.onCreate(Bundle):初始化你的活动(Activity),比如完成一些图形的绘制。最重要的是,在这个方法里你通常将用布局资源(layoutresource)调用setContentView(int)方法定义你的UI,和用findViewById(int)在你的UI中检索你需要编程地交互的小部件(widgets)。setContentView指定由哪个文件指定布局(main.xml),可以将这个界面显示出来,然后我们进行相关操作,我们的操作会被包装成为一个意图,然后这个意图对应有相关的activity进行处理。2.onPause():处理当离开你的活动时要做的事情。最重要的是,用户做的所有改变应该在这里提交(通常ContentProvider保存数据)。2.android.os.Bundle类:从字符串值映射各种可打包的(Parcelable)类型(Bundle单词就是捆绑的意思,所有这个类很好理解和记忆)。如该类提供了公有方法publicbooleancontainKey(Stringkey),如果给定的key包含在Bundle的映射中返回true,否则返回false。该类实现了Parceable和Cloneable接口,所以它具有这两者的特性。,48,项目目录结构-gen,2.gen文件夹-自动生成R.java文件,用于引用资源文件(即res目录下的数据)R.java是在建立项目时自动生成的,这个文件是只读模式的,不能更改。R.java文件中定义了一个类R,R类中包含很多静态类,且静态类的名字都与res中的一个名字对应,即R类定义该项目所有资源的索引。通过R.java我们可以很快地查找我们需要的资源,另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。,49,项目目录结构-assets,3.assets文件夹-用于放置原始文件,Android不会对此目录下的文件做任何处理,这是其与res目录不同的地方包含应用系统需要使用到的诸如mp3、视频类的文件。,50,项目目录结构-res,4.res文件夹-资源目录,包含你项目中的资源文件并将编译进应用程序。向此目录添加资源时,会被R.java自动记录。新建一个项目,res目录下会有三个子目录:drawable、layout、values。res/drawable-用于放置图片之类的资源res/drawable-hdpi高密度图片,res/drawable-ldpi低密度图片res/drawable-mdpi中等密度的图片这三个文件夹是存放图片的,不同之处在于分辨率,是为了适应不同手机屏幕分辨率不同的情况。,51,项目目录结构-res,res/layout-用于放置布局用的xml文件;layout:界面布局文件(main.xml)与WEB应用中的HTML类同。res/values-用于放置一些常量数据values:软件上所需要显示的各种文字。可以存放多个*.xml文件,还可以存放不同类型的数据。比如arrays.xml、colors.xml、dimens.xml、styles.xml。,52,AndroidManifest.xml,AndroidManifest.xml-Android程序的清单文件,相当于配置文件,配置应用程序名称、图标、Activity、Service、Receiver等。项目的总配置文件,记录应用中所使用的各种组件。这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。AndroidManifest.xml将包含如下设置:applicationpermissions、Activities、intentfilters等。,53,AndroidManifest.xml,这是项目的重要配置文件,诸如Activity,权限,Intent等都在这里配置:1.Package:定义了该应用的包。2.android:versionCode定义了应用的版本号3.android:versionName定义了应用的版本名字4.application标签定义了一个应用,一个项目最多有一个Application标签。5.android:icon=drawable/icon定义了应用的图标引用资源文件中的icon图片6.android:label=string/app_name定义了应用的名称7.activity标签定义了一个Activity,你的每一个Activity必须在这里定义,否则不能运行.8.Android:name定义了Activity的类名,这里的.HelloWorld是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年住院医师规培-福建-福建住院医师规培(急诊科)历年参考题库含答案解析
- 2025年住院医师规培-甘肃-甘肃住院医师规培(神经内科)历年参考题库典型考点含答案解析
- 2025年住院医师规培-甘肃-甘肃住院医师规培(口腔修复科)历年参考题库含答案解析
- 2025年住院医师规培-湖北-湖北住院医师规培(神经外科)历年参考题库含答案解析(5套)
- 2025年住院医师规培-海南-海南住院医师规培(骨科)历年参考题库含答案解析(5套)
- 2025年住院医师规培-河南-河南住院医师规培(整形外科)历年参考题库含答案解析
- 2025年住院医师规培-河南-河南住院医师规培(儿外科)历年参考题库典型考点含答案解析
- 2025年住院医师规培-河北-河北住院医师规培(神经内科)历年参考题库含答案解析(5套)
- 2025年住院医师规培-河北-河北住院医师规培(医学检验科)历年参考题库典型考点含答案解析
- 2025年住院医师规培-江苏-江苏住院医师规培(消化内科)历年参考题库含答案解析
- 湖北省襄阳市枣阳市2024-2025学年七年级下学期期末考试英语试卷(含答案无听力部分)
- 存量贷款管理办法
- 产品供货方案及按时供货保证措施
- 科研协作管理办法
- 多胎减胎患者护理指南
- 幼儿思维培训课件
- 岗前安全培训课件
- 数字经济产业组织-洞察及研究
- 2025年中国美甲贴片行业市场全景分析及前景机遇研判报告
- mcn公司管理制度
- 儿童腹痛的课件
评论
0/150
提交评论