网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Android浏览器的研究(三)---APK,Activity,Controller和Ui

从浏览器Apk的AndroidManifest.xml文件看到,Apk的Application 类和主Activity类分别是 Browser和BrowserActivity。

成都创新互联是一家专业提供通州企业网站建设,专注与成都网站设计、成都做网站、H5页面制作、小程序制作等业务。10年已为通州众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

Browser Application类在onCreate方法中进行了以下工作:

1. 同步Cookie

2. 初始化设置

3. 初始化Preloader

BrowserActivity 是Apk的主Activity,我们在Launcher上点击浏览器图标启动的就是这个Activity。

查看BrowserActivity的代码,可以看到它在onCreate方法中创建了Controller成员,然后后续的主要方法都Delegate给了Controller成员进行处理,它自己基本上就是系统功能与Android Activity Life Cycle管理之间的一个Adapter。

 在Controller创建的同时创建了一个Ui对象,看到Apk目前可以支持Tablet(XLargeUi)和手机(PhoneUi)。

 从Controller和Ui大概可以判断这是一个类似MVC的设计(没有M,why?)。

 可以期望,系统的基本控制逻辑是在Controller类实现,而Ui则负责Ui的部分。

 

 Controller类基本分析:

 Controller类实现了三个接口:ActivityController,WebViewController,UiController。

 ActivityController:我们已经在BrowserActivity里看到,这个接口用于与Android Activity Life Cycle Management(LCM)进行适配, BrowserActivity只使用该接口访问Controller,它保持的引用就是一个ActivityController接口:ActivityController mController。 设计模式的基本原则:program to an interface, not an implementation。

 WebViewController:从该接口的方法看到,这个接口除了与WebView交互比较多,还与Tab类交互密切。根据经验,浏览器一般为每个网页提供一个单独的Tab,估计这个就是管理该Tab的类。接口的方法与WebViewClient里的方法很类似,可以期望给接口主要实现WebViewClient相关的Customization Point.搜索该接口的使用情况,看到主要是Tab类使用它。Tab类是与WebView进行交互的主要类,看来需要重点研究。

 UiController:与Ui部分控制相关的接口,openTab,closeTab,setActiveTab,书签,设置等等。正像期望的那样,Ui类只保持Controller的这个接口:UiController mUiController;

 Ui类基本分析:Ui类层次结构稍微丰富一点点,包括UI接口,BaseUi抽象类和两个具体类PhoneUi&XLargeUi。Ui的方法主要是跟Tab,Menu等Ui对象相关的方法,这里不具体研究。同样,Controller与Ui的交互也是通过接口:private UI mUi;

 对Apk结构的分析暂时到此,后面我们从系统典型场景入手,分析系统典型功能的具体实现。



文章名称:Android浏览器的研究(三)---APK,Activity,Controller和Ui
新闻来源:http://bjjierui.cn/article/pooohd.html

其他资讯