HSP : HSP3Dish / onion software 2013(c)

# HSP3Dish android(NDK)版プログラミングガイド

1. android版 HSP3Dish概要
2. 環境の準備
3. Platform APIインストール
4. HSP3Dish Helperの設定
5. 新規プロジェクトの作成
6. プロジェクトのビルド
7. サンプルプロジェクト
8. ソースのコンパイル
9. 実機への転送と実行
10. データファイルの準備
11. システム情報の取得
12. タスク(アクティビティ)呼び出し
13. 画面サイズのスケーリングについて
14. リリースビルド
15. デバイスコントロールについて
16. AdMobによる広告配信(new)
17. android版の注意事項、制限
18. android版の更新予定

## android版 HSP3Dish概要

android版 HSP3Dishは、android OS搭載機種(スマートフォン、タブレット等)上で動作するHSP3Dishのランタイムです。 Windows版 HSP3Dishがサポートする機能をandroid OS上で再現することが可能です。 (android版 HSP3Dishは、Windows版のスクリプトを実行させることを目的としており、HSP3開発システムそのものをandroid上で再現するものではありません。)
このマニュアルでは、android版の利用方法、注意点などを説明していきます。
現状ではandroid上で実行できるファイルをビルドするためには、開発のための環境設定を行なう必要があります。開発環境の構築に費用はかかりません。すべて無料で準備することができます。 これらは、Windows上で動作し、接続されているandroidデバイス上で動作の確認を行なうことができます。
HSP3Dishでのビルドを支援するための、HSP3Dish Helperツールが同梱されています。 これにより、比較的スムーズにandroid向けにビルドを行なうことが可能になります。 (尚、統合開発環境Eclipse上でお使い頂くことも可能ですが、 手順が多いためHSP3Dish Helperの利用を推奨しています。)

## 環境の準備

androidの実機上で動作させるためには、以下が必要となります。

- android開発環境(SDK) → [ダウンロードサイト]

  最新版のWindows版(インストーラーではない)zipアーカイブを任意のフォルダに解凍してください。推奨フォルダは、「c:\android\android-sdk〜」です。

- JDK(Java Development Kit) → [ダウンロードサイト]

  JDK (Java Development Kit)をインストールしてください。x86版のJRE6+JDK6を推奨します。JDK7(ver1.7)は、apkファイルの署名が正しく行なわれないため推奨されません。

- Android NDK（Native Development Kit）開発環境 → [ダウンロードサイト]

  最新版のWindows版zipアーカイブを任意のフォルダに解凍してください。推奨フォルダは、「c:\android\android-ndk〜」です。

- Apache Ant(開発補助ツール) → [ダウンロードサイト]

  最新版のzipアーカイブを任意のフォルダに解凍してください。推奨フォルダは、「c:\android\apache-ant〜」です。

推奨するフォルダにアーカイブを解凍した場合、上のような状態になります。(英文字のみ、スペースを含まないフォルダ名を使用してください)

## Platform APIインストール

ビルドに必要なPlatform APIのインストールを行ないます。 android開発環境(SDK)フォルダ内にある、「SDK Manager.exe」を実行してください。

このツールにより、必要なAPIをインストールすることができます。(ネットに接続されている必要があります)
「Android 4.2.2 (API 17)」のような形で、それぞれのバージョンに対応したAPIのチェックボックスが表示されます。 この中で、「Tools」「Android 4.2.2 (API 17)」はチェックを入れて必ずインストールするようにしてください。 それ以外のバージョンは必要に応じてインストールして頂いて構いません。
「Install packages...」のボタンを押すことで、ダウンロードとインストールが行なわれます。 インストールされた項目は、「Installed」の表示が付加されます。

## HSP3Dish Helperの設定

HSPインストールフォルダ(最新版のHSP3Dish開発セットによりアップデートされている必要があります)にあるHSP3Dish Helper(hsp3dh.exe)を起動してください。

「オプション」ボタンを押して表示される画面で、android開発環境(SDK)などのインストール行なったフォルダの場所を設定してください。

推奨するフォルダにインストールされた場合、上のような設定になります。
最後の「プロジェクト」フォルダ設定は、android用にアプリをビルドする際に作成されるプロジェクトフォルダの起点になる位置を示します。推奨フォルダは、「c:\android」です。

## 新規プロジェクトの作成

