
手機(jī)掃描下載
應(yīng)用指數(shù):5 分
十六進(jìn)制轉(zhuǎn)換器app34.8M常用工具
順陸最新版205.3M常用工具
usb串口調(diào)試助手app28.9M常用工具
皮皮工具箱皮友版app66.1M常用工具
聽(tīng)雨游戲廳2官方正版42.3M常用工具
剪同款軟件官方版132.3M常用工具
搜狗手機(jī)輸入法2025最新版本78.1M常用工具
wifi萬(wàn)能鑰匙官方免費(fèi)版79.5M常用工具
360手機(jī)助手官方免費(fèi)39.5M常用工具
百度手機(jī)助手app12.3M常用工具
kingroot官方版11.0M常用工具
迅雷手機(jī)版92.3M常用工具
應(yīng)用介紹應(yīng)用截圖相關(guān)版本網(wǎng)友評(píng)論下載地址
AndroidSystemWebView版本APP最新版本又稱(chēng)為webview安裝包apk,是一款瀏覽器內(nèi)核插件,幫助那些沒(méi)有自帶內(nèi)核的瀏覽器提升性能,當(dāng)你需要顯示網(wǎng)絡(luò)時(shí)使用它就會(huì)快速顯示網(wǎng)頁(yè)內(nèi)容了,而且和qq、微博、微信等應(yīng)用一起配合使用效果更好哦,感興趣的朋友趕快來(lái)下載吧!
android system webview app由 Chrome 提供支持的系統(tǒng)組件,使 Android 應(yīng)用能夠顯示網(wǎng)頁(yè)內(nèi)容。該組件已經(jīng)預(yù)裝在您的設(shè)備上,您需要及時(shí)更新該組件,以確保系統(tǒng)擁有最新的安全更新,并修正其他錯(cuò)誤。Android System WebView的上架純粹是對(duì)google愛(ài)屋及烏。

在嘗試在移動(dòng)設(shè)備上安裝應(yīng)用程序之前,您需要知道,默認(rèn)情況下,Android操作系統(tǒng)不允許您這樣做。這是一項(xiàng)安全措施,但并未隱藏起來(lái),用戶(hù)無(wú)需提升權(quán)限即可將其禁用。該選項(xiàng)在Android OS中稱(chēng)為“未知來(lái)源”,它只是一個(gè)簡(jiǎn)單的切換。用戶(hù)還應(yīng)該能夠看到下面寫(xiě)的內(nèi)容,例如“允許從Play商店以外的來(lái)源安裝應(yīng)用程序”。根據(jù)您的Android操作系統(tǒng)版本和設(shè)備制造商的不同,該選項(xiàng)的位置可能位于不同的位置。這很可能是在安全方面。要啟用它,您只需將其打開(kāi)即可。
webview是一個(gè)可視化的組件,是作為原生APP的視覺(jué)部分?梢?xún)?nèi)嵌在移動(dòng)端,實(shí)現(xiàn)前端的混合式開(kāi)發(fā),大多數(shù)混合式開(kāi)發(fā)框架都是基于WebView模式進(jìn)行二次開(kāi)發(fā)的。比如:APIcloud、uni-app等等的框架。
一、webview的用法
1、作為APP內(nèi)置瀏覽器,顯示鏈接的內(nèi)容。
2、用來(lái)顯示廣告。
3、完全承載APP內(nèi)的所有交互。從技術(shù)角度看這些仍是原生應(yīng)用,但它做的唯一原生操作就是托管webview,這種應(yīng)用被稱(chēng)為混合應(yīng)用。從部署和更新的角度來(lái)看,混合應(yīng)用非常方便。
4、作為原生應(yīng)用的擴(kuò)展。許多原生應(yīng)用會(huì)提供加載項(xiàng)或擴(kuò)展程序來(lái)擴(kuò)展其功能,由于web技術(shù)的簡(jiǎn)單性和強(qiáng)大,這些加載項(xiàng)和擴(kuò)展通常以HTML、CSS、JS而不是C++、C#或其他來(lái)構(gòu)建。
二、webview入門(mén)知識(shí)
1、我們通常是用瀏覽器來(lái)瀏覽網(wǎng)頁(yè),你很清楚的知道你正在使用瀏覽器,要么是PC客戶(hù)端,要么是手機(jī)上的app。但是webview是一個(gè)嵌入式的瀏覽器,是嵌入在原生應(yīng)用中的,你可能都意識(shí)不到你在用瀏覽器。
2、傳統(tǒng)瀏覽器分為兩個(gè)部分,UI(地址欄、導(dǎo)航欄)和瀏覽器引擎。webview就是原生應(yīng)用中的瀏覽器引擎。
3、webview只是一個(gè)可視化的組件,是作為原生APP的視覺(jué)部分。
4、用webview展示的內(nèi)容是不需要存儲(chǔ)在本地的,可以直接從服務(wù)器獲取。
5、這種靈活性打開(kāi)了瀏覽器端的web應(yīng)用和希望展示在原生應(yīng)用中的web應(yīng)用代碼直接可重用的世界。
6、運(yùn)行在webview中的JS代碼有能力調(diào)用原生的系統(tǒng)API,沒(méi)有傳統(tǒng)瀏覽器沙箱的限制。
7、沙箱的存在是因?yàn),你永遠(yuǎn)不能完全信任加載的web內(nèi)容,所以不能允許它調(diào)用原生的系統(tǒng)API。而在webview中開(kāi)發(fā)人員通常可以完全控制加載的內(nèi)容,惡意代碼進(jìn)入并在設(shè)備上造成混亂的可能性很低。
8、在webview中,JS代碼可以跟原生應(yīng)用代碼相互通信,也可以調(diào)用原生API集成酷炫的系統(tǒng)級(jí)功能,如傳感器、存儲(chǔ)、日歷、聯(lián)系人等。
三、webview的精髓
webview其實(shí)只是一個(gè)再應(yīng)用中設(shè)置好位置和大小的瀏覽器,而且不會(huì)放置任何花哨的UI。
在大多數(shù)情況下,除非你調(diào)用了原生API,否則不必在webview中專(zhuān)門(mén)測(cè)試web應(yīng)用。
android的WebView組件可以說(shuō)是相當(dāng)?shù)膹?qiáng)大,現(xiàn)將項(xiàng)目中經(jīng)常用到的幾個(gè)功能總結(jié)如下:
一、背景設(shè)置

