1 / 38

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

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

tiger-wiley
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3G移动互联网应用技术开发 第一章:Android快速入门

  2. 本章概述 时势造英雄,PC时代微软凭借Windows操作系统造就了微软帝国,互联网 时代Google凭借搜索引擎造就了Google帝国。那么,移动互联网时代的来 临,谁将是真正的英雄呢?这个我们很难定论,但是一个不确定的答案就 是,掌握移动互联网技术的人将是这个时代的弄潮儿,将成为这一时代的 真正的英雄。 Android操作系统能被广泛地应用主要是因为其“博彩众长,为它所用”。 Android采用了开源的Linux操作系统,底层使用了访问硬件速度最快的C 语言,应用层采用了简单而强大的Java语言,这使得Android无处不闪烁 着耀眼的光芒。 我们知道,之前的手机操作系统市场被少数的实力雄厚的公司垄断, Android的推出使得这个市场从新“洗牌”。王者归来,个人英雄主义又 将重现。你可以开一家公司提供定制的Android系统,也可以开一家公司 开发Android应用软件、游戏在Android Market上出售。

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

  4. 1-1:Android的今生前世 • Android是“机器人”的意思,是Google公司于2007年11月5日发布的一个基于Linux平台的开源手机操作系统。该系统由底层的Linux操作系统、中间件和核心应用程序组成。Android应用程序由强大的Java语言来编写,也支持其他一些语言如C、Perl等。 • Android一开始不是Google自己研发的产品,而是收购了一家刚刚创业22个月公司的产品,该公司的创始人是Andy Rubin,也就是现在Google Android产品负责人罗宾。Google 收购了Android没有向媒体透露任何 消息,可以说是悄悄进行的。罗宾拒 绝对Android公司或出售给Google发表 评论。Google的一名发言人也拒绝就 这一交易发表任何评论,只是指出“ 我们收购Android公司的原因是,他有天才的工程师和了不起的技术, 我们对他们的加盟感到由衷的高兴”。

  5. 1-2:Android的平台架构及特性 • Android系统从底向上一共分了4层,每一层都把底层实现封装,并暴露调用接口给上一层。

  6. 1-2:Android的平台架构及特性 • Android系统结构图中文版

  7. 1-2-1:Linux内核层解析 • Linux内核(Linux Kernel) Android运行在linux kernel 2.6之上,但是把linux内受GNU协议约束的部分做了取代,这样在Android的程序可以用于商业目的。 • 主要组成部分: • 显示驱动,用于控制整体系统的屏幕显示效果。 • 摄像头驱动,用于控制摄像头硬件与系统之间的链接。 • 内存驱动,用于控制系统对内存硬件的操作。 • 绑定进程间通信,用于控制程序间的相互调用传递信息。 • 键盘驱动,用于控件键盘的操作。 • WiFi,用于控制无线网络的控制及操作。 • 音频驱动,用于操作喇叭和麦克的控制。 • 电源管理,用于控制电池电量及电量消耗。 Linux 内核是硬件和软件层之间的抽象层

  8. 1-2-2:中间件部分解析 • 中间件包括两部分:核心库和运行时(Libraries & Android Runtime) • 核心库包括,SurfaceManager显示系统管理库,负责把2D或3D内容显示到屏幕;Media Framework 媒体库,负责支持图像,支持多种视频和音频的录制和回放;SQLite数据库,一个功能强大的轻量级嵌入式关系数据库;WebKit浏览器引擎等。 • Dalvik虚拟机:区别于Java虚拟机的是,每一个Android 应用程序都在它自己的进程中运行,都有一个属于自己的Dalvik虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。

  9. 1-2-3:应用程序框架层解析 • 应用程序框架(Application Framework) 丰富而又可扩展性的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids), 文本框(text boxes),按钮( buttons), 可嵌入的web 浏览器。 • 内容提供者(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据。 • 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件( layoutfiles)。 • 通知管理器(Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。 • 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。

  10. 1-2-4:应用程序层解析 • 应用程序 (Applications) Android 系统会内置一些应用程序包包括email 客户端,SMS 短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA 语言编写的。

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

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

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

  14. 1-4-2:Service 组件介绍 一个Service是一种长生命周期的、没有用户界面的程序。比较好的一 个例子就是正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的 应用中,应该会有多个Activity,让使用者可以选择歌曲并播放歌曲。然而, 音乐重放这个功能并没有对应的Activity,因为使用者会认为在导航到其他 屏幕时音乐应该还在播放。在这个例子中,媒体播放器这个Activity会使用 Context.startService()来启动一个Service,从而可以在后台保持音乐播放。 同时,系统也将保持这个Service一直执行,直到这个Service运行结束。 另外,我们还可以通过使用Context.bindService()方法连接到一个 Service上(如果这个Service还没有运行则将它启动)。当连接到一个 Service之后,我们还可以通过Service提供的借口与它进行通信。拿媒体播 放器这个例子来说,我们还可以进行暂停、重播等操作。

  15. 1-4-3:Broadcast Receiver & Content Provider & View 组件 • Broadcast Receiver 是为了实现系统广播而提供的一种组件。例如,我们可以发出一种广播来检测手机电量的变化,这个时候就可以定义一个Broadcast Receiver来接受广播,当手机电量较低时提醒用户。 • 我们知道Android的应用程序之间相互独立,各个组件的运行在不同的线程当中,这就意味着数据是不能共享的。如何使得不同的组件数据的共享呢?Android通过使用Content Provider来实现不同组件之间的数据共享。 • View是Android中图形用户界面的基类,提供了可视化界面的展示。Android的图形界面展示可以分为三层:底层是Activity;Activity上面是Window;Window上面是Views。View又可以分为View和ViewGroup。View是指基本的控件,例如按钮、单选框、多选框、菜单等;ViewGroup是指布局控件,即用来控制界面中的空间如何布局摆放的。

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

  17. 1-5:Android 与 JavaME之间的区别与联系 • 本门课程是讲解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应用程序的开发。

  18. 1-6:Android 的优势 我们可以把Android、Symbian和 Win CE放在一起来比较各自的优缺 点,但是,我们很难讲Android与Java ME谁好谁坏,因为,他们的出发点 和应用场合不一样。 Android的优势在于它的开发性、开源等优势,是一个优秀的移动设 备操作系统。Java ME是一个移动设备开发的软件包,跨平台性是它最主 要的特点。有人预言Android的出现将导致Java ME的死亡,我们并不认同 这种看法,Symbian、Win CE等其他手机操作系统存在一天,Java ME的应 用就不会减少,甚至我们可以在Android中开发Java ME应用,二者并不 冲突。

  19. 1-7:Android SDK 环境搭建 “工欲善其事,必先利其器”,要想更高效、快速地开发Android应用 程序,好的开发环境是必不可少的。在Android SDK中提供了一系列工具, 它们有模拟硬件设备的Emulator(模拟器)、Android Asset Packing Tool (AAPT)Android资源打包工具、Dalvik Debug Monitor Service(DDMS) Dalvik调试监视服务、Android Debug Bridge(adb)Android调试桥和将.class 自己吗文件转换为.dex文件的DX工具。

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

  21. 1-7-2:Android SDK 安装及结构介绍 • 步骤2:安装 Android SDK 管理器及文件夹结构简介 我们这里以windows操作系统为例来讲述如何安装配置Android开发环境。 如上图所示,单击“android-sdk_r10-windows.zip”链接进行SDK下载,下载该文件后解压该文件到操作系统的任意目录下。

  22. 1-7-3:Android SDK 的在线安装 I • 步骤3:通过Android SDK 管理器在线下载安装各个系统版本 下载完成后,打开目录找到SDK Manager.exe可执行文件,双击执行该 文件,运行界面如下图所示: • 这是一个Andrid SDK各个版本的管理器,我们需要在线下载安装所需要 • 的Andrid SDK版本。点击【Update All…】可以选择需要下载或安装的 • Android不同的版本或插件。

  23. 1-7-3:Android SDK 的在线安装 II • 当安装Android SDK或其他第三方的插件安装完毕后,我们可以发现我们的paltforms文件夹中多了Android SDK的信息,如下图所示: • 这些都是Android 各个版本的SDK,说明在线安装已经完成,其实在正 • 常情况下我们只需要下载我们需要的SDK版本即可,无需将所有版本的 • SDK全部下载下来。同时Android SDK and AVD Manager中的 • 【Installed packages】中将显示已安装成功的SDK版本。

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

  25. 1-8-1:Android中的常用操作命令 I • 命令:android list target • 功能:查看当前Android SDK and AVD Manager中已安装的Android SDK版本。 • 当前系统中在线下载安装了两个版本的SDK

  26. 1-8-2:Android中的常用操作命令 II • 命令:android create avd -n <avd名称> -t <SDK的id号> • 功能:创建一个Android虚拟设备(Android Virtual Device,AVD) • 创建完毕后会在C:\Users\用户名\.android\avd 目录下生成两个文件, • 分别是:android2.3.ini 和 android2.3文件夹。 • Android2.3文件夹中存放了:config.ini (dos中的默认配置信息)和 • userdata.img(手机中的内部存储设备镜像文件)

  27. 1-8-3:Android中的常用操作命令 III • 命令:android list avds • 功能:查看已创建的Android虚拟设备(Android Virtual Device,AVD) • 当前系统中只有我们刚刚创建的基于Android2.3(API 10)的AVD虚拟 • 机,名称为android2.3 。

  28. 1-8-4:Android中的常用操作命令 IV • 命令:android delete avd –n <avd名称> • 功能:删除一个Android虚拟机(Android Virtual Device,AVD) • 执行指令删除avd虚拟设备后,在C:\Users\用户名\.android\avd目录下 • 对应的android3.0.ini 和 android3.0.avd 文件夹也一并删除。

  29. 1-8-5:Android中的常用操作命令 V • 命令:emulator -avd <avd名称> [-scale 0.0~1.0] • 功能:启动创建好的AVD虚拟设备。-scale 代表显示的比率(常用0.6)

  30. 1-8-6:Android中的常用操作命令 VI • 命令:mksdcard <?M> <镜像文件存放路径> • 功能:创建一个指定大小的SD卡 • 在E盘根目录下,创建一个名称为mystore.img的镜像文件,大小为 • 10Mb,用于充当手机的SD卡。

  31. 1-8-7:Android中的常用操作命令 VII • 命令:emulator –avd <avd名称> -sdcard <SD卡路径> -scale x.x • 功能:启动一个带SD卡(外部存储设备)的AVD虚拟设备。

  32. 1-8-8:Android中的常用操作命令 VIII • 命令:adb push <local资源> <remote资源> • 功能:将本地文件拷贝至手机的SD卡中

  33. 1-8-9:Android中的常用操作命令 IX • 命令:adb shell • 功能:进入到当前AVD虚拟设备中,并查看SD卡中的内容。 • 使用 cd /xxx/ 命令进入到指定位置的文件夹。 • 使用 ls命令查看当前文件夹下面的文件。

  34. 1-8-10:Android中的常用操作命令 • 命令:adb pull <remote资源> <local资源> • 功能:将手机的SD卡中的文件拷贝到本地文件中。

  35. 1-8-11:Android中的常用操作命令 • 命令:adb install <路径+*.apk> • 功能:向Android系统中安装程序(*.apk为Android默认的安装文件)。 • 将C:\angrybirds.apk (愤怒的小鸟)程序安装到Android系统中。

  36. 1-8-12:Android中的常用操作命令 命令:adb uninstall <*.apk> 功能:卸载Android系统中的制定应用程序(一般通过界面操作)。 命令:adb shell -rm <路径+文件名称> 功能:删除Android系统中的制定位置的文件。 命令:adblogcat <待检测的类名称> : <级别> * : S 功能:查看运行中的某个文件日志信息。 级别:V-verbose D-debug I-info W-warning F-fatal

  37. 本章总结 • Android 操作系统的整体体系结构总体分为四层:Linux内核层、中间件层、应用程序框架层和应用程序层。 • Android 系统拥有四大核心组件分别是:Activity组件、Service服务、Broadcast Receiver 和 ContentProvider组成。同时掌握四大核心组件的功能及作用。 • Android每个组件之间的通信依靠Intent对象完成,它充当了各个组件之间的“通信信使”。与此同时各个组件也需要依靠View组件一各种控件和图形的方式显示在屏幕上,便于用户进行操作完成各种功能和动作。而View组件又分为:View (按钮、文本框、下拉菜单等视图控件)和 ViewGroup(布局模式)两大部分。 • 创建、查看、启动、删除 AVD(虚拟设备)的命令 • 使用命令完成应用程序(*.apk)的安装 • 创建并加载sdcard卡的命令

  38. 第一章 课后作业 • 请您简述Android系统的体系结构及各部分的功能? • 请您阐述Intent对象在Android系统中的作用? • 如何理解View及ViewGroup之间的区别和联系? • 请您阐述Android系统中的四大核心组件和服务都有那些?及其功能? • 请您阐述Android系统与其他智能手机操作系统之间的差异。 • 请您阐述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应用程序。

More Related