亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android 瀏覽器的研究(三)--- APK, Activity, Controller和Ui

發布時間:2020-07-18 13:41:54 來源:網絡 閱讀:1301 作者:孫洪波 欄目:移動開發

從瀏覽器Apk的AndroidManifest.xml文件看到,Apk的Application 類和主Activity類分別是 Browser和BrowserActivity。

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結構的分析暫時到此,后面我們從系統典型場景入手,分析系統典型功能的具體實現。






向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中方县| 建德市| 宁远县| 锡林郭勒盟| 南漳县| 东山县| 乌拉特后旗| 本溪市| 阿勒泰市| 凤台县| 木兰县| 青海省| 平山县| 申扎县| 廊坊市| 克山县| 峨眉山市| 册亨县| 平泉县| 乐亭县| 西丰县| 五寨县| 青铜峡市| 广灵县| 镇坪县| 瑞丽市| 崇州市| 桐庐县| 镇原县| 桃源县| 苏尼特右旗| 探索| 平昌县| 舒兰市| 阳西县| 盘山县| 罗甸县| 新河县| 宾阳县| 斗六市| 清河县|