相关疑难解决方法(0)

Android webview加载数据性能非常慢

嗨,我正在开发一个应用程序,因为我正在使用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)

android webview android-webview android-activity

33
推荐指数
2
解决办法
5万
查看次数

Android WebView硬件加速Artefact解决方法

因此,Android中存在WebView硬件加速的已知错误,请参见此处:https://code.google.com/p/android/issues/detail?id = 17352

禁用硬件加速不是我的选择.

我读过这些很棒的参考资料:

我的问题是,如果打开HWA,是否有人知道任何CSS/HTML变通方法以防止可能发生的渲染伪像?

当我将焦点放在表单字段时,我只会看到它们,它似乎会导致vsync-esque和subpixel gitches.当我关注这个领域时,整个页面似乎都是抖动的.

这似乎position: absolute与此有关.

有没有人解决这个问题?

css android webview hardware-acceleration

30
推荐指数
1
解决办法
7713
查看次数

Android WebView性能

在我的应用程序中,我正在加载webview中的外部URL列表,并允许用户翻阅它们.Web视图被加载到视图翻录器上.我发现webview加载网址的性能非常糟糕.我已经尝试了从使用框架布局到限制要加载的webview数量的所有内容.表现仍不尽如人意.

如何优化webview的性能?这应该是一种常见的用法.我错过了一些明显的东西.

我的Webview设置是 -

    webView.setInitialScale(WEBVIEW_SCALE);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setBuiltInZoomControls(false);
    webView.setWebViewClient(new MyWebViewClient());    
    webView.setOnTouchListener( new OnTouchListener());
Run Code Online (Sandbox Code Playgroud)

android webview

17
推荐指数
1
解决办法
3万
查看次数

如何改善webview加载时间

我有一个可以在webview中加载的URL.如果我通过浏览器打开webview,则花费的时间更少,但如果我在webview中加载URL则需要更多时间.此外,如果我必须在另一个屏幕中重复使用具有相同URL的相同webview页面,那么我无法这样做,因为如果我在不同的屏幕中使用相同的webview对象,那么加载URL也需要时间.

如何让我的webview立即加载URL?

android webview

16
推荐指数
1
解决办法
1万
查看次数

Android WebView:非常滞后的按钮响应

我有一个小的网络应用程序,我用Android的WebView功能.

我有一些div用作按钮(带onclick属性).在试用应用程序时(在设备的浏览器中),我在点击按钮后立即注意到了大量的延迟.当我点击按钮和浏览器显示周围的橙色突出显示时,会出现滞后.

我做了一些测试并获得了一些信息:

  • JavaScript不是问题.我取消了所有脚本的链接,并删除了所有onclick属性.表现没有改变.
  • CSS3的东西不是问题.我摆脱了所有花哨的渐变,表演没有改变.
  • 元素的数量不是问题.我只用页面上的几个元素尝试了它,性能没有改变.
  • Doctype和meta东西不是问题.我确定我使用的是Android 推荐的内容.

我真的不知道为什么会有这么多的滞后.我已经消除了可能导致它的一切,但没有任何帮助.

我错过了什么吗?

点击按钮后如何消除延迟?

html javascript android web-applications

8
推荐指数
1
解决办法
8326
查看次数

PhoneGap - 与Android上的浏览器相比性能不佳

我使用jquery mobile和phonegap为android开发了一个应用程序.我通过usb将应用程序部署到我的设备上.应用程序的性能非常糟糕,尤其是在滚动更长的列表时.

奇怪的是:如果我只是打开手机上的浏览器并直接访问index.html,整个应用程序运行顺畅.相同的技术,相同的内容.我不使用phonegap native api或类似的东西.

在android 4.0.2上测试了phonegap 1.5.0和1.7.0rc1,jquery mobile 1.1.0.

有任何想法吗?

android jquery-mobile cordova

8
推荐指数
2
解决办法
1万
查看次数

android webview loadurl慢

我正在开发一个应用程序,我在webview中从外部URL加载网页.加载页面需要花费很多时间才能加载,需要30秒到1分钟,所以请查看我的代码

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;

public class WebActivity extends AppCompatActivity {

    private WebView webView;
    private ProgressBar progressBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        webView = (WebView)findViewById(R.id.webView);
        progressBar= (ProgressBar)findViewById(R.id.progressBar2);
        String link = getIntent().getExtras().getString("webLink");
        String title = getIntent().getExtras().getString("webTitle");
        setTitle(title);
        webView.setVisibility(View.GONE);
        progressBar.setVisibility(View.VISIBLE);
        Log.d("WEB", link);
        webView.setWebViewClient(new MyBrowser());
        webView.getSettings().setJavaScriptEnabled(true);
        //webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setUseWideViewPort(true);
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

        //webView.getSettings().setDomStorageEnabled(true);
        //webView.getSettings().setAppCachePath(String.valueOf(getCacheDir()));
        //webView.getSettings().setAppCacheEnabled(true);
        webView.getSettings().setSupportZoom(true);
        webView.getSettings().setBuiltInZoomControls(true);
        webView.loadUrl(link);
    }

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

java android android-webview

3
推荐指数
1
解决办法
8828
查看次数