国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Chromium for Android

轉(zhuǎn)載請注明出處:http://blog.csdn.net/milado_nju/

# Chromium的Android版

## 概述

在前面的Chromium的移動版章節(jié)中,我們對Chromium的Android版作過簡單介紹,本章則進一步闡述其中的細節(jié)。

2012年,Google發(fā)布了第一版的ChromeFor Android。該產(chǎn)品受到了巨大的關(guān)注,但是同桌面版的Chrome瀏覽器不同地是,它的源代碼并沒有被開源出來,而且也不是跟隨最新的Chromium Trunk代碼,而是基于很早一個chromium穩(wěn)定版-18。

在剛開始的時候,Google每隔一段時間會放出一個壓縮包,里面包含Chrome For Android所有的C++代碼,而Java相關(guān)的代碼則沒有放出來(其實放出了一部分代碼,但是UI部分則沒有),因而你沒有辦法編譯出來一個類似桌面版Chromium的瀏覽器。不過,你可以利用Google釋放發(fā)出的代碼來編譯一個C++動態(tài)庫(情況有些變換,現(xiàn)在你可以使用最新trunk上面的代碼來編譯一個這樣的庫了),來替換發(fā)布的APK包中相應的動態(tài)庫,這樣你就能生成一個自己定制的瀏覽器APK。如果你不是很在乎UI層和瀏覽器的豐富功能,還有一種方法可以讓你編譯一個簡單的瀏覽器,那就是利用chromium代碼直接編譯出兩個APK -Content Shell和Test Shell,它們界面非常簡單,但是它們都可以渲染網(wǎng)頁并擁有基本上所有Chrome For Android的HTML5功能。

聽起來令人迷惑,不是嗎?好了,讓我們通過下面的圖來理解它們吧。


上圖的層次結(jié)構(gòu)非常清楚。從圖中可以看出,它們都是基于Content模塊/Content API/ContentView,而這是渲染網(wǎng)頁和支持HTML5功能的核心,所以很大程度上來講,在HTML5的支持上,它們不僅很類似,而且代碼都是相同的,因而分析Content Shell或者Test Shell可以幫助你理解Chrome for Android的網(wǎng)頁渲染和HTML5功能。

在上圖的最上面一層,除了Browser是看不到它的代碼以外,其它的你都可以在chromium的開源社區(qū)中找到它們的源代碼并可以嘗試編譯它們。至于如何編譯它們,請見參考文獻1,支持編譯Android的ARM版和IA版。

## Content Shell 和TestShell

這兩者都是在content模塊上構(gòu)建的簡單瀏覽器,怎么個簡單法呢,簡單到界面就是一個URL輸入框附加一個頁面顯示框,功能就是顯示個網(wǎng)頁,至于其它功能,抱歉,它們基本上都沒有提供,而且這也不是它們的目標。

從界面上來看,目前兩者沒有什么區(qū)別,但就其目的和功能上來說,我的理解它們還是很不一樣的:

Content Shell是直接在content模塊之上的,其主要目的是測試content API/ContentView等模塊的正確性;

Test Shell雖然也依賴content模塊,但是它還依賴于chrome瀏覽器的很多基礎(chǔ)設(shè)施和組件(android平臺的chrome內(nèi)核),更像是測試它們的一個簡單瀏覽器,因為chrome for android的UI部分不開源,所以Test Shell應該是最接近它的一個工具,可以幫助理解chrome for android的架構(gòu)和內(nèi)部原理。

## Android的WebView

目前,Android系統(tǒng)中的android.webkit.WebView是一個很重要的類,很多Android的應用程序使用它來加載和渲染網(wǎng)頁,這是很常見的嵌入式用法。因為同其它AndroidView作為UI的一個控件來說,它沒有什么不同,所以應用程序可以很方便的將其嵌入自己的UI布局中來。Android的默認瀏覽器和它共享同樣的WebKit內(nèi)核。既然Chrome在Android上的瀏覽器已經(jīng)發(fā)布出來了,那么是否也可以使用Chrome的內(nèi)核來實現(xiàn)該WebView呢?答案當然是肯定的。

目前,這部分代碼已經(jīng)啟動,其核心思想保持WebView的API兼容性,也就是說內(nèi)部的實現(xiàn)從android browser的內(nèi)核變了chromeforandroid的內(nèi)核,這樣對使用它的應用程序來說,不需要做任何改變。

你可以通過編譯目標“android_webview_apk”來嘗試一下它的功能,這也是基于WebView的一個簡單封裝,類比一下就如同content模塊和Content Shell的關(guān)系。

## 同桌面版的不同之處

Chromium的Android版同傳統(tǒng)的桌面版有很多不同的地方,具體包括以下幾個方面:

首先是工作模式方面,Chromium的桌面版一直緊跟trunk,有著不同的發(fā)布渠道,包括dev,beta,stable等。而Android版則是基于某個穩(wěn)定版在內(nèi)部開發(fā),然后不定期的釋放出一些代碼,其并沒有同最新的Chromium同步(最近才開始保持同步)。

其次是開源方面,Chromium桌面版都是開源的,但是目前來看,Android版只是開源了部分,就是Content模塊和以下,瀏覽器的一些功能模塊,而UI部分則沒有而且在可以預見的未來也不會開源。

再次是架構(gòu)方面,首先是GPU進程變成為browser進程的一個線程,其次是線程化合成已經(jīng)是Android版的一個默認功能。見下圖所示,你可以跟“多進程模型”中的進程模型圖進行對比一下。

之后是渲染部分,特別是GPU硬件加速部分也有很多不同,以后會一一介紹他們。

最后是功能方面,同桌面版比較,一些功能如HTML5,插件,NativeClient,extension等目前都不支持。

## 源文件目錄

content/public/android/

         content模塊中的android接口,例如contentview等

content/shell/android

         Contentshell相關(guān)類

chrome/android

         TestShell的相關(guān)類

android_webview/

         該目錄包含實現(xiàn)Android系統(tǒng)當前WebView接口所需的內(nèi)部實現(xiàn)類,基于Chrome的內(nèi)核

 

## 參考文獻

1.      https://code.google.com/p/chromium/wiki/AndroidBuildInstructions

By yongsheng@chromium.org

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
基于chromium content API 如何定制自己的WebView
Chrome源代碼結(jié)構(gòu)
Android 各個版本W(wǎng)ebView
Whatever is worth doing is worth doing well.
7.5.3 Android 4.4后WebView的一些注意事項
FydeOS使用體驗:為中國用戶打造的Chrome OS
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服