+ All Categories
Home > Documents > 拓展 Android 市场的images.china-pub.com/ebook195001-200000/198254/ch01.pdf拓展Android...

拓展 Android 市场的images.china-pub.com/ebook195001-200000/198254/ch01.pdf拓展Android...

Date post: 19-Feb-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
14
拓展 Android 市场的 Java 应用 从本章节你可以学习到: 了解 Android 系统结构 Android 应用程序的开发平台 开放嵌入式软件基金会 OESF 正在推广及增加的功能 Android 实际硬件环境测试 Android Market 销售你的应用软件
Transcript
  • 拓展 Android 市场的

    Java 应用

    从本章节你可以学习到:

    � 了解 Android系统结构

    � Android应用程序的开发平台

    � 开放嵌入式软件基金会 OESF正在推广及增加的功能

    � 在 Android实际硬件环境测试

    � 在 Android Market销售你的应用软件

  • 2

    1.1 Android 来了 美国 Google公司在 2007年 11月推出 Android操作系统开放平台并宣布成立“开放手机

    联盟 OHA”(Open Handset Alliance),这个联盟组织支持 Google公司所推动的 Android手机

    操作系统和相关的应用软件。这个联盟组织除了美国 Google公司外,还包括手机开发制造商、

    手机芯片厂商、电信公司和应用软件开发公司。

    图 1-1 开放手机联盟 OHA 网页 http://www.openhandsetalliance.com/index.html

    目前Android操作系统已发布 2.3版本(2010年 12月 6日),本书的范例程序是采用Android

    2.3 开发的,读者们可以下载安装 Android 2.3 开发平台来体验本书的范例程序和开发自己的

    Android 应用程序。美国 Google公司采用甜点名称并依英文字母顺序来命名个别版本的程序代

    码名称,Android 1.5(Cupcake)� Android 1.6(Donut)� Android 2.0(Éclair)� Android 2.1

    (Flan)�Android 2.2(Froyo)� Android 2.3(Gingerbread)。

    Android 操作系统除了用来开发手机外,也可以开发其他嵌入式系统(Embedded System)。

    2009年 3月 24日,日本数家公司发起成立了一般社团法人“开放嵌入式软件基金会 OESF”

    (Open Embedded Software Foundation),主要针对其他嵌入式系统所需要软件增加和修订新的

    功能,于 2009年 8月由工作小组提出“OESF Embedded Master”,让开发 STB、VoIP电话、

    车载设备、医疗设备和数字生活设备的厂商都可以采用 Android操作系统来设计,比如提供 IP

    Phone Extension(SIP/RTP stack)。通过 OESF推广的活动,希望能大幅度降低嵌入式系统开发

    的投资成本、提高软件开发效率以及开拓新的市场。

    “OESF Embedded Master”经过会员的试用和测试后,于 2010年 3月 10日正式对一般大

    众公开。这次公开的“OESF Embedded Master”采用 Android 1.6版和 ARM处理器,计划于

    2010年 6月提出采用 Android 2.1版的“OESF Embedded Master”。

  • 3

    图 1-2 开放嵌入式软件基金会 OESF 网页 http://www.oesf.jp/en/

    目前公开的“OESF Embedded Master”Android 1.6版,增加了下列新功能:

    � IP Phone Extension(SIP/RTP stack)

    � Bluetooth Extension(扩充 Bluetooth功能,HID、SPP、OBEX等)

    � Remote Control Extension(通过红外线或 Bluetooth无线远程操作)

    � Point Device Extension(鼠标或指针光标功能)

    � User Interface Extension(大窗体 GUI的 API)

    1.2 Android 操作系统结构 Android 操作系统平台是以 Linux 操作系统为基础,扩充 Android 运行时环境(Android

    Runtime)和应用程序开发平台(Application Platform),Android 操作系统包括有:

    � 应用程序(Application)

    � 应用程序开发平台(Application Platform)

    � Android运行时环境(Runtime)和各类链接库(Libraries)

    � Linux操作系统核心(OS Kernel)和各类驱动程序(Drivers)

    对开发 Android应用程序有兴趣的读者,可以根据自己的经验和爱好学习开发 Android设

    备 BSP或 Android应用程序。根据 Android操作系统结构(见图 1-3)来分类,开发 Android

    设备 BSP的读者要熟悉下列课题:

    � 采用 Android开发设备上的人机接口操作软件

    � 研究 Android操作系统结构下层的各类链接库

  • 4

    图 1-3 Android 操作系统结构

    � 熟悉 Linux操作系统核心和各类驱动程序

    开发 Android应用程序的读者要熟悉下列课题:

    � 采用 Android开发特殊功能的应用程序

    � 研究 Android操作系统结构上层应用程序的开发平台

    � 熟悉 Java程序开发和Web相关技术

    1.2.1

    Android 应用程序

    Android应用程序采用 Java语言编写,是用户和设备的人机接口,提供用户可以操作各种

    各样的应用功能。目前 Android操作系统本身已提供基本桌面(Home)、电话簿(Contact)、

    数字电话(Phone)和网页浏览器(Browser)等核心应用程序。开发人员采用 Android开发平

    台所开发出来的应用程序也放置在这一层。

    1.2.2 Android 应用程序开发平台

    程序开发人员可以使用Android应用程序开发平台提供的API来开发自己设计规划的应用

    程序。利用这一层建立活动程序(Activities)和服务程序(Services),这些程序可以在 Android

    操作平台上执行。每一个应用程序是由数个活动程序和服务程序组成的,每一个活动程序管理

    自己的显示窗体(当然简单的应用程序只有一个活动程序和显示窗体)。开发人员能精通这套

    应用程序开发平台所提供的功能,一定可以研发出更优秀的应用程序。

    Android操作系统以一个主线程为基础来执行 Android相关的组件,这些重要组件有活动

    程序(Activities)、服务程序(Services)、广播接收器(Broadcast Receivers)和内容提供器(Content

    Providers)。Android应用程序是以 Java语言来编写的,而在虚拟机器(VM:Virtual Machine)

  • 5

    内执行。Android操作系统并不是采用 JVM,而是采用开发资源 Dalvik Virtual Machine虚拟系

    统,如图 1-4所示。所以,Android应用程序是由常驻在 Linux内核的 Dalvik Virtual Machine

    虚拟系统来负责执行的。

    图 1-4 Android 操作系统的运行

    Android应用程序开发平台的组件说明如下。

    � 活动程序管理器(Activity Manager):管理活动程序的生命周期(Lifecycle)开始�

    执行�结束,提供一般性运行中程序的存储堆栈(Stack)。

    � 视图系统(View System):提供丰富和具扩展性的显示接口,构造活动程序的显示窗

    体,这些人机接口组件包括列表(Lists)、网格(Grids)、文本框(Text Boxes)、

    按钮(Buttons)和嵌入式的网页浏览器(Browser)。

    � 内容提供器(Content Providers):管理和允许活动程序可以获取其他活动程序的数据

    内容(比如电话簿程序的电话号码)或大家共享的相关信息内容。

    � 资源管理器(Resource Manager):管理获取非程序代码的资源,非程序代码的资源

    是指本地的图像资源和涉及布局的 XML文件。

    � 通知管理器(Notification Manager):管理应用程序将通知信息显示在状态区上。

    1.2.3 Android 的各类链接库

    Android包含一些 C/C++ 链接库,这些链接库能被 Android操作系统的许多组件使用。通

    过 Android应用程序开发平台提供给开发人员丰富的功能。

    一些核心链接库说明如下:

    � 系统 C函数库:从 BSD继承来的标准 C函数库,专门为采用嵌入式 Linux操作系统的

    设备所制定的。

    � 媒体链接库:以 PacketVideo的 OpenCORE为基础,本链接库支持多种常用音频和视

    频格式的播放和录制功能,同时也支持静态图像显示,编码格式包括MPEG4、H.264、

    MP3、AAC、AMR、JPG和 PNG。

    � 图像显示管理:管理图像显示子系统的获取功能和多个应用程序之间 2D和 3D图像的

  • 6

    传递。

    � Web 浏览器(LibWebCore):提供一个最新的 Web 浏览器引擎,用来支持 Android

    浏览器和一个嵌入式的Web浏览器引擎。

    � SGL(Software Graphic Language):2D 图像显示引擎的底层,自动从因特网收集图

    像的软件工具。

    � 3D链接库:以 OpenGL ES 1.0 APIs为基础,本链接库可以使用硬件 3D加速贴图(如

    果提供硬件的话)或使用高速优化的 3D软件贴图程序。

    � 字体库(FreeType):位图(Bitmap)和矢量(Vector)字体显示。

    � 数据库(SQLite):一个功能强大的轻量级关系数据库引擎,可以提供给所有的应用

    程序使用。

    1.2.4 Android 运行时环境

    Android运行时环境(Android Runtime)提供了核心链接库(Core Libraries)和 Dalvik VM

    虚拟系统(Dalvik Virtual Machine),采用 Java开发的应用程序编译成 apk程序代码后,交给

    Android操作环境来执行。

    Android包括一组核心链接库,它提供了 Java编程语言核心链接库的大部分功能。每一个

    Android应用程序都会在自己的进程中执行,拥有自己的 Dalvik VM的实现。Dalvik被设计成

    可以同时有效率地执行多个虚拟系统。Dalvik VM执行 Dalvik可以执行的文件格式“.dex”,

    该文件格式优化成最小内存存储。同时虚拟系统是采用登记制的,所有程序先经由 Java 编译

    器编译后,然后通过 SDK中的“.dx”工具转换成“.dex”格式,再由虚拟系统执行。

    Dalvik VM依赖 Linux系统核心的一些功能,比如线程机制和内存管理机制。

    Android采用 Dalvik VM来代替 Java VM,所以,熟悉 Java SE开发环境的开发人员可以

    很快地接手开发 Android应用程序。写好的 Java程序“.java”先编译成“.class”程序,这个

    过程和开发 Java SE是相同的;接下来再次编译成可以在 Dalvik VM执行的“.dex”程序,最

    后要包装成 Android可以执行的文件“.apk”,如图 1-5所示。

    图 1-5 Android 应用程序产生的流程

  • 7

    1.2.5 Linux 操作系统核心

    Android依赖 Linux 2.6的核心系统服务,如安全保密、内存管理、进程管理、网络协议和

    驱动程序架构。Linux核心也是硬件和其他软件程序代码之间的抽象层。

    1.3 OESF 扩增功能 Android 操作系统除了用来开发手机外,也可以开发其他嵌入式系统。OESF 的目标是以

    Android操作系统作为嵌入式操作系统平台,针对非手机的各种设备及系统,由各会员公司协

    同开发出通用的架构或平台,并致力推广其应用领域。

    1.3.1 OESF EM 嵌入式项目

    “OESF Embedded Master”嵌入式项目预计在链接库内扩增下列功能,如图 1-6所示。

    图 1-6 OESF EM 嵌入式项目扩增功能

    � IP Phone Extension

    提供可以在 Android操作系统上开发 IP电话或 Smart电话(声音/视频通话)所需要的

    API、SIP/RTP程序代码、NGN(Next Generation Network)通话管理程序代码。

    � Digital TV Extension

    提供可以在 Android操作系统上开发数字电视或 STB所需要的 API、数字视频播放、

    有线电视(Cable TV)、浏览器显示信息 BML(Broadcast Mark Language)、节目预

    约管理 EPG(Electronic Program Guide)。

    � Multimedia Extension

    提供在 Android操作系统上开发多媒体产品,在电视机上可以播放高质量的动态和静

    态画面内容,是开发多媒体应用的平台。

    � DLNA Extension

  • 8

    提供在 Android操作系统上开发 DLNA(Digital Living Network Alliance)数字生活网

    络产品,使用 SLNA/UPnP(Universal Plug and Play)API开发家电的应用软件。建立

    一个家庭网络(Home Network)让已使用中的设备和 Android嵌入式设备可以互相连

    接,共享影片和音乐播放。

    � Bluetooth Extension

    扩充 Android操作系统的蓝牙通讯(Bluetooth)和配置设置(Profile)。提供无线操作

    的 HID(Human Interface Device)人机接口设备的配置设置、健康照顾设备和电子游

    戏的 SPP(Serial Port Profile)串口配置设置和移动电话可使用文件交换的对象交换协

    议 OBEX(Object Exchange)。

    � Remote Control Extension

    提供蓝牙通信或红外线通信的远程操作遥控功能。针对没有键盘输入或触控输入的信

    息家电或 STB设备,提供远程遥控输入功能。

    � Pointing Device Extension

    提供鼠标或指针光标(Pointing Cursor)功能。针对没有键盘输入或触控输入的设备,

    提供输入解决方法。

    � Network Manager Extension

    提供 API来设置管理企业的局域网,可以用来设置 Android嵌入式设备的 IP地址和相

    关参数。

    � User Interface Extension

    提供信息家电、STB或 IP电话以外设备的人机接口扩展功能,比如电视大画面操作的

    启动应用(Launcher Application)。

    � SDK for Embedded Devices

    提供给开发人员的“OESF Embedded Master”SDK开发环境。

    1.3.2

    OESF 针对的相关产业和设备

    OESF的目标产品是针对下列产业和设备:

    � STB产业

    � 针对 CATV的 STB

    � 针对 Hotel与 KIOSK终端的 STB

    � VoIP产业

    � 固定 IP电话(即商务电话)

    � 网络电话

    � FAX等通信设备

    � 移动产业

    � MID

    � 移动终端

  • 9

    � 家电产业

    � 数字电视

    � DVR

    � 数字家电

    � 卡拉 OK

    � 数字招牌

    � 数字相框等

    � 汽车产业

    � 汽车导航

    � 测量与控制产业

    1.3.3 OESF 工作小组

    OESF目前已展开活动的工作小组共有下列 7个,以后将根据会员的要求陆续成立新的工

    作小组。

    1.STB工作小组

    以 Digital TV、IPTV、Home Network(DLNA/HDMI/RF4CE)等 STB(机顶盒)为目

    标,研发其系统架构。此外在旅馆内提供多媒体服务的 STB与 IPTV、Kiosk等终端设

    备,也将会大幅成长。以 Android作为通用平台,有效率地开发应用软件及降低开发

    成本,这样能够创造出更多样化的商机。此工作小组将展开各项活动,致力于 STB的

    标准化,以及将来进一步进行 STB架构的数据发布。

    2.Consumer Electronics工作小组

    研发数字平台、便携式相机、电视机与照相机等一般消费性电子设备的架构;数字生

    活家电也是 Android的极佳应用领域,本工作小组将通过对应 HD级多媒体,配套使

    用移动设备,在家电领域推进并增加网络功能的标准化,以及多种提供数据的方法,

    力求 Android的广泛应用。

    3.VoIP工作小组

    VoIP也是一种通信网络服务,但并非单纯的通话服务。其目标是以 Android平台,研

    发应用于因特网上的服务功能,建立可自由交换声音/图像的环境。提供进行声音/图

    像通讯标准的 API,通过 Android应用软件建立一个服务系统架构来整合 SIP、NGN、

    各种 CODEC及其周边环境。

    4.Network & Security工作小组

    其活动焦点是针对 IPv6、VPN、SNMP、QoS、DRM等有关网络与安全的通用组件的

    标准化和开发。其中涉及很多与其他工作小组之间的通用要素,因此常常需与其他工

    作小组密切合作,以扩展相关的业务活动。

    5.System Core工作小组

    在嵌入式系统中,CPU组件、周边组件、驱动器以及 Linux内核等核心部分常因适用

  • 10

    系统而产生差异化,这些功能与系统效能密切相关。本工作组将依据各项目的特点而提

    供 Android移植与设备驱动器,公开设备信息,并开发与提供硬件作为共同开发平台。

    6.Application & Service工作小组

    未来,将积极调查和研究快速发展的 Android应用软件和服务,并致力于通用组件和

    架构的标准化及开发。此外将推动非手机的 Android应用软件流通计划的探讨与构建。

    7.Marketing & Education工作小组

    开展诸如研讨会、展示会等活动的企划、营运以及参加外部活动的市场营销。另外,

    积极进行培训课程的设计,提供各项 Android培训服务,例如设计 Android Programming

    入门、Android Porting等课程。

    1.4 Android——Windows 开发环境 Android应用程序的开发环境可以是Windows、Mac OS X或 Linux操作系统,这一节介绍

    建立Windows开发环境。

    安装 Java 开发套件 JDK(请参阅第 2.3.1 节)

    安装 Eclipse 图形接口开发环境(请参阅第 2.3.2 节)

    安装 Android SDK 软件开发套件(请参阅第 2.2.1 节)

    安装 Android 开发工具 ADT(请参阅第 2.2.2 节)

    设置 Android 开发工具 ADT(请参阅第 2.2.3 节)

    建立 Android 虚拟设备 AVD(请参阅第 2.2.4 节)

    如果读者目前已是 Java SE应用程序开发人员,相信你已经安装了 JDK和 Eclipse,你可

    以直接跳到步骤 3开始安装 Android SDK。如果你没有使用 Java开发程序的话,请按部就班

    自步骤 1开始安装。

    Android软件开发包可以从表 1-1中的网址下载,详细的下载和安装程序请参阅第 2章

    的说明。

    表 1-1 Android 软件开发包下载网址

    Android 软件开发包 下载网址

    JDK 1.6 http://java.sun.com/javase/downloads/index.jsp

    Eclipse 3.4 http://www.eclipse.org/downloads

    Android SDK 2.3 http://developer.android.com/sdk/index.html

  • 11

    Android 实际硬件环境测试

    你在Windows开发环境顺利地完成应用程序开发后,一定会雀跃地想在实际硬件环境上

    测试。Google发布的好几种手机都可以用来实际测试,下列 Android设备都可以运行 Android

    应用程序。

    � T-Mobile G1/ADP1

    � T-Mobile myTouch 3G/Google lon

    � Verizon Driod

    � Nexus One

    其他厂商提供类似 T-Mobile或 Verizon Driod兼容硬设备也可以使用。

    “OESF Embedded Master”正式对外公开后,你很容易可以买到采用 Android操作系统的

    嵌入式硬设备来测试应用程序。一般在 Linux操作系统上开发的嵌入式硬设备,能提供足够的

    驱动程序,也可以用来测试 Android操作系统的应用程序。如图 1-7所示,Armadillo 440是日

    本公司提供可以执行“OESF Embedded Master”的硬件电路板,CPU采用 Freescale i.MX25,

    也有提供 CPU采用 Freescale i.MX31的硬件电路板,开发人员可以依照自己设计产品所要求

    的效率来选择合适的硬件,Android操作系统在其上都可以顺利运行。软件开发公司可以选购

    合适的硬件电路板来开发系统项目,想提升系统效率时,只要采用更高速的硬设备就可以。

    图 1-7 Armadillo 440

    网络上也可以购买到嵌入式硬设备,用来支持运行 Android 操作系统或 Linux 的操作系

    统。笔者从网络上采购了一片 ARM11 S3C6410核心电路板,如图 1-8所示,安装 Android操

    作系统后,就可以顺利运行 Android应用程序。

  • 12

    图 1-8 ARM11 S3C6410 核心电路板

    1.5 在 Android Market 销售你的应用软件 Android Market是 Google提供给 Android开发人员销售应用软件的集市网站,Google手

    机的使用者可以到 Android Market集市网站,购买和下载自己所需要的 Android应用程序到手

    机上使用,如图 1-9所示。Android Market集市网站的网址是 http://www.android.com/market/。

    图 1-9 Android Market 集市网站

    如果你计划要在 Android Market 集市网站上销售你的应用软件,你需要先注册成商人会

    员,并需要缴纳 25美元的注册费,才可以申请到一个开发者的账号,注册费是以信用卡的方

  • 13

    式支付的。

    1.5.1 如何上传应用软件到 Android Market 集市网站

    如果你开发完成一个 Android应用程序,希望发布到 Android Market集市网站上销售,

    要进行下列 3个步骤才可以发布你的 Android应用程序。

    1.注册成为一个开发者且取得开发账号,以信用卡支付 25美元的注册费。

    2.签署、上传和描述你的 Android应用程序功能和应用范围。

    3.发布你的 Android应用程序。

    申请成为一个开发者,请先进入下列网站的网址,如图 1-10所示。

    http://market.android.com/publish/signup

    图 1-10 “注册成为一个开发者”网页

    进入这个网页前,你要先申请一个 Google账号,进入“注册成为一个开发者”网页,输

    入基本数据后,单击“Continue”按钮,Google会请你缴纳 25美元的注册费,并要求你使用

    信用卡在 Google Checkout支付。将来在 Android Market集市网站销售的所得,其中 70% 会归

    你所有,另外的 30% 必须用来支付通信商和电子收费商 Google Checkout 的手续费,这是

    Android Market商业营利运作模式。另外,开发人员可以在自己的 Android Market开发网页上

    看见自己所销售的 Android应用程序被下载的次数和用户的评审意见。

    从下列开发网站的网址,可以获得更多关于如何管理和发布你的 Android应用程序的信息。

  • 14

    http://developer.android.com/guide/publishing/app-signing.html

    在“Publishing”窗口会有下列 4项详细说明。

    � 签署你的 Android应用程序

    � 版本控制管理你的 Android应用程序

    � 准备发布前的注意事项

    � 发布你的 Android应用程序

    1.5.2 如何从 Android Market 集市网站下载应用软件

    Android Market集市网站上的 Android应用程序大部分是免费的,有一些需要负担一些费

    用。在 Google手机上预装的应用程序已包含了 Android Market图标,你只要单击这个图标就

    可以直接连接到该网站进行下载操作,如图 1-11所示。

    图 1-11 从 Android Market 集市网站下载应用软件

    另外一个方式是使用一般网页浏览器连到 Android Market 集市网站的网址:

    http://www.android.com/market/

    因该网页的下载程序采用 Google特殊的设计方式,一般网页浏览器无法下载 Android应

    用程序,只可以浏览网页里的内容。

    目前大部分的 Android应用程序都是免费的,将来随着 Google商业模式的成功推广,一

    定会出现很多很优秀的 Android应用程序。对于那些需要付费的 Android应用程序,若你喜欢

    的话可以依照其公告的价格购买下载。但是这些由第三方提供的 Android 应用程序,Google

    并不负责后续的服务和问题处理,如果有任何问题,只能发 email给应用程序的开发人员来获

    得服务,而不是找 Google公司,这是使用 Android Market集市网站的商业模式需要注意的地

    方。


Recommended