久久综合九色综合欧美狠狠,58av国产精品,99er久久,狠狠色噜噜狠狠狠狠97不卡,一级一毛片a级毛片,狠狠干五月

安全的單機游戲下載大全
首頁安卓軟件app安卓實用工具 → WebView apk v126.0.6478.186

WebView apk

預安裝系統組件

WebView apk
  • 分類:安卓實用工具
  • 語言:中文
  • 大。218.7M
  • 更新:2024-07-22 09:02
  • 版本:v126.0.6478.186
  • 環境:Android

標簽: WebView 官網:暫無

本地下載 安卓下載

50% 50%

WebView apkv126.0.6478.186截圖0
WebView apkv126.0.6478.186截圖1
WebView apkv126.0.6478.186截圖2
WebView apkv126.0.6478.186截圖3
《WebView apk》截圖

介紹

《WebView最新版》是由 Google 提供的一個預安裝系統組件,它在 Android 設備上扮演著至關重要的角色。這個組件的核心功能在于支持 Android 應用程序顯示和渲染網頁內容,而無需將這些內容在外部瀏覽器中打開。WebView 使得開發者能夠在應用中無縫集成網頁,豐富了應用的功能和用戶體驗。

軟件介紹

Android System WebView是 Google 提供的一個預安裝系統組件,用以支持 Android 應用顯示網頁內容。

WebView apk

webview是什么

webview是一個可視化的組件,是作為原生APP的視覺部分?梢詢惹对谝苿佣耍瑢崿F前端的混合式開發,大多數混合式開發框架都是基于WebView模式進行二次開發的。比如:APIcloud、uni-app等等的框架。

一、webview入門知識

1、我們通常是用瀏覽器來瀏覽網頁,你很清楚的知道你正在使用瀏覽器,要么是PC客戶端,要么是手機上的app。但是webview是一個嵌入式的瀏覽器,是嵌入在原生應用中的,你可能都意識不到你在用瀏覽器。

2、傳統瀏覽器分為兩個部分,UI(地址欄、導航欄)和瀏覽器引擎。webview就是原生應用中的瀏覽器引擎。

3、webview只是一個可視化的組件,是作為原生APP的視覺部分。

4、用webview展示的內容是不需要存儲在本地的,可以直接從服務器獲取。

5、這種靈活性打開了瀏覽器端的web應用和希望展示在原生應用中的web應用代碼直接可重用的世界。

6、運行在webview中的JS代碼有能力調用原生的系統API,沒有傳統瀏覽器沙箱的限制。

7、沙箱的存在是因為,你永遠不能完全信任加載的web內容,所以不能允許它調用原生的系統API。而在webview中開發人員通?梢酝耆控制加載的內容,惡意代碼進入并在設備上造成混亂的可能性很低。

8、在webview中,JS代碼可以跟原生應用代碼相互通信,也可以調用原生API集成酷炫的系統級功能,如傳感器、存儲、日歷、聯系人等。

二、webview的用法

1、作為APP內置瀏覽器,顯示鏈接的內容。

2、用來顯示廣告。

3、完全承載APP內的所有交互。從技術角度看這些仍是原生應用,但它做的唯一原生操作就是托管webview,這種應用被稱為混合應用。從部署和更新的角度來看,混合應用非常方便。

4、作為原生應用的擴展。許多原生應用會提供加載項或擴展程序來擴展其功能,由于web技術的簡單性和強大,這些加載項和擴展通常以HTML、CSS、JS而不是C++、C#或其他來構建。

三、webview的精髓

webview其實只是一個再應用中設置好位置和大小的瀏覽器,而且不會放置任何花哨的UI。

在大多數情況下,除非你調用了原生API,否則不必在webview中專門測試web應用。

WebView的幾個常見功能使用方法

android的WebView組件可以說是相當的強大,現將項目中經常用到的幾個功能總結如下:

一、背景設置

WebView.setBackgroundColor(0);//先設置背景色為transparent

WebView.setBackgroundResource(R.drawable.yourImage);//然后設置背景圖片

二、獲得WebView網頁加載初始化和完成事件

步驟:

1、創建一個自己的WebViewClient(繼承 WebViewClient 類)如WebViewClient

