Android 浏览器 技术方案.docx

上传人:b****6 文档编号:4691084 上传时间:2022-12-07 格式:DOCX 页数:25 大小:1.37MB
下载 相关 举报
Android 浏览器 技术方案.docx_第1页
第1页 / 共25页
Android 浏览器 技术方案.docx_第2页
第2页 / 共25页
Android 浏览器 技术方案.docx_第3页
第3页 / 共25页
Android 浏览器 技术方案.docx_第4页
第4页 / 共25页
Android 浏览器 技术方案.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

Android 浏览器 技术方案.docx

《Android 浏览器 技术方案.docx》由会员分享,可在线阅读,更多相关《Android 浏览器 技术方案.docx(25页珍藏版)》请在冰豆网上搜索。

Android 浏览器 技术方案.docx

Android浏览器技术方案

 

Android浏览器

 

 

修订历史

版本

日期

作者

审核

说明

1.0

20011-9-14

刘忠柱

根据项目需求以及青犀科技技术、成果积累,提供的技术方案

 

目录

1.范围1

2.引用标准、协议1

3.定义1

4.背景2

4.1.Android系统2

4.1.1.应用程序2

4.1.2.应用程序框架3

4.1.3.系统运行库3

4.1.4.Linux内核4

4.2.Android开发工具4

4.2.1.SDK4

4.2.2.NDK4

5.需求答复5

5.1.功能支持5

5.2.用户认证5

5.3.中转服务器支持5

5.4.浏览器双模式支持5

5.5.Widget支持6

5.6.本地缓存支持6

5.7.平台支持6

6.问题答复6

6.1.样式支持6

6.2.重点关注6

7.客户端系统模型7

7.1.浏览器系统组件视图7

7.2.浏览器系统网络架构视图8

8.浏览器客户端详细介绍9

8.1.浏览器客户端体系结构9

8.2.浏览器客户端支持列表10

8.3.浏览器工作流程11

9.浏览器客户端系统解决方案11

9.1.浏览器应用层12

9.1.1.主页导航管理12

9.1.2.服务器推送url列表导航13

9.1.3.窗口管理14

9.1.4.书签管理14

9.1.5.历史记录管理15

9.1.6.下载管理15

9.1.7.Widget应用管理16

9.1.8.设置管理16

9.1.9.客户端服务器交互17

10.浏览器服务端系统解决方案18

10.1.服务器整体架构18

10.2.网页智能分块19

10.3.页面重排版20

10.4.数据压缩21

10.5.模板绑定22

11.质量与网络安全23

11.1.质量保证23

11.1.1.性能要求23

11.1.2.配置要求23

11.1.3.质量保证方案23

1.范围

本方案主要描述Android浏览器系统功能、性能、接口、网络、协议及安全等机制及原理及解决方案。

本方案可作为委托方和被委托方评估其项目合作可行性的技术性输入文档,读者为系统架构师、技术专家、项目经理、需求分析师及其利益相关者。

2.引用标准、协议

W3C规范

HTML,XHTML,WML协议

RFC

EcmaScript规范

JIL

CSS

HTTP

TLS/SSL

DOM

3.定义

W3C万维网联盟,制定Web标准,目前互联网基本遵循该标准。

Agent网络代理产品,用于转换网站内容成为适应手机平台的内容

HTML常用的网站超文本协议脚本语言

XHTML一种结合XML与HTML的较为严格的脚本语言,其内容和格式比较规范,可以适应相对能力较弱的浏览器引擎

WML适用于手机等移动设备的标记语言

RFCIETF管理的关于internet相关协议

EcmaScript通过ECMA标准化的脚本程序设计语言

HTTP超文本传输协议

TLS/SSL为网络通信提供安全既数据完整性的一种安全协议

DOM文档对象模型

Webkit著名的浏览器引擎,具有强大的标准符合度和性能。

AndroidGoogle出品的开源操作系统

SDKAndroid的开发环境,支持JAVA开发程序

NDKAndroid推出的支持C/C++原生程序的开发环境

JIL由softbank,vodafone等多家运营商指定的适应手机的JS对象规范

DalvikAndroid系统运行在Linux内核上的Java虚拟机

4.背景

4.1.Android系统