WebView.setBackgroundColor(0);//先設(shè)置背景色為transparent
WebView.setBackgroundResource(R.drawable.yourImage);//然后設(shè)置背景圖片
二、獲得WebView網(wǎng)頁(yè)加載初始化和完成事件
步驟:
1、創(chuàng)建一個(gè)自己的WebViewClient(繼承 WebViewClient 類(lèi))如WebViewClient
2、重載里面的 onPageFinished(WebView view, String url)方法,(webview加載完成會(huì)調(diào)用這個(gè)方法),這個(gè)方法放自己想要做的事情,在webview加載完成以后
3、關(guān)聯(lián)你自己的webviewclient 與 webview 通過(guò) 這個(gè)方法:webView.setWebViewClient( new WebViewClient();

如果需要監(jiān)視加載進(jìn)度的,需要?jiǎng)?chuàng)建一個(gè)自己的WebChromeClient類(lèi),并重載方法onProgressChanged,再

布局文件:

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

等等,具體參考API
而進(jìn)度條的使用是在new出一個(gè)setWebChromeClient后,可以在內(nèi)部類(lèi)中寫(xiě) onProgressChanged事件
總結(jié):在WebView的設(shè)計(jì)中,不是什么事都要WebView類(lèi)干的,有些雜事是分給其他人的,這樣WebView專(zhuān)心干好自己的解析、渲染工作就行了。
WebViewClient就是幫助WebView處理各種通知、請(qǐng)求事件的,具體來(lái)說(shuō)包括:
onLoadResource
onPageStart
onPageFinish
onReceiveError
onProgressChanged
onReceivedIcon
onReceivedTitle
onReceivedHttpAuthRequest
WebChromeClient是輔助WebView處理Javascript的對(duì)話(huà)框,網(wǎng)站圖標(biāo),網(wǎng)站title,加載進(jìn)度等
onCloseWindow(關(guān)閉WebView)
onCreateWindow()
onJsAlert (WebView上alert是彈不出來(lái)東西的,需要定制你的WebChromeClient處理彈出)
onJsPrompt
onJsConfirm
Android WebView的具體實(shí)現(xiàn)與Chromium渲染引擎啟動(dòng)過(guò)程
這里以Android 8.0的源碼為來(lái)說(shuō)明,是先找到WebView的真正的構(gòu)造函數(shù):

