2013年2月8日金曜日

AppInventor Portable for Windows Part9 (最新まとめ)


 App Inventor Portable for Windowsについて最新のものを取り込み、改めて環境構築方法をまとめます。

 今回はJavaの脆弱性対応のなされたJava7update13に入れ替え、AI4A-Configurations V1.4.6(include app-engine-SDK)で構築したものでご説明します。

 一部設定に注意すれば、App InventorサーバおよびBuildサーバ(以下、「パーソナルサーバ」といいます)がWindowsXP(32bit)+メモリ1GBでも動作します。























ちなみに動作確認(パーソナルサーバ起動も含む)済みの環境は以下の通りです。
  • WindpwsXP SP3(32bit) 
  • Windows7 Home Premium(64bit)
それではUSBメモリの作成手順から改めてご説明します。




■準備するモノ

●OS
・WindowsXP、Vista、7、8の32bit/64bit版

●メモリ
・PCのメモリはサーバを起動する場合でも1GBあれば動作します(動作は重いですが)。基本的には多く載っていた方が良いのは言うまでもありません

●USBメモリ
・1GB以上あれば大丈夫です

AI4A-Configuratoins
・今回はV1.4.6のアーカイブをそのまま利用しますのでGoogleAppEngine SDK for Javaが含まれている状態となりますので別途入手する必要はありません

JavaSE JDK(JREではダメです)32bit/64bit
・Java7update13

AppInventor セットアッププログラム(Windows用)

●豆腐化対策用フォントファイル

AIPortableXPto8WithServerSetup.bat バッチファイル(from GitHub)
  [ AIPortableXPto8WithServerSetup_en.bat exclude Japanese messages version ]



■事前準備