HSP3Dish Helper(hsp3dh.exe)を起動して、中央下にある「android」ボタンを押して、androidビルドのモードにします。

上のようなプロジェクト新規作成のダイアログが表示されます。(新規作成になっていない場合は、「新規プロジェクト」のボタンを押して下さい)
以下の項目を設定して「新規作成」ボタンを押すことで、指定したプロジェクトのフォルダが作成され、android用のビルド準備が整います。 android用アプリの開発では、1つのアプリにつき必ず1つのプロジェクトファイルを作成する必要があります。プロジェクトのフォルダは、設定メニューで設定されている場所を起点に作成されます。

- プロジェクト名

プロジェクトのタイトル名となります。スペースを含まない英文字のみで指定してください。

- ID

ビルドのターゲットIDを設定します。ターゲットIDは、SDKのAPIバージョンを指定するための番号になります。デフォルトで「"android-17"」(4.2.2)が指定されています。

通常は、変更する必要はありません。他のターゲットIDが必要な場合は、「ID...」ボタンを含めず押して表示される一欄の中からIDを選んで入力してください。

- パッケージ名

アプリを識別するための情報となります。パッケージ名には、他のパッケージ名と重複しない名称が求められます。 通常は、ドメインをトップレベルドメインから逆方法に並べたものを使うことが推奨されています。たとえば、「net.onionsoft.testapp」のように階層的に指定します。 名称には、スペースを含まない英文字のみで指定してください。Javaのパッケージ命名規約なども参考にしてみてください。
パッケージ名を省略した場合は、日付とプロジェクト名から自動的に生成される文字列が適用されます。

- AdMobを使用する

AdMobによる広告配信アプリを作成する場合にチェックを入れてください。 AdMobのライブラリ及びSDK4.2.2以降が必要となります。詳しくは、「AdMobによる広告配信」を参照してください。

## プロジェクトのビルド

HSP3Dish Helper(hsp3dh.exe)を起動して、中央下にある「android」ボタンを押して、androidビルドのモードにします。

上のようなプロジェクトビルドのダイアログが表示されます。(ビルドになっていない場合は、「既存プロジェクト」のボタンを押して下さい)
プロジェクトのビルドを行なうことで、指定されたHSPスクリプト及びデータファイルをandroidで実行できる形式(apkファイル)として出力されます。 android用アプリの開発では、実行のためのプログラムとデータをすべてまとめたapkファイルが最終的な出力結果となります。
ダイアログで設定する項目は、以下の通りです。

- ソーススクリプト

実行するためのHSPスクリプト(.hsp)を指定します。必ずHSP3Dish用に記述されたスクリプトでなければなりません。「参照」ボタンを押すことで、ファイル選択ダイアログを開くことができます。
この項目を空欄にした場合は、プロジェクトフォルダ以下の「hspフォルダ」内にある.hspファイルを対象のスクリプトとします。「hspフォルダ」が存在しない場合は、ソーススクリプトの変換は行なわれません。

- データファイル(dpm)

スクリプトから参照されるデータが格納されているdpmファイルを指定します。dpmファイルは、HSPで使用している形式で、複数のファイルが1つのdpmファイルにパックされています。(「作成...」ボタンを押すことで、指定したフォルダ内にあるすべてのファイルをdata.dpmというファイルにパックして、そのファイルを指定することができます。) データファイルの指定が空欄の場合は、dpmファイルの参照はされません。 詳しくは、データファイルの準備を参照してください。

- プロジェクト名

ビルドの対象となるプロジェクトを選択します。プロジェクトのフォルダが作成されて、ビルドの準備が整っているものの中から、1つを選択することができます。 (「更新」ボタンを押すことで、プロジェクトのフォルダが再検索されます。)

プロジェクト名などの項目を指定した後、「ビルド」ボタンを押すことでビルドが開始されます。HSPのソーススクリプトの変換及びNDKのコンパイルからパッケージの生成までをすべて自動で行ないます。
ビルドの結果は、consoleウィンドウに表示されます。

正常に終了すると、「終了しました」のメッセージが表示され、プロジェクトフォルダ以下のbinに、apkファイルが生成されています。
「クリーン」ボタンを押すことで、ビルドされたデータを破棄してプロジェクトフォルダを初期化することができます。全体を再度ビルドする場合には、一度「クリーン」によりデータを破棄しておいてください。

## サンプルプロジェクト

