android - 為什么webview在第一次加載的時候很慢?
問題描述
在使用webview的時候發現,app在第一次啟動帶有webview的fragment的時候響應很慢,而后續再次開啟卻不是同樣慢
05-05 20:57:18.721 I/WebViewFactory: Loading com.google.android.webview version 51.0.2704.81 (code 270408150)05-05 20:57:18.897 W/System: ClassLoader referenced unknown path: /system/app/WebViewGoogle/lib/arm6405-05 20:57:18.919 I/cr_LibraryLoader: Time to load native libraries: 14 ms (timestamps 7291-7305)05-05 20:57:18.919 I/cr_LibraryLoader: Expected native library version number '51.0.2704.81', actual native library version number '51.0.2704.81'05-05 20:57:18.939 V/WebViewChromiumFactoryProvider: Binding Chromium to main looper Looper (main, tid 1) {20922c4}05-05 20:57:18.940 I/cr_LibraryLoader: Expected native library version number '51.0.2704.81', actual native library version number '51.0.2704.81'05-05 20:57:18.941 I/chromium: [INFO:library_loader_hooks.cc(143)] Chromium logging enabled: level = 0, default verbosity = 005-05 20:57:19.015 I/cr_BrowserStartup: Initializing chromium process, singleProcess=true05-05 20:57:19.153 E/ActivityThread: Failed to find provider info for com.google.settings05-05 20:57:19.197 D/cr_Ime: [InputMethodManagerWrapper.java:30] Constructor05-05 20:57:19.210 W/cr_AwContents: onDetachedFromWindow called when already detached. Ignoring05-05 20:57:19.211 D/cr_Ime: [InputMethodManagerWrapper.java:59] isActive: false05-05 20:57:19.217 D/EgretLoader: EgretLoader(Context context)05-05 20:57:19.224 D/EgretLoader: The context is not activity
查看logcat發現只有第一次加載的時候會執行上方這些操作,有什么辦法可以提高第一次打開webview的響應速度嗎?
問題解答
回答1:webview也是一個瀏覽器,需要下載文件,后面有了緩存自然變快。
優化不外乎按需加載,壓縮之類的。基本瀏覽器可以用的優化,這里也用上就好了。
回答2:可以預開啟webview并設置1像素的高和寬,并且預加載很多靜態資源,國內有不少app就是這樣做的,用戶體驗非常好。
相關文章:
1. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?2. Java:密碼包(加密和解密)。無效的密鑰錯誤3. css - 微信小程序點擊展開,再次點擊收回4. 點擊頁面就自動輸入到mysql.求解5. macos - mac下docker如何設置代理6. css - vue.js的vue單文件組件style中的scoped屬性無效7. angular.js - 在ng-option 里使用過濾器無效8. node.js - 求問nw.js開發桌面版,其js計算性能如何?9. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?10. thinkphp5.1學習時遇到session問題
