我android webviews很慢.这是从手机到3.0+平板电脑的各种规格
我知道,网页视图都应该是"有限的",但我看到的网络应用与必须使用的各种手机的差距做CSS3和JQuery巫术,他们跑就好了,并迅速
所以我错过了什么,有什么myWebview.SPEEDHACK(1)我可以用来加快速度吗?
另外,有时我的webview的内容只是不加载,而不是慢慢加载,它只是不会加载.我正在测试的资产存储在本地,没有错误.
我的经验是,在WebView中加载网站要比在Android Web浏览器中执行相同的操作慢得多.我可以看到所有文件都已加载到我的Apache日志中,但是在页面显示在WebView控件中之前需要几秒钟.在本机Web浏览器中打开同一页面将立即显示.似乎渲染在某种程度上是残废的.
我们必须应用哪些浏览器设置才能获得与在本机Web浏览器中加载页面相同的性能?
我们当前的设置:
browserset.setLoadsImagesAutomatically(true);
browserset.setJavaScriptEnabled(true);
browserset.setDatabaseEnabled(true);
browserset.setDatabasePath("data/data/com.xxx/databases");
browserset.setDomStorageEnabled(true);
browserset.setRenderPriority(WebSettings.RenderPriority.HIGH);
browserset.setSupportZoom(false);
browserset.setUserAgentString( browserset.getUserAgentString() + " (XY ClientApp)" );
browserset.setAllowFileAccess(true);
browserset.setSavePassword(false);
browserset.setSupportMultipleWindows(false);
browserset.setAppCacheEnabled(true);
browserset.setAppCachePath("");
browserset.setAppCacheMaxSize(5*1024*1024);
Run Code Online (Sandbox Code Playgroud) 嗨,我正在开发一个应用程序,因为我正在使用Android WebView.每当我启动webview活动时,从test.txt文件加载字符串html格式的数据.test.txt文件包含近2.5 MB的数据,加载test.txt文件后,如果幻灯片屏幕结束,则读取所有数据并按回.然后,随后启动webview活动需要更多时间来呈现数据.在第一次推出webview时,它花费的时间很少.在启动此活动之间,我没有收到任何错误/异常/崩溃.
我使用的是Android API等级18及以上版本
注意:我在这个问题上做了很多研究.我尝试从Android webview的解决方案慢和Android WebView性能没有用.
我不能使android:hardwareAccelerated ="true" < - 为什么因为它有很多副作用(我仍然使用这个,但我没有在这个问题上发现任何变化).
我不能使用 webview.getSettings().setRenderPriority(RenderPriority.HIGH);
setRenderPriority() - >此方法在API级别18中已弃用.建议不要调整线程优先级,并且在将来的版本中不支持此方法.
我的DataLoader.java类
public class DataLoader extends Activity {
private WebView webView = null;
// Progress Dialog
private ProgressDialog progressDialog;
String dataContent = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.web_view);
webView = (WebView)findViewById(R.id.text);
// Loading webview in Background Thread
new LoadWebView().execute();
}
class LoadWebView extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() { …Run Code Online (Sandbox Code Playgroud) 尽管使用webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);,WebView仍然将MB的文件保存到缓存中.有没有办法真正禁用缓存?
谢谢