




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 Android开发环境搭建本章学习目标:本章要达到的主要目标:了解常见的手机操作系统了解Android 操作系统的发展及其特点熟悉搭建Android 系统开发环境的步骤开发和打包第一个Android项目熟悉Android项目的目录结构SymbianPalm OSLinuxiOSAndroidWindows PhoneBlackberry OS智能手机操作系统简介通俗地讲智能手机就是安装了某个操作系统的手机,能够安装在手机上的操作系统有:Android 、iOS、Windows Mobile、Symbian、BlackBerry、Palm等。Android的诞生Android 一词最早出
2、现于法国作家利尔亚当在1886年发表的科幻小说未来的夏娃中。他将聪明美丽的机器人女孩起名为Android 。2003年10月鲁宾创建Android科技公司,并打造了Android手机操作系统,他也被誉为“Android之父”。2005年8月17日,Google收购了Android科技公司。2007年11月5日,在Google的领导下,成立开放手机联盟。开放手机联盟开放手机联盟,Open Handset Alliance:是美国Google 公司与2007年11月5日宣布组建的一个全球性的联盟组织。联盟将会支持Google发布的Android手机操作系统或者应用软件,共同开发名为Android的
3、开放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员数量已经达到了43 家。移动手机联盟创始成员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 Ri
4、ver。OHA与AndroidOHA是一个软硬件开发者组织,包括 Google, NTT DoCoMo, Sprint Nextel, and HTC 目标:加速智能移动设备的发展 提供用户更多更好更便宜的服务由OHA开发的Android,是第一个完整的、开放的、免费的智能移动开发平台。什么是Android系统Android 包括操作系统、中间件和一些关键应用。Android是基于Java的系统,运行在 Linux 2.6核上。Android SDK 提供多种开发所必要的工具与API。Android发展历程Google建立开放手机联盟后,Android备受广泛关注,众多知名企业,例如HTC、M
5、otorola、LG、Samsung、Acer、联想、华硕等都推出了各自品牌的多款Android手机,并逐渐扩展到平板电脑等其他移动终端,Android的市场占有率也不断攀升。Android市场份额Android系统在被Google收购后,目前已经迅速成了这个世界上适用范围最广的移动操作系统之一。根据IDC的统计,截止到2014年年底,包括个人电脑,媒体平板电脑和智能手机在内的操作系统市场份额,微软Windows占据35.9%,Google Android以29.4%居第二,而苹果iOS系统份额居第三,为14.6%。Android手机在中国的占有率有71.5%,超过其主要竞争对手苹果公司约50
6、%。IDC预测在2016年Android将会超越Windows系统,成为世界上使用范围最广的操作系统。Android应用开发Android开发主要以应用开发为主,主要分成三类:为企业、单位开发应用开发通用应用游戏开发 未来的手机将偏重于安全和数据通讯。一方面加强个人隐私的保护,另一方面加强数据业务的研发,各种多媒体功能被引入进来,手机将会具有更加强劲的运算能力,成为个人的信息终端,而不是仅仅具有通话和消息的功能。Android开发的特点应用框架可以重复使用,其组件也可以更换。Dalvik虚拟机针对移动设备进行了优化。优化的图形能力支持2D、3D图形(OpenGL ES 1.0 )。集成了基于开
7、源WebKit引掣的浏览器。SQLite作为结构化数据存储。Android开发的特点多媒体支持多种音频、视频格式。支持蓝牙Bluetooth,3G和WiFi。支持照相机、GPS、指南针和加速度仪等传感器硬件。丰富的开发环境。包括模拟机、调试工具、内存运行检测,以及为Eclipse IDE所写的插件。Android的优势源代码完全开放,便于开发人员更清楚的把握实现细节,便于提高开发人员的技术水平,有利于开发出更具差异性的应用。采用了对有限内存、电池和CPU 优化过的虚拟机Dalvik,Android 的运行速度比想象的要快很多。运营商(中国移动等)的大力支持,产业链条的热捧。良好的盈利模式(3/
8、7 开),产业链条的各方:运营商、制造商、独立软件生产商都可以获得不错的利益。将移动终端的评价标准从硬件向软件转变,极大的激发了软件开发者的热情。Android 的源代码遵循Apache V2 软件许可,而不是通常的GPL v2 许可。有利于商业开发。具有强大的Linux 社区的支持。Android优点开放性网络接入自由丰富硬件支持方便开发应用程序无界限无缝结合Google应用Android缺点安全问题恶意程序数量加速增长稳定性的问题应用程序质量参差不齐;版本过多,升级过快; 系统碎片化必须用高配置弥补系统上的缺陷用户体验不一致系统费电严重,系统续航能力不足Android、iOS开发对比开发商
9、编程语言Java、Objective-C、Swift源码模式开放源码、封闭源码内核Linux、Darwin最早发行时间2008年9月、2007年6月硬件兼容性软件兼容性Android开发支持的系统环境Android SDK所支持的操作系统:Windows XP (32-bit) or Vista (32- or 64-bit)Mac OS X 10.4.8 or later (x86 only)Linux (tested on Linux Ubuntu Dapper Drake)Android的系统架构Linux KernelAndroid 基于Linux内核,但不是Linux。内核提供系统核
10、心服务,如进程、内存、电源管理,网络连接,驱动与安全等。并不包括全部的Linux。Linux 内核位于硬件和软件堆之间的抽象层。核心服务:安全机制、内存管理、进程管理、网络、硬件驱动。内核扮演的是硬件层和系统其它层次之间的一个抽象层的概念。操作系统初始化和编程接口与标准的Linux 系统是有所不同的。Android的安全机制沙箱模型是业界保证系统安全的关键安全技术,已经在浏览器等领域得到了成功应用。现实中的沙箱(SandBox),是一种儿童玩具,类如KFC中一个装满小球的容器,儿童可以在其中随意玩耍,起到保护儿童的作用。(也可以理解为一种安全环境。)作为优秀的开源移动平台操作系统,Androi
11、d也有相应的沙箱模型。沙箱防止应用程序读写用户的私有数据(如联系人或电子邮件),读写其他程序的文件、访问网络、保持设备唤醒、访问摄像机等。应用程序在访问这些资源时,必须首先获得许可。Andoid Runtime应用开发语言:JavaDalvik虚拟机指令 : Dalvik Excutable Java标准库把java代码编译为Dalvik可执行文件(dex format)运行环境Dalvik是Google公司自己设计用于Android平台的Java虚拟机,核心库提供的Java 功能Dalvik 虚拟机依赖于Linux 内核,可同时运行多个Dalvik 虚拟机,每一个Android 应用程序在它
12、自己的Dalvik VM 实例中运行VM 执行优化的Dalvik 可执行文件(.dex)。Dx-工具把编译过的Java 文件转换为dex 文件。Dalvik Virtual MachineAndroid custom implementation virtual machineProvides application portability and runtime consistencyRuns optimized file format (.dex) and Dalvik bytecodeJava .class / .jar files converted to .dex at build
13、timeDesigned for embedded environmentSupports multiple virtual machine processes per deviceHighly CPU-optimized bytecode interpreterEfficiently Using runtime memoryCore LibrariesCore APIs for Java language provide a powerful, yet simple and familiar development platformDVM vs JVMDVMGoogleDalvik excu
14、tableJVMSunJava bytecodeDalvik 基于寄存器,而 JVM 基于栈。Dalvik是由Dan Bornstein编写的,名字来源于他的祖先曾经居住过名叫Dalvk的小渔村,村子位于冰岛。Applications FrameworkActivity manager管理运行应用程序Content Provider在各应用之间共享数据Resource Manager管理非代码资源Notification Manager显示用户提示和状态栏Views System可扩展显示,可构建UI应用和框架核心应用,例如联系人,电子邮件,电话,浏览器,日历,地图, .充分访问所有核心应用框
15、架API简化组件的重用用Java 编写应用程序ApplicationsJAVA编写的应用程序Android开发工具Android以Java作为开发语言,Google建议使用Eclipse或Android Studio作为集成开发环境。Eclipse ADT特点最早支持Android开发的工具、使用率最广;Eclipse的Android开发插件ADT(Android Development Toolkit),兼容传统Eclipse工程的开发,同时简化了Android应用程序的开发;多类型项目支持(Java、Web、Android),支持多项目引用关系的设置。Android Studio特点编辑器
16、智能模糊匹配、界面编辑自动预览;但DDMS等调试功能还是基于ADT;专注Android开发。基于Eclipse的Android开发环境 IDE Eclipse Eclipse plug-in - ADTSoftware Development Kit (SDK)Android EmulatorDebuger搭建Android 开发环境的步骤1. 安装Android SDK2. 安装Eclipse Android Development Tools (ADT)插件3. 创建Android虚拟设备AVD搭建Android 系统开发环境1 、 安装Android SDK1)、解压缩Android -
17、sdk-r24-windows文件解压缩Android -sdk-r24-windows到指定文件夹(如D:Android Android -sdk-windows),将Android SDK中的tools绝对路径添加到系统变量Path中,添加的值为D:Android Android -sdk-windowstools,单击“确定”。 搭建Android 系统开发环境1 、 安装Android SDK2)、查看Path设置是否生效打开cmd窗口,输入Android -h,出现如图所示信息,表示设置已经生效。搭建Android 系统开发环境1、 安装Android SDK3)、启动SDK Man
18、ager,勾选要安装的Android SDK包,如图所示。注意中途有个别地方需要Accept许可,然后等待安装完成,这可能需要比较长的时间。搭建Android 系统开发环境Android SDK系统安装完之后,会提示是否要安装ADB。ADB(Android Debug Bridge)是开发Android应用项目的调试工具,这里要确认安装。Android SDK所有系统文件安装完之后,打开安装目录,其目录结构如图所示。Android SDK系统主要目录结构 add-ons: 放置google提供的API,包括google地图 API等。docs: 放置Android系统的帮助文档和说明文档。pl
19、atforms:针对每个SDK版本提供了与其相对应的API包。tools和platform-tools:放置通用的工具文件,如Android模拟器AVD、SQLite数据库、调试工具ADB、创建模拟的SD卡工具mksdcard等。为了能方便的使用这些工具,通常要将其设置成 系统环境变量。samples:放置每个SDK版本提供的示例程序。system-images:由于Android是基于Linux的系统,该目录放置不同版本的img系统映象文件。搭建Android 系统开发环境2、安装Eclipse Android Development Tools (ADT)插件1)打开 Eclipse,选择
20、菜单中的 Help - Eclipse Marketplace,如图所示。搭建Android 系统开发环境2、安装Eclipse Android Development Tools (ADT)插件2)安装完毕,重启“Eclipse”,完成安装。如果在工具栏出现如图所示的图标,表示SDK Manager安装成功。搭建Android 系统开发环境2、安装Eclipse Android Development Tools (ADT)插件3)设定“SDK Location”打开 Eclipse ,进入菜单中的 Window-Preferences,选中其中的“Android ”,如图所示。搭建Andr
21、oid 系统开发环境3、创建 Android 虚拟设备 AVD打开 Eclipse 工具栏上的Android AVD按钮。搭建Android 系统开发环境3、创建 Android 虚拟设备 AVD创建虚拟设备。搭建Android 系统开发环境3、创建 Android 虚拟设备 AVD启动虚拟机,出现如图所示的界面,表示安装AVD设备成功。Android开发的API级别Android平台提供了一套框架API,使得应用程序可以与系统底层进行交互。API级别是一个整数值,它唯一标识了一个具体版本的Android平台,及其框架的API的版本。每个Android平台的后续版本会包括它提供的更新的Andr
22、oid应用程序框架的API。高版本的API与早期版本兼容。也就是说,在新版本API中大多数都是新增功能,和引进新的或替代的功能。作为API的部分升级,老的替换的部分已过时,但不会从新版本中删除,使得已有的应用程序仍然可以使用它们。应用程序可以用框架API提供的清单文件元素来描述该应用程序可以运行的最小和最大API级别,以及应用程序开发者设计期望运行的平台版本。三种属性分别描述如下:android:minSdkVersion;android:targetSdkVersion;android:maxSdkVersion. Android项目的开发流程在Android 应用程序开发中,使用的是Jav
23、a语言,除了需要熟悉Java语言的基础知识之外,还需要了解Android 提供的扩展Java功能。Android 提供了一些扩展的Java类库,类库又分为若干个包,每个包中包含若干个类。Android Java API包含40多个包和700多个类,这些为编写Android应用程序提供了一个功能丰富的平台。一般来说,Android项目大致的开发步骤如下:1、对项目进行分析:了解项目的主要功能、有哪些必须的界面及界面之间的跳转关系等等;2、架构设计:对整个项目分解;3、界面设计:确定程序的主界面、各模块界面等,使项目更加美观;4、数据操作和存储;5、代码的编写;6、程序调试。Android开发中常
24、见文件介绍1、java文件-应用程序源文件2、xml文件-Android上的资源文件3、class文件-Java编译后的目标文件4、dex文件-Android平台上的可执行文件5、apk文件-Android上的安装文件开发第一个Android 项目1、选择菜单File-New-Android Application Project,如图所示。开发第一个Android 项目2、在出现的窗口中,选择Android-Android Application Project,如图所示,单击Next按钮。开发第一个Android 项目3、在出现的窗口中,输入项目名称,例如:firstDemo,包名称可以自
25、己输入(例如 “.zzu.ie.firstdemo” ),也可以用默认值,其他的取默认值,如图所示,单击Next按钮。开发第一个Android 项目4、在后续出现的窗口中,一律取默认值,单击Next,直到单击finish按钮完成。系统自动生成一个Android应用项目框架,如图所示。应用程序界面开发第一个Android 项目5、回到Eclipse界面,发现左边已经有了firstDemo项目,里面有许多的文件夹和文件,右击firstDemo项目- Run as - Android Application,如图所示。开发第一个Android 项目6、等待一段时间,直到出现模拟手机界面,
26、用鼠标点击解锁。7、出现firstDemo的运行结果,显示如图所示的界面。打包第一个Android 项目1、在Eclipse中,如图所示,单击File-Export,出现如图所示界面,选择Android -Export Android Application,然后单击“Next”。 打包第一个Android 项目2、在出现的窗口中输入需要打包的项目名称,如图所示,手工或者浏览方式在对话框中输入项目名,例如:刚才建立的“firstDemo”,然后单击“Next”。打包第一个Android 项目3、要导出项目需要先建立一个证书,后续的步骤将建立一个证书,在图所示的窗口中用手工或者浏览方式,输入证书
27、文件保存的位置,例如:d:MyfirstDemo,然后单击“Next”。打包第一个Android 项目4、填写完整的证书信息,如图所示,然后单击“Next”。打包第一个Android 项目5、在出现的窗口中用手工或者浏览方式,输入要导出的apk文件存放的位置,例如:d:MyfirstDemofirst.apk,如图所示,然后单击“finish”。打包第一个Android 项目6、打开“d:MyfirstDemo”文件夹,可以发现“first.apk”文件已经建立,如图所示。这个apk文件就可以安装在手机上执行,也可以在Android Market注册后发布。编写代码MainActivity.j
28、ava软件开发工具Eclipse自动生成的如下代码:显示main.xml定义的用戶界面package com.example.firstdemo;import android.app.Activity;import android.os.Bundle;public class MainActivity extends Activity Overrideprotected void onCreate(Bundle savedInstanceState) / 主程序入口super.onCreate(savedInstanceState); / 调用父类的onCreate()方法setContent
29、View(R.layout.activity_main); / 注意这里没有调用布局文件Android项目结构前面建立了一个Android项目firstDemo,这个项目下有一些文件和文件夹,打开文件夹,里面有一些文件,如图所示。Android项目结构src文件夹该文件夹是放项目源代码的,里面有个MainActivity.java文件,是Activity程序,类似于java中的主类。可以理解为它是一个UI的容器,直接跟用户打交道的类。gen文件夹该文件夹中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件,这个文件由Android开发工具自动生成。Android
30、开发工具会根据放入res目录的xml界面文件、图标以及常量,自动同步更新修改R.java文件。这个文件是只读文件,一般不要修改它。Android项目结构Android 5.1.1表示现在使用的Android SDK的版本是5.1.1。assets目录包含应用系统需要使用到的资源文件,诸如mp3、视频等较大的文件。注意它不会在R.java中自动生成ID。res文件夹资源目录,包含项目中的资源文件并将编译进应用程序。向此目录添加资源时,会被R.java自动记录。新建一个项目res目录下会有三个自动生成的子目录:drawable、layout、values。AndroidManifest.xml每个
31、应用程序都有一个AndroidManifest.xml在它的根目录里。这个文件提供了关于这个应用程序的基本信息,记录应用中所使用的各种组件。系统在运行之前必须知道这些信息。资源目录及资源类型目录结构资源类型res/values存放字符串,颜色,尺寸,数组,主题,类型等资源res/layoutxml布局文件(用户界面设计)res/drawable图片(bmp,png,gif,jpg等)res/animxml格式的动画资源 (帧动画 和 补间动画)res/menu菜单资源res/raw可以放任意类型文件,一般存放比较大的音频、视频、图片或文档,会在R类中生成资源id,封装在apk中。assets可
32、以存放任意类型,不会被编译,与raw相比,不会在R类中生成资源id。res目录用于存放项目所需要的声音、图片、用户界面等资源文件。资源目录及资源类型(1)drawable细分为 drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi子目录,分别存放分辨率大小不同的图标资源,以便相同的应用程序在分辨率大小不同的显示窗体上都可以顺利显示。 资源目录及资源类型(2)在layout子目录存放用户界面布局文件。其目录中有一个系统自动生成的activity_main.xml文件,它可以按可视化的图形设计界面显示,也可以按代码设计界面显示,如下图所示
33、 。 资源目录及资源类型(3)values子目录存放参数描述文件资源。这些参数描述文件都是XML文件,如字符串(string.xml)、颜色(color.xml)、数组(arrays.xml)等 。 gen目录内容gen目录存放由ADT系统自动产生的一个R.java文件,该文件将res目录中的资源与ID编号进行映射。该文件由系统自动生成,用户不能修改。gen目录内容当在程序中引用资源需要使用R类,其引用形式如下:R.资源文件类型.资源名称例如(1)在Activity中显示布局视图:setContentView(R.layout.main);(2)程序要获得用户界面布局文件中的按钮实例Butto
34、n1:mButtn = (Button)findViewById(R.id.Button1);(3)程序要获得用户界面布局文件中的文本组件实例TextView1:mEditText = (EditText)findViewById(R.id.EditText1);AndroidManifest.xml项目配置文件 AndroidManifest.xml是每个应用程序都需要的系统配置文件,它位于应用程序根目录下。 AndroidManifest.xml文件代码说明代码元素说 明manifestxml文件的根结点,包含了package中所有的内容xmlns:android命名空间的声明,使得And
35、roid中各种标准属性能在文件中使用package声明应用程序包uses-sdk声明应用程序所使用的AndroidSDK版本applicationapplication级别组件的根结点,声明一些全局或默认的属性,如标签、图标、必要的权限等android:icon应用程序图标android:label应用程序名称activityActivity是一个应用程序与用户交互的图形界面,每一个Activity必须有一个标记对应android:name应用程序默认启动的活动程序Activity界面intent-filter声明一组组件支持的Intent值。在Android中,组件之间可以相互调用,协调工作,Intent提供组件之间通讯所需要的相关信息action声明目标组件执行的Intent动作category指定目标组件支持的Intent 类别Android应用程序架构逻辑控制层与表现层在Android应用程序中,逻辑控制层与表现层是分开的设计的。逻辑控制层由Java应用程序实现,表现层由XML文档描述,如图所示。Android应用程序架构的实现Android ApiDemo示例一般SDK中都会带有一些示例程序,说明具体用法,Android SDK也是如此。它提供了一些ApiDemo示例,详细说明了Android中主要API
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑施工员培训
- 基于学习地图的培训体系
- 患者安全目标与风险防范培训
- 第八章 薪酬管理
- 心脏超声在心脏瓣膜病诊断中的应用
- 第 7 单元万以内数的认识评估检测题(B卷)(单元测试)(无答案)2024-2025学年二年级下册数学人教版
- 三基三严培训课件
- 中国异丙肌苷市场销售模式与投资前景策略分析报告2025-2031年
- 即景作文五年级知识梳理
- 教师教育故事
- 小学六年级体育课件《原地单手肩上投篮》
- 初中数学北师大九年级上册(2023年修订) 反比例函数教案反比例函数-k的几何意义
- 二年级上册心理健康教育课件-我的小伙伴 全国通用(共10张PPT)
- 某公司财务尽职调查报告
- 队列“四会”教学法教案
- YC∕T 266-2008 烟用包装膜
- DB36T 1589-2022水土保持无人机监测技术规程_(高清版)
- 装饰图案__ppt
- 新职业英语-艺术设计.unit5
- 直映认字阅读第一册-1
- 初中物理公式汇总一览表
评论
0/150
提交评论