做了一个android 应用,里面用一个webview 加载一个本地html。应用启动起来太慢了,要差不多10秒页面才加载起来,有什么方法能让应用启动的快一些吗?

解决方案 »

  1.   

    在web视图中使用WebViewClient,并使用overrided方法并返回相应的“shouldOverrideUrlLoading”。
      

  2.   

    使用以下代码试试,会在webview中启用缓存,可能会改进页面的加载速度。
    WebSettings webSettings = getSettings();
                webSettings.setPluginsEnabled(true);
                webSettings.setJavaScriptEnabled(true);
                webSettings.setDatabaseEnabled(true);
                webSettings.setDomStorageEnabled(true);
                webSettings.setAppCacheEnabled(true);
                webSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    这些代码片段是针对加载所有页面,如果你想单门加载本地页面,可以使用:
    AssetManager mgr = getContext().getAssets();
                     try {
                         InputStream in = mgr.open(FileName,AssetManager.ACCESS_BUFFER);                     String sHTML = streamToString(in);
                         in.close();                     //display this html in the browser
                         WebView w = (WebView) findViewById(R.id.webview);
                         w.getSettings().setDefaultZoom(ZoomDensity.FAR);
                         w.loadDataWithBaseURL("file:///android_asset/", sHTML, "text/html", "utf-8", null);                                         } catch (IOException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                     }public static String StreamToString(InputStream in) throws IOException {
            if(in == null) {
                return "";
            }        Writer writer = new StringWriter();
            char[] buffer = new char[1024];        try {
                Reader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));            int n;
                while ((n = reader.read(buffer)) != -1) {
                    writer.write(buffer, 0, n);
                }        } finally {        }        return writer.toString();
        }
      

  3.   


    这些我都设置过了,没什么用途。我想要的是apk启动的速度,不是页面之间跳转的速度,分还是给你吧