4

デモ スクリプト (新しいアプリ ジェネレーターによって生成されたもの) は、SGS2 で開始するのに約 6 秒かかります。これはjRubyの税金ですか、それとも私が正しくインストールできていないrake installのですか?

もしそれがそのままなら、ライバルより6秒長くスピナーを再生するアプリが誰にとっても価値があるのか​​ どうか疑問に思っています(純粋な質問-トローリングではありません)。

4

1 に答える 1

6

起動時間は今のままなので、何も悪いことはしていません。起動時間の主な部分は、JRuby の初期化です。これをスピードアップするための作業が進行中ですが、近い将来に大きな変更が行われることは期待できません。

起動時間については、いくつかの回避策があります。

退屈なプログレス スピナーの代わりに、きれいなスプラッシュを追加できます。これを行うには、 res/layout/ に splash.xml を追加します。素敵なスプラッシュは、起動が短く見えるようにします。

ユーザーがアプリを起動する前に、JRuby ランタイムを初期化できます。1 つの方法は、BOOT_COMPLETED イベントをリッスンするブロードキャスト レシーバーを追加して、起動時にサービスを開始することです。サービスは空でもかまいませんが、サービスを開始すると JRuby ランタイムが初期化され、後で開始されたアクティビティはミリ秒以内に開始されます。この例は、次の場所にあります。

https://github.com/ruboto/ruboto/wiki/Tutorial%3A-Detect-and-display-the-connected-WIFI-network

アプリの初期アクティビティを Java ベースにして、JRuby の初期化をバックグラウンドで開始できます。その場合、JRuby はユーザーが次のアクティビティを選択したときに初期化されます。

より長い起動時間の実際の影響については、私には言えません。速いほど良いのですが、起動に 10 秒以上かかる Java ベースのアプリをいくつか使用しています。アプリの種類によって大きく異なります。

于 2013-01-28T09:56:36.143 に答える