通过浏览器与原生应用程序在Android上缓慢触摸移动轮询

时间:2011-03-18 14:12:51

标签: javascript android android-webview

在我看来,iPhone捕捉触摸移动事件的频率是Android的4倍。

我在javascript中编码并通过浏览器访问。据我所知,Android和iPhone都使用webkit - 所以我没想到会有这样的差异。

有没有办法增加Androids浏览器的轮询?

Android平台上的原生应用的网络视图中的轮询速度是否很慢?

有没有办法在Android平台上增加网页浏览的轮询?

Android平台上的本机应用中的轮询速度是否很慢?

我知道Android上的硬件/固件会有所不同。


我真正想知道的是 - 通过网页浏览,本机代码或浏览器内的javascript提高Android触摸屏轮询率的任何已知方法

4 个答案:

答案 0 :(得分:4)

在我便宜的Android ICS平板电脑上,touchmove轮询频率非常慢。 它使用

在div内显着增加轮询频率

-webkit-transform:translate3d(0,0,0);

在其CSS中。

答案 1 :(得分:2)

我不是很熟悉这个。但我可以帮助一些人。

  

有没有办法增加   为Androids浏览器进行投票?

  • 如果是这样,可能需要修改它的源代码并重建它。
  

从网络视图调查是否缓慢   Android平台上的原生应用程序?

  • 我不知道但是,这里有一个非常简单的WebTest应用程序的链接,该应用程序只包含一个启用了javascript的WebView以及一个要求URL转到的对话框。如果您愿意,可以使用它来测试它。 http://dl.dropbox.com/u/5724095/Android%20Apps/WebTest.apk
  

有没有办法增加   在Android上轮询网络视图   平台?

  • 似乎没有任何明显的方法可以通过webview提供的方法来实现。如果可以的话,可能需要弄乱WebView小部件的源代码。
  

本机应用中的轮询速度是否很慢?   在Android平台上?

  • 如果你能给我一些关于你获得多少次呼叫的指标(可能每秒呼叫?)我可以在onTouchListener中针对非webview进行测试并比较两者。

编辑:我在非webview上使用OnTouchListener做了一些简单的测试,看起来我每秒大约需要35-38次调用onTouch()。为了获得这个数字,我设置了一个监听器,它在ACTION_DOWN中保存timeStamp,然后每次调用onTouch时递增计数器,然后在当前时间比开始时间多1000毫秒时报告计数器的位置。

答案 2 :(得分:2)

我尝试过网络视图测试,不幸的是它看起来与浏览器相同。

以下是捕获的touchmove事件绘制字母a的一些数据。两者的持续时间相似(663 vs 672),所有单位都以毫秒为单位。

“iPhone_via_browser_times”://(来自touchstart事件的ms) [0,104,125,136,151,167,183,199,215,231,247,263,279,295,311,327,347,357,372,391,407,423,439,455,503,519,535,551,567,583,603,615,631,647,663]

“Android_via_webview_times”://(来自touchstart的ms) [0,56,140,​​195,252,336,392,449,531,615,672]

“Android_via_browser_times”://(以毫秒为单位) [0,105,161,217,300,356,413,497,553]

Android通过webview民意调查平均每次(672/11)61ms Android通过浏览器平均每隔(553/9)61毫秒进行一次轮询

iPhone平均每(663/35)19毫秒轮询

但我有其他Android设备的其他数据,其中轮询更糟糕。

答案 3 :(得分:0)

发现与讨论的间隔有关的一些问题。 http://code.google.com/p/android/issues/detail?id=4549 http://code.google.com/p/android/issues/detail?id=5491

由于用户没有平滑的线条绘制画布,我卡住了。但是我们动态地使用平滑方法来解决这个问题。