atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • アットウィキで新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ツール
    • このウィキの管理者に連絡
    • このページを通報・違反報告する
  • ヘルプ
    • ご利用ガイド
    • はじめての方へ
    • プラグイン一覧
    • よくある質問
    • 編集モードの違いについて
    • 不具合や障害を見つけたら
    • 管理・設定マニュアル
docomo PRIME series F-01A まとめwiki
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
docomo PRIME series F-01A まとめwiki
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
  • トップ
  • 人気ページ
  • ページ一覧
  • 編集
  • 検索
記事メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • アットウィキで新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ツール
    • このウィキの管理者に連絡
    • このページを通報・違反報告する
  • ヘルプ
    • ご利用ガイド
    • はじめての方へ
    • プラグイン一覧
    • よくある質問
    • 編集モードの違いについて
    • 不具合や障害を見つけたら
    • 管理・設定マニュアル
  • atwiki
  • docomo PRIME series F-01A まとめwiki
  • iアプリ開発Tips

docomo PRIME series F-01A まとめwiki

iアプリ開発Tips

最終更新:2009年01月15日 22:37

f-01a

- view
だれでも歓迎! 編集

iアプリ開発Tips

  • iアプリ開発Tips
    • アプリ全般
      • 開発環境の構築
      • DoJaアプリからStarアプリへの移行
      • ImageReferenceの使用
    • フルアプリ関連
      • フルアプリのプロジェクト作成(Eclipse)
      • 描画エリア(ADFのDrawArea)の仕様
      • ソフトキーのラベル設定
    • ミニアプリ関連
      • ミニアプリのプロジェクト作成(Eclipse)
      • アプリサイズの制限
      • 描画エリア(ADFのPallet)の仕様
      • 複数のミニアプリを同時に起動してテストする
      • ソフトキーのラベル設定
      • 取得できないキー
    • フル+ミニアプリ(ミニ+フルアプリ)関連
      • フルアプリのプロジェクト作成(Eclipse)
      • ADFの設定について
      • アプリの起動順
      • フル+ミニ(ミニ+フル)アプリの使いどころ
      • フルアプリ⇔ミニアプリの連携起動
      • ミニアプリからフルアプリを連携起動するとDrawArea不正で落ちる場合の対処

アプリ全般

開発環境の構築

  • 基本的な手順
    • DoJaの環境構築との相違はインストールする開発ツールが異なるのみ
  • Eclipseのインストール
    • All-In-One Eclipse (日本語化済み+プラグイン含む)を使うと簡単
      • 「ダウンロード」タブをクリック→*.001, *.002, *.003, *.batをダウンロード
      • ダウンロード完了後に*.batを実行してセットアップファイルを生成→それを実行
    • DoJaで使っているEclipseはStarには使用できないため、改めてEclipseをインストールする必要がある
      • DoJaで使っているEclipseはそのままDoJa用に使用できる
  • Starプロファイル向けの開発ツールのインストール
    • Star-1.0プロファイル向けiアプリ開発ツール からダウンロードしインストール
      • カスタム構成を選択して全てインストールする
      • 必ずEclipseを先にインストールしておく(Eclipseのインストール先を聞かれる)
  • リファレンスの入手
    • Star-1.xプロファイル向けiアプリに関する技術資料 から各種資料をダウンロード
      • APIリファレンス(ZIPファイル)はC:\iDKStar1.0\docにも展開しておく(Javadocとして使う)
    • CLDCのリファレンスは JSR-000139 Connected Limited Device Configuration 1.1 のSpecificationからダウンロードする
      • Appendix2-javadocs.zipはC:\iDKStar1.0\docにも展開しておく(Javadocとして使う)
    • CLDCは Unofficial "CLDC 1.1 + MIDP 2.0" API Reference から日本語版を参照可能
      • ただしStarでは使用できないMIDPのクラスも含まれるため注意
  • その他
    • 絵文字を多用する場合は i絵文字 をインストールしておくと便利
      • メニューの「ファイル」→「設定」→「Unicodeの形式で挿入」を選択しておく
      • 「�」の形式で挿入されるので「\u0000」に直す
  • Javadocの設定(プロジェクトごとに実施)
    • 作成済みのプロジェクトを選択し、右クリックメニューから「プロパティー」を開く
    • Javaのビルド・パスの「ライブラリー」タブを開く
    • STAR_CLASS_ZIPとSTAR_STARCLASS_ZIPのツリーを展開する
    • Javadocロケーションを選択→「編集」し、Javadocを展開したパスを指定する
      • STAR_CLASS_ZIPにはCLDC 1.1のJavadocを指定
      • STAR_STARCLASS_ZIPにはStar-1.0のJavadoc(基本API)を指定
      • Javadocの複数指定または基本APIとオプションAPIのJavadocをマージする方法はあるのか?