2、重載里面的 onPageFinished(WebView view, String url)方法,(webview加載完成會調用這個方法),這個方法放自己想要做的事情,在webview加載完成以后

3、關聯你自己的webviewclient 與 webview 通過 這個方法:webView.setWebViewClient( new WebViewClient();

如果需要監視加載進度的,需要創建一個自己的WebChromeClient類,并重載方法onProgressChanged,再

布局文件:

要注意的是,其中的webView的一系列用法,比如 webView.getSettings()。setJavaScriptEnabled(true);設置可以使用javscript;

等等,具體參考API

而進度條的使用是在new出一個setWebChromeClient后,可以在內部類中寫  onProgressChanged事件

總結:在WebView的設計中,不是什么事都要WebView類干的,有些雜事是分給其他人的,這樣WebView專心干好自己的解析、渲染工作就行了。
WebViewClient就是幫助WebView處理各種通知、請求事件的,具體來說包括:

onLoadResource

onPageStart

onPageFinish

onReceiveError

onReceivedHttpAuthRequest

WebChromeClient是輔助WebView處理Javascript的對話框,網站圖標,網站title,加載進度等

onCloseWindow(關閉WebView)

onCreateWindow()

onJsAlert (WebView上alert是彈不出來東西的,需要定制你的WebChromeClient處理彈出)

onJsPrompt

onJsConfirm

onProgressChanged

onReceivedIcon

onReceivedTitle

Android WebView的具體實現與Chromium渲染引擎啟動過程

這里以Android 8.0的源碼為來說明,是先找到WebView的真正的構造函數:

這個構造函數會調用另外一個成員函數ensureProviderCreated()確保Chromium動態庫已經加載。在Chromium動態庫已經加載的情況下,WebView類的成員函數ensureProviderCreated還會創建一個WebViewProvider對象,并且保存在成員變量mProvider中。這個WebViewProvider其實才是真正用來實現WebView的功能的幕后大佬。上訴那些Android WebView主要的方式基本都是通過mProvider來實現的,例如loadUrl(String url)等方法。

有了這個mProvider之后,WebView類的構造函數就會繼續調用mProvider.init(javaScriptInterfaces, privatepowsing)啟動網頁渲染引擎。對于基于Chromium實現的WebView來說,它使用的WebViewProvider是一個WebViewChromium對象。當這個WebViewChromium對象的成員函數init被調用的時候,它就會啟動Chromium的網頁渲染引擎。

所以,我們接下來看一下ensureProviderCreated的實現:

WebView類的成員函數ensureProviderCreated首先調用成員函數checkThread確保它是在WebView的創建線程中調用的,接下來又會判斷成員變量mProvider的值是否為null。如果為null,就表示它還沒有當前創建的WebView創建過Provider。在這種情況下,它首先會調用成員函數getFactory獲得一個WebViewFactory。有了這個WebViewFactory之后,就可以調用它的成員函數createWebView創建一個WebViewProvider。

接下來我們再看一下getFactory()方法以及它的實現:

getFactory返回的WebView Factory是通過調用WebViewFactory類的靜態成員函數getProvider獲得的,getProvider首先是判斷靜態成員變量sProviderInstance的值是否等于null。如果等于null,那么就說明當前的App進程還沒有加載過Chromium動態庫。在這種情況下,就需要加載Chromium動態庫,并且創建一個WebView Factory,保存在靜態成員變量sProviderInstance。接下來我們就先分析Chromium動態庫的加載過程,然后再分析WebView Factory的創建過程。

加載Chromium動態庫是通過調用WebViewFactory類的靜態成員函數loadNativeLipary實現的:

loadNativeLipary首先會調用成員函數getWebViewNativeLiparyPaths獲得要加載的Chromium動態庫的文件路徑,然后再調用另外一個靜態成員函數nativeLoadWithRelroFile對它進行加載。在加載的時候,會指定一個Chromium GNURELRO Section文件。這個Chromium GNURELRO Section文件是系統啟動時候,通過啟動一個臨時進程生成的。其中靜態成員函數nativeLoadWithRelroFile是一個JNI方法,它由C++層的函數LoadWithRelroFile實現:

LoadWithRelroFile判斷自己是32位還是64位的實現,然后從參數lib32和lib64中選擇對應的Chromium動態庫進行加載。

這個加載過程是通過調用另外一個函數DoLoadWithRelroFile實現的:

函數DoLoadWithRelroFile的實現是通過Linker導出的函數androiddlopenext在Zyogote進程保留的地址空間中加載Chromium動態庫的。注意,App進程是Zygote進程fork出來的,因此它同樣會獲得Zygote進程預留的地址空間。不過,函數DoLoadWithRelroFile會將告訴函數androiddlopenext在加載Chromium動態庫的時候,將參數relro描述的Chromium GNURELRO Section文件內存映射到內存來,并且代替掉已經加載的Chromium動態庫的GNURELRO Section。這是通過將指定一個ANDROIDDLEXTUSERELRO標志實現的。之所以可以這樣做,是因為參數relro描述的Chromium GNURELRO Section文件對應的Chromium動態庫的加載地址與當前App進程加載的Chromium動態庫的地址一致。只要兩個相同的動態庫在兩個不同的進程中的加載地址一致,它們的鏈接和重定位信息就是完全一致的,因此就可以通過文件內存映射的方式進行共享。共享之后,就可以達到節省內存的目的了。

這一步執行完成之后,App進程就加載完成Chromium動態庫了;氐角懊娣治龅腤ebViewFactory類的靜態成員函數getProvider,它接下來繼續創建一個WebViewFactory。這個WebViewFactory以后就可以用來創建WebViewProvider。

WebViewFactory類的靜態成員函數getProvider首先要確定要創建的WebView Factory的類型。這個類型是通過調用另外一個靜態成員函數getFactoryClass獲得的:

從這里可以看到,WebViewFactory類的靜態成員函數getFactoryClass返回的WebView Factory的類型為com.android.webview.chromium.WebViewChromiumFactoryProviderForO。這個com.android.webview.chromium.WebViewChromiumFactoryProviderForO類是由前面提到的WebView Package提供的。這意味著WebViewFactory類的靜態成員函數getProvider創建的WebView Factory是一個WebViewChromiumFactoryProvider對象:

WebViewChromiumFactoryProvider類的構造函數會調用AwpowserProcess類的靜態成員函數loadLipary對前面加載的Chromium動態庫進行初始化:

AwpowserProcess類的靜態成員函數loadLipary又調用LiparyLoader類的靜態成員函數loadNow對前面加載的Chromium動態庫進行初始化:

LiparyLoader類的靜態成員函數loadNow又調用另外一個重載版本的靜態成員函數loadNow對前面加載的Chromium動態庫進行初始化:

LiparyLoader類重載版本的靜態成員函數loadNow又調用另外一個靜態成員函數loadAlreadyLocked對前面加載的Chromium動態庫進行初始化:

由于并不是所有的系統都支持在加載動態庫時,以文件內存映射的方式代替它的GNURELRO Section,因此Chromium自己提供了一個Linker。通過這個Linker加載動態庫時,能夠以文件內存映射的方式代替要加載的動態庫的GNURELRO Section,也就是實現前面提到的函數androiddlopenext的功能。在高于Android 5.0中,由于系統已經提供了函數androiddlopenext,因此,Chromium就不會使用自己的Linker加載動態庫,而是使用Android系統提供的Linker來加載動態庫。通過調用System類的靜態成員函數loadLipary即可以使用系統提供的Linker來加載動態庫。LiparyLoader類的靜態成員函數loadAlreadyLocked要加載的動態庫由NativeLiparies類的靜態成員變量LIpARIES指定:

從這里可以知道,LiparyLoader類的靜態成員函數loadAlreadyLocked要加載的動態庫就是Chromium動態庫。這個Chromium動態庫前面已經加載過了,因此這里通過調用System類的靜態成員函數loadLipary再加載時,僅僅是只會觸發它導出的函數JNIOnLoad被調用,而不會重新被加載。Chromium動態庫導出的JNIOnLoad被調用的時候,Chromium動態庫就會執行初始化工作:

其中的一個初始化操作是給Chromium的Content層設置一個類型為AwMainDelegate的Main Delegate。這個AwMainDelegate實現在Chromium的androidwebview模塊中。Android WebView是通過Chromium的androidwebview模塊加載和渲染網頁的。Chromium加載和渲染網頁的功能又是實現在Content層的,因此,Chromium的androidwebview模塊又要通過Content層實現加載和渲染網頁功能。這樣,Chromium的androidwebview模塊就可以設置一個Main Delegate給Content層,以便它們可以互相通信。給Chromium的Content層設置一個Main Delegate是通過調用函數SetContentMainDelegate實現的:

從前面的分析可以知道,參數delegate指向的是一個AwMainDelegate對象,這個AwMainDelegate對象會被函數SetContentMainDelegate保存在全局變量gcontentmain_delegate中。這一步執行完成后,Chromium動態庫就在App進程中加載完畢,并且也已經完成了初始化工作。與此同時,系統也為App進程創建了一個類型為WebViewChromiumFactoryProvider的WebViewFactory;氐角懊娣治龅腤ebView類的成員函數ensureProviderCreated中,這時候就它會通過調用上述類型為WebViewChromiumFactoryProvider的WebViewFactory的成員函數createWebView為當前創建的WebView創建一個WebView Provider:

WebViewChromiumFactoryProvider類的成員函數createWebView創建的是一個類型為WebViewChromium的WebView Provider。這個WebView Provider將會返回給WebView類的成員函數ensureProviderCreated。WebView類的成員函數ensureProviderCreated再將該WebView Provider保存在成員變量mProvider中。這樣,正在創建的WebView就獲得了一個類型為WebViewChromium的WebView Provider。以后通過這個WebView Provider,就可以通過Chromium來加載和渲染網頁了。

軟件評測

通過 WebView,開發者可以在應用中無縫集成網頁內容,豐富應用的功能和界面表現力。同時,WebView 的自動更新機制和基于 Chromium 的技術基礎確保了其穩定性和安全性。對于 Android 用戶和開發者來說,了解和正確使用 WebView 是提升應用體驗和功能的重要一環。

點擊查看更多

應用信息

  • 包名:com.google.android.webview
  • 名稱:WebView
  • 版本:126.0.6478.186
  • MD5:5c16116d4c7b5f1db50b56174468875f
  • 備案號:
  • 下載地址
特別說明:

WebView apk v126.0.6478.186下載

熱門評論

最新評論

發表評論 查看所有評論(0)

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數: 0/500 (您的評論需要經過審核才能顯示)
樂游網
關于樂游 下載幫助 網站地圖
移動也精彩
移動版首頁
廣告與建議
聯系我們 廣告合作 法律聲明
權威認證

專業的游戲下載、綜合門戶網站

Copyright 2009-2016 www.mmd178.cn 版權所有

鄂ICP備17018784號-1

主站蜘蛛池模板: 秘果电影高清完整版在线观看 | 男人天堂亚洲天堂 | 欧美色综合高清免费 | 欧美在线看欧美高清视频免费 | 国产成人免费在线视频 | 久久精品综合视频 | 国产人人草 | 国产成人久久精品二区三区 | 亚洲午夜久久久 | 五月婷婷视频在线观看 | 青春草国产成人精品久久 | 久久字幕| 国产高清精品自在线看 | 国产精品视频网站你懂得 | 蜜臀导航 | 国产精品欧美日韩精品 | 99视频在线观看高清 | 久草视频资源在线 | 国产高清一级毛片在线人 | 久久久久久久99久久久毒国产 | 免费一级夫妻a | 国产成人久久精品二区三区 | 亚洲精品第三页 | 99爱这里只有精品 | 国产成人精品日本亚洲语音2 | 99精品国产综合久久久久 | 亚洲欧美日韩不卡 | 日韩 欧美 自拍 | 四虎影视精品永久免费网站 | 精品一久久 | 丁香激情综合 | 99re在线精品视频免费 | 国产精品自拍亚洲 | 国产午夜亚洲精品不卡 | 成年人视频黄色 | 久青草免费在线视频 | 国产综合视频在线观看 | 综合精品视频 | 国产精品区一区二区三 | 国产在线中文字幕 | 久久99精品久久 |