演示脚本(由新应用生成器生成的脚本)在我的 SGS2 上启动大约需要 6 秒。这是 jRuby 税还是我没有正确安装它(我假设rake install
是这样)?
如果它就是这样,那么我想知道一个比其竞争对手多玩 6 秒的应用程序是否对任何人都有任何价值(真正的问题 - 不是拖钓)。
启动时间就是现在的样子,所以你没有做错任何事。启动时间的主要部分是 JRuby 初始化。正在努力加快这一进程,但您不应期望在不久的将来会发生重大变化。
启动时间有几种解决方法。
您可以添加漂亮的飞溅,而不是无聊的进度微调器。您可以通过在 res/layout/ 中添加 splash.xml 来做到这一点。一个漂亮的飞溅将使启动看起来更短。
您可以在用户启动应用程序之前初始化 JRuby 运行时。一种方法是通过添加侦听 BOOT_COMPLETED 事件的广播接收器在启动时启动服务。服务可以是空的,但是通过启动服务,JRuby 运行时被初始化,之后启动的任何活动都将在几毫秒内启动。你可以在这里找到一个例子:
https://github.com/ruboto/ruboto/wiki/Tutorial%3A-Detect-and-display-the-connected-WIFI-network
您可以让应用程序的初始活动基于 Java,并在后台启动 JRuby 初始化。在这种情况下,JRuby 将在用户选择下一个活动时被初始化。
我不能说更长的启动时间的实际影响是什么。越快越好,但我使用了几个基于 Java 的应用程序,它们需要 10 秒或更长时间才能启动,对我来说,这并不是一个阻碍。这在很大程度上取决于应用程序的类型。