android图形库
⑴ 如何利用Chromium For Android开发Android浏览器
应用层次概念图
layers 每个盒子代表一个概念中的应用层。通常情况下应该有可能通过替换任意一层及其上层组建来生成一个新的浏览器。因此,没有任何层应该与其更高层次有依赖关系。 WebKit的:Safari,Chromium和其他所有基于WebKit的浏览器都使用Webkit作为渲染引擎。WebKit Port是WebKit的一部分,处理与具体平台相关的操作,如资源加载和图形。 Glue: 将WebKit类型转换成Chromium类型 。这就是我们的“WebKit嵌入层”。这是浏览器Chromium和test_shell(允许我们测试WebKit)的基础。 Renderer/Render Host: 这是Chromium的“多进程嵌入层。”由它代理传递跨进程的消息和命令。你可以想象,其他的多进程浏览器也可以使用这一层,它对其他的浏览器服务没有依赖。 Tab contents: Chrome的特有层,来表示标签显示的内容。它与应用服务绑定, 例如密码管理器和history系统。本层不应该假设它嵌入在Chromium浏览器窗口中(还有其他Chromium组件如”HTML对话框“使用本层)。 浏览器:展现浏览器窗口,它嵌入了多个TabContentses。 WebKit 我们使用 WebKit这个开源项目来展示网页。此代码主要是由Apple编写的并存放在/third_party/WebKit目录中。WebKit主要包括两部分:“WebCore”负责核心布局功能,“javaScriptCore”用来执行JavaScript。我们只将JavaScriptCore用于测试目的,通常我们使用高性能的V8 JavaScript引擎取代它。我们实际不使用苹果称之为“WebKit”的软件层(译注:就是WebKit/Source/WebKit目录下的内容,Webkit/Source目录下同样有WebCore和JavaScriptCore目录),这个软件层用在如Safari这样的应用程序中,用来衔接WebCore和OS X。为了方便,我们通常将从Apple获取的代码称作“WebKit”。(译注,其实只使用了WebCore) The WebKit Port 在最底层,我们有我们的WebKit“Port”。这是我们实现的平台相关的代码,它用来衔接平台和WebCore。这些文件位于WebKit目录中,通常在Chromium目录中或者以Chromium为后缀名。实际上Port的大部分代码不是和操作系统相关的:你可以把它看成是WebCore的Chromium Port(译注:用来衔接WebKit和Chromium的)。有些部分,如字体渲染,必须针对每个操作系统平台分别处理。 网络流量是由我们的多进程资源加载系统处理的,而不是由渲染进程直接调用操作系统完成。 图形使用为Android开发的Skia图形库。这是一个跨平台的图形库,原生的处理除了文字以外的所有图形、图像。Skia位于/third_party/skia。图形操作的主要入口点是 / WebKit/port/platform/graphics/GraphicsContextSkia中。这个对象表示一个网页。它处理所有从浏览器进程出入的与导航有关的命令。它继承自RenderWidget,负责提供绘画和输入的处理。RenderView通过全局的(对每个渲染进程来说是全局,即每个进程一个)RenderProcess对象与浏览器进程通信。 常见问题:RenderView和RenderWidget的有什么差异?RenderWidget通过实现名为WebWidgetDelegateglue层的抽象接口WebWidgetDelegate映射到一个的WebCore::Widget这基本上是屏幕上的一个窗口,它绘制窗口并接收窗口中的输入事件。RenderView从RenderWidget继承,它表示一个标签或弹出窗口的内容。它处理所有导航命令并完成窗口绘制和响应输入事件。只有一种情况下如RenderWidget独立于RenderView存在:网页上select boxes。它是个有向下箭头和很多选项的弹出列表。在选择框必须使用原声窗口渲染,以便他们能够在显示在其他东西之上,并在必要时弹出框架。这些窗口需要绘制并接收输入,但是他们不是一个单独的“网页”(RenderView)。 渲染器中的线程 每个渲染器中运行着两个线程:渲染线程和主线程。渲染线程是RenderView和其他所有的WebKit代码运行的线程。当它和浏览器之间进行通信时,首先将消息送到主线程,然后主线程再将消息传递给浏览器进程。只有主线程收到浏览器的回复之后渲染才可以继续进行,这样可以使我们同步地将消息从渲染器传递给浏览器。例如,当页面中的JavaScript请求cookie时,渲染线程将被阻塞,主线程将所有收到的消息放入队列直到接收到浏览器的正确回复。在这期间收到的任何消息都将按照顺序发送给渲染线程进行处理。 浏览器进程 rendering browser 浏览器进程的底层对象 所有和渲染进程之间的通信都通过浏览器进程中的I/O线程实现的。它同样也处理所有的网络通信,这样可以不阻塞用户界面。
当主线程初始化RenderProcessHost完毕后(用户界面运行时),它建立新的渲染进程并新建名为ChanelProxy的IPC对象通过命名管道与之通信。这个对象运行于Browser的I/O线程中,监听连接到渲染进程的命名管道,并将所有消息转发到UI线程的RenderProcess对象。ResourceMessageFilter会过滤掉能够直接执行的I/O处理消息,比如说网络请求。过滤使用ResourceMessageFilter::OnMessageReceived方法。 Ui线程中的RenderProcessHost负责分发所有显示相关的消息给RenderViewHost(同时它也会处理有限的几种非显示相关的消息)。消息的分发在RenderProcessHost::OnMessageReceived函数执行。 浏览器进程的高层对象 显示相关的消息会进入RenderViewHost::OnMessageReceived。大部分消息在这里处理,其他的则被转发到RenderWidgetHost。渲染进程中有两个对象对应到RenderView和RenderWidget对象。在Microsoft Windows上,对于每个RenderWigetHost都有一个RenderWidgetHostHWND与之对应,这个类专门负责管理消息事件并绘制原生的HWND。其他系统上也有类似的负责原生输入和绘图的对象。 在renderView/Widget对象之上是WebContent对象,大部分的消息都是在这个对象中响应的。WebContents表示一个tab中的内容。它继承自通用的TabContents对象(还有其他集中TabContents的子类,比如下载页面或历史页面)。它是大部分导航和顶层浏览器UI更新的结合点(switching point)。 FAQ:为什么要分离WebContents和RenderViewHost对象?
原因有二:这两个对象提供不同层面的功能。
⑵ 关于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,中国移动,中国联通,华为通讯,联想等大企业。
⑶ for android是什么意思
for android
面向安卓;客户端;安卓客户端
双语例句
1
Skia: Google's Skia graphics library developed for Android.
skia:谷歌的Skia为Android开发的图形库开发库。
⑷ Android图形系统系统篇之HWC
HWC (hwcomposer)是Android中进行窗口( Layer )合成和显示的HAL层模块,其实现是特定于设备的,而且通常由显示设备制造商 (OEM)完成,为 SurfaceFlinger 服务提供硬件支持。
SurfaceFlinger 可以使用 OpenGL ES 合成 Layer ,这需要占用并消耗GPU资源。大多数GPU都没有针对图层合成进行优化,当 SurfaceFlinger 通过GPU合成图层时,应用程序无法使用GPU进行自己的渲染。而 HWC 通过硬件设备进行图层合成,可以减轻GPU的合成压力。
显示设备的能力千差万别,很难直接用API表示硬件设备支持合成的 Layer 数量, Layer 是否可以进行旋转和混合模式操作,以及对图层定位和硬件合成的限制等。因此HWC描述上述信息的流程是这样的:
虽然每个显示设备的能力不同,但是官方要求每个 HWC 硬件模块都应该支持以下能力:
但是并非所有情况下 HWC 都比GPU更高效,例如:当屏幕上没有任何变化时,尤其是叠加层有透明像素并且需要进行图层透明像素混合时。在这种情况下, HWC 可以要求部分或者全部叠加层都进行GPU合成,然后 HWC 持有合成的结果Buffer,如果 SurfaceFlinger 要求合成相同的叠加图层列表, HWC 可以直接显示之前合成的结果Buffer,这有助于提高待机设备的电池寿命。
HWC 也提供了 VSync 事件,用于管理渲染和图层合成时机,后续文章会进行介绍。
Android7.0提供了HWC和HWC2两个版本,默认使用HWC,但是手机厂商也可以选择HWC2,如下所示:
SurfaceFlinger 通过 HWComposer 使用 HWC 硬件能力, HWComposer 构造函数通过 loadHwcMole 方法加载HWC模块,并封装成 HWC2::Device 结构,如下所示:
上述通过 hw_get_mole 方法(hardware\libhardware\hardware.c)加载 hwcomposer 模块,此模块由硬件厂商提供实现,例如:hardware\libhardware\moles\hwcomposer\hwcomposer.cpp是 hwcomposer 模块基于HWC1的default实现,对应的共享库是 hwcomposer.default.so ;hardware\qcom\display\msm8994\libhwcomposer\hwc.cpp是高通MSM8994基于HWC1的实现,对应的共享库是 hwcomposer.msm8994.so 。
如果是基于HWC2协议实现,则需要实现hwcomposer2.h中定义的 hwc2_device_t 接口,例如: class VendorComposer : public hwc2_device_t 。Android7.0的 hwcomposer 模块默认都是基于HWC1协议实现的。
每个HAL层模块实现都要定义一个 HAL_MODULE_INFO_SYM 数据结构,并且该结构的第一个字段必须是 hw_mole_t ,下面是高通MSM8994 hwcomposer 模块的定义:
frameworks\native\services\surfaceflinger\DisplayHardware\HWC2.h主要定义了以下三个结构体:
它们是对 HWC 硬件模块的进一步封装,方便进行调用。 HWC2::Device 持有一个 hwc2_device_t ,用于连接硬件设备,它包含了很多HWC2_PFN开头的函数指针变量,这些函数指针定义在 hwcomposer2.h 。
在 HWC2::Device 的构造函数中,会通过 Device::loadFunctionPointers -> loadFunctionPointer(FunctionDescriptor desc, PFN& outPFN) -> hwc2_device_t::getFunction 的调用链从硬件设备中获取具体的函数指针实现。关键模板函数如下所示:
这些函数指针主要分为三类:
通过上述函数指针可以与 hwc2_device_t 表示的硬件合成模块进行交互。三类指针分别选取了一个示例:
可以通过类图,直观感受下引用关系。
HWC2::Device 构造函数除了完成获取函数指针实现以外,还会通过 Device::registerCallbacks 向硬件设备注册三个 Display 的回调:热插拔,刷新和VSync信号,如下所示:
总结一下, HWC2::Device 构造函数向硬件设备注册三个 Display 回调:热插拔,刷新和VSync信号。当 HWC2::Device 收到这些回调时,会通过监听器向外回调到对应的HWComposer函数: HWComposer::hotplug / HWComposer::invalidate / HWComposer::vsync 。HWComposer再通过这些信息驱动对应工作,后续文章进行介绍。
上文提到 HWC2::Device 中的函数指针是hardware\libhardware\include\hardware\hwcomposer2.h中定义的,除此之外,该头文件还定义了一些重要的结构体,这里介绍两个比较重要的:
DisplayType 表示显示屏类型,上面注释已经介绍,重点看下Layer合成类型:
那么一个 Layer 的合成方式是怎么确定的那?大致流程如下所示:
本篇文章只是简单介绍了HWC模块的相关类: HWComposer 、 HWC2::Device 、 HWC2::Display 和 HWC2::Layer ,以及它们的关系。此外,还着重介绍了Layer的合成方式和合成流程。后续文章会更加全面的介绍 SurfaceFlinger 是如何通过HWC模块完成Layer合成和上屏的(虚拟屏幕是到离屏缓冲区)。
⑸ 系统运行库Android主要包含哪些库
* Bionic系统 C 库:C语言标准库,系统最底层的库,C库通过Linux系统来调用。
* 多媒体库(MediaFramework):Android系统多媒体库,基于 PacketVideo OpenCORE,该库支持多种常见格式的音频、视频的回放和录制,以及图片,比如MPEG4、MP3、AAC、AMR、JPG、PNG等。
* SGL:2D图形引擎库。
* SSL:位于TCP/IP协议与各种应用层协议之间,为数据通信提供支持。
* OpenGL ES 1.0:3D效果的支持。
* SQLite:关系数据库。
* Webkit:Web浏览器引擎。
* FreeType:位图(bitmap)及矢量(vector)。
⑹ java安卓做游戏要用到哪个图形库
libgdx游戏框架,也可以使用最近挺火的游戏引擎开发 更省力,常用的有cocos2d-x,和unity3d。
更确切点说,游戏引擎是个专业游戏开发工具,里面包含了各种库,加上本身方便的操作性和扩展性,组成了一整套开发游戏的解决方案。
android studio是安卓官方(谷歌)做的专门开发安卓平台应用的工具,理论上,导入相关库可以实现任何功能,比如用OpenGL库就可以做3D,只是很少有人这么干,太麻烦了,操作不便,做游戏更不用说,稍微复杂点的开发就累死。也就开发纯功能性APP或者作为中间打包工具用。
而且现在游戏引擎都很强大,可以不依赖于android studio直接发布apk,而且还跨平台。
⑺ Android 图形系统(3)---- DRM 显示框架初步
DRM 是目前主流的图形显示框架,Linux 内核中已经有Framebuffer 驱动用于管理显示设备的 Framebuffer, Framebuffer 框架也可以实现Linux 系统的显示功能,但是缺点如下:
下面是Linux graphic system 的框架,基于Wayland的Windowing system,在DRI框架下,通过两条路径(DRM和KMS),分别实现Rendering和送显两个显示步骤,注意观察 DRM 框架在其中的作用
DRM 框架的基本流程框图如下:
软件角度框图:
DRM框架涉及到的元素很多,大致如下:
KMS: CRTC,ENCODER,CONNECTOR,PLANE,FB,VBLANK,property
GEM: DUMB、PRIME、Fence
下面一一介绍
libdrm:
应用层的一个动态链接库,对底层接口进行封装,向上层提供通用的API接口,主要是对各种IOCTL接口进行封装。
KMS:
Kernel mode setting 简而言之做两件事:更新画面 + 设置显示参数
更新画面: 显示buffer 的切换,多图层之间的合成方式,每个图层的显示位置
设置显示参数:包含 刷新率,分辨率,电源状态 休眠唤醒等等。
GEM:
Graphic Execution Manager,主要负责显示buffer的分配和释放,也是GPU唯一用到DRM的地方。
学习 drm 就是学习上面这些概念的用法和实现。
⑻ 如何添加android-support-v8-renderscript
1. 在你需要使用RenderScript的类中,导入RenderScript图形库包:android.support.v8.renderscript 。如果你你已经有了内置的RnederScript(例如你用的是Android 4.3版本),你需要把导入包从android.renderscript改为android.support.v8.renderscript。
import android.support.v8.renderscript.*;
2. 在你的project.properties里,确保你的目标代码是android-18,并加入下列代码:
renderscript.target=18
renderscript.support.mode=true
sdk.buildtools=18.1.0
这就可以了!通过RenderScript支持库,你能够继续在app开发中使用原生的RenderScript包(有一些小小的例外情况,下面会提到),并且你还能在你自己的脚本中使用RenderScript工具链的最新特性。
For complete details on how to set up the RenderScript Support Library, see Accessing RenderScript Java APIs.
⑼ 有哪些常用或优秀的 Android 第三方类库
在Android类库中,各种包写成android.*的方式,重要包的描述如下所示:
android.app :提供高层的程序模型、提供基本的运行环境
android.content 包含各种的对设备上的数据进行访问和发布的类
android.database :通过内容提供者浏览和操作数据库
android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
android.location :定位和相关服务的类
android.media :提供一些类管理多种音频、视频的媒体接口
android.net :提供帮助网络访问的类,超过通常的java.net.* 接口
android.os :提供了系统服务、消息传输、IPC机制
android.opengl :提供OpenGL的工具,3D加速
android.provider :提供类访问Android的内容提供者
android.telephony :提供与拨打电话相关的API交互
android.view :提供基础的用户界面接口框架
android.util :涉及工具性的方法,例如时间日期的操作
android.webkit:默认浏览器操作接口
android.widget:包含各种UI元素(大部分是可见的)在应用程序的屏幕中使用
⑽ 什么是android系统,android的发展以及android的平台架构和特性
Android平台采用了整合的策略思想,包括底层Linux操作系统、中间层的中间件和上层的Java应用程序。下面我把Android的特性及其架构体系结构总结一下。
一、Android的平台特性
Android平台有如下特性:
1. 应用程序框架支持组件的重用与替换。
这样我们可以把系统中不喜欢的应用程序删除,安装我们喜欢的应用程序。
2. Dalvik虚拟机专门为移动设备进行了优化。
Android应用程序将由Java编写、编译的类文件通过DX工具转换成一种后缀名为.dex的文件来执行。Dalvik虚拟机是基于寄存器的,相对于Java虚拟机速度要快很多。
3. 内部集成浏览器基于开源的WebKit引擎。
有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手机就是一台“小电脑”,可以在网上随意遨游。
4. 优化的图形库包括2D和3D图形库,3D图形库基于OpenGL ES 1.0。
强大的图形库给游戏开发带来福音。在3G最为重要的的应用莫过于手机上网和手机游戏。
5. SQLite用作结构化的数据存储。
6. 多媒体支持包括常见的音频、视频和静态印象文件格式
如MPEG4、H.264、MP3、AAC、AMR、JGP、PNG、GIF。
7. GSM电话(依赖于硬件)。
8. 蓝牙(Bluetooth)、EDGE、3G、WiFi(依赖于硬件)。
9. 照相机、GPS、指南针和加速度计(依赖于硬件)。
10. 丰富的开发环境包括设备模拟器、调试工具、内存及性能分析图表和Eclipse集成的开发环境插件。
Google提供了Android开发包SDK,其中包含了大量的类库和开发工具,并且针对Eclipse的可视化开发插件ADT。
二、Android平台架构
从上图我们可以看出,Android操作系统的体系结构可分为4层,由上到下依次是应用程序、应用程序框架、核心类库和Linux内核,其中第三层还包括Android运行时的环境。下面分别来讲解各个部分。
1. 程序应用
Android
连同一个核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是用Java编写的。
2. 应用程序框架
开发者完全可以访问核心应用程序所使用的API框架。该应用程序框架架构用来简化组件软件的重用,任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组件可以被用户替换。
以下所有的应用程序都由一系列的服务和系统组成,包括:
1)一个可扩展的视图(Views)可以用来创建应用程序,包括列表(lists)、网络(grids)、文本框(text
boxes)、按钮(buttons),甚至是一个可嵌入的Web浏览器。
2)内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
3)一个资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串、图形和分层文件(layout files)。
4)一个通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。
5)一个活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。
3. Android程序库
Android包括一个被Android系统中各种不同组件所使用的C/C++集库。该库通过Android应用程序框架为开发者提供服务。
以下是一些主要的核心库:
1)系统C库:一个从BSD继承来的标准C系统函数库(libc),专门为基于Embedded Linux的设备定制。
2)媒体库:基于PacketVideo
OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态映像文件包括MPEG4、H.264、MP3、AAC、JPG、PNG。
3)Surface Manager:对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。
4)LibWebCore:一个最新的Web浏览器引擎,用来支持Android浏览器和一个可嵌入的Web视图。
5)SGL:一个内置的2D图形引擎。
6)3D libraries:基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
7)FreeType:位图(bitmap)和向量(vector)字体显示。
8)SQLite:一个对于所以应用程序可用、功能强劲的轻型关系型数据库引擎。
4. Android运行库
Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对同时高效地运行多个VMs实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都是经由Java汇编器编译,然后通过SDK中的DX工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于Linux的一些功能,比如线程机制和底层内存管理机制。
5. Linux内核
Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的硬件抽象层。