いっきに作ってしまおう。ProcessingでAndroidアプリを作成&公開する方法

今月は5年ぶりにPCを新調してMac Book Airを買い、ParallelsでWindows8環境を作ったりして、いっきに散財してしまい、しばらくは節電ならぬ節ガジェットだなぁと諦めかけていたのですが……クリスマスプレゼントとしてNexus7を貰いました。これは――嬉しい。

その記念というか、無駄な勢いというか、前回のWebアプリをほぼそのままにAndroidアプリとしてリリース! 今回はその手順をご紹介します。

アイデアがどんどん湧いてくる!? Idea Man (Google Play - Androidアプリ:無料)

processing.jsとWebViewを使ったアプリではなく、Javaコードのアプリとして作成しています。

テストした開発環境はWindows 8+Nexus7(Android)です。


1.Javaモードで動作チェック

processingのスケッチ(コード)を普通にJava(Standard)モードで動作確認します。
問題なければ次へ。


2.Android SDKをダウンロードしてProcessing - Androidモードの環境設定

Androidモードを使う場合、Android用のSDK(ADK)が必要なので
GoogleのサイトからダウンロードしてProcessingにパスを設定します。

以下のようなパッケージをインストールしておきましょう。

※バージョン違いなどでうまくいかない場合は、古いAPIや最新のAPIのパッケージのインストールもお試しください。

もしAndroid SDKのパスの指定を間違えたときは、
ProcessingのFile->Preferenceで開くダイアログの下部に書いてある preferens.txt の

android.sdk.path=xxx

を編集してProcessing(PDE)を再起動しましょう。


3.Androidモードで実機転送

エミュレータを使用する場合はProcessingのメニューのAndroid->AVDManagerで設定や起動ができます。が、Androidの開発でエミュレータを使うのはオススメしませんので説明は割愛。

以下は実機、つまり実際のAndroid端末を使う場合の手順です。

まず、Android端末内の設定画面で、開発者向けオプションを表示します。

Android OS 4.2以降を使っている場合など、開発者向けオプションがない場合はこちらのサイトなどを参考に設定->タブレット情報->ビルド番号を7回タップすると、開発者向けオプションが表示されるようになります。

設定->開発者向けオプションの「USBデバッグ」(USB接続時はデバッグモードにする)をONにしてください。

また、OSのバージョンによっては、
設定->アプリケーションの「提供元不明のアプリ」(サードパーティアプリケーションのインストールを許可する)をONにする必要があるかもしれません。(Nexus7 OS 4.2.1ではセキュリティに「提供元不明のアプリ」がありましたが、特にONにする必要はありませんでした)

あとはAndroid端末をUSBケーブルでパソコンにつないで、実行……なのですが、
Android端末開発用のUSBドライバーをインストールする必要があります。

各メーカーのサイトからダウンロードしてインストールするか、
「2」でPCにインストールしたパッケージ内の、

sdk\extras\google\usb-driver

にある該当ドライバ(android-winusb.inf)をインストールしてください。
手動の場合はこのファイルを選択して右クリックメニューで「インストール」。

# Nexus7でしか試してないので他の端末で正しいかどうかはよく知りません。

デバイスマネージャで見たときにその端末の「!」マークが無くなっていればOKです。

あとはProcessingをAndroidモードにしたまま、通常通り再生ボタン(Ctrl+R)でスケッチを実行すればOK。無事起動したかな?

# ちなみにCtrl+Shift+Rでエミュレータでの実行ができます。

実行したときに画面サイズが変だなと思ったら、

void setup(){
  size(displayWidth, displayHeight); // Android用

とすると端末の画面いっぱいに表示できます。

ただ動かすだけならここで完了ですが、
アプリをGoogle Playなどのストアで公開したい場合は以下の手順に進んでください。


4.ビルドの準備(antのダウンロードとパスの設定)

ビルド用にAntをダウンロードして、フォルダに解凍。
.zip archive: apache-ant-1.8.4-bin.zipとか書いてるヤツです。

環境変数のPATHにantのbinフォルダをセミコロン(;)で区切って追加します。

例)
antを置いたフォルダ\apache-ant-1.8.4\bin