sample/hsp3dishフォルダには、HSP3Dishを使うためのサンプルスクリプトが含まれています。 ブロック崩しのHSP3Dishサンプル(block3.hsp)を、ソーススクリプトに指定して、 データファイル(dpm)は空欄のまま、ビルドを実行することができます。

## 実機への転送と実行

プロジェクトのビルドが完了したら、androidの実機に転送して確認することが可能です。 (エミュレータ上での実行は現在まだサポートされていません)
androidの実機をUSBで接続し、OSから認識されている状態で「転送」ボタンを押すことで、ビルド済みのapkファイルを転送(インストール)します。 後はアプリケーション一覧から、転送したアプリの実行を行なってください。
android実機の接続設定については、デバイスの機種ごとに異なります。以下のサイトなどを参考にしてみてください。

- 実機でデバッグするには [逆引きAndroid入門]

実機への転送ができない場合でも、ビルドで生成されたapkファイルをネットやUSBメモリを経由して転送してインストールを行ない実行の確認をすることも可能です。
「Logcat」ボタンを押して実行ログを表示させることが可能です。実機に転送して実行した際の、HSPからのエラーや初期化メッセージを確認することができます。

## データファイルの準備

スクリプトから参照されるデータファイルは2通りの方法で用意することができます。 1つは、「データファイル(dpm)」の項目で設定されているデータフォルダ(data.dpmを生成します)にファイルをコピーして使用する方法。基本的には、こちらの方法を使用してください。 ただし、サウンドファイル(wav,mp3など)は認識されないので注意してください。
もう1つの方法は、プロジェクトディレクトリ内のassetsフォルダにファイルをコピーするというものです。サウンドのファイルは必ず、assetsフォルダに入れるようにしてください。 assetsフォルダには、画像ファイルを入れることも可能ですが、assetsフォルダのリソースのサイズ・個数に制限があるため、1MBを越える大きなファイルを多数使用する場合は、data.dpmのデータフォルダを使用してください。
また、テキストファイルなどその他のデータファイルは必ず、data.dpmのデータフォルダを使用するようにしてください。
ただし、data.dpmによるファイルパックからの読み出しには、HSPのpackfile仕様と同様の制限(ファイル名の長さ12文字以内)がありますので注意してください。

## システム情報の取得

sysinfo関数によりOSバージョン及び、デバイス名を取得することが可能になりました。 sysinfo(0)で、「android 2.3.3」のような文字列を取得することができます。これにより、ソース中で現在動作しているOSやバージョンを判別可能です。
また、sysinfo(2)で、デバイス名を取得することができます。現在、sysinfo関数の他の項目はサポートされていません。

## タスク(アクティビティ)呼び出し

exec命令により、他のタスク(アクティビティ)を呼び出すことが可能です。

    		exec "パッケージ名", 0, "クラス名"

２番目のパラメーター(実行モード)が0の場合は、「パッケージ名」「クラス名」により、 実行するタスクを指定します。 セキュリティの解除が必要な場合は、「AndroidManifest.xml」のに起動するクラスを記述してください。

より手軽に実行する手段として、URIを指定してアプリを呼び出す方法があります。

    		exec "URI文字列", 16

たとえば、URIに「http://hsp.tv」を指定した場合は、規定のwebブラウザを開きURLとして表示します。 「tel:123456789」によりダイアラーを起動します。他にもOSがサポートする様々な呼び出し方法が存在します。

## 画面サイズのスケーリングについて

最初に作成された解像度と異なるスクリーン上で実行する際に、スケーリング(拡大縮小)を適用することができます。
jniフォルダ内のmain.cソースを編集することで、スケーリングに関する設定を行ないます。
「static void engine_handle_cmd」で始まるソースコード(160行付近)にある以下の行を修正します。

    		//hgio_view( 480, 320 );
    		//hgio_scale( 1.0f, 1.0f );
    		//hgio_autoscale( 0 );

行頭が「//」になっている項目は、コメントアウトされ機能しません。 初期設定では、スケーリングの設定は行なっていませんので、上のようになっているはずです。

    		hgio_view( 480, 320 );

まず、「//」を消去して、hgio_viewの行を有効にします。hgio_viewにより、もともとの画面サイズ(スクリプトが動作する解像度)を設定してください。上の例では、横サイズが480、縦サイズが320であることを示しています。

    		hgio_scale( 2.0f, 2.0f );

