3G 移动互联网应用技术开发

38
3G 移移移移移移移移移移移 移移 一: Android 移移移移

description

3G 移动互联网应用技术开发. 第一章 : Android 快速入门. 本章概述. 时势造英雄 , PC 时代微软凭借 Windows 操作系统造就了微软帝国,互联网 时代 Google 凭借搜索引擎造就了 Google 帝国。那么,移动互联网时代的来 临,谁将是真正的英雄呢?这个我们很难定论,但是一个不确定的答案就 是,掌握移动互联网技术的人将是这个时代的弄潮儿,将成为这一时代的 真正的英雄。. Android 操作系统能被广泛地应用主要是因为其“博彩众长,为它所用”。 Android 采用了开源的 Linux 操作系统,底层使用了访问硬件速度最快的 C - PowerPoint PPT Presentation

Transcript of 3G 移动互联网应用技术开发

Page 1: 3G 移动互联网应用技术开发

3G 移动互联网应用技术开发

第一章: Android 快速入门

Page 2: 3G 移动互联网应用技术开发

时势造英雄, PC 时代微软凭借 Windows 操作系统造就了微软帝国,互联网时代 Google 凭借搜索引擎造就了 Google 帝国。那么,移动互联网时代的来临,谁将是真正的英雄呢?这个我们很难定论,但是一个不确定的答案就是,掌握移动互联网技术的人将是这个时代的弄潮儿,将成为这一时代的真正的英雄。

Android操作系统能被广泛地应用主要是因为其“博彩众长,为它所用”。Android 采用了开源的 Linux 操作系统,底层使用了访问硬件速度最快的

C

语言,应用层采用了简单而强大的 Java 语言,这使得 Android 无处不闪烁

着耀眼的光芒。

我们知道,之前的手机操作系统市场被少数的实力雄厚的公司垄断,Android 的推出使得这个市场从新“洗牌”。王者归来,个人英雄主义又将重现。你可以开一家公司提供定制的 Android 系统,也可以开一家公司开发 Android 应用软件、游戏在 Android Market 上出售。

本章概述

Page 3: 3G 移动互联网应用技术开发

了解 Android 的前世今生 掌握 Android 的平台架构及特性 了解 Android Market 掌握 Android 应用程序组件 了解 Android 与 Java ME 的区别于联系 了解 Android 操作系统的优势 掌握 Android SDK 环境的搭建 掌握 Android 中的常用操作命令

本章目标

Page 4: 3G 移动互联网应用技术开发

Android 是“机器人”的意思,是 Google 公司于 2007 年 11 月 5 日发布的一个基于 Linux 平台的开源手机操作系统。该系统由底层的 Linux操作系统、中间件和核心应用程序组成。 Android 应用程序由强大的Java 语言来编写,也支持其他一些语言如 C 、 Perl 等。

1-1 : Android 的今生前世

Android 一开始不是 Google 自己研发的产品,而是收购了一家刚刚创业 22 个月公司的产品,该公司的创始人是 Andy Rubin ,也就是现在Google Android 产品负责人罗宾。 Google

收购了 Android 没有向媒体透露任何 消息,可以说是悄悄进行的。罗宾拒 绝对 Android 公司或出售给 Google 发表 评论。 Google 的一名发言人也拒绝就 这一交易发表任何评论,只是指出“ 我们收购 Android 公司的原因是,他有天才的工程师和了不起的技术, 我们对他们的加盟感到由衷的高兴”。

Page 5: 3G 移动互联网应用技术开发

Android 系统从底向上一共分了 4 层,每一层都把底层实现封装,并暴露调用接口给上一层。

1-2 : Android 的平台架构及特性

Page 6: 3G 移动互联网应用技术开发

Android 系统结构图中文版

1-2 : Android 的平台架构及特性

Page 7: 3G 移动互联网应用技术开发

Linux 内核 (Linux Kernel) Android运行在 linux kernel 2.6 之上,但是把linux内受 GNU协议约束的部分做了取代,这样在 Android 的程序可以用于商业目的。

主要组成部分:– 显示驱动,用于控制整体系统的屏幕显示效果。– 摄像头驱动,用于控制摄像头硬件与系统之间的链接。– 内存驱动,用于控制系统对内存硬件的操作。– 绑定进程间通信,用于控制程序间的相互调用传递信息。– 键盘驱动,用于控件键盘的操作。– WiFi ,用于控制无线网络的控制及操作。– 音频驱动,用于操作喇叭和麦克的控制。– 电源管理,用于控制电池电量及电量消耗。

