⑴ android MVP架构中的Presentation层应该怎么设计
对于MVP(Model View Presenter),大多数人都能说出一二:“MVC的演化版本”,“让Model和View完全解耦”等等。本篇博文仅是为了做下记录,提出一些自己的看法,和帮助大家如何针对一个Activity页面去编写针对MVP风格的代码。
对于MVP,我的内心有一个问题:
为何这个模式出来后,就能被广大的Android的程序员接受呢?
问了些程序员,他们对于MVP的普遍的认识是:“代码很清晰,不过增加了很多类”。我在第一次看到MVP的时候,看了一个demo,看完以后觉得非常nice(但是回过头来,自己想个例子写,就头疼写不出来,当然这在后文会说)。nice的原因还是因为,这个模式的确让代码的清晰度有了很大的提升。
那么,提升一般都是对比出来的,回顾下,没有应用MVP的代码结构。很多人说明显是MVC么:
View:对应于布局文件
Model:业务逻辑和实体模型
Controllor:对应于Activity
看起来的确像那么回事,但是细细的想想这个View对应于布局文件,其实能做的事情特别少,实际上关于该布局文件中的数据绑定的操作,事件处理的代码都在Activity中,造成了Activity既像View又像Controller(当然了Data-Binder的出现,可能会让View更像View吧)。这可能也就是为何,在该文中有一句这样的话:
Most of the modern Android applications just use View-Model architecture,everything is connected with Activity.
而当将架构改为MVP以后,Presenter的出现,将Actvity视为View层,Presenter负责完成View层与Model层的交互。现在是这样的:
View 对应于Activity,负责View的绘制以及与用户交互
Model 依然是业务逻辑和实体模型
Presenter 负责完成View于Model间的交互
ok,先简单了解下,文中会有例子到时候可以直观的感受下。
⑵ 什么是Android系统,应用于哪些领域
早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续进行对Android系统开发运营,它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以java编写。
Android平台五大优势特色一、开放性在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显着的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
二、挣脱运营商的束缚
三、丰富的硬件选择
这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。
四、不受任何限制的开发商
五、无缝结合的Google应用
如今叱咤互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。在数字标牌领域,
武汉星际互动信息技术有限公司推出的基于Android平台的全球最小数字标牌超微播放终端ME10
,填补了Android系统在数字标牌行业的空白。传统的嵌入式数字标牌,平台封闭,具有专属性,不管是内容还是效果,都非常有限,对于用户新需求的满足成本非常高、周期非常长,根本无法适应客户日益丰富的需求。而拥有Android系统的产品却大不相同。基于嵌入式Android系统的ME10
,拥有开放式系统架构整合功能,不仅允许其他软件安装,还能提供和其它软件的开放接口,更具开放性。
⑶ 有哪些关于 Android 系统架构,底层实现方面的技术书推荐
深入浅出 Android – Google 手持设备应用程序设计 入门书籍,作者写的很不错,可以在阅读 SDK 的同时阅读这本书,中间的一些使 用介绍的非常清楚,最重要的是中文版的 Google Android 应用框架原理与程式设计 36 技 最早介绍 Android 的中文书籍,台湾人写的繁体版的,看得有些影响,不过还是值 得耐心阅读的 Android A Programmer’s Guide 多个专家写的介绍 Android 的书籍, 内容写的很不错, Ask the Expert 部分针对一些 问题作了详细的说明 Android Essentials 对 Android 介绍的比较全面,从安装到开发,应该有新版本了。 Google Android SDK 开发范例大全 ( 第 2 版 ) 以 Android 手机应用程序开发(采用 AndroidSDK2.1 )为主题,通过 160 多个范例 全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计功力 提供了很大的帮助。 Google Android 开发入门与实战 内容上覆盖了用 Android 开发的大部分场景,从 Android 基础介绍、环境搭建、 SD K 介绍、 Market 使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上, 讲解了 5 个 Android 平台下的完整综合实例及源代码分析,分别是 RSS 阅读器、基 于 Google Map 的个人 GPS 、豆瓣网( Web 2.0 )客户端、在线音乐播放器、手机信 息助手,为初学者学习与实践结合提供了很好的指导。 Android 平台开发之旅 涵盖了 Android 平台 1.5 到 2.2 版本的主要功能特性,立足实际的开发案例, 介绍了 Android 手机平台开发的基础概念、 实用技术和应用模式。 主要内容包括: 平台基础、 开发环境搭建、程序框架、高级界面和底层界面设计、文件系统管理、网络通信、 无线通信、多媒体编程、个人信息管理、电话系统、数据库应用、 XML 应用和地图 应用。开发实例多达 120 例。 如何成为 Android 高手 成为一名真正的 Android 高手必须掌握和遵循的一些准则: 1 ,学会懒惰 2 ,精通 Android 体系架构、 MVC 、常见的设计模式、控制反转( IoC ) 3 ,编写可重用、可扩展、可维护、灵活性高的代码 4 ,高效的编写高效的代码 5 ,学会至少一门服务器端开发技术 Android 开发指南中文版之应用程序框架 Android SDK1.5 版的英文开发资料 Android Development Guide 中应用程序框架部 分的翻译 PDF 文
⑷ Android是什么意思
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
[编辑本段]简介
Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机电话的Nexus One。目前最好的是Android2.1
对手机行业的影响
已经与HTC、NTT DoCoMo、KDDI、Motorola等世界移动领域34家公司于免费提供达成一致。今后对于移动通讯的影响势必会进一步体现出来。但是如此广泛公司的同盟是否能够有效运作及以持久值得拭目以待。
MOTO Droid
Android手机2008年9月22日,美国运营商T-MobileUSA在纽约正式发布第一款Google手机——T-Mobile G1。该款手机为台湾宏达电代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。
(右图为搭载最新Google Android 2.0的Moto Droid)
[编辑本段]基本情况
Android 是Google开发的基于Linux平台的开源手机操作系统(在华注册商标名为“安致”)。它
摩托罗拉的首款Android手机CLIQ
包括操作系统、用户界面和应用程序 —— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。Google与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分:底层以Linux核心为基础,由c语言开发,只提供基本功能。中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以java编写。
为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟(Open Handset Alliance)。
Android操作系统的组件如下图:
Android 作为谷歌企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。全球为数众多的移动电话用户正在使用各种基于 Android 的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至平台。出于这个目的,Android 将补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。
⑸ android软件开发的架构
Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。
View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要在Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。 在模拟器上运行仿真是虚拟设备(AVD),我们需要配置来运行我们的Android应用程序。步骤1、开放的AVD管理步骤2、新的按钮,点击添加新设备,并配置您的设备设置。步骤3、会有一个结果窗口显示所有已配置你上一屏幕选择。步骤4、按“确定”,你将会看到你的设备列在有你可以关闭此窗口。步骤5、运行你的Android应用程序项目从Eclipse,如果只有一个AVD配置,它会自动部署的应用程序也会出现一个窗口,选择你的图片。 仿真器将开始。在设备上运行
Android应用程序可以直接部署在Android设备上,这几个配置所需要的。步骤1、在调试模式的设置可以设置应用程序:Android的<应用程序>元真可调试属性。ADT 8这是默认的。步骤2、您的设备上启用USB调试:Android 3.2或以上转至设置>应用程序>开发和启用USB调试。在Android 4更新,这是开发商选择设置>。注:在Android 4.2更新,开发者选项是默认隐藏。可以,去设定>android的版本号。返回先前屏幕找到开发商选择。步骤3、安装USB驱动程序为您的设备,计算机识别你的设备。步骤4、一旦设置和您的设备通过USB连接,从Eclipse菜单栏安装您的应用程序在设备上选择运行>运行(或运行>调试)。 操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。
Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,Skia 也是Google Chrome 的图形引擎。
Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。
Android的中间层多以Java 实现,并且采用特殊的Dalvik虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。 Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概念,也让 Android framework 的开发能在不考虑驱动程序实现的前提下进行发展。
HAL stub 是一种代理人(proxy)的概念,stub 是以 *.so 档的形式存在。Stub 向 HAL“提供”操作函数(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 这些操作函数。HAL 里包含了许多的 stub(代理人)。Runtime 只要说明“类型”,即 mole ID,就可以取得操作函数。 Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标准的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Managemeat),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。
⑹ 关于android
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前最好的是Android2.0的摩托罗拉Droid
[编辑本段]简介
Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机电话的Nexus One。目前最好的是Android2.1
对手机行业的影响
已经与HTC、NTT DoCoMo、KDDI、Motorola等世界移动领域34家公司于免费提供达成一致。今后对于移动通讯的影响势必会进一步体现出来。但是如此广泛公司的同盟是否能够有效运作及以持久值得拭目以待。MOTO Droid
Android手机
2008年9月22日,美国运营商T-MobileUSA在纽约正式发布第一款Google手机——T-Mobile G1。该款手机为台湾宏达电代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。
(右图为搭载最新Google Android 2.0的Moto Droid)
[编辑本段]基本情况
Android 是Google开发的基于Linux平台的开源手机操作系统(在华注册商标名为“安致”)。它摩托罗拉的首款Android手机CLIQ包括操作系统、用户界面和应用程序 —— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。Google与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分:底层以Linux核心为基础,由c语言开发,只提供基本功能。中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以java编写。
为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟(Open Handset Alliance)。
Android操作系统的组件如下图:
Android 作为谷歌企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。全球为数众多的移动电话用户正在使用各种基于 Android 的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至平台。出于这个目的,Android 将补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。
[编辑本段]团队成员
白色版HTC G1Android平台的研发队伍阵容强大,包括摩托罗拉、Google、HTC(宏达电)、PHILIPS、T-Mobile、高通、魅族、三星、LG以及中国移动在内的34家企业,都将基于该平台开发手机的新型业务,应用之间的通用性和互联性将在最大程度上得到保持。“开放手机联盟”表示,Android平台可以促使移动设备的创新,让用户体验到最优越的移动服务,同时,开发商也将得到一个新的开放级别,更方便的进行协同合作,从而保障新型移动设备的研发速度。
34家企业的加盟,也将大大降低新型手机设备的研发成本,完全整合的“全移动功能性产品”成为“开放手机联盟”的最终目标。
这34家企业中并不包含把持Symbian的诺基亚,以及凭借着iPhone风光正在的苹果公司,美国运营商AT&T和Verizon,当然微软没有加入,独树一帜的加拿大RIM和他们的Blackberry也被挡在门外。
手机开放联盟大家庭成员名单:
一、手机制造商:
台湾宏达国际电子(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 )
惠普HP(Hewlett-Packard Development Company, L.P)
三、软件公司:
Aplix
Ascender
eBay的Skype
Esmertec
Living Image
NMS Communications
Noser Engineering AG
Nuance Communications
PacketVideo
SkyPop
Sonix Network
TAT-The Astonishing Tribe
Wind River Systems
[编辑本段]特性
·应用程序框架 支持组件的重用与替换
·Dalvik虚拟机 专门为移动设备做了优化
·内部集成浏览器 该浏览器基于开源的WebKit 引擎
·优化的图形库 包括2D和3D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选)
·#SQLite 用作结构化的数据存储
·多媒体支持 包括常见的音频、视频和静态印象文件格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
·GSM电话 (依赖于硬件)
·蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件)
·照相机,GPS,指南针,和加速度计 (依赖于硬件)
·丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件
[编辑本段]架构
下图显示的是Android操作系统的主要组件。每一部分将会在下面具体描述。
Android架构
[编辑本段]应用程序
Android会同一个核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用JAVA编写的。
Android 应用程序框架开发者也完全可以访问核心应用程序所使用的API框架。该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组建可以被用户替换。
以下所有的应用程序都由一系列的服务和系统组成,包括:
·一个可扩展的视图(Views )可以用来建应用程序,包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至包括一个可嵌入的web浏览器
·内容管理器(Content Providers )使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
·一个资源管理器 (Resource Manager)提供非代码资源的访问,如本地字符串,图形,和分层文件( layout files )。
·一个通知管理器 (Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。
·一个活动类管理器 (Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。
有关更多的细节和怎样从头写一个应用程序,请参考 写一个 Android 应用程序 部分。
Android 程序库Android 包括一个被 Android 系统中各种不同组件所使用的 C/C++ 库集。该库通过 Android 应用程序框架为开发者提供服务。以下是一些主要的核心库:
系统 C 库 - 一个从 BSD 继承来的标准 C 系统函数库( libc ),专门为基于 embedded linux 的设备定制。 媒体库 - 基于 PacketVideo OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。 Surface Manager - 对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。 LibWebCore - 一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。 SGL - 一个内置的2D图形引擎 3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。 FreeType - 位图(bitmap)和向量(vector)字体显示。 SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
Android 运行库
Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。
Linux 内核Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。
[编辑本段]硬件产品
已发布(预装)
GOOGLE(HTC代工) Nexus one
HTC Dream
HTC Magic
HTC Hero
HTC Tattoo
MOTO CLIQ(DEXT)
MOTO Droid(Milestone)
MOTO BackFlip
MOTO XT800
MOTO XT701
MOTO XT710
Sony Ericsson X10
Qigi i6
Acer A1
HKC Pearl
HKC Imobile v413
Samsung I7500
Samsung i5700
售后安装
一些用户已经能够(某些黑客,以及有限的功能)安装Android在其它操作系统的移动设备之上:
OpenMoko手机 (Neo FreeRunner 及 Neo 1973)Motorola A1200 MingHTC VogueHTC PolarisHTC KaiserHTC Touch Diamond: 并非所有功能都被许可 (包括 Wifi)HTC Touch Pro诺基亚 N810诺基亚 770Asus EeePC 701Asus EeePC 1000HTouch Book from Always InnovatingDell Axim x51vHTC Touch HD: 并非所有功能都被许可 (包括 Wifi和音频语音通话)Samsung Omnia: 只有基本功能(没有相机或WiFi,需要安装在SD卡中)Sharp Zaurus
[编辑本段]未来发展
老牌智能手机软件平台制造商Symbian发言人则表示:Google的android只不过是另一个linux,symbian对其它软件与其形成的竞争并不感到担心。除了北美之外,Symbian在其它地区智能手机市场都占有大部分市场份额。
与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。
但其最震撼人心之处在于Android手机系统的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。
Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。谷歌移动平台主管安迪·鲁宾(Andy Rubin)表示,与软件开发合作伙伴的密切接触正在进行中。从去年11月开始,谷歌开始向服务提供商、芯片厂商和手机销售商提供Android平台,并组建“开放手机联盟”,其成员超过30家。
[编辑本段]市场前景
Google手机于08年10月22日正式上市,与运营商捆绑的合约价为179美元(约合人民币1200元),现有的T-Mobile用户可以通过网络订购。在10月22日发布当天,将有22个国家和地区可以买到谷歌手机。在11月,将增至27个国家和地区。
谷歌手机将只能在T-Mobile网络内使用,将会有SIM卡锁定限制。T-Mobile USA提供了两种流量和短信近曝光的moto sholes(也有人称之为moto tao)将搭载最新的android2.0操作系统包月计划。第一档为25美元,包括不限制的网络流量,以及一定数量的短信;第二档为35美元,包括不限制的网络流量和不限数量的短信。G1支持各种谷歌的服务,包括Gmail、Google Maps、YouTube、Google日历和Google Talk,内置Chrome Lite浏览器。使用这款手机也需要Gmail账号。
“我爱死我的G1了!”谷歌联合创始人拉里·佩奇(Larry Page)憧憬:“对于我来说,谷歌手机最激动人心的一点就是它的未来。它的功能很强,正如几年前的电脑一样。你可以上网,安装软件。”
T-Mobile USA为德国电信旗下移动子公司,运营GSM/HSPA网络,拥有用户近3000万。此次发布的谷歌手机采用高通MSM7201A处理器,支持7.2Mbps下载速率,美国运营商3G网络设定的套餐速率一般可达1Mbps以上。MSM7201A为单芯片、双核,整合硬件加速多媒体功能、支持3D图形,300万像素的摄像功能可以扫描条形码,并且有GPS功能。
在美国四大移动运营商中,T-Mobile USA处于相对弱势的地位,不过T-Mobile在欧洲有更为强势的是CDMA EV-DO网络,而T-Mobile USA和苹果iPhone的独家运营商AT&T为GSM/HSPA网络,后者在2005年12月就推出了全球第一个HSDPA商用服务。
T-Mobile USA今年5月方才在纽约推出了3G服务,目前已经在奥斯汀、巴尔的摩、波士顿、达拉斯、休斯敦、拉斯维加斯、迈阿密、明尼阿波利斯、凤凰城、波特兰、圣安东尼奥和圣地亚哥等12个城市增加了3G覆盖,公司计划年底前将3G覆盖的城市从目前的13个增加到27个,能够为其超过2/3的用户提供3G服务。
市场手机品牌
摩托罗拉
摩托罗拉沉寂了一年终于要爆发了!由于受到金融危机的影响,摩托罗拉在过去的一年里显得极为沉寂,似乎突然蒸发掉似的,财报上的体现也是在不断亏损,甚至还一度有传言说摩托罗拉打算放弃手机市场。
不过摩托罗拉并没有这样做,而是卧薪尝胆研发Android智能手机,意欲通过Android挽回失去的市场份额。9月10日摩托罗拉CLIQ的发布已经为摩托罗拉挣足了掌声,接下来应该是摩托罗拉翻身仗的关键了。
摩托罗拉的首款Android手机CLIQ
摩托罗拉曾说过,CLIQ只不过是一款中端手机,很明显这款Sholes才是摩托罗拉的Android旗舰。他们先是和Verizon推出了一则名“DroidDoes(Android能做到)”的广告,从多方面告诉用户苹果不能而Android能。
现在他又通过邮件来宣传这款手机,信封的封套上写着“发布之日即将来临”,并在一个破洞之后露出了炙热的眼睛。而在里面的信封上则表明了这款手机的一些特色,比如速度快,可以在黑暗中拍照,支持谷歌语音搜索等。
据台湾媒体报道,一位分析师称,作为苹果iPhone在今年假日季节到来之时的竞争产品,美国最大的移动电话制造商摩托罗拉的智能手机Droid自11月6日通过Verizon Wireless推出以来,其销售量已经达到80万部。 摩托罗拉智能手机Droid,运行的是谷歌Android操作系统。纽约RBCCapitalMarkets公司分析师马克·休(MarkSue)周日在一份研究报告中表示,该数字将使得摩托罗拉在第四季度按计划实现销售100万部目标。
马克·休称,摩托罗拉的销售业绩一直受到VerizonWireless广告促销和商店促销的推动。Verizon Wireless把Droid作为iPhone新版本的竞争产品向苹果发起了挑战。苹果新版iPhone截止6月份的第一个周末销售量就超过100万部。
马克·休称:“在假日季节到来曾用名,VerizonWireless加强了Droid的营销。摩托罗拉在产品方面得很出色,我们对超过100家商店的调查显示,该产品需求很强劲。”这位分析师表示,摩托罗拉股价表现将好于竞争对手。
市场研究公司NPDGroup今年8月份称,苹果的iPhone和RIM的BlackBerryCurve手机第二季度在美国智能手机市场处于领先位置。高端手机能够让用户发送电邮并且编辑文档。
周一在纽约证券交易所,摩托罗拉股价下跌0.19美元,报收于8.01美元,跌幅2.3%。摩托罗拉股价今年以来已经上涨81%。总部位于美国纽约的Verizon通信公司(VerizonCommunications)周一股价下跌0.17美元,报收于31.46美元,该公司股价今年以来已经下跌7.2%。Verizon无线是Verizon通信公司同英国沃达丰公司的合资企业。
琦基
去年11月27日,琦基发布了全球首款Google Android/Windows Mobile双操作系统的智能手机琦基i6,采用Google Android操作系统的叫做琦基i6 goal,采用Windows Mobile操作系统的叫做琦基i6 Win。
华硕
华硕公司CEO沈振来日前在CES展会上向媒体表示,公司正在考虑推出一款Eee品牌手机,并可能基于Google Android操作系统。
联想
OMS和T-mobile G1搭载的Android(以最初上市版本为主)的不同之处就是可以使用户自行关闭正在运行的程序而不是由系统控制:按住屏幕上方向下拖动即可看到任务管理器。 乐Phone是联想最新推出的一款Android系统手机,将于2010年5月发布。
HKC Pearl
做为目前在市面上唯一正式销售的Windows和Android系统双系统手机,这款HKC Pearl 珍珠珠配备了QVGA屏幕,内存采用了128MB/256MB的标准配置,主处理器采用PXA 310处理器,624Mhz的主频性能非常强劲,而且机器还配备了Wi-Fi,蓝牙2.0无线传输设置。
华为
造型上,U8230在外观上有别于其他Android手机的塑料风格,通体的银灰色和正面功能键盘的发丝纹路都洋溢着商务机型的味道。而作为功能上的特色,U8230拥有一块3.5英寸的大屏幕、高达1500毫安时的锂电池和一枚320万象素摄像头采用Android平台1.5版本。预计将于下半年正式发售。
海尔
海尔H7采用的是Android OS 1.5系统,不过如果H7上市时Android OS已经升级到2.0版的话海尔应该会一步到位选择Android OS 2.0。由于海尔在亚洲电信展上展示的H7只是模型机,因此这款手机与HTC的Android机型相比究竟如何尚不得而知。不过海尔的规格说明书表明,H7将会配备2.8英寸触摸显示屏,内置WiFi、GPS和蓝牙模块,支持FM收音,配备200万象素摄像头,支持闪光灯功能。
华禹
xPhone是由上海禹华通信技术有限公司设计的,采用类iphone的触控设计,配置了3寸WQVGA分辨率的触摸屏,内建300W像素的摄像头,搭载Android平台,采用主频 624Mhz的Marvell PXA-310处理器,拥有128MB SDRAM+256MB ROM的内存配置,支持最大16GB的存储卡扩展,给出的参数中居然还加入了WiFi功能,该机尚未正式发布,我们就静候佳音吧。
宏基Acer A1采用高通8250处理器,最新Android 1.6版本操作系统,512 MB内存,3.5英寸触控屏,可支持GSM和WCDMA双制式,内置GPS,500万像素摄像头,支持micro SD扩展。09年9月底开始在法国和德国接受预定,Acer A1售价为389.99欧元。国外品牌摩托罗拉摩托罗拉 Cliq是全球首款发售的Android操作系统智能手机,采用侧滑盖设计,支持GSM和WCDMA双频,3.1英寸屏幕,320×480像素屏幕分辨率,内置500万摄像头,机身自带256MB内存,支持micro SD扩展。该机最大特色是支持世界上主流社。而最,据悉将在十月上市。
魅族
即将推出的魅族M8 3G版本,使用微软CE与Android双系统。
分别推出TD.WCDMA.CDMA2000版本。
[编辑本段]Android在中国
android在中国的前景十分广阔,首先是有成熟的消费者,在国内,android社区十分红火,这些社区为android在中国的普及做了很好的推广作用。国内厂商和运营商也纷纷加入了android阵营,包括OPPO,中国移动,中国联通,华为通讯,联想等大企业。
⑺ 安卓系统与Windows系统的区别
1、运行平台不同
android系统是移动设备上使用的操作系统,例如在手机、平板电脑上使用;windows系统目前仅在PC上使用(戴尔未来将推搭载win8系统的平板)。这一点应该是主要的区别,就是运行平台的不同。
2、基于开发项目不同
android系统是基于PC系统linux开发的移动系统平台,相应的基于windows系统开发的移动系统平台是windows mobile,但是WM系统目前已经基本被放弃了。
微软目前主要支持的是windows phone 7,也就是熟称的WP7,目前有包括HTC、三星、诺基亚等都推出了搭载WP7系统的智能手机
3、安装包不同
安卓系统的应用程序安装包格式为APK,windows系统则常见的有exe(或者一些绿色软件不用安装)。
4、开发对象不同
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。
Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。
2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
Windows采用了图形化模式GUI,比起从前的DOS需要键入指令使用的方式更为人性化。随着电脑硬件和软件的不断升级,微软的Windows也在不断升级,从架构的16位、16+32位混合版(Windows9x)、32位再到64位。
系统版本从最初的Windows 1.0到大家熟知的Windows 95、Windows 98、Windows ME、Windows 2000、Windows 2003、Windows XP。
Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10和Windows Server服务器企业级操作系统。
不断持续更新,微软一直在致力于Windows操作系统的开发和完善。现在最新的正式版本是Windows 10 1809版本。
参考资料来源:网络-Windows操作系统
参考资料来源:网络-安卓系统
⑻ Android项目开发该如何选择架构模式
目前框架使用的主要都是开源框架,都可以在github上找到:
1、volley,项目地址 https://github.com/smanikandan14/Volley-demo
2、android-async-http 项目地址:https://github.com/loopj/android-async-http
3、Afinal框架 项目地址:https://github.com/yangfuhai/afinal
4、xUtils框架 项目地址:https://github.com/wyouflf/xUtils
5、ThinkAndroid 项目地址:https://github.com/white-cat/ThinkAndroid
6、LoonAndroid 项目地址:https://github.com/gdpancheng/LoonAndroid
主要有以下模块:
(1) 自动注入框架(只需要继承框架内的application既可)
(2)
图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性)
(3) 网络请求模块(继承了基本上现在所有的http请求)
(4)
eventbus(集成一个开源的框架)
(5) 验证框架(集成开源框架)
(6) json解析(支持解析成集合或者对象)
(7) 数据库(不知道是哪位写的 忘记了)
(8) 多线程断点下载(自动判断是否支持多线程,判断是否是重定向)
(9)
自动更新模块
(10) 一系列工具类
⑼ 安卓app的开发架构图该怎么画
android应用开发框架是ApplicationFramework.其系统架构由5部分组成,分别是:LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、Applications。第二部分将详细介绍这5个部分。下面自底向上分析各层。Android架构1、LinuxKernelAndroid基于Linux2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(ServiceAccessPoint),专业点可以说是高内聚、低耦合。如果你只是做应用开发,就不需要深入了解LinuxKernel层。2、AndroidRuntimeAndroid包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要指令,而基于寄存器的机器指令更大。dx是一套工具,可以将Java.class转换成.dex格式。一个dex文件通常会有多个.class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。3、LibrariesAndroid包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(applicationframework)暴露给开发者。下面列出一些核心库:系统C库--标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备媒体库--基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG界面管理--管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层LibWebCore--新式的Web浏览器引擎,驱动Android浏览器和内嵌的web视图SGL--基本的2D图形引擎3D库--基于OpenGLES1.0APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅FreeType--位图和矢量字体渲染SQLite--所有应用程序都可以使用的强大而轻量级的关系数据库引擎4、ApplicationFramework通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用程序其实是一组服务和系统,包括:视图(View)--丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器内容提供者(ContentProviders)--使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据资源管理器(ResourceManager)--提供访问非代码资源,如本地化字符串、图形和布局文件通知管理器(NotificationManager)--使所有的应用程序能够在状态栏显示自定义警告活动管理器(ActivityManager)--管理应用程序生命周期,提供通用的导航回退功能5、ApplicationsAndroid装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发!从上面我们知道Android的架构是分层的,非常清晰,分工很明确。Android本身是一套软件堆迭(SoftwareStack),或称为“软件迭层架构”,迭层主要分成三层:操作系统、中间件、应用程序。从上面我们也看到了开源的力量,一个个熟悉的开源软件在这里贡献了自己的一份力量。