指定した倍率で表示を行ないたい場合は、hgio_scaleの行を有効にします。hgio_scaleにより、もともとの画面サイズに対して、指定した倍率で表示を行ないます。倍率を固定したい場合には、こちらを使用してください。通常は、hgio_autoscaleを使用することを推奨します。

    		hgio_autoscale( 0 );

画面のスケーリングを自動的に調整したい場合は、hgio_autoscaleの行を有効にします。hgio_autoscaleにより、描画した画面サイズを適切に拡大縮小し、現在のスクリーンに表示させます。
カッコ内の数値で、スケーリングの方法をいくつか指定することができます。

    		0 : 画面全体に収まる最適な大きさ(縦横比は維持)
    		1 : X方向のサイズを基準に拡大縮小(縦横比は維持)
    		2 : Y方向のサイズを基準に拡大縮小(縦横比は維持)
    		3 : 縦横比は無視して画面全体に表示

スケーリングの設定は、起動時に行なわれます。スクリプト実行中に変更することはできません。

    		hgio_uvfix( 1 );

テクスチャを拡大した際に、隣のピクセルがブレンドされてしまう現象を補正します。 通常はこのオプションを指定する必要はありませんが、画面のスケーリング等で正しくテクスチャが表示されない場合に試してみてください。
カッコ内の数値が0以外の場合は補正がONになります。0の場合は補正がOFFになります。

## デバイスコントロールについて

Androidデバイス固有の機能にdevcontrolなどの命令でアクセスすることが可能です。

    		devcontrol "コントロールコマンド",パラメーター1,パラメーター2,パラメーター3

上のような書式で、デバイスコントロールを行ないます。 Androidデバイス上では、文字列として指定するコントロールコマンドは、以下を認識します。 (コントロールコマンドの文字列は、大文字小文字も含めて完全に一致する必要があります。)
認識しないコントロールコマンドを記述した場合もエラーは発生しませんので注意してください。

    	コントロールコマンド    内容
    	-------------------------------------------
    	vibrate			バイブ(振動)動作(パラメーター1)
    	AdMob			AdMobによる広告の表示

たとえば、

    		devcontrol "vibrate",400

は、バイブ(振動)動作を行なうようデバイスに指示を出します。
パラメーターの数値を変えることにより、振動の長さ(ミリ秒単位)を変えることができます。

## リリースビルド

HSP3Dish Helperからリリースビルドを行なうと、署名入りのapkファイルを生成することができます。これにより、Google Play(Android マーケット)に作成したアプリを登録することが可能になります。 公開するための、おおまかな手順は以下の通りです。

- Googleに開発者登録を行なう(アプリを配布するためには、有償($25)の登録が必要になります)
- 署名のための証明書(keystore)を作成する
- HSP3Dish Helperでリリースビルドを行なう
- Android Developer Consoleからアップロードする

順を追って説明していきます。

- Googleに開発者登録を行なう

    	http://developer.android.com/

androidのデベロッパーページを開き、「公開」(publish)の詳細ページを選択します。 Googleアカウントでサインインを行ない、開発者情報を適切に入力して登録を行ないます。
(電話番号の入力は、国番号を含めて行ないます。日本の場合は先頭に「81」を付け、市外局番の先頭「0」を省くのが決まりです。「03-1234-5678」の場合は、「+81-3-1234-5678」となります。)
次に、Google Checkoutを利用して登録の決済を行ないます。クレジットカード等を使って支払いを行なうことができます。
すべて終了すると、Android Developer Consoleのページにアクセスできるようになります。 有料アプリを登録する場合は、さらに銀行の口座などのアカウント情報を設定する必要があります。

- 署名のための証明書(keystore)を作成する

まず、HSP3Dish Helperを起動し、androidタブの新規プロジェクトページを開きます。 次に、「KEY作成」ボタンを押します。(キー名は、「hspapp」のままで問題ありません)
コマンドプロンプトの画面が開き、以下の項目について情報を求めてくるのでキーボードから入力してください。すべて半角英文字で入力することを推奨します。

    	・パスワード
    	・パスワード再入力
    	・姓名
    	・組織単位名(部門・部署名)
    	・組織名(会社・団体名)
    	・都市名または地域名(市町村名)
    	・州名または地方名(都道府県名)
    	・国番号(日本の場合は81を入力)
    	・よろしいですか?(「y」を入力)
    	・鍵パスワード(Enterを入力)

