一个基于Android的绿色浏览器的设计与实现

2017-07-10 10:33姚明
电脑知识与技术 2017年14期
关键词:浏览器

姚明

摘要:针对目前手机浏览器功能不断增多、体积也不断增大以及用户信息安全有待提高的现状,以Android studio为开发工具,设计和实现一款能够满足手机用户的基本需求,轻便、快捷和安全的浏览器软件。经测试和试用,其简单易用,满足了设计需求。

关键词:浏览器;Android;Android Studio

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)14-0017-03

目前,市面上的手机浏览器功能越来越多,体积和占用的系统资源也随之增大,并导致运行卡顿等现象。同时,很多木马网站和钓鱼网站也威胁到用户的信息安全。基于这些现状,尝试设计一个轻便、快捷和安全的手机浏览器。

1需求分析

1.1浏览功能

1)多窗口浏览:浏览器可同时打开多个页面,在不同的页面间轻松切换。

2)网址补全:浏览器可根据书签和历史中的条目,自动补全网址,减少用户输入。

1.2导航功能

1)首页导航:浏览器首页将热门网站根据不同类别进行分区显示,为用户提供丰富的网址导航。

2)历史导航:浏览器会记录保存用户最近登录过的网址,历史中的页面按照日期分组,用户很容易找到访问过的页面。

3)书签导航:浏览器使用文件夹保存、编辑、组织书签,用户可以方便访问已建书签的网站。

1.3搜索功能

瀏览器内置搜索引擎,用户可随意选择百度、谷歌、必应、有道搜索引擎进行搜索,最后选取的搜索引擎将自动成为默认搜索引擎。

1.4安全功能

对于有风险的网址和软件,浏览器会通过呈现出刺眼的颜色如红色来提醒用户给出明确提示,防恶意扣费、木马和假冒网站。

1.5夜间模式功能

浏览器可以使用夜间模式,降低亮度、抵挡刺眼的背光、减少蓝光,保护眼睛不受伤害。

1.6历史记录

浏览器自动在本地记录用户浏览的网页。用户可查看有历史记录的页面,并可对历史网页进行单个或全部删除。

1.7书签

浏览器用户可以手动添加书签,还可以在书签管理页面进行管理,删除进入等。

1.8主题

程序的主题分为顶部搜索栏样式和底部搜索栏样式,用户可以根据自己的喜好进行切换。

2功能模块设计

系统功能模块分为五个:滑菜单模块、主页模块、标题栏模块、后台任务模块和定位与天气模块,如图1所示。

侧滑菜单功能模块分为四个:搜索引擎模块、夜间模式模块、主题切换模块和历史记录与书签模块,其中搜索引擎模块又分为百度、谷歌、必应和有道四个搜索引擎,主题切换模块又分为顶部搜索栏和底部搜索栏两种,如图2所示。

标题栏菜单功能模块分为四个:标题模块、后台任务按钮、添加主页标签按钮和添加书签按钮,其中标题模块又分为三个小模块:标题显示、安全显示和搜索,如图3所示。

3设计中的相关技术及应用

Material Design是Google提出的设计语言和规范,其实质是在扁平化的基础上加入阴影效果,使得整个控件有立体和厚度效果,并且引入了动画元素来使界面的切换过程自然流畅。Realm是一个跨平台的移动数据库引擎,是专门为移动应用所设计的数据持久化解决方案之一,其API更加简化,便于开发者方便使用,可以轻松实现一对一、一对多、多对多关系以及递归,并且其中的对象直接提供了从JSON转换。RxJava是一个响应式编程框架,提供了基于可观测的序列实现的异步调用及基于事件编程,使程序逻辑变得越来越复杂时依然能够保持代码简洁。OkHttp是一个较流行的HTYP框架,而Retrofit则是一个针对Android网络请求的框架,它对OkHttp做了一层封装,把网络请求都交给了0kHttp,只需通过简单的配置就能使用Ret-rofit来进行网络请求。

以Android studio为开发工具,使用Material Design的设计理念对浏览器的界面进行设计,并搭配网络上的开源框架填充功能模块。侧滑栏使用NavigationView和DrawView搭配设计,其中的菜单实现了各种搜索引擎切换以及默认浏览器设置。搜索栏使用toolbar与菜单搭配设计,使整个界面扁平简洁。网页多窗口设计使用fragment进行多窗口切换和保存。网页加载使用WebView,并且实现滑动前进和后退的功能。书签功能中所需要保存的数据都由Realm框架进行数据持久化。安全功能和天气功能使用网络上的免费API实现。使用RxJava和Retrofit,利用OkHttp加上JSON解析实现网络通讯。关联所有功能模块完成整体开发。

4数据库设计

4.1书签数据表

书签数据表如表1所示。网址是存储网页的网址用的,标题是当前网址的标题,封面是当前网页截图后转化成的数组。主页标签用来判断该书签是普通书签还是主页标签。

4.2历史记录表

历史记录表如表2所示,只需要保存网址,标题和时间,其中时间是历史记录排序的依据。

5设计与实现

5.1网页加载

WebView作为承载网页的载体控件,提供两个事件回调类给应用层,分别为WebViewClient、WebChromeClient。开发者可以继承这两个类进行相应事件处理。WebViewClient使用on-PageStarted0、onPageFinished()等方法,主要提供网页加载各个阶段的通知;WebChromeClient主要提供网页加载过程中需要的数据内容。网页加载部分代码如下。

猜你喜欢
浏览器
反浏览器指纹追踪
环球浏览器