如题:android webview 加载本地html,低配置手机超级慢,这是在低配置手机android 4.4版本上遇到这样的问题,本地的html已经放在了asserts文件夹下面,然后运行,在htc上,有时候需要十几秒的始终,好一点的手机也要7/8秒钟,感觉这个不能忍,然后搜索了网上结合Stack Overflow上的答案,我的配置如下,经过这样的修改,时间变为3秒钟左右,提升了不少的速度,完整如下:
1.webview的设置:
chart_webview = (WebView) contentView.findViewById(R.id.chart_webview);
// 设置文字默认大小
//chart_webview.getSettings().setDefaultFontSize(100);
chart_webview.getSettings().setTextZoom(180);
chart_webview.getSettings().setUseWideViewPort(true);//關鍵點
chart_webview.getSettings().setLoadWithOverviewMode(true);
chart_webview.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
//这个是国外网站Stack Overflow推荐提升加载速度的方式
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// chromium, enable hardware acceleration
chart_webview.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else {
// older android version, disable hardware acceleration
chart_webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
//chart_webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
chart_webview.setBackgroundColor(0);
chart_webview.getSettings().setBuiltInZoomControls(true);
chart_webview.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
chart_webview.getSettings().setJavaScriptEnabled(true);
chart_webview.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
chart_webview.addJavascriptInterface(new JavascriptInterface(), "jsInterface");
// 加上如下语句就可以使js弹出警告框
chart_webview.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
if (newProgress == 100) {
// 滚动条消失
}
}
});
chart_webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// chart_webview.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
});
chart_webview.loadUrl(CommData.url);
}
2.主配置文件对于activity配置
android:hardwareAccelerated="true"属性
这样配置之后就可以加快速度,参考链接:提升webview加载速度