以上で、「hspapp.keystore」ファイルがプロジェクトフォルダのルートに作成されます。 このファイルは、アプリ署名のために必要なので、削除しないで大切に保管しておいてください。

- HSP3Dish Helperでリリースビルドを行なう

HSP3Dish Helperの、androidタブで既存プロジェクトページを開きます。 ビルドしたいプロジェクトを選択し、通常のビルドを行なって正常に動作することを確認してください。
次に「リリース」ボタンを押してください。アプリのリリースビルドを実行し、署名を行ないます。 この時、コマンドプロンプトの画面が開き、パスワードを求められるので「hspapp.keystore」を作成した時に入力したパスワードを入力してください。
以上で、プロジェクトのbinフォルダに「プロジェクト名.apk」のファイルが生成されます。

- Android Developer Consoleからアップロードする

Android Developer Consoleのページで、新規のアプリを追加し、生成された「プロジェクト名.apk」のファイルをアップロードしてください。 (プロジェクト名-debug.apkや、プロジェクト名-release.apkのファイルは署名されていませんので、無効になります)
Google Playに登録を行なう場合は、紹介文やスクリーンショット、サポート情報などを設定する必要があります。
アップロードしたapkファイルをactivate(有効化)し、publish(公開)ボタンを押すことで、アプリを一般に公開します。(実際に公開されるまで、数時間の遅延があります)
公開されている情報は、Android Developer Consoleから、いつでも修正を行なうことができます。 ファイルを更新する場合は、再度リリースビルドを行なって、apkファイルを差し替えた後にactivate(有効化)してください。 ただし、更新を行なうためには、バージョン番号を上げる必要があります。プロジェクトが使用している「AndroidManifest.xml」ファイルの、android:versionCode、android:versionName項目の数値を更新してから、リリースビルドを行なうようにしてください。

## AdMobによる広告配信

- 広告配信のための準備

HSP3DishではAdMobを使った広告配信モデルのアプリを作成することが可能です。 適切に設定を行なうことで、HSP3Dishのアプリから広告を配信し、収益を得ることができるようになります。 AdMobはGoogleが提供するモバイル広告配信の仕組みです。これをアプリに組み込むことで、無料アプリであっても広告料を得ることができます。
AdMobを組み込むためには、以下の手順で準備を行なっておく必要があります。
1. AdMobアカウントの作成
アカウントを登録し、支払い情報などの必要事項を記入します。
http://www.google.co.jp/ads/admob/
2. パブリッシャーIDの取得
AdMobのwebページにログインし、サイト/アプリケーションの追加を行ないます。 (アプリがまだGoogle Playで公開されていない段階でも可能です)
Androidアプリケーションを選択し、App名、パッケージURL、ジャンル、説明等の 必要事項を記入することで、パブリッシャーIDを取得することができます。 パッケージURLは、「market://details?id=net.onionsoft.****」のような アプリのパッケージ名を指定してください。
3. AdMob SDKのダウンロード
最新版のAdMob SDKが必要になりますので、ダウンロードしておきましょう。
https://developers.google.com/mobile-ads-sdk/download?hl=ja
5. 最新のAndroid APIライブラリのダウンロード
AdMob SDKをビルドするために、Android APIライブラリの最新版を使用できる状態にする必要があります。 "android-17"(Android 4.2 (API 17))が利用可能かどうかを確認しておいてください。 Android APIライブラリのダウンロードは、SDKフォルダ内のSDK Manager.exeを起動して行ないます。 (Android SDKをインストールしたフォルダ内にSDK Manager.exeがあるはずです) このツールで、Android 4.2 (API 17)の項目にチェックを入れてアップデートを行なってください。
HSP3Dish helperを起動して、androidタブの「新規プロジェクト」モードの「ID...」ボタンを押すと、 インストールされているAPIの一覧が表示されます。この中に、"android-17"が存在してれば問題ありません。
6. AdMobを使用するプロジェクトの作成
新規プロジェクトを作成します。その際に、必ず「AdMobを使用する」のチェックボックスをONにしておいてください。 それ以外の設定は、通常の新規プロジェクト作成と変わりありません。
7. AdMob SDKのコピー
AdMob SDKのライブラリをプロジェクトフォルダにコピーする必要があります。 プロジェクトのフォルダ内にある、libsフォルダにAdMob SDKのjarファイル( GoogleAdMobAdsSdkAndroid-6.4.1の場合は、「GoogleAdMobAdsSdk-6.4.1.jar」)をコピーしてください。
8. パブリッシャーIDの登録
プロジェクトのフォルダ以下の「src/tv/hsp/HspActivity.java」ファイルを編集します。

    		adView = new AdView(_activity, AdSize.BANNER, "publisherID");