1-2-1 : Linux内核层解析

Linux 内核是硬件和软件层之间的抽象层

Page 8: 3G 移动互联网应用技术开发

中间件包括两部分:核心库和运行时 (Libraries & Android Runtime) 核心库包括, SurfaceManager 显示系统管理库,负责把 2D 或 3D内容显示到屏幕;Media Framework 媒体库,负责支持图像,支持多种视频和音频的录制和回放; SQLite 数据库,一个功能强大的轻量级嵌入式关系数据库;WebKit 浏览器引擎等。

Dalvik虚拟机:区别于 Java虚拟机的是,每一个 Android 应用程序都在它自己的进程中运行,都有一个属于自己的 Dalvik 虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。 Dalvik虚拟机并非运行 Java字节码,而是运行自己的字节码。

1-2-2 :中间件部分解析

Page 9: 3G 移动互联网应用技术开发

应用程序框架 (Application Framework) 丰富而又可扩展性的视图( Views),可以用来构建应用程序,

它包括列表( lists),网格( grids), 文本框( text boxes),按钮( buttons), 可嵌入的 web 浏览器。1. 内容提供者( Content Providers)使得应用程序可以访问另一个应用

程序的数据(如联系人数据库), 或者共享它们自己的数据。2. 资源管理器( Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件( layoutfiles )。

3. 通知管理器( Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。

4. 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。

1-2-3 :应用程序框架层解析

Page 10: 3G 移动互联网应用技术开发

应用程序 (Applications) Android 系统会内置一些应用程序包包括 email 客户端, SMS 短消息

程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用 JAVA 语言编写的。

1-2-4 :应用程序层解析

Page 11: 3G 移动互联网应用技术开发

在 2008 年 8 月 28 日推出, Android Market ,通常理解为应用商店。 Android Market 是一个由谷歌公司为 android 系统用户创建的服务,允许手机用户从 Android Market浏览和下载一些应用程。用户可以购买或免费试用。我们也可以将自己开发的程序发布到市场中,但你需要申请一个 Market账户。这也成为了 Andrid 开发人员除了上班赚钱的另外一条致富途径了。

1-3 : Android Market

Page 12: 3G 移动互联网应用技术开发

如果你想从事 Android 应用程序开发,那么了解 Android 应用程序的思想是非常必要的。 Android 应用程序没有统一的入口(例如 main()方法),各个应用之间是相互独立的,并且运行在自己的进程当中。根据完成的功能不同, Android划分了四类核心的组件类: Activity 、 Service 、 Broadcast Receiver 和 ContentProvider相同组件和不同组件之间的导航通过 Intent 来完成。 Android还定义了View类来显示可视化界面,例如菜单、对话框、下拉列表等。下面我们将逐一介绍各个组件的意义和用法。

1-4 : Android 应用程序组件概述

Page 13: 3G 移动互联网应用技术开发

Activity 是 Android 组件中最基本也是最常用的一种组件,在一个 Activity应用中,一个 Activity通常是一个单独的屏幕(界面)。每一个 Activity都被实现为一个独立的类,并且集成于 Activity 这个基类。这个 Activity类将会显示有几个 Views控件组成的用户接口,并对事件做出响应。大部分的应用都会包含多个屏幕。例如,一个短消息应用程序将会有一个屏幕用于显示联系人的列表,第二个屏幕用于写短消息,同时还会有用于浏览旧短消息及进行系统设置的屏幕。每一个这样的屏幕就是一个 Activity 。 通过调用 startActivity()方法可以从一个屏幕导航到另一个屏幕,打开Activity 的条件被分装在 Intent 中。 当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史的堆栈中。用户可以返回到历史堆栈中的前一个屏幕。当屏幕不在使用时,还可以从历史堆栈中删除。默认情况下, Android 将会保留从主屏幕到每一个应用的运行屏幕。

1-4-1 : Activity 组件介绍

Page 14: 3G 移动互联网应用技术开发

一个 Service 是一种长生命周期的、没有用户界面的程序。比较好的一个例子就是正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器

的应用中,应该会有多个 Activity ,让使用者可以选择歌曲并播放歌曲。然

而,音乐重放这个功能并没有对应的 Activity ,因为使用者会认为在导航到其

他屏幕时音乐应该还在播放。在这个例子中,媒体播放器这个 Activity会使

用Context.startService() 来启动一个 Service ,从而可以在后台保持音乐播放。同时,系统也将保持这个 Service 一直执行,直到这个 Service运行结束。 另外,我们还可以通过使用 Context.bindService()方法连接到一个Service 上(如果这个 Service还没有运行则将它启动)。当连接到一个Service 之后,我们还可以通过 Service 提供的借口与它进行通信。拿媒体播

放器这个例子来说,我们还可以进行暂停、重播等操作。

1-4-2 : Service 组件介绍

Page 15: 3G 移动互联网应用技术开发

Broadcast Receiver 是为了实现系统广播而提供的一种组件。例如,我们可以发出一种广播来检测手机电量的变化,这个时候就可以定义一个Broadcast Receiver 来接受广播,当手机电量较低时提醒用户。

我们知道 Android 的应用程序之间相互独立,各个组件的运行在不同的线程当中,这就意味着数据是不能共享的。如何使得不同的组件数据的共享呢? Android通过使用 Content Provider 来实现不同组件之间的数据共享。

View 是 Android 中图形用户界面的基类,提供了可视化界面的展示。 Android 的图形界面展示可以分为三层:底层是 Activity; Activity上面是 Window;Window 上面是 Views 。 View 又可以分为 View 和ViewGroup 。 View 是指基本的控件,例如按钮、单选框、多选框、菜单等; ViewGroup 是指布局控件,即用来控制界面中的空间如何布局摆放的。

1-4-3 : Broadcast Receiver & Content Provider & View 组件

Page 16: 3G 移动互联网应用技术开发

Intent 是不同组件之间相互导航的纽带,封装了不同组件之间导航查找的条件。在 Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有 MAIN( Activity 的门户)、 VIEW 、 PICK 、EDIT 等。而动作对应的数据则以 URI 的形式进行表示。例如,要查看一个人的联系方式,你需要创建一个动作类为 VIEW 的 Intent ,以及一个表示

这个人的 URI 。 Intent 的另一个典型的应用就是在不同的 Activity 之间充当“信使”,传递数据。

1-4-4 : Intent 组件介绍

Page 17: 3G 移动互联网应用技术开发

本门课程是讲解 Android 应用程序开发的课程,有一定的 Java ME 的学习者自然会想到它与 Java ME 之间的区别和联系。

两者区别:• 概括地讲, Android 与 Java ME 的区别在于, Android 是一个完整的

移动设别操作系统平台,有 Linux 操作系统、中间件、 C类库和核心应用程序组成,而 Java ME只是 Java 的一个微型版本,针对移动设备来开发应用程序的开发包,它必须有底层操作系统的支持,如Symbian 、 WinCE 等。

两者的联系:• Android 和 Java ME 联系并不大,如果非要说他们的联系的话,应该

在应用程序的编程语言上。 Android 应用程序和 Java ME都是 Java编程语言。有过 Java 编程经验的人可以轻松学习 Java ME 和 Android应用程序的开发。

1-5 : Android 与 JavaME 之间的区别与联系

Page 18: 3G 移动互联网应用技术开发

我们可以把 Android 、 Symbian 和 Win CE放在一起来比较各自的优缺点,但是,我们很难讲 Android 与 Java ME 谁好谁坏,因为,他们的出发点

和应用场合不一样。 Android 的优势在于它的开发性、开源等优势,是一个优秀的移动设

备操作系统。 Java ME 是一个移动设备开发的软件包,跨平台性是它最主要的特点。有人预言 Android 的出现将导致 Java ME 的死亡,我们并不认同

这种看法, Symbian 、 Win CE 等其他手机操作系统存在一天, Java ME 的应

用就不会减少,甚至我们可以在 Android 中开发 Java ME 应用,二者并不冲突。

1-6 : Android 的优势

Page 19: 3G 移动互联网应用技术开发

“工欲善其事,必先利其器”,要想更高效、快速地开发 Android 应用

程序,好的开发环境是必不可少的。在 Android SDK 中提供了一系列工具,它们有模拟硬件设备的 Emulator(模拟器)、 Android Asset Packing Tool( AAPT) Android资源打包工具、 Dalvik Debug Monitor

Service( DDMS)Dalvik调试监视服务、 Android Debug Bridge( adb) Android调试桥和

将 .class自己吗文件转换为 .dex文件的 DX工具。

1-7 : Android SDK 环境搭建

Page 20: 3G 移动互联网应用技术开发

步骤 1 :下载 Android SDK 管理器 Android SDK 的官方下载地址是: http://developer.android.com/sdk/。 在 Android1.5 之前 Google 提供了 Android SDK 开发包及完整下载,在 Android SDK1.6 之后 Google只提供了安装工具的在线安装。 Android SDK 的下载链接地址如下所示。

1-7-1 : Android SDK 管理器下载

Page 21: 3G 移动互联网应用技术开发

步骤 2 :安装 Android SDK 管理器及文件夹结构简介 我们这里以 windows 操作系统为例来讲述如何安装配置 Android 开发

环境。 如上图所示,单击“ android-sdk_r10-windows.zip”链接进行SDK下 载,下载该文件后解压该文件到操作系统的任意目录下。

1-7-2 : Android SDK 安装及结构介绍

目录结构或文件 说明add-ons 空目录保存 Google插件工具platforms 空目录保存不同版本 SDK

tools SDK工具SDK Manager.exe 在线安装 SDK 的可执行文件SDK Readme.txt 说明文件

Page 22: 3G 移动互联网应用技术开发

步骤 3 :通过 Android SDK 管理器在线下载安装各个系统版本 下载完成后,打开目录找到 SDK Manager.exe 可执行文件,双击执行该 文件,运行界面如下图所示:

1-7-3 : Android SDK 的在线安装 I

这是一个Andrid SDK各个版本的管理器,我们需要在线下载安装所需要的Andrid SDK版本。点击【Update All…】可以选择需要下载或安装的Android不同的版本或插件。

Page 23: 3G 移动互联网应用技术开发

当安装 Android SDK 或其他第三方的插件安装完毕后,我们可以发现我们的 paltforms文件夹中多了 Android SDK 的信息,如下图所示:

1-7-3 : Android SDK 的在线安装 II

这些都是 Android 各个版本的 SDK ,说明在线安装已经完成,其实在正 常情况下我们只需要下载我们需要的 SDK版本即可,无需将所有版本的 SDK全部下载下来。同时 Android SDK and AVD Manager 中的 【 Installed packages】中将显示已安装成功的 SDK版本。

Page 24: 3G 移动互联网应用技术开发

步骤 4 :配置 Android 系统环境变量 确定安装完毕的 android-sdk-windows文件夹中的 tools文件夹和platform-tools文件夹位置。将两个文件夹的绝对路径配置到系统环境变量 path 中,以便我们能够在 dos 中直接使用 android 支持的各种

命令。

1-7-4 : Android 系统环境变量配置 I

Page 25: 3G 移动互联网应用技术开发

命令: android list target 功能:查看当前 Android SDK and AVD Manager 中已安装的 Android

SDK版本。

1-8-1 : Android 中的常用操作命令 I

当前系统中在线下载安装了两个版本的 SDK

Page 26: 3G 移动互联网应用技术开发

命令: android create avd -n <avd 名称 > -t <SDK 的 id 号 > 功能:创建一个 Android虚拟设备( Android Virtual Device , AVD)

1-8-2 : Android 中的常用操作命令 II

创建完毕后会在 C:\Users\ 用户名 \.android\avd 目录下生成两个文件,分别是: android2.3.ini 和 android2.3文件夹。 Android2.3文件夹中存放了: config.ini ( dos 中的默认配置信息)

和 userdata.img(手机中的内部存储设备镜像文件)

Page 27: 3G 移动互联网应用技术开发

命令: android list avds 功能:查看已创建的 Android虚拟设备( Android Virtual

Device , AVD)

1-8-3 : Android 中的常用操作命令 III

当前系统中只有我们刚刚创建的基于 Android2.3( API 10)的 AVD虚拟机,名称为 android2.3 。

Page 28: 3G 移动互联网应用技术开发

命令: android delete avd –n <avd 名称 > 功能:删除一个 Android虚拟机( Android Virtual Device , AVD)

1-8-4 : Android 中的常用操作命令 IV

执行指令删除 avd虚拟设备后,在 C:\Users\ 用户名 \.android\avd 目录下

对应的 android3.0.ini 和 android3.0.avd 文件夹也一并删除。

Page 29: 3G 移动互联网应用技术开发

命令: emulator -avd <avd 名称 > [-scale 0.0~1.0] 功能:启动创建好的 AVD虚拟设备。 -scale 代表显示的比率 ( 常用 0.6)

1-8-5 : Android 中的常用操作命令 V

Page 30: 3G 移动互联网应用技术开发

命令: mksdcard <?M> < 镜像文件存放路径 > 功能:创建一个指定大小的 SD卡

1-8-6 : Android 中的常用操作命令 VI

在 E盘根目录下,创建一个名称为 mystore.img 的镜像文件,大小为

10Mb ,用于充当手机的 SD卡。

Page 31: 3G 移动互联网应用技术开发

命令: emulator –avd <avd 名称 > -sdcard <SD 卡路径 > -scale x.x 功能:启动一个带 SD卡(外部存储设备)的 AVD虚拟设备。

1-8-7 : Android 中的常用操作命令 VII

Page 32: 3G 移动互联网应用技术开发

命令: adb push <local 资源 > <remote 资源 > 功能:将本地文件拷贝至手机的 SD卡中

1-8-8 : Android 中的常用操作命令 VIII

Page 33: 3G 移动互联网应用技术开发

命令: adb shell 功能:进入到当前 AVD虚拟设备中,并查看 SD卡中的内容。

1-8-9 : Android 中的常用操作命令 IX

使用 cd /xxx/ 命令进入到指定位置的文件夹。使用 ls 命令查看当前文件夹下面的文件。

Page 34: 3G 移动互联网应用技术开发

命令: adb pull <remote 资源 > <local 资源 > 功能:将手机的 SD卡中的文件拷贝到本地文件中。

1-8-10 : Android 中的常用操作命令

Page 35: 3G 移动互联网应用技术开发

命令: adb install < 路径 +*.apk> 功能:向 Android 系统中安装程序( *.apk 为 Android默认的安装文

件)。

1-8-11 : Android 中的常用操作命令

将 C:\angrybirds.apk (愤怒的小鸟)程序安装到 Android 系统中。

Page 36: 3G 移动互联网应用技术开发

1-8-12 : Android 中的常用操作命令

命令: adb uninstall <*.apk>功能:卸载 Android 系统中的制定应用程序(一般通过界面操作)。

命令: adb shell -rm < 路径 + 文件名称 >功能:删除 Android 系统中的制定位置的文件。

命令: adb logcat < 待检测的类名称 > : < 级别 > * : S 功能:查看运行中的某个文件日志信息。级别: V-verbose D-debug I-info W-warning F-fatal

Page 37: 3G 移动互联网应用技术开发

• Android 操作系统的整体体系结构总体分为四层: Linux内核层、中间件层、应用程序框架层和应用程序层。

• Android 系统拥有四大核心组件分别是: Activity 组件、 Service服务、Broadcast Receiver 和 ContentProvider 组成。同时掌握四大核心组件的功能及作用。

• Android每个组件之间的通信依靠 Intent 对象完成,它充当了各个组件之间的“通信信使”。与此同时各个组件也需要依靠 View 组件一各种控件和图形的方式显示在屏幕上,便于用户进行操作完成各种功能和动作。而 View 组件又分为: View (按钮、文本框、下拉菜单等视图控件)和 ViewGroup(布局模式)两大部分。

• 创建、查看、启动、删除 AVD(虚拟设备)的命令• 使用命令完成应用程序( *.apk)的安装• 创建并加载 sdcard卡的命令

本章总结

Page 38: 3G 移动互联网应用技术开发

1. 请您简述 Android 系统的体系结构及各部分的功能?2. 请您阐述 Intent 对象在 Android 系统中的作用?3. 如何理解 View 及 ViewGroup 之间的区别和联系?4. 请您阐述 Android 系统中的四大核心组件和服务都有那些?及其功能?5. 请您阐述 Android 系统与其他智能手机操作系统之间的差异。6. 请您阐述 Android 与 JavaME 之间的联系及区别?

第一章 课后作业

实践 1 :按照要求上网下载 Android SDK 管理器,搭建好 Android运行环境。实践 2 :使用命令查看 Android SDK 中已经安装的系统版本。实践 3 :使用命令创建一个 AVD虚拟设备。实践 4 :使用命令查看已经创建的 AVD清单列表。实践 5 :创建一个 100M 大小的 sdcard ,并代卡启动 AVD 。实践 6 :使用命令向 Android 系统安装一个 sdcard文件管理器 。实验 7 :使用命令向 sdcard传输一个图片文件,并查看。实践 8 :使用命令向 Android 系统安装一个 QQ for Android 应用程序。实验 9 :删除已经安装的 Android 应用程序。