android系统采用了分层的架构。

从架构图看,android分为四层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。

4.1.1.应用程序

同一系列核心应用程序包一起发布,包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。

所有的应用程序都是使用JAVA语言编写的。

4.1.2.应用程序框架

开发人员可以完全访问核心应用程序所使用的API框架。

应用程序都可以发布它的功能块,并且其它应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。

同样,该应用程序重用机制也使用户可以方便的替换程序组件。

服务和系统包括:

Ø视图(Views):

用来构建应用程序。

Ø内容提供器(ContentProviders):

访问另一个应用程序的数据,或共享自己的数据。

Ø资源管理器(ResourceManager):

提供非代码资源的访问。

Ø通知管理器(NotificationManager):

在状态栏中显示自定义的提示信息。

Ø活动管理器(ActivityManager):

管理应用程序生命周期并提供导航回退功能。

 

4.1.3.系统运行库

4.1.3.1.程序库

Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。

它们通过Android应用程序框架为开发者提供服务。

以下是一些核心库:

Ø系统C库:

一个从BSD继承来的标准C系统函数库(libc)。

Ø媒体库:

支持多种常用的音频、视频格式回放和录制,支持静态图像文。

ØSurfaceManager:

对显示子系统的管理,提供2D和3D图层的无缝融合。

ØSGL:

底层的2D图形引擎

Ø3Dlibraries:

可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。

ØFreeType:

位图(bitmap)和矢量(vector)字体显示。

ØSQLite:

一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

ØWebkit:

Android使用webkit作为其浏览Web网页的核心库,webkit同样是我们widget引擎的基础。

我司其他平台的widget引擎也是基于webkit内核的。

WebKit是MacOSXv10.3及以上版本所包含的软件框架。

同时,WebKit也是Safari网页浏览器的基础。

WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。

传统上,WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。

不过,随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分。

4.1.3.2.Android运行库

Android包括了一个核心库,提供了JAVA编程语言核心库的大多数功能。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。

Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。

Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。

同时虚拟机是基于寄存器的,所有的类都经JAVA编译器编译,然后通过SDK中的"dx"工具转化成.dex格式由虚拟机执行。

  Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

4.1.4.Linux内核

Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。

Linux内核也同时作为硬件和软件栈之间的抽象层。

4.2.Android开发工具

4.2.1.SDK

手机开发者可以使用AndroidSDK开发Android应用程序,Android应用程序使用Java语言编写并运行在Dalvik上,Dalvik是一个运行在Linux内核之上的嵌入式虚拟机(EmbeddedVirtualMachine)。

Android的界面只支持Java程序开发的界面,开发人员开发的Java程序运行在Dalvik上。

4.2.2.NDK

在NDK问世之前,使用C/C++在Android上程序开发者必须拥有很高的系统权限,一般需要开发C/C++的程序基本上都是和厂商合作预装,或者用户对手机进行破解后进行重新烧录。

以便将程序的不同模块放置到Android框架中不同的层次中去。

NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。

这些工具对开发者的帮助是巨大的。

NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。

NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。

5.需求答复

5.1.功能支持

主导航、新闻推送、widget播放、下载管理、全屏、书签/历史、WWW/WAP支持、浏览页面、设置、产品UI样式、页面变迁、产品规格指标、产品低保真及高保真。

答复:

浏览器相关功能可以满足。

其中WWW/WAP模式,需要使用引擎版本支持,widget播放,可以依赖于BAE引擎播放,也可以在浏览器内播放。

另外,需要进一步提供产品的低保真和高保真。

具体浏览器客户端相关功能,参见浏览器客户端系统解决方案。

5.2.用户认证

实现统一认证和单点登录。

答复:

可以满足。

在浏览器应用启动时,可以通过网络接口,获取用户相关的登录信息。

在访问网页时,将相关的信息放到http头中,避免重复登录过程。

通用版本,可以将登录信息放在UA的扩展字段中。

引擎版本,则可以根据RFC2616定义http扩展头,存储登录信息。

5.3.中转服务器支持

需要webagent(中转服务器)支持,即Networkagent。

答复:

可以满足。

具体浏览器服务端相关功能,参见浏览器服务端系统解决方案。

5.4.浏览器双模式支持

