2023年7月26日发(作者:)
Google Android应用开发
1 Android操作系统
本章目标:
1. 掌握Android操作系统的基本概念。
2. 掌握Android操作系统特征,系统架构。
3. 了解Android操作应用前景和目前市面上其他主流智能手机操作系统。
1.1 Anroid系统介绍
Google Android系统Logo中文注册名”安致”
Android一词的本义指“机器人”,是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的操作系统。
使用Android系统的Google手机:Google G1
2008年9月23日,美国运营商T-Mobile USA在纽约正式发布第一款Google手机--T-Mobile G1。该款手机为台湾宏达电代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。
1.2 Anroid历史
Google公司于2007年11月宣布组建一个全球性的联盟组织,这一联盟将会支持Google公司发布的手机操作系统或者应用软件,共同开发名为Android的开放源代码的移动操作系统,这个联盟称为“开放手机联盟”,其英文名称为:Open Handset Alliance。这个联盟成员数量已经达到了几十家,除了前面提到的Google公司外,还包括手机制造商、1 Google Android应用开发
手机芯片厂商和移动运营商几类。
开放手机联盟成员图
一、手机制造商:
台湾宏达国际电子(HTC)(Palm等多款智能手机的代工厂)
摩托罗拉(美国最大的手机制造商)
韩国三星电子(仅次于诺基亚的全球第二大手机制造商)
韩国LG电子
中国移动(全球最大的移动运营商,截至09年9月底 有7.03亿用户)
日本KDDI(2900万用户)
日本NTT DoCoMo(5200万用户)
美国Sprint Nextel(美国第三大移动运营商,5400万用户)
意大利电信(Telecom Italia)(意大利主要的移动运营商,3400万用户)
西班牙Telefónica (在欧洲和拉美有1.5亿用户)
T-Mobile(德意志电信旗下公司,在美国和欧洲有1.1亿用户)
二、半导体公司:
Audience Corp(声音处理器公司)
Broadcom Corp(无线半导体主要提供商)
英特尔(Intel)
Marvell Technology Group
Nvidia (英伟达 图形处理器公司)
SiRF(GPS技术提供商)
Synaptics(手机用户界面技术)
德州仪器(Texas Instruments)
高通(Qualcomm )ARM
惠普HP(Hewlett-Packard Development Company, L.P)
三、软件公司:
Aplix
Ascender
eBay的Skype
Esmertec
2
Google Android应用开发
1.3 Anroid发展
Living Image
NMS Communications
Noser Engineering AG
Nuance Communications
PacketVideo
SkyPop
Sonix Network
TAT-The Astonishing Tribe
Wind River Systems
(1)开放手机联盟成立
2007年11月5日,34个联盟成员宣布成立开发手机联盟。
(2)发布第一版Android SDK
2007年11月12日宣布发布第一版Android SDK。
(3)Android开发者竞赛
2008年4月17日举办Android开发竞赛,在规定的时间内提交了1788件作品,推动了Android开发应用的速度。
(4)Android Market上线
2008年8月28日,为Android平台手机提供软件分发和下载的Market正式上线,迅速积累了大量的应用。
(5)T-Mobile G1上市
2008年9月23日,第一款基于Android的手机上市。
(6)Android 1.0 SDK release 1发布
2008年9月23日,Android 1.0 R1 SDK发布,标志着Android系统趋于稳定和成熟,越来越多的开发者加入Android开发阵营中。
(7)Android被宣布开发源代码
2008年10月21日,Android被宣布开放源代码。
(8)Android 1.5 SDK发布
2009年4月27日,Android SDK 1.5版Cupcake(纸杯蛋糕)发布。
(9)Android 1.6 SDK发布
2009年9月16日,Android SDK 1.6版Donut(甜甜圈)发布。
(10)Android 2.0 SDK发布
2009年10月28日,Android SDK 2.0版Eclair(法式奶油夹心甜点)发布。
(11)Android 2.1 SDK发布
2010年1月12日,Android SDK 2.1版Froyo(冻酸奶) 发布。
3 Google Android应用开发
1.4 Anroid系统架构
Android系统平台架构
Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:操作系统层(OS)、 各种库(Libraries)和Android 运行环境(RunTime)
、应用程序框架(Application Framework)、 应用程序(Application)。
1.4.1 操作系统层(OS)
Android的Linux核心为标准的Linux2.6内核,Android更多的是一些与移动设备相关的驱动程序,主要的驱动如下所示:
1)显示驱动(Display Driver):常用基于Linux的帧缓冲(Frame Buffer)驱动。
2)Flash内存驱动(Flash Memory Driver)。
3)照相机驱动(Camera Driver):常用基于Linux的v4l(Video for )驱动。
4)音频驱动(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture)驱动。
5)WiFi驱动(Camera Driver):基于IEEE 802.11标准的驱动程序。
6)键盘驱动(KeyBoard Driver)。
7)蓝牙驱动(Bluetooth Driver)。
8)Binder IPC驱动:提供进程间通讯的功能。
9)Power Management(能源管理)。
1.4.2 Libraries和Android 运行环境(RunTime)
Android的本层次分成两个部分一个是各种库,另一个是Android 运行环境。本层的内容大多是使用C++实现的。在其中,各种库包括:
1)C库:C语言的标准库,是通过Linux的系统调用来实现。
4 Google Android应用开发
2)多媒体框架(MediaFrameword):是Android多媒体的核心部分。
3)SGL:2D图像引擎。
4)SSL:位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
5)OpenGL ES 1.0 :提供了对3D的支持。
6)界面管理工具(Surface Management):提供了对管理显示子系统等功能。
7)SQLite:通用的嵌入式数据库
8)WebKit:网络浏览器的核心
9)FreeType:位图和矢量字体的功能。
1.4.3 应用程序框架(Application Framework)
Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。由于上层的应用程序是以JAVA构建的,因此本层次提供的首先包含了UI程序中所需要的各种控件,一个Andoid的应用程序可以利用应用程序框架中的以下几个部分:Activity 、Broadcast Intent Receiver、Service、Content Provider。
1.4.4 应用程序(Application)
Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home), 联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。这也是Android开源的巨大潜力的体现。
1.5 Android系统应用
1.5.1 开发基于Android平台应用
游戏类应用
5 Google Android应用开发
工具软件类应用
创意软件类应用
6 Google Android应用开发
IM软件类应用
1.5.2 参加Android开发大赛
7 Google Android应用开发
1.5.3 得到更多人的认可和尊重
Google花大价钱来召开Android开发者大赛 ,第一届大赛已经落幕,期间我们看到了很多优秀的作品,当然也许我们更关注的是这个比赛的最大赢家,Big in Japan,这个团队开发了10多个应用程序,最终,他们的GoCart赢了这次比赛的冠军头衔以及27万美元。
1.5.4 Android Market获取收益
Android Market是Google为了让Android开发人员可以将应用程序上载并销售的网站,而Android手机的使用者,则可以到Android Market的网站购买下载自己所需要的应用程序到手机上使用。
Android Market
8 Google Android应用开发
1.6 Android前景
支持Android系统的手机
Android从出世以来就受到各界的热捧,它标志着一个新的手机时代。另外,Android基于Linux内核,能具备PC机的性能,支持更多的接口。这些都是未来手机的走向,所以各大手机厂商都极力推出装载Android操作系统的智能手机。
研究机构Gartner预测2012年的智能手机市场,Android将以14%的份额爬到第二的位置(2009年初Android在北美的市场份额已经达到了6.36%),超越iPhone OS,仅次于Symbian。
Android在中国的前景十分广阔,首先是有成熟的消费者,在国内,Android社区十分红火,这些社区为android在中国的普及做了很好的推广作用。国内厂商和运营商也纷纷加入了Android阵营,包括OPPO,中国移动,中国联通,华为通讯,联想等大企业。
9 Google Android应用开发
1.7 主流智能手机操作系统
1.7.1 Apple iPhone OS
iPhone OS是大名鼎鼎的苹果电脑Mac OS X的袖珍版,经瘦身和重新设计后,专门用于驱动iPhone 3G手机.是目前最直观,最令人轻松愉快的操作系统.
1.7.2 Microsoft Windows Mobile
微软Windows的手机版,6.1版本被制造商包括诸如HTC(用于Touch Diamond手机)、摩托罗拉、Palm,以及三星等采用将Windows Mobile连同自己的软件一起提供,或者会对Windows Mobile操作系统的基本层面进行一些调整以适应自己的需求.
10 Google Android应用开发
1.7.3 Nokia Symbian
Symbian OS由诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发手机操作系统。现已被NOKIA全额收购.
1.7.4 Nokia Maemo
Maemo是一个基于开源软件的移动设备软件平台,是诺基亚的顶级操作系统品牌,用以弥补Symbian OS的某些先天不足它已经被应用在诺基亚N770、N800、N810和N900上。
11 Google Android应用开发
1.7.5 RIM BlackBerry
RIM BlackBerry OS用于驱动RIM的BlackBerry 智能手机,包括Curve、Pearl,以及8800, BlackBerry操作系统虽然已经很有年头了,但还是宝刀不老.
1.8 小结
本章介绍Android的产生和发展,Android产生背景,系统架构,开发人员可以在该平台上做的事情,以及其他主流的手机操作系统.
1.9 练习
1. Android概念是什么,有什么用?
2. Android的系统架构和各层中组件的功能?
3. 当前主流的手机操作系统有哪些?
12 Google Android应用开发
2 Android开发环境
本章目标:
1. 掌握如何搭建Android开发环境。
2. 开发调试第一个Android项目Hello World。
2.1 Android环境搭建
2.1.1
安装前准备
所需项 版本要求 说明
操作系Windows XP、Vista、 选择熟悉的操作系统
统 Mac OS、Ubuntu
下载最新版本的SDK:
下载Eclipse3.5:/downloads
下载或安装ADT:/Android/eclipse
下载JDK5或6:/javase/download/
软件包 Android SDK
IDE Eclipse
ADT
其他 JDK
2.1.2安装JDK
1)官方网址选择适合于自己平台(这里是Windows)的JDK下载。安装JDK。
2)在桌面上右击“我的电脑”,依次点击【属性】>【高级】>【环境变量】将JDK的相关目录添加到Windows的 PATH、CLASSPATH、JAVA_HOME环境变量中。
13 Google Android应用开发
2.1.3安装Eclipse3.5
1)官方网址选择适合于自己平台(这里是Windows)的Eclipse下载。直接解压就可以使用了。
2.1.4安装Android SDK
1) 下载Android SDK,不需要安装,解压之后就可以使用,将其tools目录的绝对路径添加到系统的PATH路径中。
2) 验证Android SDK安装,打开一个CMD窗口,输入android –h,如果有如下返回则表示SDK安装成功。
14 Google Android应用开发
2.1.5安装ADT插件
1)下载ADT插件,下载完成后解压,将“features”和“plugins”目录中的文件拷贝到Eclipse的对应目录中就可以了。
2.1.6 Android SDK Home
1) 打开Eclipse,设定Android SDK Home
15 Google Android应用开发
2.2 第一个Hello World项目
2.2.1新建Android项目
1) 打开Eclipse, 选择File > New > Project如果Android的Eclipse的插件正确安装了,弹出的对话框里就会有一项“Android”,这一项有子项 “Android Project”。
16 Google Android应用开发
2.2.2填写项目信息
2) 下一步需要你填写项目的详细信息.
2.2.3编程实现
17 Google Android应用开发
2.2.4运行项目
18 Google Android应用开发
2.3 小结
本章主要介绍了Android开发环境需要的条件和搭建步骤,演示了第一个Hello World应用程序.
2.4 练习
在本机搭建Android开发环境,并演示第一个Hello World应用程序。
19 Google Android应用开发
3 Android SDK介绍
本章目标:
1. 掌握Android SDK组成。
2. 掌握Android常用的Tools。
3. 熟悉Android核心开发包和可选开发包。
3.1 Android SDK目录结构
Android SDK目录结构
3.2 Android SDK Sample
Lunar Lander月球登陆
是一个在Android模拟器上玩的游戏。这个游戏一个2-D的游戏在Android上工作是多么的简单。控制非常的简单,而且游戏不是非常的复杂。总之,对游戏开发来说是一个良好的开始。
月球登陆执行一个简单控制方案(上,下,左,右)。
Note Pad写字板
允许你打开,创建并且编辑小的笔记。写字板不是一个全功能的字符编辑器,所以不要期待是和Windows Mobile中word的竞争对手。但是,作为一个演示工具,使用非常少的代码就能实现这个效果已经非常的棒了。
Skeleton App框架应用
是一个基本的程序展示了几个不同的应用程序的功能。如字体,按钮,图形和表格。如果你想自己运行Skeleton App,真的不应当把它排除在外,参考Skelete App,它会提供不少关于如何执行特定的条款。
20 Google Android应用开发
Snake 贪食蛇
这是一个小的SNAFU风格游戏,比月球登陆复杂。
3.3 Android SDK Tools
Android SDK包括各种各样的定制工具,可以帮助你在Android平台上开发移动应用程序。其中最重要的工具是Android模拟器和Eclipse的Android开发工具插件,但SDK也包含了各种在模拟器上用于调试,打包和安装的工具
Android模拟器(Android Emulator )
Android Emulator是一款功能非常齐全的模拟器,电话本、通话等功能都可进行模拟。甚至其内置的浏览器和Google Maps都可以联网。用户可以使用键盘输入,单击模拟器按键输入,甚至还可以使用鼠标单击、拖动屏幕进行操作。
1) 模拟器和真机的不同之处
不支持呼叫和接听实际来电,但可以通过控制台模拟电话呼叫(呼入和呼出)。
不支持USB连接。
不支持相机/视频捕捉。
不支持音频输入(捕捉),但支持输出(重放)。
不支持扩展耳机。
不能确定连接状态。
不能确定电池电量水平和交流充电状态。
不能确定SD卡的插入/弹出。
不支持蓝牙。
Dalvik 调试监视器服务(Dalvik Debug Monitor Service (ddms))
这个工具集成了Dalvik(为Android 平台定制的虚拟机(VM)),能够让你在模拟器或者设备上管理进程并协助调试。你可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观察堆(heap)和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。
Android调试桥(Android Debug Bridge (adb) )
Adb 工具可以让你在模拟器或设备上安装应用程序的.apk文件,并从命令行访问模拟器或设备。你也可以用它把Android模拟器或设备上的应用程序代码和一个标准的调试器连接在一起。
在SDK的Tools文件夹下包含着Android模拟器操作的重要命令ADB,ADB的全称为Android
Debug Bridge,就是调试桥的作用,借助这个工具,我们可以管理设备或手机模拟器的状态 ,还可以进行以下的操作:
(1)快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
(2)在设备上运行Shell命令;
(3)管理设备或手机模拟器上的预定端口;
(4)在设备或手机模拟器上复制或粘贴文件。
Android Asset Packaging Tool (aapt)
Aapt工具可以让你创建包含Android应用程序二进制文件和资源文件的.apk文件。
Android接口描述语言(Android Interface Description Language (aidl))
可以让你生成进程间的接口的代码,诸如service可能使用的接口。
sqlite3
21 Google Android应用开发
这个工具能够让你方便地访问SQLite 数据文件。这些数据文件是由Android 应用程序创建并使用的。
Traceview
这个工具可以将你的Android 应用程序产生的跟踪日志(trace log)转换为图形化的分析视图。
mksdcard
帮助你创建磁盘映像(disk image),你可以在模拟器环境下使用磁盘映像来模拟外部存储卡(例如SD 卡)。
dx
Dx gongju 将.class字节码(bytecode)转换为Android字节码(保存在.dex文件中)。
UI/Application Exerciser Monkey
Monkey是在模拟器上或设备上运行的一个小程序,它能够产生为随机的用户事件流,例如点击(click),触摸(touch),挥手(gestures),还有一系列的系统级事件。你可以使用Monkey来给你正在开发的程序做随机的,但可重复的压力测试。
activitycreator
一个可以产生Ant build 文件的脚本,你可以使用它编译你的android 应用程序。如果你正在Eclipse上开发,并使用ADT插件,你不必使用这个脚本。
logcat
LogCat是Android中一个命令行工具,可以用于得到程序的log信息。
利用LogCat查看日志信息
3.4 Android SDK核心包
Android SDK提供了编写应用程序的一些基本包。这些包通过分层方式组织,以下按照从底层到高层的顺序列出:
: 包含有许多底层的工具类,例如专用容器类,XML工具等等。
: 提供基本的操作系统服务、消息传递和进程间通讯。
cs: 核心图形绘制包。
22 Google Android应用开发
、、、: 提供丰富的文本处理工具、富文本支持以及输入法等等。
se: 包含数据库相关的底层API。
t: 提供大量的访问存储在设备上的数据的服务:安装在设备上的应用及相关资源,用于持续的动态数据的内容提供器(content provider)。
: 核心用户界面框架。
: 提供构建view包的标准用户界面元素(列表、按钮、布局管理器等等)。
: 提供高层应用模型,通过活动实现。
3.5 Android SDK可选API
Android适用于各种各样的手机,从最低端直到最高端的智能手机。核心的Android API在每部手机上都可使用,但任然有一些API接口有一些特别的适用范围,这就是所谓的“可选API”。
这些API之所以是“可选的”,主要是因为一个手持设备并不一定要完全支持这类API,甚至于完全不支持。例如,一个手持设备可能没有GPS或Wi-FI的硬件。在这个条件下,这类功能的API任然存在,但不会以相同的方式来工作。例如Location API任然在没有GPS的设备上存在,但极有可能完全没有安装功能提供者,意味着这类API就不能有效地使用。
Wi-Fi API
Wi-Fi API为应用程序提供了一种与那些带有Wi-FI网络接口的底层无线堆栈相互交流的手段。几乎所有的请求设备信息都是可利用的,包括网络的连接速度、IP地址、当前状态等等,还有一些其他可用网络的信息。一些可用的交互操作包括扫描、添加、保存、结束和发起连接。
Wi-Fi API在 包中。
定位服务(Location-Based Services)
定位服务允许软件获取手机当前的位置信息。这包括从全球定位系统卫星上获取地理位置,但相关信息不限于此。例如,未来其他定位系统可能会运营,届时,对其相应的API接口也会加入到系统中。
定位服务的API在on 包中。
多媒体API(Media APIs)
多媒体API主要用于播放媒体文件。这同时包括对音频(如播放MP3或其他音乐文件以及游戏声音效果等)和视频(如播放从网上下载的视频)的支持,并支持"播放URI地址"(Note:URI即是统一资源识别地址)模式-在网络上直接播放的流媒体。技术上来说,多媒体API并不是“可选的”,因为它总是要用到。但是不同的硬件环境上面可能有不同的编解码的硬件机制,因而它又是“可选的”。
多媒体API在 包中。
基于OpenGL的3D图形(3D Graphics with OpenGL)
Android的主要用户接口框架是一个典型的面向控件的类继承系统。但不要让表面的情况迷惑了你,因为在它下面是一种非常快的2D和3D组合的图形引擎,并且支持硬件加速。23 Google Android应用开发
用来访问平台3D功能的API接口是OpenGL ES API。和多媒体API一样,OpenGL也不是严格意义上的“可选”,因为这些API会总是存在并且实现那些固定的功能。但是,一些设备可能有硬件加速环节,使用它的时候就会影响你的应用程序的表现。
OpenGL的API在 中可以看到。
3.6 小结
本章主要介绍了Android SDK的相关内容,包括SDK结构,文档内容,通过本章学习需掌握Android SDK中各种工具的使用以及核心开发包的作用.
3.7 练习
1. 列出Android SDK中的各种Tools,并描述其作用和用途?
2. 列出Android SDK中核心包有哪些,及其作用?
24 Google Android应用开发
4 Android应用程序结构
4.1 Android应用项目文件组成
25 Google Android应用开发
4.2.2
是在建立项目时自动生成的,这个文件是只读模式,不能更改,文件是定义该项目所有资源的索引文件。先来看看项目中一个典型的文件。
package orld;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
可以看到这里定义了很多常量,仔细一看就发现这些常量的名字都与res文件夹中的文件名相同,这再次证明文件中所存储的是该项目所有资源的索引。有了这个文件,在程序中使用资源将变得更加方便,可以很快地找到要使用的资源,由于这个文件不能被手动编辑,所以当我们在项目中加入了新的资源时,只需要刷新一下该项目,文件便自动生成了所有资源的索引。
26 Google Android应用开发
4.2.1
主要包含以下功能:
1) 说明application的java 数据包,数据包名是application的唯一标识;
2) 描述application的component;
3) 说明application的component运行在哪个process下;
4) 声明application所必须具备的权限,用以访问受保护的部分API,以及与其他application的交互;
5) 声明application其他的必备权限,用以component之间的交互;
6) 列举application运行时需要的环境配置信息,这些声明信息只在程序开发和测试时存在,发布前将被删除;
7) 声明application所需要的Android API的最低版本级别,比如1.0,1.1,1.5;
8) 列举application所需要链接的库;
文件的结构、元素,以及元素的属性,可以在Android SDK文档中查看详细说明。而在看这些众多的元素以及元素的属性前,需要先了解一下这些元素在命名、结构等方面的规则:
1) 元素:在所有的元素中只有
2) 属性:按照常理,所有的属性都是可选的,但是有些属性是必须设置的。那些真正可选的属性,即使不存在,其也有默认的数值项说明。除了根元素
3) 定义类名:所有的元素名都对应其在SDK中的类名,如果你自己定义类名,必须包含类的数据包名,如果类与application处于同一数据包中,可以直接简写为“.”;
4) 多数值项:如果某个元素有超过一个数值,这个元素必须通过重复的方式来说明其某个属性具有多个数值项,且不能将多个数值项一次性说明在一个属性中;
5) 资源项说明:当需要引用某个资源时,其采用如下格式:@[package:]type:name。例27 Google Android应用开发
如
6) 字符串值:类似于其他语言,如果字符中包含有字符“”,则必须使用转义字符“”;
实例说明文件:
package=”ight” android:versionCode=”1″ android:versionName=”1.0″>
1) 除去头部XML信息说明,首先是manifest项—根节点,其属性包括:schemas URL地址、包名(ight),以及程序的版本说明。
2) 其次是manifest的子节点application,其属性包括:程序图标、程序名称。前面带有@表示引用资源,例如:@drawable/icon表示引用的是drawable资源中的icon,可以在其源工程的res/drawable中找到。
3) 然后就是application的子节点activity,其属性包括:activity的名称、activity的标签名,其子节点intent-filter则是对activity的说明。
4) 而在intent-filter中,action android:name=””和category android:name=”ER”用以说明程序启动时的入口activity是哪个。如果这两个属性值中分别含有MAIN和LAUNCHER,则说明它就是启动程序时的入口活动。
5) uses-sdk android:minSdkVersion=”7″说明程序使用的Android SDK的最低版本,其中1表示Android 1.0,2表示Android 1.1,而3则表示Android 1.5。
在Eclipse中创建工程后,会自动生成一个文件。在代码编写的过程中,需要同时修改,如果配置出现错误会导致程序不能正常运行。
manifest 根节点,描述了package中所有的内容
包含命名空间的声明。
xmlns:android=schemas.
xmlns:android /apk/res/android,使得
Android中各种标准属性能在文件中使用,
提供了大部分元素中的数据
Package 声明应用程序包
28 Google Android应用开发
包含package中application级别组件声
明的根节点。此元素也可包含application
application 的一些全局和默认的属性,如标签、icon、
主题、必要的权限,等等。一个manifest
能包含零个或一个此元素(不能大余一个)
android:icon 应用程序图标
android:label 应用程序名字
用来与用户交互的主要工具。Activity是用
户打开一个应用程序的初始页面,大部分
被使用到的其他页面也由不同的activity所
实现,并声明在另外的activity标记中。
注意,每一个activity必须有一个
Activity
标记对应,无论它给外部使用或是只用于
自己的package中。如果一个activity没有
对应的标记,你将不能运行它。另外,
为了支持运行时查找Activity,可包含一个
或多个
android:name 应用程序默认启动的activity
声明了指定的一组组件支持的Intent值,从
而形成了IntentFilter。除了能在此元素下指
intent-filter
定不同类型的值,属性也能放在这里来描
述一个操作所需的唯一的标签、icon和其他信息
action 组件支持的Intent action
组件支持的Intent Category。这里指定
category
了应用程序默认启动的activity
uses-sdk 该应用程序所使用的sdk版本相关
功能表
4.2.2
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/login" /> android:id="@+id/etUserName" android:layout_weight="1.0" android:maxLength="8" android:maxLines="1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" />
1) xml标记描述语言,必须的。
29 Google Android应用开发
2)
3) xmlns:android=/apk/res/android描述xml描述档案的名称空间。必须属性
4) android:orientation="vertical"表示这个介质的版面配置方式是从上到下的垂直得排列其内部的视图android:orientation="horizontal" 水平排列
5) android:layout_width="fill_parent"定义当前视图在屏幕上可以消费的宽度,fill_parent即填充整个屏幕。android:layout_height="fill_parent" "wrap_content":随着文字栏位的不同而改变这个视图的宽度或者高度。有点自动设置框度或者高度的意思
6) android:layout_weight="1.0"
Layout_weight属性是为了要EditText能延伸到最右侧,用于给一个线性布局中的诸多视图的重要度赋值。所有的视图都有一个layout_weight值,默认为零,意思是需要显示多大的视图就占据多大的屏幕空 间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体 layout_weight值和在其它视图屏幕布局的layout_weight值中所占的比率而定。
举个例子:比如说我们在 水平方向上有一个文本标签和两个文本编辑元素。该文本标签并无指定layout_weight值,所以它将占据需要提供的最少空间。如果两个文本编辑元素每一个的layout_weight值都设置为1,则两者平分在父视图布局剩余的宽度(因为我们声明这两者的重要度相等)。如果两个 文本编辑元素其中第一个的layout_weight值设置为1,而第二个的设置为2,则剩余空间的三分之一分给第一个,三分之二分给第二个(因为我们声 明第二个有较之第一个更高的重要度)。
在本例中,一个水平方向上的线性布局嵌套在另一垂直方向上的布局中,以使标题标签和文本字段在水平方向上挨个对齐, 这里的Layout_weight属性是为了要两个Button的宽度相等,同时又能填充满一行。因为1.0 :1.0 == 1:1. 所以宽度相等了.
4.2 Android常用开发术语
1) apk扩展名
apk是Android包的扩展名,一个Android包包含了与某个Android应用程序相关的所有文件,apk文件将文件、应用程序代码(dex文件)、资源文件和其他文件组成一个压缩包,一个项目只能打包压缩成一个apk文件。
2) dex扩展名
Android的程序被编译成.dex(Dalvik Executable)格式文件, 然后再进行打包生成可被直接安装的apk文件。
3) 应用程序(APP)
一个或多个Activity、服务、监听和Intent接收器的集合,一个应用程序有一个文件清单,并且打包成一个apk文件。
4) Action
对Intent发送器意图的描述,一个活动是一个指派给Intent的字符串值。活动字符串可以由Android定义,也可以由第三方开发者定义。例如,在网页URL中使用的或者在用户应用程序中使用的
30 Google Android应用开发
_PHONE来使电话震动。
5) ADB( Android Debug Bridge )
SDK自带的一个基于命令行的调试程序。它提供了设备浏览工具、设备上的拷贝工具和为调试转寄端口的功能。更多信息请参考附录三(Android的ADB工具使用)。
6) 内容源
内容源是建立在类ContentProvider之上的用于处理指定格式的内容请求字符串,并返回指定格式的数据的类。关于内容源的使用信息请参考本书第7章内容。
7) Dalvik Android
虚拟机的名字,Dalvik虚拟机是一个只能解释执行dex文件的虚拟机,dex文件针对存储性能和内存管理进行了优化。 Dalvik虚拟机是基于寄存器的虚拟机,并且能够运行经过Dalvik自带的“dx”工具转换过的Java类。 虚拟机运行在兼容Posix的操作系统上,依赖于底层的功能(如线程和低级内存管理)。Dalvik的核心类库有意做得与Java标准版非常类似,但它明显更适合小型移动设备。
8) DDMS
调试监视服务(Dalvik Debug Monitor ServiceDalvik)是SDK自带的一个可视的调试工具。它提供了屏幕捕捉、日志存储和进程检测能力。
9) Drawable
编译过的可视化资源,可以用来做背景、标题或屏幕的其他部分。它被编译在le子类中。
10) 意图(Intent)
意图是一个Intent类,它包含很多描述调用者意图做什么的字段。调用者发送意图到Android意图处理器,意图处理器会遍历所有应用程序的意图过滤器来查找与该意图最匹配的Activity。意图字段包括渴望的动作、种类、数据、数据的MIME类型、一个处理类和其他约束。
11) 意图过滤器(intent-filter)
Activity和意图接收器(Receiver)在它们的文件清单中包含一个或多个过滤器,用来描述什么类型的意图或者信息是它们能处理或想接收的。一个意图过滤器列出了一系列要求,例如,意图或信息必须满足的数据类型、被请求的动作和URI的格式。 对于Activity,Android搜索意图和Activity过滤器匹配程度最高的Activity;对于消息,Android会将消息转发给所有匹配意图过滤器的接收器。
12) Intent接收器(Receiver)
一个监听是由astIntent()发出的信息广播的类,详细信息请参考本书第9章。
13) 布局资源
一个描述Activity屏幕布局的XML文件。
14) 文件清单
应用程序中的一个XML文件,用于描述包中多个Activity、Intent过滤器、服务和其他内容。可以打开查看其包含的内容。
31 Google Android应用开发
15) Nine-patch / 9-patch / Ninepatch image
一种可变尺寸的位图资源,可用作设备上的背景或其他图片。
16) 资源
用户提供的XML、位图或其他文件,构建程序时会导入进来,稍后会被代码加载,Android支持多种类型的资源,请参考Resources中的详细描述,程序定义的资源文件应当保存在res/ 子目录下。
17) 服务(Service)
运行在后台执行多种固定任务的类,如播放音乐或检测网络活动。
18) 主题(Theme)
一系列定义多种默认显示设置的参数(文字大小、背景颜色等)。Android在中提供了几个标准的主题(以"Theme_"开头)。
19) URIs
Android使用URI字符串请求数据(如通信录列表)和动作(如在浏览器中打开网页)。URI字符串可以具有不同的格式。所有请求数据的URI必须以“content://”开头。有效的动作URI字符串会被设备上的适当的程序处理,例如,以“ ”开头的URI字符串会被浏览器处理。
4.3 小结
本章介绍了Android应用程序主要四大组成部分和Android应用项目文件组成,通过本章学习对Android应用结构有初步认识.
4.4 练习
1. 请详细描述Android应用文件组成?
2. 简述Android应用项目文件组成?
32
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690318699a331894.html
评论列表(0条)