這個(gè)構(gòu)造函數(shù)會(huì)調(diào)用另外一個(gè)成員函數(shù)ensureProviderCreated()確保Chromium動(dòng)態(tài)庫(kù)已經(jīng)加載。在Chromium動(dòng)態(tài)庫(kù)已經(jīng)加載的情況下,WebView類(lèi)的成員函數(shù)ensureProviderCreated還會(huì)創(chuàng)建一個(gè)WebViewProvider對(duì)象,并且保存在成員變量mProvider中。這個(gè)WebViewProvider其實(shí)才是真正用來(lái)實(shí)現(xiàn)WebView的功能的幕后大佬。上訴那些Android WebView主要的方式基本都是通過(guò)mProvider來(lái)實(shí)現(xiàn)的,例如loadUrl(String url)等方法。

有了這個(gè)mProvider之后,WebView類(lèi)的構(gòu)造函數(shù)就會(huì)繼續(xù)調(diào)用mProvider.init(javaScriptInterfaces, privatepowsing)啟動(dòng)網(wǎng)頁(yè)渲染引擎。對(duì)于基于Chromium實(shí)現(xiàn)的WebView來(lái)說(shuō),它使用的WebViewProvider是一個(gè)WebViewChromium對(duì)象。當(dāng)這個(gè)WebViewChromium對(duì)象的成員函數(shù)init被調(diào)用的時(shí)候,它就會(huì)啟動(dòng)Chromium的網(wǎng)頁(yè)渲染引擎。
所以,我們接下來(lái)看一下ensureProviderCreated的實(shí)現(xiàn):

WebView類(lèi)的成員函數(shù)ensureProviderCreated首先調(diào)用成員函數(shù)checkThread確保它是在WebView的創(chuàng)建線(xiàn)程中調(diào)用的,接下來(lái)又會(huì)判斷成員變量mProvider的值是否為null。如果為null,就表示它還沒(méi)有當(dāng)前創(chuàng)建的WebView創(chuàng)建過(guò)Provider。在這種情況下,它首先會(huì)調(diào)用成員函數(shù)getFactory獲得一個(gè)WebViewFactory。有了這個(gè)WebViewFactory之后,就可以調(diào)用它的成員函數(shù)createWebView創(chuàng)建一個(gè)WebViewProvider。
接下來(lái)我們?cè)倏匆幌耮etFactory()方法以及它的實(shí)現(xiàn):

getFactory返回的WebView Factory是通過(guò)調(diào)用WebViewFactory類(lèi)的靜態(tài)成員函數(shù)getProvider獲得的,getProvider首先是判斷靜態(tài)成員變量sProviderInstance的值是否等于null。如果等于null,那么就說(shuō)明當(dāng)前的App進(jìn)程還沒(méi)有加載過(guò)Chromium動(dòng)態(tài)庫(kù)。在這種情況下,就需要加載Chromium動(dòng)態(tài)庫(kù),并且創(chuàng)建一個(gè)WebView Factory,保存在靜態(tài)成員變量sProviderInstance。接下來(lái)我們就先分析Chromium動(dòng)態(tài)庫(kù)的加載過(guò)程,然后再分析WebView Factory的創(chuàng)建過(guò)程。
加載Chromium動(dòng)態(tài)庫(kù)是通過(guò)調(diào)用WebViewFactory類(lèi)的靜態(tài)成員函數(shù)loadNativeLipary實(shí)現(xiàn)的:

loadNativeLipary首先會(huì)調(diào)用成員函數(shù)getWebViewNativeLiparyPaths獲得要加載的Chromium動(dòng)態(tài)庫(kù)的文件路徑,然后再調(diào)用另外一個(gè)靜態(tài)成員函數(shù)nativeLoadWithRelroFile對(duì)它進(jìn)行加載。在加載的時(shí)候,會(huì)指定一個(gè)Chromium GNURELRO Section文件。這個(gè)Chromium GNURELRO Section文件是系統(tǒng)啟動(dòng)時(shí)候,通過(guò)啟動(dòng)一個(gè)臨時(shí)進(jìn)程生成的。其中靜態(tài)成員函數(shù)nativeLoadWithRelroFile是一個(gè)JNI方法,它由C++層的函數(shù)LoadWithRelroFile實(shí)現(xiàn):