将浏览类门户应用和简单交互类应用通过浏览器模版进行转换,可以在手机界面展现,即是需要实现互联网模式和手机模式。

答复:

可以满足。

简单模式下js将被过滤,将影响部分页面的登录。

5.5.Widget支持

在手机浏览器内部可以直接调用中国移动的jil规范的WIDEGE程序,如未安装BAE引擎和WIDGET应用,提示客户进行下载安装,如果已经安装了程序,请直接调用拉起程序。

即是“widget应用汇”一样的。

答复:

可以满足。

通过版本,需要使用外部的widget引擎打开widget。

引擎版本,可以按照指定的widget规范进行此功能的定制。

这两者的差别是,通用版本通过外部应用打开widget,而引擎版,可以在浏览器内打开widget。

5.6.本地缓存支持

支持本地缓存。

答复:

可以满足。

支持RFC2616HTTPCACHE规范。

5.7.平台支持

支持android2.0及以上,支持移动OMS平台,机型为三星i9008。

答复:

可以满足。

通用版本一个安装包,可以覆盖2.0-2.3版本,引擎版本需要根据android平台不同的版本提供安装包。

6.问题答复

6.1.样式支持

简单模式下会过滤页面中的js,而内部的一些页面很多一部分要依赖于js。

答复:

对于这种场景,不建议使用简单模式。

可以单独开发手机版本定制页面完成相关功能。

内部系统的一些网页,很多需要依赖ActiveX。

答复:

ActiveX仅IE浏览器支持。

对于此类网页,建议单独开发相关的页面,避开ActiveX。

6.2.重点关注

对底层跨平台的支持力度。

答复:

通用版可以一个安装包覆盖1.6-2.3全版本。

引擎版一个安装包对应一个平台版本。

对HTML5、CSS3、特殊脚本等的支持。

答复:

通用版完全依赖android自带webkit引擎对于这些特性的支持度。

引擎版,这些特性,都可以按照要求来进行增强。

性能的优越性如何,资源利用是一个重要指标。

答复:

浏览器使用webkit引擎,在嵌入式系统中,性能优越,专业的浏览器测试指标,如sunspider,acid2测试,都是高分。

针对WEBKIT版本升级后软件内核更新周期需要多长时间。

答复:

WEBKIT版本升级,不影响通用版本功能。

对于引擎版本,android版本升级后,需要开发对应的版本,开发周期取决于google自身改动的幅度,不好一概而论,根据以往经验,大概在3个月左右。

7.客户端系统模型

7.1.浏览器系统组件视图

浏览器的软件组件结构如下图:

浏览器系统结构分为四层

Ø第一层为应用层,开发者可以在webkit基础上构建各种应用,如Browser,Widget甚至是WebOS

Ø第二层是为Webkit库以及其它第三方库

Ø第三层为移植层,更具不同的平台实现文件操作,内存管理,网络等各种接口

Ø第四层为平台层

7.2.浏览器系统网络架构视图

在internet网和客户端之间提供服务器,服务器能对互联网内容进行规范化,简洁化,根据不同的需求适应手机浏览用户,并且服务器能提供运营平台,为用户提供良好的冲浪体验。

8.浏览器客户端详细介绍

8.1.浏览器客户端体系结构

BrowserAppLayer

浏览器与应用交互层

BrowserEngine

ØPage:

应用层相关内容(Eventhandler,Focus,History,Browserwindow)

ØEdit:

页面编辑,与dom密切相关

ØDom:

DomCore

✧HTML:

HTML解析机

✧WML:

WML解析机

✧XML:

XML解析机

✧SVG:

SVG解析机

ØCSS:

CSS解释器

ØJavaScriptEngine:

javascript引擎

ØBindings:

Javascript与Dom的绑定

BrowserPortingLayer

浏览器移植层

8.2.浏览器客户端支持列表

协议支持

描述

HTTP

支持HTTP1.1

HTTPS

支持SSL3/TLS1

FILE

Filescheme

HTML

支持HTML4.0HTML5.0

XHTML

支持XHTML1.1

WML

WML1.0

CSS

支持CSS2.1

Javascript

支持ECMA-262

Ajax

Ajax

DOM

支持DOM3规范

图片格式