USBメモリを作るために必要なファイルを用意するため、次のものをPCにインストールしてください(作業が終わったらアンインストールします。

・Java7 SE JDK(JREではダメです)64bit/32bitそれぞれ
・App Inventor セットアッププログラム

このインストールされたフォルダ構成をUSBメモリにコピーすることになります。

■USBメモリのフォルダ構成(ドライブ名は環境によって変化します)
X:\AIPortable
                     \AI4A                                                           -(1)
                     \AppInventor                                               -(2)
                     \jdk1.7.0_13                                               -(3-a)
                     \jdk1.7.0_13_32                                        -(3-b)
                     AIPortableXPto8WithServerSetup.bat   -(4)

(1)はAI4A-Configuratoinsを展開したものをコピーしてください。GoogleAppEngine SDKも含まれていますので別途インストールする必要はありません。

※32bit環境でメモリ容量が少ないケースでの注意点
 AI4Aに含まれるバッチファイルの書き換えが必要になるのはメモリの少ない32bitOS環境の場合です。書き換え対象は


\AI4A\BuildServer\launch-buildserver32.cmd

というファイルです。

以下は例ですが、筆者の保有するWindowsXP32bit+メモリ1GB環境では以下の設定でBuildサーバが動作することを確認済みです。
... -Xmx900m ... --childProcessRamMb 900
与える数値は環境(メモリ容量)によって微調整してみてください。

(2)はWindows用のApp InventorセットアッププログラムをWindowsにインストールし、C:\Program Files (x86)\AppInventor(64bitWindowsの場合)フォルダ・ファイル構成をそのままコピーしてください。


コピーした内容で一部書き換えるべきバッチファイルがあります。

WindowsXP環境でBlocksEditorからエミュレータが起動できない問題がありますので、これを回避します。これはエミュレータ起動時に参照されるPATH中に空白が入ったもの(本来のユーザのHOMEPATH)が参照されてしまうことが原因です。

この問題は次のバッチファイルを書き換えることで解決可能です。

●AIPortable\AppInventor\commands-for-Appinventor\run-emulator.bat
・書き換え箇所
call :SetAppinvDir "%HOMEPATH%"


call :SetAppinvDir "%~dp0\..\..\"

これで参照先がUSBメモリ内の.appinventorフォルダがある位置と同じになります。

ただし、この位置だとバッチファイルを起動して環境を戻した際にエミュレーター関連ファイルが全て削除されてしまうので、エミュレータ環境の保存をしたい場合はPATH位置を変更する必要があります。

(3-a)は64bit版のJDKをPCにインストールした後、C:\Program Files\Java\jdk1.7.0_13フォルダをそのままコピーしてください。

また、豆腐化対策フォントファイルをこのフォルダ内のjre\lib\fontsフォルダ以下にコピーしておいてください。

(3-b)は32bit版のJDKをPCにインストールした後、こちらもC:\Program Files (x86)\Java\jdk1.7.0_13フォルダをjdk1.7.0_13_32と変更してコピーしてください(32bit版と明示するため)。

また、豆腐化対策フォントファイルをこのフォルダ内のjre\lib\fontsフォルダ以下にコピーしておいてください。

(4)は起動バッチファイルです。このバッチファイルは一般ユーザ権限(管理者権限を持たないユーザ)で動作します

なお、パーソナルサーバを起動する場合はバッチファイルの以下の部分を"1"に、サーバを起動しないでMIT App Inventorを利用する場合は"0"に書き換えてください。
REM SERVERを起動する場合は1を起動しない場合は0を定義
set SERVER=0


■使用方法


●環境設定

以下では話を分かりやすくするために、実行環境にはJava(JDK/JRE共に)がインストールされていないこと、App Inventorセットアッププログラムが導入されていないことを前提条件に説明します(OSはWindows7HomePremium64bit)。

また、パーソナルサーバを起動しないこととします。

上記の前提条件の場合、バッチファイル内で設定対象となっているレジストリキーは全て存在しないハズです。ですので、それらのレジストリキーについて全て登録することになります。

バッチファイルをダブルクリックして実行するとコマンドプロンプトが開いてレジストリに必要な変更が実行されてキー入力待ち状態になります。

この状態でPortable設定は完了していますのでコマンドプロンプトはそのままか最小化しておき、MIT App Inventorを使ってみてください。

また、この時のUSBメモリのフォルダを見てください。

これまでのエントリではHDD側のユーザホームに作成するハズの.appinventorフォルダが作成されているのが分かると思います。

BlocksEditorが起動される際、レジストリ設定によってJavaVMが認識するユーザホームの位置はこの場所を見るようになります。これにより、BlocksEditorは各種関連コマンドがUSBメモリにあると認識できるようになります。

App Inventorを利用しながらUSBメモリの様子を見ていただくと分かりますが、
  • BlocksEditorを起動する時
  • Androidエミュレーターを起動する時
などにUSBメモリのアクセスランプLEDがチカチカしていればPortable環境設定に成功しています。


コマンドプロンプトのレジストリキー設定部分を見ると「エラー」とありますが、これは変更対象となるレジストリキーの検索クエリを実行してキーが存在しなかったことを意味しているだけですので気にしないでください。

その存在チェックによって得られる%ERRORLEVEL%を判定してレジストリキー変更処理の実行を行なっています。この例では全てのキーが存在しませんが、存在していた場合は該当レジストリを一時バックアップのためexportするようになっています。

●環境設定解除

ひと通りApp Inventorでの開発作業が終了して、USBメモリを抜きたいと思ったらコマンドプロンプトを表示して、適当なキーを押してください。

登録されていたレジストリキーの全てを解除して、最後にUSBメモリから起動されていたadb.exeを強制終了します(これをしないとUSBメモリが抜けません。万一、プロセスが残ってしまっていたらタスクマネージャからプロセスの終了をしてください)。

もう一度何かキーを押せばコマンドプロンプトは閉じます(これが不要な方はバッチファイルの最後のpauseを削除してください)。

USBメモリ上に作成された.appinventorフォルダやエミュレータ関連のデータもこの際に削除されます。これは別のPCに移動した際にドライブ構成が変化してドライブ名が変更になっても問題が起きないようにするためです。

なお、パーソナルサーバを起動するようにした場合は上記のコマンドプロンプト以外にコマンドプロンプトが複数(3つ)開きますので

  • サーバ起動に関連するコマンドプロンプトは[Ctrl]+[C]、[Y]でバッチジョブを中止してから閉じる(2つ)
  • そうでないコマンドプロンプトはそのまま閉じる(1つ)
という手順で終了してください。


以上が管理者権限なしでのポータブル化の最新の解説になります。

問題点等ございましたらフィードバックいただければ幸いです。


0 件のコメント:

コメントを投稿

おすすめ書籍