LoadWithRelroFile判斷自己是32位還是64位的實(shí)現(xiàn),然后從參數(shù)lib32和lib64中選擇對(duì)應(yīng)的Chromium動(dòng)態(tài)庫(kù)進(jìn)行加載。
這個(gè)加載過(guò)程是通過(guò)調(diào)用另外一個(gè)函數(shù)DoLoadWithRelroFile實(shí)現(xiàn)的:

函數(shù)DoLoadWithRelroFile的實(shí)現(xiàn)是通過(guò)Linker導(dǎo)出的函數(shù)androiddlopenext在Zyogote進(jìn)程保留的地址空間中加載Chromium動(dòng)態(tài)庫(kù)的。注意,App進(jìn)程是Zygote進(jìn)程fork出來(lái)的,因此它同樣會(huì)獲得Zygote進(jìn)程預(yù)留的地址空間。不過(guò),函數(shù)DoLoadWithRelroFile會(huì)將告訴函數(shù)androiddlopenext在加載Chromium動(dòng)態(tài)庫(kù)的時(shí)候,將參數(shù)relro描述的Chromium GNURELRO Section文件內(nèi)存映射到內(nèi)存來(lái),并且代替掉已經(jīng)加載的Chromium動(dòng)態(tài)庫(kù)的GNURELRO Section。這是通過(guò)將指定一個(gè)ANDROIDDLEXTUSERELRO標(biāo)志實(shí)現(xiàn)的。之所以可以這樣做,是因?yàn)閰?shù)relro描述的Chromium GNURELRO Section文件對(duì)應(yīng)的Chromium動(dòng)態(tài)庫(kù)的加載地址與當(dāng)前App進(jìn)程加載的Chromium動(dòng)態(tài)庫(kù)的地址一致。只要兩個(gè)相同的動(dòng)態(tài)庫(kù)在兩個(gè)不同的進(jìn)程中的加載地址一致,它們的鏈接和重定位信息就是完全一致的,因此就可以通過(guò)文件內(nèi)存映射的方式進(jìn)行共享。共享之后,就可以達(dá)到節(jié)省內(nèi)存的目的了。
這一步執(zhí)行完成之后,App進(jìn)程就加載完成Chromium動(dòng)態(tài)庫(kù)了。回到前面分析的WebViewFactory類(lèi)的靜態(tài)成員函數(shù)getProvider,它接下來(lái)繼續(xù)創(chuàng)建一個(gè)WebViewFactory。這個(gè)WebViewFactory以后就可以用來(lái)創(chuàng)建WebViewProvider。
WebViewFactory類(lèi)的靜態(tài)成員函數(shù)getProvider首先要確定要?jiǎng)?chuàng)建的WebView Factory的類(lèi)型。這個(gè)類(lèi)型是通過(guò)調(diào)用另外一個(gè)靜態(tài)成員函數(shù)getFactoryClass獲得的:

從這里可以看到,WebViewFactory類(lèi)的靜態(tài)成員函數(shù)getFactoryClass返回的WebView Factory的類(lèi)型為com.android.webview.chromium.WebViewChromiumFactoryProviderForO。這個(gè)com.android.webview.chromium.WebViewChromiumFactoryProviderForO類(lèi)是由前面提到的WebView Package提供的。這意味著WebViewFactory類(lèi)的靜態(tài)成員函數(shù)getProvider創(chuàng)建的WebView Factory是一個(gè)WebViewChromiumFactoryProvider對(duì)象:

WebViewChromiumFactoryProvider類(lèi)的構(gòu)造函數(shù)會(huì)調(diào)用AwpowserProcess類(lèi)的靜態(tài)成員函數(shù)loadLipary對(duì)前面加載的Chromium動(dòng)態(tài)庫(kù)進(jìn)行初始化:

AwpowserProcess類(lèi)的靜態(tài)成員函數(shù)loadLipary又調(diào)用LiparyLoader類(lèi)的靜態(tài)成員函數(shù)loadNow對(duì)前面加載的Chromium動(dòng)態(tài)庫(kù)進(jìn)行初始化:

LiparyLoader類(lèi)的靜態(tài)成員函數(shù)loadNow又調(diào)用另外一個(gè)重載版本的靜態(tài)成員函數(shù)loadNow對(duì)前面加載的Chromium動(dòng)態(tài)庫(kù)進(jìn)行初始化:

LiparyLoader類(lèi)重載版本的靜態(tài)成員函數(shù)loadNow又調(diào)用另外一個(gè)靜態(tài)成員函數(shù)loadAlreadyLocked對(duì)前面加載的Chromium動(dòng)態(tài)庫(kù)進(jìn)行初始化:

由于并不是所有的系統(tǒng)都支持在加載動(dòng)態(tài)庫(kù)時(shí),以文件內(nèi)存映射的方式代替它的GNURELRO Section,因此Chromium自己提供了一個(gè)Linker。通過(guò)這個(gè)Linker加載動(dòng)態(tài)庫(kù)時(shí),能夠以文件內(nèi)存映射的方式代替要加載的動(dòng)態(tài)庫(kù)的GNURELRO Section,也就是實(shí)現(xiàn)前面提到的函數(shù)androiddlopenext的功能。在高于Android 5.0中,由于系統(tǒng)已經(jīng)提供了函數(shù)androiddlopenext,因此,Chromium就不會(huì)使用自己的Linker加載動(dòng)態(tài)庫(kù),而是使用Android系統(tǒng)提供的Linker來(lái)加載動(dòng)態(tài)庫(kù)。通過(guò)調(diào)用System類(lèi)的靜態(tài)成員函數(shù)loadLipary即可以使用系統(tǒng)提供的Linker來(lái)加載動(dòng)態(tài)庫(kù)。LiparyLoader類(lèi)的靜態(tài)成員函數(shù)loadAlreadyLocked要加載的動(dòng)態(tài)庫(kù)由NativeLiparies類(lèi)的靜態(tài)成員變量LIpARIES指定:

從這里可以知道,LiparyLoader類(lèi)的靜態(tài)成員函數(shù)loadAlreadyLocked要加載的動(dòng)態(tài)庫(kù)就是Chromium動(dòng)態(tài)庫(kù)。這個(gè)Chromium動(dòng)態(tài)庫(kù)前面已經(jīng)加載過(guò)了,因此這里通過(guò)調(diào)用System類(lèi)的靜態(tài)成員函數(shù)loadLipary再加載時(shí),僅僅是只會(huì)觸發(fā)它導(dǎo)出的函數(shù)JNIOnLoad被調(diào)用,而不會(huì)重新被加載。Chromium動(dòng)態(tài)庫(kù)導(dǎo)出的JNIOnLoad被調(diào)用的時(shí)候,Chromium動(dòng)態(tài)庫(kù)就會(huì)執(zhí)行初始化工作:

其中的一個(gè)初始化操作是給Chromium的Content層設(shè)置一個(gè)類(lèi)型為AwMainDelegate的Main Delegate。這個(gè)AwMainDelegate實(shí)現(xiàn)在Chromium的androidwebview模塊中。Android WebView是通過(guò)Chromium的androidwebview模塊加載和渲染網(wǎng)頁(yè)的。Chromium加載和渲染網(wǎng)頁(yè)的功能又是實(shí)現(xiàn)在Content層的,因此,Chromium的androidwebview模塊又要通過(guò)Content層實(shí)現(xiàn)加載和渲染網(wǎng)頁(yè)功能。這樣,Chromium的androidwebview模塊就可以設(shè)置一個(gè)Main Delegate給Content層,以便它們可以互相通信。給Chromium的Content層設(shè)置一個(gè)Main Delegate是通過(guò)調(diào)用函數(shù)SetContentMainDelegate實(shí)現(xiàn)的:

從前面的分析可以知道,參數(shù)delegate指向的是一個(gè)AwMainDelegate對(duì)象,這個(gè)AwMainDelegate對(duì)象會(huì)被函數(shù)SetContentMainDelegate保存在全局變量gcontentmain_delegate中。這一步執(zhí)行完成后,Chromium動(dòng)態(tài)庫(kù)就在App進(jìn)程中加載完畢,并且也已經(jīng)完成了初始化工作。與此同時(shí),系統(tǒng)也為App進(jìn)程創(chuàng)建了一個(gè)類(lèi)型為WebViewChromiumFactoryProvider的WebViewFactory。回到前面分析的WebView類(lèi)的成員函數(shù)ensureProviderCreated中,這時(shí)候就它會(huì)通過(guò)調(diào)用上述類(lèi)型為WebViewChromiumFactoryProvider的WebViewFactory的成員函數(shù)createWebView為當(dāng)前創(chuàng)建的WebView創(chuàng)建一個(gè)WebView Provider:

WebViewChromiumFactoryProvider類(lèi)的成員函數(shù)createWebView創(chuàng)建的是一個(gè)類(lèi)型為WebViewChromium的WebView Provider。這個(gè)WebView Provider將會(huì)返回給WebView類(lèi)的成員函數(shù)ensureProviderCreated。WebView類(lèi)的成員函數(shù)ensureProviderCreated再將該WebView Provider保存在成員變量mProvider中。這樣,正在創(chuàng)建的WebView就獲得了一個(gè)類(lèi)型為WebViewChromium的WebView Provider。以后通過(guò)這個(gè)WebView Provider,就可以通過(guò)Chromium來(lái)加載和渲染網(wǎng)頁(yè)了。
能夠較快速的顯示網(wǎng)頁(yè)的內(nèi)容的軟件
會(huì)一直持續(xù)更新這項(xiàng)組件
Android生態(tài)系統(tǒng)的重要組成部分,但它不能作為常規(guī)應(yīng)用程序使用
在Android應(yīng)用中打開(kāi)網(wǎng)頁(yè)
默認(rèn)情況下包含在大多數(shù)Android系統(tǒng)中
WebView全名為Android System WebView是Google LLC提供的一個(gè)預(yù)安裝系統(tǒng)組件,采用接入式的操作體驗(yàn)數(shù)據(jù),可以及時(shí)優(yōu)化網(wǎng)頁(yè)的相關(guān)數(shù)據(jù),幫助用戶(hù)快捷存取瀏覽器的歷史記錄、書(shū)簽、音樂(lè)等內(nèi)容,除此之外,WebView的一大亮點(diǎn)就是其含有智能導(dǎo)航語(yǔ)音功能,可以滿(mǎn)足用戶(hù)的不同使用需求!用來(lái)支持系統(tǒng)層面的頁(yè)面插件工具,是安卓系統(tǒng)的一個(gè)重要組成部分,可用于展示網(wǎng)絡(luò)請(qǐng)求后的內(nèi)容,將網(wǎng)址請(qǐng)求的內(nèi)容展示,也就是說(shuō)手機(jī)的App可以調(diào)用它顯示網(wǎng)頁(yè)而不需要瀏覽器。




廠商其他下載
安卓應(yīng)用安卓手游蘋(píng)果應(yīng)用蘋(píng)果手游電腦更多+
谷歌日歷安卓版(Calendar)
googleplay商店應(yīng)用
谷歌電子書(shū)閱讀器官方版
谷歌身份驗(yàn)證器官方版
google日歷安卓版(Calendar)
google translate在線(xiàn)翻譯器
google play圖書(shū)app
谷歌home app
谷歌電子書(shū)app(google play books)
pixel相機(jī)服務(wù)app
googleone apk
google tasks apk
google文檔app
google表格app(Sheets)
臻心官方版
小云收銀免費(fèi)版
我的南瑞最新版
supermiui官方版
小米joyose最新版本
沃訊m6官方版
google相冊(cè)app
谷歌play服務(wù)框架2025最新版(google play services)
谷歌日歷安卓版(Calendar)
googleplay商店應(yīng)用
谷歌身份驗(yàn)證器官方版
谷歌瀏覽器電腦版安裝包
mt管理器官方正版安裝26.7M常用工具
2025光環(huán)助手官方正版43.5M常用工具
vivo應(yīng)用商店官方43.3M常用工具
華為應(yīng)用市場(chǎng)正版54.8M常用工具
比萌BIMOBIMO官方正版(原beemo ai)200.8M常用工具
創(chuàng)游世界官方正版144.0M常用工具
2025光環(huán)助手官方正版43.5M常用工具
vivo應(yīng)用商店官方43.3M常用工具
mt管理器官方正版安裝26.7M常用工具
oppo應(yīng)用商店官方最新版本72.7M常用工具
剪映app官方免費(fèi)版334.3M常用工具
搜狗手機(jī)輸入法2025最新版本78.1M常用工具
第三方軟件
面具軟件
國(guó)外視頻編輯
國(guó)外瀏覽器
數(shù)據(jù)導(dǎo)出軟件