後述するkeytoolとjarsigner用にjdkのbinも、PATHに追加します。

例)
processingを置いたフォルダ\processing-2.0b7\java\bin

同じく後述するzipalign用にAndroidSDKのtoolsも、PATHに追加します。

例)
androidSDKを置いたフォルダ\adt-bundle-windows-64\sdk\tools

以上で環境変数への設定は完了です。


5.apkファイルをリリースビルド

あとはProcessing Forumのやり取りを見てやってみたところできたという手順です。

# なおそのうちProcessingでExport Signed Packageがサポートされるようになれば
# このような面倒な手順は省略できるようになると思います。

まず、Processing(PDE)のメニューのFile->Export Android Projectを選択すると
スケッチのあるフォルダにandroidというフォルダが作られてプロジェクトが出力されます。

コマンドプロンプトを起動して、さきほど作ったandroidフォルダに移動し、

ant release

を実行すればビルド完了です。

「スケッチ名-release-unsigned.apk」という名前のファイルができていると思います。
読んで字のごとく、このapkはまだ未認証のapkなのでストアには公開できません。

ちなみにスケッチ直下(androidフォルダの一階層上)に

  • icon-48.png
  • icon-72.png

といった名前でそれぞれのサイズのアイコンを用意してExportすると、アプリのアイコンを変更できます。アイコンやストア用のスクリーンショットなどのガイドラインはこちら


6.keytoolで認証キーを作成

スケッチフォルダ直下で以下のコマンドを実行してください。

keytool -genkey -v -keystore スケッチ名-release-key.keystore -alias エイリアス名 -keyalg RSA -keysize 2048 -validity 10000

スケッチ名はスケッチフォルダ名そのもの(大文字小文字も同じで)、エイリアス名はあなたの名前とかドメインとかでしょうか?

実行するとパスワードとか所在地とか色々聞かれるので答えていきましょう。

スケッチ名-release-key.keystoreというファイルができればOKです。


7.jarsignerとzipalignで認証済みapkファイルを作成

スケッチフォルダ直下で以下のコマンドを実行してください。

jarsigner -verbose -keystore スケッチ名-release-key.keystore android\bin\スケッチ名-release-unsigned.apk エイリアス名

問題なければ、さらに次のコマンドを実行して、
アライメントをそろえて認証済みapkファイルを作成してください。

zipalign -v 4 android\bin\スケッチ名-release-unsigned.apk android\bin\スケッチ名apk

最後のファイル名は好きな名前でOKです。
これでストアに公開可能なapkファイルができました!


8.Google Playにデベロッパー(開発者)登録

Google Playのデベロッパー登録の回答ページにある通り、
Google Play Developer Consoleにアクセスしましょう。

メールアドレスや電話番号などのプロフィールを記載して、
初回費用として$25払えば完了です。


9.アプリ(apk)やスクリーンショットをアップロードして公開

アプリの管理ページでアプリ名を入力したあと、
apkファイルやスクリーンショットをアップロードしたり、
アプリの説明を書いたりしましょう。

必須のものをすべてを用意して保存すれば、数時間後にはGoogle Playに公開されます。

おつかれさまでした。


以上、全部まとめると長いですが、一度やってしまえばあとは簡単ですね。
コマンドはバッチファイルにしてもいいですし。

なお、アプリ内で使用する関数によっては Processing(PDE)のAndroid->Sketch Permissionsで
AndroidManifest.xmlの設定をする必要があるかもしれません。

その他ProcessingでAndroidを使う際の設定についてはProcessing for Android WIkiArduino Wikiのこちらのページ(日本語訳)などが参考になります。

IdeaManアプリの中身の方は、新しいデータを入れないと見飽きてしまって面白くないし、
暇があればもうちょっとまともに作りたいところです。



Trackback(0)