の行を探してください。このpublisherIDの部分を、AdMobのwebページで取得したパブリッシャーID文字列に置き換えてください。 このパブリッシャーIDにより、広告の配信者が特定されます。
9. AdMob表示スクリプトの追加
スクリプト実行時の適切なタイミングでAdMobを有効にしてください。 タイトル画面や、ゲームメニューなど画像や音声のリソース読み込みが落ち着いた後に有効にすることを推奨します。 (CPU負荷が高い時には、AdMobのタスクが遅延することがあります)
AdMobを有効にする場合は、

    		devcontrol "AdMob"		; AdMobを有効にする

をスクリプトに記述してください。("AdMob"の文字列は大小文字を正確に識別します) WindowsやiOSでは、この記述は無視されますが、複数機種実行時にAndroid上でのみ実行したい場合は、以下のように記述することができます。

    		getreq v_platform,SYSREQ_PLATFORM
    		if ( v_platform = PLATFORM_ANDROID ) {
    			devcontrol "AdMob"		; AdMobを有効にする
    		}

「devcontrol "AdMob"」は、最初の実行時にAdMob表示を開始し、それ以降は実行しても 無視されますので、タイトル画面表示時などに何度でも実行されても問題ありません。 デフォルトでは、画面下にバナーとして広告が表示されます。 (この時、デバイスがネット接続可能な状態であることを確認しておいてください)
以上の準備でAdMobを使用したアプリをビルドすることが可能になります。

- AdMobプロジェクトのビルド

プロジェクトの更新が完了したら、後は通常のHSP3Dishと同様に、HSP3Dish helperから プロジェクトのビルドを行なうことができます。
ビルド時にエラーが発生した場合は、エラーメッセージなどを参考にしながら、 プロジェクトの設定に問題がないか確認をしてください。
ビルドが成功したら、デバイスに転送して実行を確認することができます。
実行の確認を何度も行なう場合には、テスト用端末の登録を行なっておいてください。 テスト用端末の登録は、src/tv/hsp/HspActivity.javaファイルのソースで指定します。
以下の行があることを確認してください。

    		//adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
    		//adRequest.addTestDevice("********************************");

先頭が「//」になっている行はコメントとして扱われます。 「//」を取り除くことで機能します。

    		adRequest.addTestDevice(AdRequest.TEST_EMULATOR);

の行は、エミュレーターデバイス上の動作チェック用のコードです。

    		adRequest.addTestDevice("********************************");

の行は、実機デバイス上の動作チェック用のコードです。 "****〜"の部分に、デバイスIDを記入する必要があります。 デバイスIDは、AdMob表示時にAndroidログ(ddmsツール等で表示可能です)内に、

    	「 To get test ads on this device, call adRequest.addTestDevice("********************************");」

というメッセージが流れますので、そこで確認することができます。 (広告の表示エラーや、問題に関するメッセージも表示されます)

- 広告バナーサイズについて

Google AdMob Adsのページで、広告バナーサイズを確認することができます。
https://developers.google.com/mobile-ads-sdk/docs/android/intermediate?hl=ja
現在のコードでは、画面下に縦は75ドット、横は画面いっぱいまでバナーの領域を確保しています。 サイズや位置などは、src/tv/hsp/HspActivity.javaファイルのソースを変更することで調整可能です。

    		popUp.setWidth(disp_width+4);		// 横サイズ(disp_widthは画面全体)
    		popUp.setHeight(77);			// 縦サイズ

ここで指定したサイズはポップアップのサイズで、実際のバナー表示領域は若干少なくなるので 注意してください。

- アプリのリリース

AdMobの表示をサポートしたアプリは、通常のHSP3Dishアプリと同様の方法でビルドし、 Google Playから配信することが可能です。 リリース時には、テスト用端末の登録コードを削除するのを忘れないようにしてください。

## android版の注意事項、制限

- 入力可能な情報