DoJaアプリからStarアプリへの移行

  • importの置換
    • com.nttdocomoをcom.docomostarに置換
    • Eclipseの場合は次の手順でも可
      • importを全て削除
      • 波線の出ているクラス名の右にカーソルを移動
      • Ctrl+Space(import自動挿入)
      • 波線がなくなるまで繰り返す
import com.nttdocomo.ui.*;
  ↓
import com.docomostar.ui.*;
  • 起動クラスの書き換え
    • IApplicationをStarApplicationに置換
    • void start()をvoid started(int launchType)に置換
public class TestApp extends IApplication
{
    public void start()
    {

    }
}
  ↓
public class TestApp extends StarApplication
{
    public void started(int launchType)
    {

    }
}
  • フォント取得部分の変更
Font.getFont(Font.FACE_SYSTEM | Font.SIZE_TINY)
Font.getFont(Font.FACE_SYSTEM | Font.SIZE_SMALL)
Font.getFont(Font.FACE_SYSTEM | Font.SIZE_MEDIUM)
Font.getFont(Font.FACE_SYSTEM | Font.SIZE_LARGE)
  ↓ 
Font.getFont(Font.FACE_SYSTEM, 12)
Font.getFont(Font.FACE_SYSTEM, 16)
Font.getFont(Font.FACE_SYSTEM, 24)
Font.getFont(Font.FACE_SYSTEM, 30)
  • ShortTimerをTimerに変更
    • タイマはあらかじめTimerを使うようにするとStarへの移行が楽
//ShortTimer版(DoJaのみで動作)
public class TestCanvas extends Canvas
{
    private static final int TIMER_REDRAW = 1;
    private ShortTimer tmRedraw;
    
    TestCanvas()
    {
        tmRedraw = ShortTimer.getShortTimer(this, TIMER_REDRAW, 100, true);
    }
    
    public void show()
    {
        Display.setCurrent(this);
        tmRedraw.start();
    }
    
    public void paint(Graphics g)
    {
        //再描画
    }
    
    public void processEvent(int type, int param)
    {    
            switch(type)
            {
                case Display.TIMER_EXPIRED_EVENT:
                        if(param == TIMER_REDRAW)
                        {
                            repaint(); //タイマの処理
                        }
                    break;
                    
                case Display.RESUME_VM_EVENT:
                    tmRedraw.stop();
                    tmRedraw.start();
                    break;
            }
    }
}
  ↓
//Timer版(DoJaとStarの両方で動作)
public class TestCanvas extends Canvas implements TimerListener
{
    private Timer tmRedraw;
    
    TestCanvas()
    {
        tmRedraw = new Timer();
        tmRedraw.setTime(100);
        tmRedraw.setRepeat(true);
        tmRedraw.setListener(this);
    }
    
    public void show()
    {
        Display.setCurrent(this);
        tmRedraw.start();
    }
    
    public void paint(Graphics g)
    {
        //再描画
    }
    
    public void processEvent(int type, int param)
    {    
            switch(type)
            {
                case Display.RESUME_VM_EVENT:
                    tmRedraw.stop();
                    tmRedraw.start();
                    break;
            }
    }
    
    public void timerExpired(Timer source)
    {
            if(source == tmRedraw)
            {
                repaint(); //タイマの処理
            }
    }    
}

