Android参考资料.docx
《Android参考资料.docx》由会员分享,可在线阅读,更多相关《Android参考资料.docx(36页珍藏版)》请在冰豆网上搜索。
Android参考资料
1Android操作系统
本章目标:
1.掌握Android操作系统的基本概念。
2.掌握Android操作系统特征,系统架构。
3.了解Android操作应用前景和目前市面上其他主流智能手机操作系统。
1.1Anroid系统介绍
GoogleAndroid系统Logo中文注册名”安致”
Android一词的本义指“机器人”,是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的操作系统。
使用Android系统的Google手机:
Google G1
2008年9月23日,美国运营商T-MobileUSA在纽约正式发布第一款Google手机--T-MobileG1。
该款手机为台湾宏达电代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。
1.2Anroid历史
Google公司于2007年11月宣布组建一个全球性的联盟组织,这一联盟将会支持Google公司发布的手机操作系统或者应用软件,共同开发名为Android的开放源代码的移动操作系统,这个联盟称为“开放手机联盟”,其英文名称为:
OpenHandsetAlliance。
这个联盟成员数量已经达到了几十家,除了前面提到的Google公司外,还包括手机制造商、手机芯片厂商和移动运营商几类。
开放手机联盟成员图
一、手机制造商:
台湾宏达国际电子(HTC)(Palm等多款智能手机的代工厂)
摩托罗拉(美国最大的手机制造商)
韩国三星电子(仅次于诺基亚的全球第二大手机制造商)
韩国LG电子
中国移动(全球最大的移动运营商,截至09年9月底有7.03亿用户)
日本KDDI(2900万用户)
日本NTTDoCoMo(5200万用户)
美国SprintNextel(美国第三大移动运营商,5400万用户)
意大利电信(TelecomItalia)(意大利主要的移动运营商,3400万用户)
西班牙Telefónica(在欧洲和拉美有1.5亿用户)
T-Mobile(德意志电信旗下公司,在美国和欧洲有1.1亿用户)
二、半导体公司:
AudienceCorp(声音处理器公司)
BroadcomCorp(无线半导体主要提供商)
英特尔(Intel)
MarvellTechnologyGroup
Nvidia(英伟达图形处理器公司)
SiRF(GPS技术提供商)
Synaptics(手机用户界面技术)
德州仪器(TexasInstruments)
高通(Qualcomm)ARM
惠普HP(Hewlett-PackardDevelopmentCompany,L.P)
三、软件公司:
Aplix
Ascender
eBay的Skype
Esmertec
LivingImage
NMSCommunications
NoserEngineeringAG
NuanceCommunications
PacketVideo
SkyPop
SonixNetwork
TAT-TheAstonishingTribe
WindRiverSystems
1.3Anroid发展
(1)开放手机联盟成立
2007年11月5日,34个联盟成员宣布成立开发手机联盟。
(2)发布第一版AndroidSDK
2007年11月12日宣布发布第一版AndroidSDK。
(3)Android开发者竞赛
2008年4月17日举办Android开发竞赛,在规定的时间内提交了1788件作品,推动了Android开发应用的速度。
(4)AndroidMarket上线
2008年8月28日,为Android平台手机提供软件分发和下载的Market正式上线,迅速积累了大量的应用。
(5)T-MobileG1上市
2008年9月23日,第一款基于Android的手机上市。
(6)Android1.0SDKrelease1发布
2008年9月23日,Android1.0R1SDK发布,标志着Android系统趋于稳定和成熟,越来越多的开发者加入Android开发阵营中。
(7)Android被宣布开发源代码
2008年10月21日,Android被宣布开放源代码。
(8)Android1.5SDK发布
2009年4月27日,AndroidSDK1.5版Cupcake(纸杯蛋糕)发布。
(9)Android1.6SDK发布
2009年9月16日,AndroidSDK1.6版Donut(甜甜圈)发布。
(10)Android2.0SDK发布
2009年10月28日,AndroidSDK2.0版Eclair(法式奶油夹心甜点)发布。
(11)Android2.1SDK发布
2010年1月12日,AndroidSDK2.1版Froyo(冻酸奶)发布。
1.4Anroid系统架构
Android系统平台架构
Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。
根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:
操作系统层(OS)、各种库(Libraries)和Android运行环境(RunTime)
、应用程序框架(ApplicationFramework)、应用程序(Application)。
操作系统层(OS)
Android的Linux核心为标准的Linux2.6内核,Android更多的是一些与移动设备相关的驱动程序,主要的驱动如下所示:
1)显示驱动(DisplayDriver):
常用基于Linux的帧缓冲(FrameBuffer)驱动。
2)Flash内存驱动(FlashMemoryDriver)。
3)照相机驱动(CameraDriver):
常用基于Linux的v4l(Videofor)驱动。
4)音频驱动(AudioDriver):
常用基于ALSA(AdvancedLinuxSoundArchitecture)驱动。
5)WiFi驱动(CameraDriver):
基于IEEE802.11标准的驱动程序。
6)键盘驱动(KeyBoardDriver)。
7)蓝牙驱动(BluetoothDriver)。
8)BinderIPC驱动:
提供进程间通讯的功能。
9)PowerManagement(能源管理)。
Libraries和Android运行环境(RunTime)
Android的本层次分成两个部分一个是各种库,另一个是Android运行环境。
本层的内容大多是使用C++实现的。
在其中,各种库包括:
1)C库:
C语言的标准库,是通过Linux的系统调用来实现。
2)多媒体框架(MediaFrameword):
是Android多媒体的核心部分。
3)SGL:
2D图像引擎。
4)SSL:
位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
5)OpenGLES1.0:
提供了对3D的支持。
6)界面管理工具(SurfaceManagement):
提供了对管理显示子系统等功能。
7)SQLite:
通用的嵌入式数据库
8)WebKit:
网络浏览器的核心
9)FreeType:
位图和矢量字体的功能。
应用程序框架(ApplicationFramework)
Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。
由于上层的应用程序是以JAVA构建的,因此本层次提供的首先包含了UI程序中所需要的各种控件,一个Andoid的应用程序可以利用应用程序框架中的以下几个部分:
Activity、BroadcastIntentReceiver、Service、ContentProvider。
应用程序(Application)
Android的应用程序主要是用户界面(UserInterface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。
Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。
同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。
这也是Android开源的巨大潜力的体现。
1.5Android系统应用
开发基于Android平台应用
游戏类应用
工具软件类应用
创意软件类应用
IM软件类应用
参加Android开发大赛
得到更多人的认可和尊重
Google花大价钱来召开Android开发者大赛,第一届大赛已经落幕,期间我们看到了很多优秀的作品,当然也许我们更关注的是这个比赛的最大赢家,BiginJapan,这个团队开发了10多个应用程序,最终,他们的GoCart赢了这次比赛的冠军头衔以及27万美元。
AndroidMarket获取收益
AndroidMarket是Google为了让Android开发人员可以将应用程序上载并销售的网站,而Android手机的使用者,则可以到AndroidMarket的网站购买下载自己所需要的应用程序到手机上使用。
AndroidMarket
1.6Android前景
支持Android系统的手机
Android从出世以来就受到各界的热捧,它标志着一个新的手机时代。
另外,Android基于Linux内核,能具备PC机的性能,支持更多的接口。
这些都是未来手机的走向,所以各大手机厂商都极力推出装载Android操作系统的智能手机。
研究机构Gartner预测2012年的智能手机市场,Android将以14%的份额爬到第二的位置(2009年初Android在北美的市场份额已经达到了6.36%),超越iPhoneOS,仅次于Symbian。
Android在中国的前景十分广阔,首先是有成熟的消费者,在国内,Android社区十分红火,这些社区为android在中国的普及做了很好的推广作用。
国内厂商和运营商也纷纷加入了Android阵营,包括OPPO,中国移动,中国联通,华为通讯,联想等大企业。
1.7主流智能手机操作系统
1.7.1AppleiPhoneOS
MicrosoftWindowsMobile
NokiaSymbian
NokiaMaemo
RIMBlackBerry
1.8小结
本章介绍Android的产生和发展,Android产生背景,系统架构,开发人员可以在该平台上做的事情,以及其他主流的手机操作系统.
1.9练习
1.Android概念是什么,有什么用?
2.Android的系统架构和各层中组件的功能?
3.当前主流的手机操作系统有哪些?
2Android开发环境
本章目标:
1.掌握如何搭建Android开发环境。
2.开发调试第一个Android项目HelloWorld。
2.1Android环境搭建
2.1.1安装前准备
所需项
版本要求
说明
操作系统
WindowsXP、Vista、MacOS、Ubuntu
选择熟悉的操作系统
软件包
AndroidSDK
下载最新版本的SDK:
IDE
Eclipse
ADT
下载Eclipse3.5:
http:
//www.eclipse.org/downloads
下载或安装ADT:
http:
//dl-
其他
JDK
下载JDK5或6:
2.1.2安装JDK
1)官方网址选择适合于自己平台(这里是Windows)的JDK下载。
安装JDK。
2)在桌面上右击“我的电脑”,依次点击【属性】>【高级】>【环境变量】将JDK的相关目录添加到Windows的PATH、CLASSPATH、JAVA_HOME环境变量中。
2.1.3安装Eclipse3.5
1)官方网址选择适合于自己平台(这里是Windows)的Eclipse下载。
直接解压就可以使用了。
2.1.4安装AndroidSDK
1)下载AndroidSDK,不需要安装,解压之后就可以使用,将其tools目录的绝对路径添加到系统的PATH路径中。
2)验证AndroidSDK安装,打开一个CMD窗口,输入android–h,如果有如下返回则表示SDK安装成功。
2.1.5安装ADT插件
1)下载ADT插件,下载完成后解压,将“features”和“plugins”目录中的文件拷贝到Eclipse的对应目录中就可以了。
2.1.6AndroidSDKHome
1)打开Eclipse,设定AndroidSDKHome
2.2第一个HelloWorld项目
2.2.1新建Android项目
1)打开Eclipse,选择File>New>Project如果Android的Eclipse的插件正确安装了,弹出的对话框里就会有一项“Android”,这一项有子项“AndroidProject”。
2.2.2填写项目信息
2)下一步需要你填写项目的详细信息.
2.2.3编程实现
2.2.4运行项目
2.3小结
本章主要介绍了Android开发环境需要的条件和搭建步骤,演示了第一个HelloWorld应用程序.
2.4练习
在本机搭建Android开发环境,并演示第一个HelloWorld应用程序。
3AndroidSDK介绍
本章目标:
1.掌握AndroidSDK组成。
2.掌握Android常用的Tools。
3.熟悉Android核心开发包和可选开发包。
3.1AndroidSDK目录结构
AndroidSDK目录结构
3.2AndroidSDKSample
LunarLander月球登陆
是一个在Android模拟器上玩的游戏。
这个游戏一个2-D的游戏在Android上工作是多么的简单。
控制非常的简单,而且游戏不是非常的复杂。
总之,对游戏开发来说是一个良好的开始。
月球登陆执行一个简单控制方案(上,下,左,右)。
NotePad写字板
允许你打开,创建并且编辑小的笔记。
写字板不是一个全功能的字符编辑器,所以不要期待是和WindowsMobile中word的竞争对手。
但是,作为一个演示工具,使用非常少的代码就能实现这个效果已经非常的棒了。
SkeletonApp框架应用
是一个基本的程序展示了几个不同的应用程序的功能。
如字体,按钮,图形和表格。
如果你想自己运行SkeletonApp,真的不应当把它排除在外,参考SkeleteApp,它会提供不少关于如何执行特定的条款。
Snake贪食蛇
这是一个小的SNAFU风格游戏,比月球登陆复杂。
3.3AndroidSDKTools
AndroidSDK包括各种各样的定制工具,可以帮助你在Android平台上开发移动应用程序。
其中最重要的工具是Android模拟器和Eclipse的Android开发工具插件,但SDK也包含了各种在模拟器上用于调试,打包和安装的工具
Android模拟器(AndroidEmulator )
AndroidEmulator是一款功能非常齐全的模拟器,电话本、通话等功能都可进行模拟。
甚至其内置的浏览器和GoogleMaps都可以联网。
用户可以使用键盘输入,单击模拟器按键输入,甚至还可以使用鼠标单击、拖动屏幕进行操作。
1)模拟器和真机的不同之处
Ø不支持呼叫和接听实际来电,但可以通过控制台模拟电话呼叫(呼入和呼出)。
Ø不支持USB连接。
Ø不支持相机/视频捕捉。
Ø不支持音频输入(捕捉),但支持输出(重放)。
Ø不支持扩展耳机。
Ø不能确定连接状态。
Ø不能确定电池电量水平和交流充电状态。
Ø不能确定SD卡的插入/弹出。
Ø不支持蓝牙。
Dalvik 调试监视器服务(DalvikDebugMonitorService (ddms))
这个工具集成了Dalvik(为Android平台定制的虚拟机(VM)),能够让你在模拟器或者设备上管理进程并协助调试。
你可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观察堆(heap)和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。
Android调试桥(AndroidDebugBridge (adb) )
Adb工具可以让你在模拟器或设备上安装应用程序的.apk文件,并从命令行访问模拟器或设备。
你也可以用它把Android模拟器或设备上的应用程序代码和一个标准的调试器连接在一起。
在SDK的Tools文件夹下包含着Android模拟器操作的重要命令ADB,ADB的全称为AndroidDebugBridge,就是调试桥的作用,借助这个工具,我们可以管理设备或手机模拟器的状态 ,还可以进行以下的操作:
(1)快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
(2)在设备上运行Shell命令;
(3)管理设备或手机模拟器上的预定端口;
(4)在设备或手机模拟器上复制或粘贴文件。
AndroidAssetPackagingTool (aapt)
Aapt工具可以让你创建包含Android应用程序二进制文件和资源文件的.apk文件。
Android接口描述语言(AndroidInterfaceDescriptionLanguage (aidl))
可以让你生成进程间的接口的代码,诸如service可能使用的接口。
sqlite3
这个工具能够让你方便地访问SQLite数据文件。
这些数据文件是由Android应用程序创建并使用的。
Traceview
这个工具可以将你的Android应用程序产生的跟踪日志(tracelog)转换为图形化的分析视图。
mksdcard
帮助你创建磁盘映像(diskimage),你可以在模拟器环境下使用磁盘映像来模拟外部存储卡(例如SD卡)。
dx
Dxgongju将.class字节码(bytecode)转换为Android字节码(保存在.dex文件中)。
UI/ApplicationExerciserMonkey
Monkey是在模拟器上或设备上运行的一个小程序,它能够产生为随机的用户事件流,例如点击(click),触摸(touch),挥手(gestures),还有一系列的系统级事件。
你可以使用Monkey来给你正在开发的程序做随机的,但可重复的压力测试。
activitycreator
一个可以产生Antbuild文件的脚本,你可以使用它编译你的android应用程序。
如果你正在Eclipse上开发,并使用ADT插件,你不必使用这个脚本。
logcat
LogCat是Android中一个命令行工具,可以用于得到程序的log信息。
利用LogCat查看日志信息
3.4AndroidSDK核心包
AndroidSDK提供了编写应用程序的一些基本包。
这些包通过分层方式组织,以下按照从底层到高层的顺序列出:
android.util:
包含有许多底层的工具类,例如专用容器类,XML工具等等。
android.os:
提供基本的操作系统服务、消息传递和进程间通讯。
android.graphics:
核心图形绘制包。
android.text、android.text.method、android.text.style、android.text.util:
提供丰富的文本处理工具、富文本支持以及输入法等等。
android.database:
包含数据库相关的底层API。
android.content:
提供大量的访问存储在设备上的数据的服务:
安装在设备上的应用及相关资源,用于持续的动态数据的内容提供器(contentprovider)。
android.view:
核心用户界面框架。
android.widget:
提供构建view包的标准用户界面元素(列表、按钮、布局管理器等等)。
android.app:
提供高层应用模型,通过活动实现。
3.5AndroidSDK可选API
Android适用于各种各样的手机,从最低端直到最高端的智能手机。
核心的AndroidAPI在每部手机上都可使用,但任然有一些API接口有一些特别的适用范围,这就是所谓的“可选API”。
这些API之所以是“可选的”,主要是因为一个手持设备并不一定要完全支持这类API,甚至于完全不支持。
例如,一个手持设备可能没有GPS或Wi-FI的硬件。
在这个条件下,这类功能的API任然存在,但不会以相同的方式来工作。
例如LocationAPI任然在没有GPS的设备上存在,但极有可能完全没有安装功能提供者,意味着这类API就不能有效地使用。
Wi-FiAPI
Wi-FiAPI为应用程序提供了一种与那些带有Wi-FI网络接口的底层无线堆栈相互交流的手段。
几乎所有的请求设备信息都是可利用的,包括网络的连接速度、IP地址、当前状态等等,还有一些其他可用网络的信息。
一些可用的交互操作包括扫描、添加、保存、结束和发起连接。
Wi-FiAPI在.wifi包中。
定位服务(Location-BasedServices)
定位服务允许软件获取手机当前的位置信息。
这包括从全球定位系统卫星上获取地理位置,但相关信息不限于此。
例如,未来其他定位系统可能会运营,届时,对其相应的API接口也会加入到系统中。
定位服务的API在android.location包中。
多媒体API(MediaAPIs)
多媒体API主要用于播放媒体文件。
这同时包括对音频(如播放MP3或其他音乐文件以及游戏声音效果等)和视频(如播放从网上下载的视频)的支持,并支持"播放URI地址"(Note:
URI即是统一资源识别地址)模式-在网络上直接播放的流媒体。
技术上来说,多媒体API并不是“可选的”,因为它总是要用到。
但是不同的硬件环境上面可能有不同的编解码的硬件机制,因而它又是“可选的”。
多媒体API在android.media包中。
基于OpenGL的3D图形(3DGraphicswithOpenGL)
Android的主要用户接口框架是一个典型的面向控件的类继承系统。
但不要让表面的情况迷惑了你,因为在它下面是一种非常快的2D和