支持图片格式(jpeg/gif/png/bmp)

8.3.浏览器工作流程

Ø获取页面内容

ØToken解析

Ø对于各种标记语言,通过各自的解析机,生产Dom树

Ø对于JS脚本,通过JSBindings实现对dom树的绑定,并通过PageEditor动态改变dom树

Ø对于CSS样式,通过CSSParser解析

Ø把Dom传给LayoutEngine进行页面布局

ØRendering模块进行最终页面效果显示

 

9.浏览器客户端系统解决方案

浏览器客户端系统可划分为以下几个模块。

ØMainpageManager:

主导航页管理,包括导航数据获取,导航页面管理等

ØBookmarkManager:

书签管理,包括书签的创建,删除等操作

ØHistoryManager:

历史记录管理,包括历史记录的收集,删除等操作

ØSettingManager:

设置管理,包括浏览器相关的所有设定

ØWindowManager:

窗口管理:

包括浏览器多窗口维护,窗口打开和关闭,前后台打开

ØDownloadManager:

下载管理:

下载任务创建,删除,后台多任务下载

ØWidgetManager:

包括widget列表,widget与bae引擎交互等

9.1.浏览器应用层

应用层包括主页导航管理,书签管理,历史记录管理,设置管理,窗口管理,下载管理,Widget应用管理,以及客户端与服务器交互模块

9.1.1.主页导航管理

包括本地url列表导航以及服务器推送url列表导航,以及其他定制化的频道。

9.1.1.1.url列表导航

对用户访问的地址进行统计,并在主页展现20个使用率最高的地址

9.1.2.服务器推送url列表导航

9.1.2.1.数据来源

服务器推送地址,包括url,标题以及网站logo

9.1.2.2.实现流程

场景1

场景2

9.1.3.窗口管理

实现窗口的创建,销毁,挂机,激活。

9.1.3.1.新建窗口

9.1.4.书签管理

实现书签增加,删除,移动,分类等操作

9.1.4.1.增加书签

9.1.5.历史记录管理

历史记录增加,删除

9.1.5.1.增加历史记录

9.1.6.下载管理

9.1.6.1.描述

Webkit引擎本身没有下载管理功能,所有的下载管理工作需要在java应用层来完成。

9.1.6.2.实现流程

用户在点击页面下载链接后,需要终止内核的下载动作,并且获取下载链接的地址,递交给java应用层启动下载管理模块。

9.1.7.Widget应用管理

包括预置的widget应用的预置与启动,以及与bae引擎的交互行为。

9.1.7.1.Widget启动

Ø通过BAE引擎提供的接口,来启动BAE引擎播放widget

Ø如果widget引擎不存在,启动下载管理器,下载对应的BAE引擎

9.1.8.设置管理

维护浏览器运行时的所有设置参数

9.1.9.客户端服务器交互

9.1.9.1.描述

服务器通过对网页进行过滤等技术进行处理,将复杂而不规范的互联网内容转换成简单而规范的XHTML格式的网页,再推送给客户端处理。

从手机到中转服务器到外网服务器的模式,需要浏览器支持对代理服务器的访问。

9.1.9.2.实现方法

Ø在java应用层获取用户设置的代理服务器地址以及端口号。

Ø在浏览器内核的网络层中,将所有的http请求都需要封装成json格式的数据包(在network类中进行重构请求的动作),通过post请求发往代理服务器。

代理服务器解析json数据包,取得用户访问的url后,发起对外部服务器的请求。

代理服务器会对外部服务器回送的页面经过过滤,压缩,并根据不同的手机,进行屏幕适配。

页面重构完成后,服务器通过标准的http协议发送html或xhtml给客户端,因此客户端无需进行其它特殊操作。

9.1.9.3.执行流程

在代理服务器不可用时,浏览器将直接访问外网服务器。

10.浏览器服务端系统解决方案

10.1.服务器整体架构

NetworkAgent是手机浏览器解决方案中的核心部分,他负责着手机浏览器与互联网网站之间的数据处理与中转代理的工作。

NetworkAgent为手机客户端提供以下两种浏览模式:

1)简单模式

web页面上的内容会根据手机屏幕的大小来进行排版,更适合手机阅读使用。