ImageReferenceの使用

  • Imageの代わりに画像の描画に使用できるクラス
    • MediaImage経由で使用する場合に比べてヒープの消費量を抑えられる
      • ヒープの少ないミニアプリに向いた機構
      • MediaImageはオリジナルデータと内部データを保持し続ける必要がある
      • ImageReferenceは必要に応じて内部データへの展開や開放などを行う
    • 描画のたびに画像データの展開を行うため処理速度は遅くなる
      • ただしキャッシュ指定すると次回からは展開データのキャッシュを使用するため高速になる(キャッシュは約512KB)
      • 内部的にMediaImage#use()とMediaImage#unuse()を自動で行っている?
/* MediaImageを使う場合 */
    //画像のロード
    MediaImage mi = MediaManager.getImage("resource:///screen.gif");
    mi.use();
    Image iScreen = mi.getImage();
     //画像の描画
    g.drawImage(iScreen, 0, 0);

/* ImageReferenceを使う場合 */
    //画像のロード
    ImageReference irScreen = ImageReference.createImageReference("resource:///screen.gif");
    //画像の描画
    g.drawImageReference(irScreen, 0, 0, false); //キャッシュしない場合は最後をtrueにする

フルアプリ関連

フルアプリのプロジェクト作成(Eclipse)

  1. ファイル→新規→Star-1.0プロジェクトを選択
  2. プロジェクト名とロケーションを設定
  3. 「アプリケーション種別」から「フルアプリ」を選択して「終了」
  • アプリを起動すると通常のエミュレータが起動する

描画エリア(ADFのDrawArea)の仕様

  • 何も指定しなかった場合は480x480になる
  • 全ての機種で整数倍に拡大表示されるのは240x240、240x320、320x240のみ
  • 設定可能な値は幅が96以上画面の幅以下、高さが72以上画面の高さ以下

ソフトキーのラベル設定

  • ラベルはソフトキー1~4、決定キーに設定可能
    • ソフトキー1~4は全角4文字まで
    • 決定キーは全角2文字まで

ミニアプリ関連

ミニアプリのプロジェクト作成(Eclipse)

  1. ファイル→新規→Star-1.0プロジェクトを選択
  2. プロジェクト名とロケーションを設定
  3. 「アプリケーション種別」から「ミニアプリ」を選択して「終了」
  • アプリを起動するとWidgetViewが起動する

