スマホでの起動時間について

メールでご質問頂いた件ですが、有用な情報と思われますので回答と共に投稿致します。

1つ質問させていただきたいのですが、android端末でAirNovelアプリを起動した際、ゲーム画面が表示されるまでに、10秒以上かかってしまうのは、シナリオ文章や画像などのデータを、最初に読み込んでいるためでしょうか?
 読み込みと云うより、ファイルの展開(書き込み)に時間が掛かっている物と思われます。
 apkファイルがAndroidの実行形式ですが、これは本質的にアプリに必要なファイルをzipで
一つにまとめただけの物なんです。
apkファイルの構成 - アプリケーションの配布 - Android入門

 最近のスマートフォン端末ではSSD媒体にファイルを保存しています。
 フラッシュメモリへの書き込み速度はHDDより遅いと云われ、おそらくゲーム開始時には
これがボトルネックになっているのではないかと思います。
 メモリキャッシュの大きさも展開速度に影響を及ぼします。
(iOSでの話ですが、zipファイルをただ展開するだけでもずいぶん時間が掛かるので、
Adobe AIRアプリ起動時の展開に走る同様の処理に、時間が掛かっているようなのです)

起動するまでの時間を短縮する方法、もしくは起動するまでに「now loading...」などの待機文字を表示する方法などはありますでしょうか?
 Androidでの起動時間の短縮方法は、今のところありません。

 2/22公開のVer2.42より、スクリプトの一行目に「now loading」的な画像を表示する
処理を加えました。これにより手元のNexus Sでは、
 ホーム画面でタップ→now loading …… 四秒ほど
 now loading→タイトル画面が表示 …… 二秒ほど
という感じです。

 ちなみにiPhone4では「桜の樹の下には」タイトル表示までに二~三秒程度しか掛かりません。
iOSで動作する他のノベルエンジンであるArtemisでも同じくらいなので、
AIRNovelの問題と云うより(AIR for)Androidの実装に依るかと思われます。


 試しに最小サイズのAIRNovelアプリ(ans)Android marketで公開してみました
 apkファイルのサイズですが、現時点で以下になります。
・ans……328kb
・桜……7.7MB(7,738kb)

 Nexus Sでは、ansで起動に二秒ほどです。(桜で云う「now loading」まで)
スポンサーサイト



Android Market登録、これでメジャースマホ制覇!

AIRNovel製の「桜の樹の下には」をAndroid Marketに登録しました!
android_market.jpg
桜の樹の下には - Android Market


注意点としては、証明書の有効期限は2022年以降まで有効にする事。
署名ファイル(*.p12)作成時にパラメータを指定し作成→ビルドするだけです。
ここの「証明書の有効期限は25年を指定」を参照。
実機テストで動いていたら、そのままマーケット登録→ダウンロードして動作すると思います。

更新:Chrome Web Store、Android形式追加

●リリース Ansan_sdkAndroidChromeOSiPadiPhone
2.42
* add:Androidのback、menuキーに対応(deftag.as変更(an_sdk.zip 又は uc_and_sdk.zip)、その他はAndroid.zip・2011/02/22)
2.41
* add:Chrome Web Storeリリースパッケージ追加
* chg:Android実機(Google Nexus S、画面800x480)にて動作確認・素材修正
* bug:「桜の樹の下には」アルバム画面で左上以外マウスに反応しない件を修正

不具合は_album.anのみの更新です。呼ぶべきマクロ名間違えてました。

chromewebstore.gif
ChromeOS.zip、というのがChrome Web Storeリリース用のひとかたまりです。
Packageフォルダを丸々登録出来ます。

登録の仕方は別途ググって下さい。Googleは随時改良する会社で、情報がすぐ変わるので。
ざっくり云うと、$5払って開発者登録zipで固めてuploadするだけ
更新する場合も「manifest.json」のバージョン番号を上げzipで固めてuploadするだけ
世界中のインストール済みブラウザに自動で更新されます。
(すぐにやりたい場合は[ウインドウ]-[拡張機能]のデベロッパーモード「拡張機能を今すぐ更新」)

色々判りました。
フォルダ名が「_」で始まってはいけない。
 ファイル名は構わない。日本語ファイル名などもOK。
現状、10MB程度でないとアップロードが出来ない。桜でぎりぎり
swfはローカル実行版を使用する。
現状、Flash動作時はセーブ時に画面サムネイルが保存されませんが、
 AIRNovel側で何とか出来るかもです。
●インストールしたファイルはそのままキャッシュフォルダに存在するので、暗号化は必要

android.jpg
Google Nexus S実機で動作確認しつつ、パッケージを整えました。
仮想マシンは遅すぎる、実機でないと開発にならない。
 だけどAIRなのでPC上でもそのまま動き、デバッグは楽ちんなので問題なし。
