M1000まとめサイト
OPL:M1000アプリ化から配布まで
最終更新:
Bot(ページ名リンク)
-
view
<<OPLで開発
M1000アプリ化から配布まで
OPLには「APP...ENDA」というOPLのコードをM1000アプリ化する為のコマンドが存在します。M1000アプリ化すると、アプリケーションランチャーから起動したり、他のM1000にインストールしたりすることができます。ランチャーに表示する時のアイコンを設定することも可能です。
基本的には、ソースコードの先頭にこのコマンドを記述しコード変換を実行すると、M1000アプリに必要な「*.app」と「*.aif」を生成してくれます。そして、これらをM1000用SDKに付属している「makesis.exe」でSIS化してやればM1000アプリとして配布する事が可能になります。
ただし、OPLで生成されたM1000アプリを他のM1000で実行する時は、対象のM1000に「OPLランタイム」や(使用しているなら)「OPXライブラリパック」がインストールされている必要があります。
配布までの流れ
- コードの先頭に「APP...ENDA」コマンドを記述する。(アイコンの設定もここで行う)
- コード変換して「*.app」「*.aif」を生成する。
- makesis.exeでM1000アプリ(SIS)化する。
- 配布する。
コードの先頭にAPPコマンドを記述する
ソースコードの先頭にAPPコマンドを記述します。書式は以下の通りです。
APP アプリケーション名,UID ICON "アイコン画像(フルパス)" ENDA
アプリケーション名はダブルクォートで括る必要はありません。UIDはアプリケーションを識別する為のIDで、Symbianに申請してユニークなUIDを割り振ってもらう必要があります。UIDについてはUIDの取得方法?を参照して下さい。なお、UIDは32bitの16進数ですが、OPLでは「$」を先頭に付ける事によって表現できます。
APP~ENDAの間にICONコマンドを記述するとアプリケーションランチャで表示されるアイコンを設定することが出来ます。アイコンフォーマットはMBM(24bitカラーまでOK)、サイズは20x16と32x32の2種類を用意し、それぞれにマスク画像(白色が抜けて、黒色が残る)が必要です。MBMには「20x16」「20x16マスク」「32x32」「32x32マスク」の順番に格納します。設定したアイコンデータは「*.aif」に格納されますので、コード変換後は不要です。
M1000アプリ化対応版Hello World
APP TestApp,$500 ICON "" ENDA
PROC main: gSETWIN 0,25,208,275 PRINT "Hello World" GET ENDP
コード変換して「*.app」「*.aif」を生成する
メニューより「Build→Translate」を実行すると「\System\Apps\(プロジェクト名)\」に「*.app」「*.aif」が生成される。この状態でアプリケーションランチャを見るとM1000アプリとしてアイコンが表示されます。ちなみに「*.app」「*.aif」が生成される場所は指定した名前ではなく、現在のプロジェクト名であることに注意(デフォルトは「TextED」)。
※実は「\System\Apps\」に適当なフォルダを作成し、その中にこれらのファイルを入れておけば、アプリケーションランチャにM1000アプリとして表示されます。ただし、この状態ではインストールやアンインストールする時はファイルを直接操作しないといけないのでとても不便です。ですのでM1000アプリとして配布したい場合はSISファイルを作成する事をお勧めします。
makesis.exeでM1000アプリ化する。
「*.app」「*.aif」が用意できましたら、makesis.exeを使用してSISファイルを作成します。
※makesis.exeの使用方法とパッケージファイルの作成方法は、Docomo提供の「FOMA_M1000アプリ開発技術ドキュメント(pdf)」を参照して下さい。
作ろうM1000アプリ
作ろうM1000アプリ
なお、注意として「*.app」「*.aif」以外のファイル(例えば*.mbm等)を使用している場合は、それらも用意してパッケージファイルに記述する必要がある。この時、保存する位置とパッケージファイルに記述するパスとコード上の記述に注意して下さい。
あと、パッケージファイル内でパスに!をつけるとインストール時にドライブが選択できますが、MBMファイル等の外部ファイルを使用するときはコード上のパスの記述に注意しないといけません。(コードではCドライブ、インストールはDドライブとかになると実行時にNotFaundと言われる。)
配布する
配布時には「実行にはOPLランタイムが必要」であることを明記する必要があります。また、OPXライブラリをコードで使用していて別途必要であるならその旨も記載する必要があるので注意。