アプリサイズの制限

  • JARファイルのサイズは50KB以下
  • スクラッチパッドは200KB以下
    • 先頭のブロック(scratchpad:///0)のみ使用可能
    • 上記領域はフル+ミニアプリ(ミニ+フルアプリ)の場合はフルアプリからもアクセス可能(共有される)

描画エリア(ADFのPallet)の仕様

  • 「:」で区切って5つの値を指定する
    • 指定しない場合は空文字とする(:が連続する)
パレット幅xパレット高さ:描画領域幅x描画領域高さ:描画領域オフセットX:描画領域オフセットY:フェイス画像
  • 描画はパレット、フェイス画像、描画領域の3つが順に重なるようにして行われる
  • パレットはミニアプリの最大描画サイズを示す透明な領域
    • 大きさは「パレット幅xパレット高さ」の部分で指定する
    • 指定可能な値は「160x160」「240x320」「320x240」「440x80」の4つのみ
    • 省略すると160x160になる
  • フェイス画像はパレットの上に描画される画像
    • 透過GIFを使用することも可能
      • パレットが透明なので、画像で透過にした部分はWidgetViewでも透明になる
      • これによってウィンドウの形を長方形以外にできる
    • 画像は「フェイス画像」の部分にファイル名を指定する
    • 省略するとフェイス画像は使用されない
  • 描画領域は実際にGraphicsクラスで描画する領域
    • 大きさは「描画領域幅x描画領域高さ」で指定する
      • パレットの大きさ以下なら任意の値が可能
      • 省略するとパレットと同じ大きさになる
      • この領域外には(パレット内あっても)描画はできない
    • 位置(パレット左上からのオフセット)は「描画領域オフセットX」「描画領域オフセットY」で指定する
      • 省略するとそれぞれ0になる
    • この領域は 透過しない ので注意が必要
      • フェイス画像で透過にした領域に重ねると透過ではなくなってしまう

複数のミニアプリを同時に起動してテストする

  • Eclipseの場合は「構成および実行」の起動種別で「WidgetView起動」を選択し実行する
  • iαppliTool for Star-1.0(C:\iDKStar1.0\bin\star.exe)を実行し「起動」ボタンの下の「iWV」を押す
    • 現在のワークスペースのミニアプリが起動可能になる(実機と同じ表示)

ソフトキーのラベル設定

  • ラベルはソフトキー1、ソフトキー2、決定キーに設定可能
    • ソフトキー1とソフトキー2は全角4文字まで
    • 決定キーは全角2文字まで

取得できないキー

  • ソフトキー3、ソフトキー4、クリアキーは取得できない(WidgetViewが使用する)

フル+ミニアプリ(ミニ+フルアプリ)関連

フルアプリのプロジェクト作成(Eclipse)

  1. あらかじめフルアプリとミニアプリのプロジェクトを作成しておく
  2. ファイル→新規→Star-1.0プロジェクトを選択
  3. プロジェクト名とロケーションを設定
  4. 「アプリケーション種別」から「ミニ+フルアプリ」を「選択」
  5. 「フルアプリを選択してください」の「参照」でプロジェクトを選択
  6. 「ミニアプリを選択してください」の「参照」でプロジェクトを選択して「終了」
  • このプロジェクトで起動しないとフルアプリ⇔ミニアプリの連携起動はできない
  • 基本的に次の作業のみを行える(アプリの作成は各アプリのプロジェクトで行う)
    • ADFの編集
    • resディレクトリにアイコン用の画像を格納する

ADFの設定について

  • フル+ミニアプリでのADFは「フル+ミニアプリ」プロジェクトのものが使用される
    • フルアプリとミニアプリのADFは使用されない
  • 両アプリのADFの内容を全て(ORで)設定する必要がある
    • フルでアプリ起動、ミニでブラウザ起動するならLaunchAppとUseBrowserの両方にチェックが必要
  • フルアプリの描画領域はDrawArea、ミニアプリの描画領域はPalletで指定する
  • 通常の起動でフルアプリとミニアプリのどちらを起動するかはAppTypeで指定

アプリの起動順

  • フル+ミニアプリの場合
    • 通常起動ではフルアプリが起動する
    • WidgetViewからだとフルアプリに関係なくミニアプリが起動できる
      • 先にミニアプリが起動されることを考慮する必要がある(特にスクラッチパッド)
  • ミニ+フルアプリの場合
    • 通常起動ではミニアプリが起動する
    • フルアプリはミニアプリから指示が無いと起動できない

フル+ミニ(ミニ+フル)アプリの使いどころ

  • フル+ミニアプリ
    • ミニアプリにフルアプリの内容の一部を表示する
    • ミニアプリをアプリ/サイト用の更新情報表示に使う
      • そこからアプリの更新を行うなど
    • ミニアプリをフルアプリのミニゲームに使う
      • スクラッチパッドの共有を利用する
    • ミニアプリを広告として使う
      • フルアプリ起動時にミニアプリを起動→ミニアプリからフルアプリを起動
      • ミニアプリが起動した時点でWidgetViewに貼りつくのを利用
      • WidgetViewに貼りついているかは判定できないので若干鬱陶しいかも
    • ミニアプリにQVGAアプリを移植したものを使う
    • 関係の無いミニアプリをおまけとして付属させる
  • ミニ+フルアプリ
    • フルアプリをミニアプリの設定に使う
      • 画面が広い&Panelが使用できるため
    • フルアプリからミニアプリで使用できない機能を使う
      • アプリの更新や画像選択など
    • フルアプリをミニアプリの詳細情報表示に使う

フルアプリ⇔ミニアプリの連携起動

  • StarApplication#changeAppType()を使用する
  • 第1引数に起動するアプリのタイプを指定する
    • フルアプリ:STAR_TYPE_FULLAPPLI
    • ミニアプリ:STAR_TYPE_MINIAPPLI
  • 第2引数でアプリにパラメータを渡すことができる
    • 渡さない場合はnull
    • 渡す場合は制限付きのHashtableを使う
      • キーと値はString
      • キーは16個以内
      • キーと値はデフォルトエンコーディングで20480バイト以内

//ミニアプリからフルアプリを起動
StarApplication.getThisStarApplication().changeAppType(
                        StarApplication.STAR_TYPE_FULLAPPLI, null);

ミニアプリからフルアプリを連携起動するとDrawArea不正で落ちる場合の対処

  • iαppliTool for Star-1.0(C:\iDKStar1.0\bin\star.exe)を実行し設定を変更
    • メニューの「端末」から、現在のDrawAreaにあったものを選択する
  • 上記の端末が480x854の時に、フル+ミニアプリのADFが480x864かつ起動端末も480x864でEclipseから実行すると、
    フルからミニは問題なく起動できるが、ミニからフルを起動するとDrawAreaがあわないので落ちてしまう
人気ページランキング
  1. 裏技・小技
LINE
シェア
Tweet
LINE
シェア
Tweet
  
記事メニュー

メニュー

  • トップページ
  • スペック
  • 機能
    • 防水
    • セキュリティ・ロック
    • モーションセンサー
    • タッチパネル
    • ビューアスタイル
    • 便利な機能
  • TIPS
    • FAQ
    • 裏技・小技
    • ソフトウェア更新
  • iアプリ
    • プリインストール
    • おすすめアプリ
  • コンテンツ作成
    • 待ち受け画像
    • メニュー画像
    • きせかえツール
      • きせかえ作品集
    • PDF(画像)
    • 着信音
    • 音楽
    • 動画
    • iアプリ
      • iアプリのスペック
      • API対応状況
      • iアプリ開発Tips
      • DoJa3.0→DoJa3.5
      • DoJa3.5→DoJa4.0
      • DoJa4.0→DoJa4.1
      • DoJa4.1→DoJa5.0
      • DoJa5.0→DoJa5.1
      • DoJa5.1→Star1.0
      • Star1.0→Star1.1
      • Star1.1→Star1.2
      • Star1.2→Star1.3
      • Star1.3→Star1.5
  • 動作報告
    • microSD
    • Bluetooth
    • バグ・不具合
  • 情報交換
    • アンケート
    • コメント



リンク集

  • NTTドコモ
    • NTTドコモ ホーム
    • 製品一覧
    • 製品別サポート情報
    • サービス・機能
    • 作ろうiモードコンテンツ
    • ソフトウェアアップデート
  • 富士通
    • 富士通 : FUJITSU Japan
    • 携帯電話
    • @Fケータイ応援団
    • データリンクソフト
  • F系携帯電話wiki
    • F-08B&F-10BまとめWiki
    • F-07BまとめWiki
    • F-06BまとめWiki
    • F-04BまとめWiki
    • F-01BまとめWiki
    • F-09AまとめWiki
    • F906iまとめWiki
    • F905iまとめWiki
    • F904iまとめWiki



wiki編集

  • @wikiの基本操作
  • @wiki構文
  • @wikiプラグイン
  • @wikiの設定/管理
  • @wikiご利用ガイド
  • @wikiへのお問合せフォーム



ここを編集
記事メニュー2

更新履歴

取得中です。



QRコード




ここを編集
最近更新されたページ
  • アンケート (629日前)
  • メニュー (3564日前)
  • トップページ (3564日前)
  • ソフトウェア更新 (3564日前)
  • Star1.3→Star1.5 (3714日前)
人気ページ
  • 裏技・小技
最近更新されたWiki
  • ゲームカタログ@Wiki ~名作からクソゲーまで~
  • 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  • MTG 自作AAwiki
  • 任天堂大辞典wiki
  • アニヲタWiki(仮)
  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.