zoukankan      html  css  js  c++  java
  • Android WebView Scrolling Performance

    RIA Mobile Solutions

     

    Android WebView Scrolling Performance

    Posted on April 23rd, 2012

    Our team is currently developing a web based application that needs to be consumed in Android WebView.    One of the biggest performance issues we noticed was scrolling a long list of users on one page.   The response to the gesture to scroll down through the list would often be met with a half second delay followed by very unsmooth scroll.

    However, viewing the same page in the in the Android native browser didn’t produce the same results.  The response time to the gesture to scroll was almost instant and the scroll was smooth.

    Just for reference, this was tested on Android Xoom (Android Version: 4.0.3) and a Toshiba AT100 (Android 3.1).

    This post on StackOverflow helped resolve the issue:

    http://stackoverflow.com/questions/7422427/android-webview-slow

    The first suggestion was to setRenderPriority on the webview settings to high and set the cachemode to load no cache.  Setting these didn’t provide any noticeable gains in performance.

    The following suggestion was to enable hardware acceleration.  This significantly increased the response to the gesture to scroll and the smoothness of the scrolling.

    Checkout the Android document for more information on hardware acceleration. 

    http://developer.android.com/guide/topics/graphics/hardware-accel.html

    In short, hardware acceleration renders all drawing operation in a view using the GPU, reducing CPU consumption and increasing the amount of RAM used by the application.  The problem is, the acceleration may cause rendering issue with older applications.  To work around that, you can target where you want to the acceleration to occur.  Hardware acceleration can be targeted at the application level, activity level, window level or view level.

    For our fix, we enabled the acceleration at the application level through the manifest file by setting the application android:hardwareAccelerated=true:

    If you are running a device with Android 4.0, you can ‘Force GPU rendering’ to test this functionality.  The downside is that this forces GPU rendering for all your applications and may cause issues with older apps, although it’s a nice way to quickly test if it fixes your issue.

    image

    Few Updated Notes:

    1. If you feel like the app is still slow, make sure to build a release version and test that on the device. The difference between debug and release mode seemed noticeable
    2. Here is a good article on how graphics are rendered in Android:  https://plus.google.com/105051985738280261832/posts/2FXDCz8x93s

      It noted that “The main change in this regard in Android 4.0 is that now apps that are explicitly targeting 4.0 or higher will have acceleration enabled by default rather than having to put android:handwareAccelerated=”true” in their manifest.”

  • 相关阅读:
    一些常用的正则表达式
    ASP.net国际化页面可以选择输出语言
    SQL 2008 数据表导入到 ORACLE 10g
    转载 SQL Server 2008中增强的汇总技巧
    类似于行转列的一种需求
    第一次
    很奇怪的一个SQL 语句
    MS SQL 中 FULL JOIN 的用法
    [转载]网络编辑必知常识:什么是PV、UV和PR值 zz
    寒假学习2实验一Linux系统的安装和常用命令
  • 原文地址:https://www.cnblogs.com/lexus/p/2798236.html
Copyright © 2011-2022 走看看