実機もスクリプト開始までに四秒、そこからタイトル画面までに二秒ほどかかる。
 Ansなら全合計で一秒ほどなので、パッケージの大きさに依るのかも知れない。
 パッケージの大きさは画像やBGMファイルですぐMB単位で膨らむので、
 ノベルゲームは少々不利。
処理速度的にはGoogle Nexus S(Ginger Bread世代)以降でないとつらいかも。
 つまり今年出る端末なら良さげ
現状、日本語ファイル名不可。サンプルは全て英数字にしています。
プラグインいける(桜に必要なのは全て動いてます)
 Quakeプラグインのみ、最初の一回がガクガクと遅く
 二回目以降は良い速度で揺れる。調整で何とかなる?

AIR for Androidが入ったFlex SDK 4.5 Heroは現在進行形で開発中。
上記問題点もまだまだ改良されるのかもですが、
現状でも結構AIRらしくPCのまま動かせるような印象を持ちました。

XNovel ver2.06、ストア機能に向けて

App_Store_mini.jpg
ver2.05通過、更新内容はこちら。xn_waitタグのtime属性の単位変更と、選択肢にしおりボタンを追加です。

さてver2.06を申請しました。(前回は2/11-2/16、今回は2/16-2/21?)
機能の更新内容はこちら。
* add:初回起動時かを示す変数sys:xn.isFirstBoot追加
* add:本文に「#{tmp:変数名}」形式で変数値を埋め込めるように(全角変換はされない)
* add:ユーザーに文字列入力を促すinputタグを追加(Cancel時はtmp:xn.input==true)
* add:iAdをトップページに
* chg:半角文字も表示するように。ただし現状、全角文字推奨。
* chg:tate_pos、yoko_pos未指定時は前回の値とするように
* chg:bgレイヤは縦書きでも横ずらししないように
* bug:リテラルが使えなかった件修正(true、false、null、undefined←こっそり追加)
* bug:xn_waitタグでtime属性を1秒以下に指定すると無効(time=0と同じ)になる不具合

* add: Variable sys:xn.isFirstBoot addition to show first start
* add: Can bury variate in the text in a "#{tmp:variable name}" form (the full size conversion is not done)
* add: I add the input tag which presses a user for character string input (in Cancel tmp:xn.input==true)
* add: iAd on the top page
* chg: Display the halfwidth character. But the present conditions, a fullwidth character are recommended.
* chg: Assume it the last value at the time of tate_pos, the yoko_pos non-appointment
* chg: Even a writing from top to bottom puts off the side, and do not do the bg layer
* bug: A matter correction (I add true, false, null, undefined ← in secret) that Literal was not usable
* bug: Malfunction to become the invalidity (I agree with time=0) when I appoint below time attribute with xn_wait tag for one second

XNovelストアの話も出ていますがいきなり物を売るのは怖いので、まずはiAdで様子を見ます。
iAdはトップページのXNovel書庫のみ表示され、なるべく邪魔にならないようにしてます。
詳細画面やゲーム画面では出しません)

アドオン販売ですが、まずは「iAdを削除する」ってアドオンで様子を見るのが、
トラブルがあっても一番皆さんにご迷惑を掛けない気がしてきました。

アドオン販売はまだまだ先ですが、とりあえず布石を打っておきます。

XNovelストア機能追加妄想など

構想って言うほどのものじゃないので妄想で。

色々ご意見頂いています。
●XNovel本棚でもダウンロードがめんどくさい。
●アドオン形式で販売出来ませんか?

ストアを内蔵していると解決するのかなぁと。既存のePub読み込みはそのままで。

問題点があるとしたら一つ、「売れた数ごまかされちゃうんじゃない?」という部分をどうクリアするか。
多分アドオン毎に別の口座に振り込んでくれ、ってのは無理かなと思う(調べてないですが、恐らく)ので。

考えるのが好きなのでそういうのも考えてまして。
アドオン作品一つ売れる度に、制作者さんにメールを送ればいいんじゃないかなと思います。
「ふぁみべぇめ、ちゃんとカウントしてるだろうな」と思った人は試しに一本購入すると、
数分で自分の登録したメールアドレスに「作品【***】が一本売れました」というメールが送られる。
「端末」を(製造番号? で)特定出来ても「誰が」購入したかはXNovelや私に判る手段はないので、制作者の時だけちゃんとする、みたいな「数を誤魔化す方法がない」。

メールなのか、日時が見れる販売履歴サービス画面なのか形式はともかく、そういう仕組みなら
仕組み的に公正に出来るんじゃないかなぁと。
……そういうシステムを作るのがちょい面倒ですが(´ω⊂w

落ち着いたらやってみたいですねぇ。
プロフィール

ふぁみべぇ

Author:ふぁみべぇ
 →@famibee
 →メアド(四角を@に)

カテゴリ
リンク
検索フォーム
最新記事
月別アーカイブ