タップした座標がmousex,mouseyに反映されるほか、stick命令により、クリック(タップ)のON/OFFを取得可能です。 また、mtlist、mtinfo命令により高度なタッチ情報(マルチタッチなど)を取得することができます。 複数ポイントのタッチ情報(マルチタッチ)は、デバイスがサポートしている場合のみ取得可能です。 Androidデバイスによっては、ハードウェアがマルチタッチをサポートしていない場合がありますので、注意してください。

- 画像フォーマットについて

celload、picload命令などで読み込まれる画像は、以下のフォーマットが使用できます。 アルファチャンネルを使用する場合は、PNG形式が推奨されます。

- JPEG baseline (プログレッシブJPEGは非サポート)
- PNG (8bit、24bit、24bit+アルファチャンネル形式に対応)
- TGA (サブセット)
- BMP (白黒、RLE圧縮は非サポート)
- PSD (RGB24bitのみ読み出し)
- GIF
- HDR (radiance rgbE format)
- PIC (Softimage PIC)

- gmodeの制約について

現在のバージョンでは、gmode 6(色減算)はサポートされていません。 これは、android(NDK)版のみの制約事項です。将来のバージョンでは、対応を行なっていく予定です。

- 画像サイズについて

celload、picload命令などで読み込まれる画像の縦・横サイズが、2048を越えるものについては、正しく扱えない機種もあるので、推奨されません。 縦・横のサイズが2^nのサイズ、つまり1,2,4,8,16,32,64,128,256,512,1024でない画像を 読み込む時には、内部で変換を行なうため多少のオーバーヘッドが発生します。 (通常はそれほど気にする必要はありません。大量の画像を読み込む場合にCPUリソースが余計に必要となります)
画像ファイルはプロジェクトディレクトリ内のassetsフォルダに入れることができます。 ただし、リソースのサイズ・個数に制限があるため、1MBを越える大きなファイルを多数使用する場合は、data.dpmに含めて使用してください。

- mes,print命令について

現在のバージョンでは、mes及びprint命令で表示可能な文字列は半角英文字・記号のみになっています。デフォルトで16x16ドットの固定フォントが用意されています。
日本語を含むすべての文字を表示する場合は、あらかじめ画像データとして用意するなどの対応が必要になります。
これは、android(NDK)版のみの制約事項です。将来のバージョンでは、対応を行なっていく予定です。

- 再生可能なサウンドファイルについて

拡張子が「.wav」「.mp3」「.ogg」「.aac」のファイルに対応しています。 .aacや.oggについては、すべてのフォーマットをサポートしていないので注意してください。 「.wav」「.mp3」については、Windows版を含めすべてのhsp3dishで幅広くサポートされている形式です。
サウンドのファイルは必ずプロジェクトディレクトリ内のassetsフォルダに入れるようにしてください。data.dpmに含めるとOSのシステム側から読み取ることができません。

- 画面の回転について

画面の回転については、AndroidManifest.xmlを書き換えて制御することが可能です。

            <activity android:name="android.app.NativeActivity"
    	          android:screenOrientation="portrait"
                      android:label="@string/app_name">

「android:screenOrientation=」の行で指定されているパラメーターが、"portrait"の場合は縦画面。"landscape"の場合は、横画面にそれぞれ固定されます。 現在のバージョンでは、実行中の画面自動回転には対応していません。必ず、縦・横画面を固定して動作する仕様で作成してください。

- データの保存について

bsave、bload命令によってアプリケーション固有のフォルダにデータファイルの読み書きが可能です。 「/」を含めずファイル名(半角英文字)のみ指定された場合は、アプリケーション固有のフォルダ (「/data/data/<自分のパッケージ名>/files」で示される場所)がアクセス対象となります。 このフォルダは通常は、自分以外のアプリケーションからはアクセスできない設定になっています。 (ファイル名が「/」で始まった場合は、フルパス指定となります。)

## android版の更新予定

以下の機能は今後、上から順に高い優先度で追加される予定です。

- 傾きセンサーの入力情報の取得
- dialog命令によるダイアログ表示サポート
- 各種システム情報取得
- 日本語フォントの描画サポート
- http接続、ブラウザの呼び出しサポート
- HGIMG4のサポート

バージョンアップの告知は、HSPオフィシャルサイトHSPTV!にて行なわれますので、随時ご確認ください。