Google Android で遊ぶ 4
土曜日, 2 月 28th, 2009Windows Vista 64 bit にて DDMS 起動せず(T-T)
なんだか良くわかんないが Windows XP (32 bit) では動く。
Windows Vista 64 bit にて DDMS 起動せず(T-T)
なんだか良くわかんないが Windows XP (32 bit) では動く。
Google Android で遊ぶために書籍を購入した。
購入した書籍は「初めての Google Android プログラミング」です。
この本はサンプルコードが豊富に載っていて解説も解りやすくて Good! です。
第9章までは
第10章からはいったい今までの親切さはどこいったの?と言う感じです。
Android 内蔵のデータベース SQLite を利用したアプリケーションを作るのですが良く解りませんでした。
サンプルコードは豊富に記述されてるけどコード量が多いわりに解説が妙に少なくなってます。
私のような素人には第10章は難しすぎます。
独自の Content Provider を利用してデータベースにアクセスする方法
そして SQLiteOpenHelper クラスの使い方
Cursor オブジェクトの利用方法などなど解らなかった(T-T)
現時点では解る部分が50パーセントで???が50パーセントくらいでしょうか。
何回か読み直してみてなんとか理解したいものです。
これじゃ、 Google Android で苦しむ ですね(^^;
100 年に一度の大不況と言われてずいぶん経つがやっと我が職場にも影響があらわれた。
残業が減った!
しかし、サービス残業及び自主活動(強制活動と密かに言う)が増えた。
サービス残業は名のごとく賃金はいっさい付かない。
自主活動は時給 100 円程・・・
う~ん・・・ 微妙。。。
とりあえず今日は定時で帰れたので良しとしよう(^^)
明日は自主活動をするらしい・・・(T-T)
世の中、そうそう甘くないですね。
今日は次期 NetBeans の開発版を使って遊んでみます。
テキストの色をボタンを押すことによって変えてみたいと思います。
いつものように NetBeans を起動して Android Project を作成します。
main.xml ファイルを編集してテキストとボタンのプロパティを設定します。
テキストは NetBeans が自動生成したものに ID をつけて使います。(7行目)
ボタンは11行目から15行目で ID に changeButton と設定しました。
ボタンのテキストは15行目で Change Color としました。
次にアイコンを設定します。
Resources ディレクトリに drawable ディレクトリを作りその中に icon ファイルを配備します。
前回と同様に AndroidManifest.xml を編集します。
<application android:icon=”@drawable/icon”>
上記のようにアイコンを設定して、いったんプロジェクトをビルドします。
R.java ファイルが更新されこれらリソースにアクセス可能となります。
MainActivity.java ファイルを編集します。
テキストの表示は前回と変わりません。
ボタンは下にある MainActivity.java のソースコードを参照してください。
28行目でボタンコンポーネントを作ってます。
30行目でオンクリックリスナーをボタンに登録してます。
その際、NetBeans を使っているとコードの補完機能が働きます。
でも悲しいことに Android SDK のドキュメントを表示させることはできないようです。(T-T)
それを差し引いても便利なので使って損はないです。
下記の例だと補完機能を利用して入力すると onClick() メソッドまで自動で生成してくれます。
ボタンが押されたときの処理を記述した MainActivity.java のソースです。
ボタンが押されるたびにテキストの色を変更するだけのシンプルなものです。
MainActivity.java
それでは実行してみます。
初期画面はこのようになっていてテキストの色もデフォルトのままです。
ボタンを押してみます。
テキストの色が赤色に変更されました。
もう一度押してみます。
今度はテキストの色が青色に変更されました。
押すたびに赤色と青色に変更されます。
無事に完成しました。(^^)
アイコンがオリジナルのものに変更されているか確認します。
ちゃんと変更されてます。
もちろん、このアイコンをクリックするとアプリケーションが立ち上がります。
せっかくだから 36行目にブレークポイントを設定してデバッグしてみます。
おや?
ぬるぽの警告(^^;
今、使ってる NetBeans は netbeans-trunk-nightly-200902190601-ml-windows なので NetBeans 6.5 でも同じかどうかはチェックしてません。
一応ブレークポイントでとまりますね。
下図は何回か動かしてるので局所変数 i の値が 8 になってます。
ステップインさせて局所変数が変わることを確認。
i の値が 9 に変更されてます。
警告のダイアログウィンドウが出たけど動いてます。
簡単なプログラムしかまだ作ってないけど Android 面白いかも?
NetBeans から GUI を利用したプロパティの設定ができるようになり、コードの補完と共に Javadoc も表示されるようになってほしいですね。
NetBeans を使って Google Android で少し遊んでみたいと思います。
main.xml ファイルの Text View に ID を登録して利用してみます。
下記のように android : id=”@+id/hogehoge” と設定すればいいようです。
ついでにアイコンも変更してみます。
Resources ディレクトリに drawable ディレクトリを作りその中に icon ファイルを入れればよさそうです。
R.java ファイルはこの段階では下記のようになってます。
ここでビルドをすれば下記のように ID を登録したものが使用できるように自動で生成されます。
もちろんアイコンもです。
それでは MainActivity.java を下記のように編集します。
findViewById() メソッドにて引数で指定された ID のリソースをとってくるようです。
ここで、このような状態になってることに気がつく人もいるかと思いますが無視します(^^;
それでは実行します。
ちゃんと呼び出した ID のテキストの通り表示されてます。(^^)
アイコンの確認をします。
あれれ?
アイコンは変わってません(><)
なぜなんだ!
確かこの方法で自動でアイコンが設定されると見た覚えがあるんだけどなぁ・・・・
これは今後の課題ということにします。
今日はもう眠いのでこれまで・・・
やっぱり、このままでは眠れないので調べました。
AndroidManifest.xml を下記のように編集すればOKです。
<?xml version=”1.0″ encoding=”UTF-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
package=”nano.yucchi”>
<application android:icon=”@drawable/icon”>
<activity android:name=”.MainActivity” android:label=”MainActivity”>
<intent-filter>
<action android:name=”android.intent.action.MAIN”/>
<category android:name=”android.intent.category.LAUNCHER”/>
</intent-filter>
</activity>
</application>
</manifest>
では、おやすみ~~~zzz
Google Android で Hello, Android って表示させるにとりあえず成功しました。
今日は別の方法で表示させてみます。
ついでに日本語表示の確認も。
昨日と同じように NetBeans を使って簡単に作ってみます。
昨日と同じように Android プロジェクトを作ります。
MainActivity.java の OnCreate() メソッドを下記のように編集します。
これによって描画情報を main.xml ファイルから取得するようです。
前回はここに描画コードを記述して表示させてました。
そして、Resources ディレクトリ → layout ディレクトリと進み、main.xml ファイルを選択し編集します。
main.xml ファイルは下記のようになってます。
9 行目を下記のように編集します。
それでは実行してみます。
表示はされましたが変な警告が出ました。
とりあえず、それ以降はなんともないのでたぶん問題ないと思います。
日本語も表示可能なのも確認できました。
main.xml ファイルに描画情報を設定してそれを利用する方法もあるんですね。
携帯アプリってまだ一度も試したことがなかったので新鮮です。
でも Android で使われてる Java は Pure Java じゃなくて Imitation Java じゃなかったかな?(表現悪くてごめんなさい)
ネット上では iPhone の開発は難しいと見た記憶があるので Google Android も難しいんだろうな。
電話なんてつながれば良いと思ってる私には車で例えればフェラーリやランボルギーニみたいなものです。(爆
下記 Java プログラムの実行結果は?
package inctest;
/**
*
* @author Yucchi
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int i , j;
i = 1;
j = 1;
System.out.println(“++i * 2 = ” + ++i * 2);
System.out.println(“j++ * 2 = ” + j++ * 2);
}
}
これはプリインクリメントとポストインクリメントの違いを理解してないと間違います。
なんで今さらこんなことを?
NetBeans 7.0 開発版で出力ウィンドウのフォントサイズが変更できる機能を確認したかっただけです。(^^;
Windows だと出力ウィンドウのフォントサイズが小さくて悲しかったけど NetBeans 7.0 では遂に普通の大きさから異常な大きさまで変化させることが可能となる。
上手く動かないので開発元のサイトの FORUMS を覗いてみたところこの問題が論議されてました。
私は英語ができないのでちゃんと理解できてないかもしれませんがなんとか動かすことができました。
build-impl.xml を
上記から下記のように変更します。
これで Build が正常にできるようになります。
この状態でアプリケーションを実行すると下図のようなエラーが出ます。
再び build-impl.xml を編集します。
上記から下記のように変更します。
無事にエミュレータが立ち上がってアプリケーションが実行されます。
Hello, Android って表示されてます(^^)
メニューにも MainActivity がアイコンと共に並んで表示されてます。
もちろん、クリックしたら実行されます。
この方法であっているかどうかは開発元のサイトの FORUMS で確認してくださいね。
NetBeans の Google Android プラグインがあるようなので Hello, Android でも表示させてみようとしたが上手くいかなかった。orz
アップデートセンターカスタマイザーを下図のように設定してプラグインを取得できるようにします。
アップデートセンターに追加されたことを確認します。
プラグインを選択してインストールします。
プロジェクトに Android が追加されます。
新規 Android Application ウィンドウで必要事項を入力します。
まだ Android SDK をインストールしてない場合、下図のようなメッセージが赤字で表示されますので [ Manage Platforms ] ボタンを押して追加します。
プラットフォームに Google Android Open Handheld Platform を選択し画面の指示にしたがって追加します。
プラットフォームに Android が追加されたことが確認できます。
新規 Android Application が下図のような構成で自動生成されます。
MainActivity.java を編集して Hello, Android と表示させてみましょう。
プロジェクトを実行させてみます。
(>_<) いきなり駄目でした。
何がいけないのだろう?
あっ!そうだ。
Google 携帯はまだ日本で発売されてないからに違いない。(嘘
I’m absolutely sure!
int 型は 4 バイトなので 32 ビットですよね。
従って 2 の 32 乗通りの表現が可能。
そのうち符号に 1 ビット。
マイナス 2 の 31 乗から、プラス 2 の 31 乗から 1 を引いた範囲まで。
何故、正の範囲がマイナスの絶対値じゃないのか疑問に思ったが純粋無垢な私は素直にそういうものなんだと今まで思っていた。
ひょんなことからこの謎が解けた。
だからどうってことはないけど一応・・・覚え書きということで(^^;
Java の int 型の正の整数は 0 から始まるからだそうです。
int 型に限らず正負を扱う型はそうなるんでしょうね。
これってプログラマーの常識なんでしょうけど肉体労働者の私にとってはショックでした。
数学的に 0 は正でも負でもない特殊な存在だからです。
本当に今さら忘れていた疑問が解けて少しうれしい自分が可愛いと思う今日この頃です。(爆