较新版本的 Android (> 2.2) 包括 v8 javascript 引擎,而旧版本只有 JSC。但是,根据http://blogs.nitobi.com/joe/2011/01/14/android-your-js-engine-is-not-always-v8/,在运行时使用哪个 javascript 引擎似乎取决于构建时存在的环境变量 ( JS_ENGINE
),以及设备的硬件规格:
# The default / alternative engine depends on the device class.
# On devices with a lot of memory (e.g. Passion/Sholes), the
# default is V8. On everything else, the only choice is JSC.
我的问题是:有什么方法可以从网页、嵌入式 WebView 或应用程序中确定正在使用哪个 javascript 引擎?
如果答案是否定的,有人知道安卓模拟器使用的是哪个 JS 引擎吗?
我问这个的原因是因为这个问题:http ://code.google.com/p/android/issues/detail?id=12987
基本上,JSC 中的 javascript-to-java 桥可能在 Android 2.3.X 上被破坏,这会影响我正在尝试编写的应用程序。我在模拟器的 JNI 深处看到了一个段错误,但在我测试过的少数物理设备上却没有。我正在尝试确定这是仅限模拟器的东西,仅限 JSC 的东西,还是完全不同的东西。