Android 4.4 上的 Web 查看器非常慢
Web Viewer on Android 4.4 very slow
我的处境可能有点特殊,但我是 运行 Android 4.4,使用的是 root 的 Odroid xu4。
我为 android 开发了一个非常基本的 Web 查看器应用程序。我已将它安装到 OnePlus 5 上,并且运行非常流畅。然而,在 Android 4.4 设备上,网页非常缓慢且滞后。我尝试启用 android 硬件加速,但没有成功。我知道 Android 的 4.4 KitKat 版本运行在不同版本的网络查看器上。
我不知道是否有可能的解决方案,以某种方式更新 Web 查看器而不更新整个 OS。 (更新整个 OS 对我来说不是一个选择。)
希望有人能提供帮助或有任何建议,不胜感激。
谢谢
这不可能。 WebView
组件绑定到 OS 系统。您可以尝试使用第三方库,但它仍然是本机 WebView,或者您可以使用 Android NDK 编写自己的 WebView。另一个原因是 phone 规格不好。
试试这个看看它是否有效:
在清单中的应用程序标签中添加 android:largeHeap="true"
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
更新
您还可以添加处理程序以延迟一秒加载,然后再显示某些内容以某种方式停止滞后:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
wbView.loadUrl(URL);
}
}, 1000);
您当然也应该为 java 脚本网站和存储管理添加此行:
wbView.getSettings().setJavaScriptEnabled(true);
wbView.getSettings().setDomStorageEnabled(true);
也用于 cookie 管理:
CookieManager.getInstance().setAcceptCookie(true);
wbView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
我的处境可能有点特殊,但我是 运行 Android 4.4,使用的是 root 的 Odroid xu4。 我为 android 开发了一个非常基本的 Web 查看器应用程序。我已将它安装到 OnePlus 5 上,并且运行非常流畅。然而,在 Android 4.4 设备上,网页非常缓慢且滞后。我尝试启用 android 硬件加速,但没有成功。我知道 Android 的 4.4 KitKat 版本运行在不同版本的网络查看器上。
我不知道是否有可能的解决方案,以某种方式更新 Web 查看器而不更新整个 OS。 (更新整个 OS 对我来说不是一个选择。)
希望有人能提供帮助或有任何建议,不胜感激。 谢谢
这不可能。 WebView
组件绑定到 OS 系统。您可以尝试使用第三方库,但它仍然是本机 WebView,或者您可以使用 Android NDK 编写自己的 WebView。另一个原因是 phone 规格不好。
试试这个看看它是否有效:
在清单中的应用程序标签中添加 android:largeHeap="true"
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
更新
您还可以添加处理程序以延迟一秒加载,然后再显示某些内容以某种方式停止滞后:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
wbView.loadUrl(URL);
}
}, 1000);
您当然也应该为 java 脚本网站和存储管理添加此行:
wbView.getSettings().setJavaScriptEnabled(true);
wbView.getSettings().setDomStorageEnabled(true);
也用于 cookie 管理:
CookieManager.getInstance().setAcceptCookie(true);
wbView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);