Android の変更点
[[トップに戻る>FrontPage]]
----
#contents
----
* Androidセットアップ手順 [#i0cc7683]
ここではHaxeFlixelをAndroid向けにビルドする手順を説明します。
2014/9/13 現在、OpenFLは「Android API 16」を標準として動作します。ただし一応「API 9」までは互換性があるようです。
またゲームコードはすべてC++に変換されコンパイルされるため、NDKのインストールが必要となります。
** 各種SDKのインストール [#g04fc8e5]
※以下の手順はMac環境でのセットアップです。
ターミナルから「lime setup android」コマンドを実行します
$lime setup android
Download and install the Android SDK? [y/n/a] ? y
SDKをダウンロードしてインストールするかどうかを聞かれるので「y」(yes)を入力してEnterキーを押します。
Output directory [/opt/android-sdk]:
出力するディレクトリを聞かれますが、デフォルトで問題ないのでそのままEnter。
Unable to access directory. Perhaps you should run "setup" again using "sudo"
そうするとディレクトリがないと怒られます。なのでフォルダを作ります。
$ sudo mkdir -p /opt/android-sdk
$ sudo chown -R myusername /opt/android-sdk
myusernameのところは自分のユーザ名を指定します。
$ lime setup android
Download and install the Android SDK? [y/n/a] ? y
File found. Install existing file? [y/n/a] ?y
再びセットアップするとダウンロード済みファイルを上書きしてよいかを聞かれるので y でEnterします。
Output directory [/opt/android-sdk]:
出力フォルダも問題ないのでそのままEnterします。
しばらくすると「Android SDK Manager」が立ちあがります。
#ref(001.png)
そして更に待ってインストール準備が終わったら「Install packages」ボタンを押してインストールへ進みます。
するとライセンスの同意を求められます。
#ref(002.png)
「Android SDK Lisence」「Google Gdk License」の2つのライセンスに同意して「Install」ボタンを押します。
長いインストールが始まるのでその間にNDKとAntのフォルダを作成しておきます。
$ sudo mkdir -p /opt/android-ndk
$ sudo chown -R myusername /opt/android-ndk
$ sudo mkdir -p /opt/apache-ant
$ sudo chown -R myusername /opt/apache-ant
インストール中に以下のメッセージが表示されることがあります
#ref(003.png)
The android sdk and avd manager that you are currently using has been updated.
it is recommend that you now close the manager window and re-open it.
If you use Eclipse, please run Help
> Check for Updates to see if the Android plug-in needs to be updated.
SDKを更新したので、Eclipseを使用している場合は[ヘルプ]からAndroidプラグインを更新してね、ということらしいです。ですが特に使用しないのでそのままOKを押して閉じます。
#ref(004.png)
Done loading packages. と表示されたら「Close」を押して終了します。
Android SDK Managerも終了しておきます。
するとNDKのインストールを聞かれます。
Download and install the Android NDK? [y/n/a] ? y
問題ないので y でEnterします。
Output directory [/opt/android-ndk]:
出力フォルダもデフォルトで問題ないのでそのままEnterします。
Download and install Apache Ant? [y/n/a] ? y
Antのインストールを聞かれます。y を入力してEnterします。
Output directory [/opt/apache-ant]:
出力フォルダもデフォルトで問題ないのでそのままEnterします。
これでインストール完了です。
**プロジェクトのビルド [#x229fe66]
早速プロジェクトを作ってビルドしてみます。
$ lime build android
でビルドが開始します。
BUILD FAILED
/opt/android-sdk/tools/ant/build.xml:542: Unable to resolve project target 'android-16'
ですが以下のエラーが出ます。どうやら 'android-16'がないための様子。
なのでもう一度 lime setup android を実行します。
Launching the Android SDK Manager to install packages
Please install Android API 16 and SDK Platform-tools
Waiting for process to complete...
するとターミナルにも 「Android API 16」をインストールしてね、というメッセージが表示されます。
#ref(005.png)
Android SDK Managerから「API 16」を選択して Install packages ボタンを押してインストールします。
#ref(006.png)
再びライセンス同意を求められるので、「Android SDK License」を選択して「Accept License」クリック、Installボタンでインストールを開始します。
インストールが終わると、Eclipseプラグインを更新してねメッセージが表示されるので、OKを押して閉じます。
Android SDK Managerもそのまま閉じます。
NDKやAntのインストールを聞かれますが、インストール済みなので n でEnterします。パスもデフォルトままなのでそのままEnterします。
そして再び lime build android でビルドすると、ビルドが完了します。
*** ビルドがうまくいかない場合 [#mf37f2a9]
- [[ネイティブ環境へのビルドがうまくいかない場合>NativeBuild]]
** 端末の設定 [#o8d7b666]
端末側のデバッグやインストール設定を変更します
- 「提供元不明のアプリケーションの許可」にチェックを入れる
- 「USB接続時のデバッグモード設定」にチェックを入れる
これで、lime test android コマンドで端末に転送ができます
* Project.xmlの記述 [#bd055d88]
** Package名の指定 [#s1c5414a]
ユニークなPackage名を指定します。それに合わせてモジュールの配置も修正する必要があります
#geshi(Actionscript){{
<meta title="Natsuki3" package="jp.seconddgames.natsukiboost3" version="1.0.0" company="2dgames.jp" />
}}
** 画面サイズの指定 [#p0da8e57]
#geshi(XML){{
<!--Mobile-specific-->
<window if="mobile" orientation="landscape" fullscreen="true" width="0" height="0" />
}}
iOS と同様に画面サイズには 0 を指定します。上記例は横向きとなっていますが、縦向きにしたい場合は orientation="portrait" を指定します。
** APIレベルの指定 [#c22bd68e]
#geshi(XML){{
<android target-sdk-version="16" />
}}
android target-sdk-version でAPIレベルを指定できます。現時点(2014/9/20)、HaxeFlixelはAPI16に対応しているので、通常は16を指定します。
** 高速化の設定 [#ibb90ef4]
#geshi(XML){{
<window hardware="true" allow-shaders="true" require-shaders="true" if="cpp"/>
<window vsync="true" antialiasing="4" if="cpp" />
}}
内容はよくわかりませんが、これを書いておくと高速化できるみたいです。
**アイコン画像の設定 [#d85fb975]
#geshi(XML){{
<icon path="36.png" size="36" if="android" />
<icon path="48.png" size="48" if="android" />
<icon path="72.png" size="72" if="android" />
<icon path="96.png" size="96" if="android" />
}}
Androidでは上記サイズのアイコン画像を指定します。
なおアイコン画像は以下のリンク先のサービスを利用すると簡単に作れます。
- [[Android Asset Studio:http://romannurik.github.io/AndroidAssetStudio/index.html]]
ここから「SELECT IMAGE」で画像をアップロードして、「DOWNLOAD ZIP」でダウンロードできます。なお Safari だとうまくダウンロードできないので Chrome などのブラウザを使う必要があります。
2014/9/13現在、Androidのアイコンは以下のサイズを指定する必要があるようです
,Density,アイコンのピクセルサイズ,画像リソース比率
,xxxhdpi ,192 x 192 ,400%
,xxhdpi ,144 x 144 ,300%
,xhdpi ,96 x 96 ,200%
,hdpi ,72 x 72 ,150%
,mdpi ,48 x 48 ,100%(基準)
,ldpi ,36 x 36 ,75%
* デベロッパー登録 [#ceac691d]
- https://play.google.com/apps/publish/signup
ここからログインして手順に従い登録します。Gmailのアカウントとクレジットカードがないと登録はできません。登録料金は初回のみ必要で$25となります(2014/9/15現在)。
登録が完了すると、ANDROID DEVELOPER CONSOLEに入れるようになります。
- [[Google Play / ANDROID DEVELOPER CONSOLE:https://play.google.com/apps/publish/]]
* アプリ署名 [#y64535cf]
野良アプリとして公開する場合であれば、デジタル署名は不要となります。ですがAndroid Marketに公開する場合は署名が必要となります。
** デジタル署名について [#ka78ecd3]
デジタル署名は、文書の送信者を証明し、また、改ざんされていないことを保証します
*** 注意点 [#s5576013]
- キーストアとは
-- キーストアとは、署名を行うための証明書(秘密鍵)
-- キーストアはパスワードで暗号化されており、パスワードを紛失するとキーストアは復元できなくなる。
-- キーストアは、個々のプロジェクトで作るパッケージ用の電子署名キーを保存しておく領域
- エイリアスとは
-- エイリアスとは、キーストアに格納されたキー情報
-- パッケージの実際の署名に用いられる
-- キーストアには複数のエイリアスを登録できるが,通常は1つのキーストアに1つのエイリアスが設定される
- 一度署名したら証明書を変更しないこと
-- 同一の署名キーで署名されていないパッケージでは、ユーザーはプログラムをアップグレードすることができない
-- また、署名キーは後から修正することもできない
-- 署名キーのパスワードはキーストアのパスワードとは別となる
** 1. 証明書を作成する [#naa1ab14]
***keytoolコマンドの文字化けを直す(Mac) [#s2f6c110]
Mac環境だとkeytoolが文字化けするので、以下のコマンドで使用する文字コードを変更します
$ export _JAVA_OPTIONS='-Dfile.encoding=UTF-8'
***証明書を作成する [#o35bb850]
以下のコマンドを実行すると、2dgames_jp.keystoreを2dgames_jpというエイリアス(プロジェクト名でOK)で証明書を作成します
keytool -genkey -v -keystore 2dgames_jp.keystore -alias 2dgames_jp -keyalg RSA -validity 10000
#ref(100.png);
質問項目は以下のように入力します
,''項目'',''説明''
,姓名,作者名を入力(デベロッパー名でOK)
,組織単位名,組織の部署など。個人なら未入力でOK
,組織名,個人なら未入力でOK
,都市名または地域名,Tokyo、Saitamaなど。未入力でもOK
,州名または地方名,Shinjuku-ku、Saitama-shiなど。未入力でもOK
,国番号,JP
** 2. Androidアプリケーションに署名を行う [#rc9a9184]
Project.xmlに以下の記述をするとビルド時に署名を行ってくれます。
#geshi(xml){{
<certificate path="証明書への相対パス" password="パスワード" alias="エイリアス名" alias-password="エイリアスのパスワード" if="android" />
}}
出力先は、「export/android/bin/bin/プロジェクト名-release.apk」となります。
* apkファイルのアップロード [#g89581c1]
作成した署名つきの *.apk ファイルを ANDROID DEVELOPER CONSOLE からアップロードします。
* 登録画像のサイズ [#hc2dcb6f]
- 高解像度アイコン : 512x512
- 宣伝用画像 : 1024x500
- スクリーンショット : 任意のサイズ。最低2枚の登録が必要
* Google Playへのリンク作成ツール [#x6fd0e07]
- [[Google Play Badges>https://play.google.com/intl/en_us/badges/]]
そのままだと画像サイズが大きいので、143x46くらいに小さくしておきます。
#geshi(xml){{
<img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/apps/ja-play-badge-border.png" width="143" height="46" />
}}
* 参考 [#s02b9d22]
- [[AndroidMarketに公開するためにアプリに署名を行う:http://techbooster.org/android/environment/1445/]]
- [[つぎに公開用のAndroidアプリを生成する:https://sites.google.com/site/technoute/android/publish/apk]]
- [[Androidアプリをマーケットに公開する方法の作業手順メモ (リリース時とアップグレード時のチェックリスト):http://d.hatena.ne.jp/language_and_engineering/20120310/AndroidMarketReleaseSteps]]