相对互联网模式打开网页速度更快,更省流量,但显示效果以及对js的支持方面不如互联网模式。

2)互联网模式

在手机上完全还原web页面的排版,让您在手机上能体验到电脑上网的感觉。

通过NetworkAgent对其做了广告过滤、以及资源压缩,因此在相对原页面来说减少了不少的流量同时,也享受到了PC上网般的体验。

10.2.网页智能分块

web网页是为桌面计算机而设计的,桌面计算机的屏幕大,翻页和滚屏十分方便.因而web页面的内容很丰富.但移动设备,例如手机,具有内存小J二网带宽低和屏幕小的先天缺点,不可能把一个完整的web页面直接映射到移动设备屏幕上,由于其滚屏操作很不方便,因而如何在小屏幕设备上方便地浏览web网页一直是研究的热点。

NetworkAgent提供的简单浏览模式,即从分析当前web页面的内容人手,从web内容中提取出语义信息块,再把提取出的信息按照分块信息映射到移动设备屏幕上,现有的算法大多基于HTMLDOM树或者标签(tags)信息抽取结构信息。

由于HTML语法非常灵活,许多网页和w3c的HTML标准不兼容,况且DOM树并不能反映web页面的语义结构,例如:

即使DOM树中具有相同父结点的两个于结点也不一定在语义上有很大关联,因而基于DOM树的方法并不能很好地组织页面信息。

提出利用视觉信息来组织文挡页面,但其依然从DOM树获取原始信息,而且解析速度很慢。

NetworkAgent参考微软亚洲研究院提出的视觉特征网页分块法(简称“VIPS”),自主研发的一套网页智能分块引擎。

现已申请了专利(专利号:

),他是首先首先通过寻找所以最小对象单元,然后聚类方法以及参考VIPS算法中的分割规则逐层计算其分割度。

最后进行分割处理成若干数据块。

10.3.页面重排版

此项功能也是针对简单模式制定的,他是基于智能分块基础实现的,当一个网页经过分块后,各个数据块就被标注了重要度,重要度排序模块就根据此重要度以及数据块边界标签之间的紧密度计算,将数据块标注分类为以下类型:

1:

广告、版权等噪声信息。

2:

导航条、网站目录等与网页标题相关性不大但有一定用处的信息。

3:

与网页主题一致但并不是十分突出的信息,如相关标题、标题索引等。

4:

大字标题、正文等网页中最突出部分的信息。

然后根据:

2(导航条)->4(标题)->4(正文)->3(正文或标题相关内容)->1(广告)->2(网站目录)

顺序进行数据块排序。

10.4.数据压缩

针对网页中图片信息,NetworkAgent通过动态取得终端手机的屏幕大小以及用户的自定义设置,将源图片进行手机屏幕尺寸自适应压缩、图片质量压缩(高、中、低)、显示方式(黑白、全彩)处理后,再进行GZIP压缩输出给客户端。

将网页中的文本数据进行整合优化后,GZIP压缩输出给客户端。

10.5.模板绑定

为了使网页效果展现的更完美,NetworkAgent通过模糊匹配技术将模板绑定到指定类型的一些网站技术手段,让用户体验到更炫更美的效果。

主要实现的功能如下:

Ø手工排序(对自动排序的纠正)

ØCss模板,美化网页。

ØJavaScript模板,纠正和简化页面脚本。

ØXpath广告过滤模板,手动过滤页面中的广告内容,弥补自动广告过滤的不足。

11.质量与网络安全

11.1.质量保证

11.1.1.性能要求

v监视浏览器的运行状况,如响应速度,单位时间的处理量

v界面操作不应有明显的延迟:

用户的操作应该在2秒之内有所响应

v客户端运行时不能影响手机的其他正常功能,如电话等。

11.1.2.配置要求

系统配置方案如下表

配置项

配置内容

软件配置

1、支持Android平台

2、提供中文版本

硬件配置

1、Android2.0以上手机

系统安装包

1、可以通过网络或者其他方式下载到手机上安装运行。

11.1.3.质量保证方案

系统质量保证解决方案如下表:

类型

缺陷内容

解决方案

可靠性

1、没有内存泄露

2、没有界面僵死现象

3、链

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1