忍者ブログ
[12] [13] [14] [15] [16] [17] [18] [19]

DATE : 2024/04/27 (Sat)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


DATE : 2006/04/18 (Tue)

前回の記事

参考文献

(;^ω^)正直、参考文献を見たほうが正確で分かりやすいかもしれません。

(了)
PR

DATE : 2006/04/17 (Mon)

ひょんなことから、 iアプリの開発に手を出すことになりました。

適当に開発資料を眺めていると、Java ME CLDC に対応していて、その上に iアプリの API がある模様。

とりあえず、Java ME について簡単にメモしておきます。

Java ME とは

Java ME (Java Platform, Micro Edition) とは、組み込みソフト用途の Java の規格です。

組み込み機器には様々な種類があるため、Java ME はいくつかのコンフィギュレーションに分かれています。その中でも CLDC (Connected Limited Device Configuration) は、低速度・省メモリ・低消費電力な機器向けのコンフィギュレーションです。主にケータイで使用されています。コンフィギュレーションによって、基本的な API や仮想マシンの仕様が定められています。

コンフィギュレーションには、プロファイルを追加することができます。プロファイルによって、その機器に特化した API を追加できます。例えば、iアプリの場合は CLDC に Doja プロファイルを追加した形で iアプリの実行環境を構成しています。

CLDC 以外のコンフィギュレーションには、多少速度やメモリ容量に余裕のある環境向けの CDC (Connected Device Configuration) があります。こちらは、 PDA やカーナビなどで使用されています。

また、CLDC のプロファイルとして、MIDP (Mobile Infomation Device Profile) というものもあります。これは、ケータイなどの情報端末で共通した API をプロファイルとしてまとめたものです。

手を出してみたものの

と、iアプリの開発に手を出してみたものの、大変なことに気が付いてしまいました。

CLDC 1.0.x では、浮動小数点数、要するに float 型や double 型を使用できません orz

ちなみに、 CLDC 1.1 では使用できます。しかし、 CLDC 1.1 をサポートしているのは Doja プロファイル 4.0 からで、それ以前のものは CLDC 1.0.x です。

Doja プロファイル 4.0 が公表されたのは 2005年の10月です。つまり、「古いケータイだから」と言って切り捨てるわけにもいかないんですよね orz

(;・∀・)iアプリで画像処理をやろうとしていたのですが、浮動小数点数が出てくるところは全て整数に変換して演算するほかなさそうです。

また、CLDC 1.0.x は Java 2 SE 1.3、CLDC 1.1 は1.4をベースにしています。個人的には、Java SE 5 で導入された新しい文法が使えないのは少し残念な気もします。

参考文献


DATE : 2006/04/17 (Mon)

前回の記事

SimpleLog を設定する

これで、SimpleLog を使ってログを出力できるようになりました。

なお、システムプロパティやプロパティファイルなどを使って SimpleLog を設定できます。プロパティファイルで設定する場合は、「simplelog.properties」というファイルを作ります。

設定できるプロパティは以下の通りです。

org.apache.commons.logging.simplelog.defaultlog

SimpleLog 全体の標準のログレベルを指定します。

trace, debug, info, warn, error, fatal のいずれかを値に設定します。

設定しない場合は、 info となります。

org.apache.commons.logging.simplelog.log.xxxxx

xxxxx の名前を持つ SimpleLog のログレベルを指定します。

xxxxx には、Log を生成した際に設定した文字列か、クラスの完全修飾名を指定します。

設定できる値は上と同様です。

設定しない場合は、上の設定に従います。

org.apache.commons.logging.simplelog.showlogname

Log を生成した際に設定した文字列か、クラスの完全修飾名を出力するかどうかを指定します。

true で出力し、 false では出力しません。

指定しない場合は false です。

org.apache.commons.logging.simplelog.showShortLogname

xxx.xxx という形式の文字列を Log の生成時に設定した場合に、最後の「.」以降の文字列のみを出力します。クラスを設定して生成した場合は、クラスの単純名を出力します。

true で短い形式で出力し、 false ではそのまま出力します。

指定しない場合は false です。

org.apache.commons.logging.simplelog.showdatetime

ログに日時を出力するかどうかを指定します。

true で日時を出力し、 false では出力しません。

指定しない場合は false です。

org.apache.commons.logging.simplelog.dateTimeFormat

日時の出力形式を指定します。

設定できる値は、 java.text.SimpleDateFormat で設定できる値に従います。

設定しない場合は、「yyyy/MM/dd HH:mm:ss:SSS zzz」となります。

つづきます

DATE : 2006/04/15 (Sat)

前回の記事

ログの生成が重い場合

これでログが出力できるようになりました。

しかし、出力するログのレベルが info 以上で次のような場合を考えてみます。

public void execute(int a) {
    log.trace("引数" + a + "で execute 起動");
}

Log#trace(String) は実行されますが、出力するログレベルが info 未満なので、ログには出力されません。すると、文字列の連結処理「"引数" + a + "で execute 起動"」が無駄になってしまいます。

最近のマシンは性能が良いので、上のように無駄になる処理があっても実行速度には全くと言っていいほど影響しません。

しかし、もし明らかに影響を与えているような処理があれば、次の方法で重い処理を回避できます。

public void execute(int a) {
    if (log.isTraceEnabled()) {
        log.trace("引数" + a + "で execute 起動");
    }
}

Log#isTraceEnabled() によって、trace のログが出力される状況であれば true 、出力されない状況であれば false が得られます。

このような、あるレベルのログが出力されるかどうかを確認するメソッドもレベルごとに用意されています。例えば、 debug レベルであれば次のようになります。

public void execute(int a) {
    if (log.isDebugEnabled()) {
        log.debug("引数" + a + "で execute 起動");
    }
}

つづきます


DATE : 2006/04/14 (Fri)

前回の記事

ログ出力

ログを出力するには、まず org.apache.commons.logging.Log のインスタンスを取得します。

Logging のサンプルコードを見る限り、 static フィールドとして以下のように取得するのがお薦めです。

public class Example {
    private static final Log log = LogFactory.getLog(Example.class);
    (略)
}

なお、LogFactory#getLog の引数として、クラスオブジェクトの代わりに文字列を指定することもできます。

この Example クラスでログを出力するには、次のようにします。

(Example クラス内)
public void execute() {
    log.trace("execute 実行");
    (中略)
}

ログレベルの指定は、メソッドを変えることで行います。上の例では trace としてログを出力していますが、 debug として出力するときは以下のようなります。

log.debug("execute 実行");

trace を debug に変えただけです。このように、メソッドはログレベルに対応しています。

また、例外オブジェクトやエラーオブジェクトを出力することもできます。

つづきます

忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
ブログ内検索
最近の状況
リンク
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック