コマンドから Androidエミュレータ起動

Android の勉強をしていて、コマンドからでも起動できないかな?
ということで
実験してみました
emulator @AVDName
で起動できます
仮に AVDName が
test2.2
だった場合
emulator @test2.2
となります
ちなみに、このコマンドから起動させるには
adb や android sdk へのパスを通しておく必要があります
ubuntu 10.10 なら
$HOME/.bashrc

追記します
vi で開いて書き込むのは面倒なので
echo -e ‘PATH=$PATH:$HOME/bin/android-sdk-linux_86/tools’ >> $HOME/.bashrc
echo -e ‘PATH=$PATH:$HOME/bin/android-sdk-linux_86/platform-tools’ >> $HOME/.bashrc
source ~/.bashrc
としました

アプリケーションをAndroidマーケットに登録

3月になり、いつもなら、日本企業の資金還流によって
円高になるので、この機会にAndroid マーケットへの登録をして
おこうと思います
Android マーケットに登録するには
Googleアカウント
クレジットカード
そして開発者登録費用の
25ドルになります
クレジットカードの決済には最終日の為替レートで
計算されやすいので、この円高の機会に行って
おこうと思います
ちなみに、この登録は、無料アプリで
有料アプリを公開するには、また別の方法が必要のようです
アプリケーションをAndroidマーケットに登録する

書籍、Google Android アプリ開発ガイド 第2番
を参考にすすめていきます
まず。Google アカウントですが、
Androidマーケットなどに情報として公開されること
そして
もし、DevPhone を購入するときのパケットの問題を回避するために
新規にアカウントを作成したほうがよさろうです
私は、新規にアカウントを作成しました
新しくアカウントを取得したら、
http://market.android.com/publish
へアクセスし、登録を開始します
書籍情報だと古い可能性が高いので
念のため 検索し
Android Market に開発者登録してみた [日記]
も参考にしました
開発者の登録画面は、現在では日本語化されているようです
デベロッパー名には、開発者名
つまり、自分のハンドルネームでよいとおもいます
メールアドレスは、Google のアカウント
というか g-mail のアドレスがデフォルトで入っているので
そのままです
ウェブサイトは、自分のブログとかでもいいと思うのですが
(というより、私はこのブログしかありませんので)
空欄でも問題はないです
まぁ問題がでてきたら、のちのち修正しようかなと思っています
また、電話番号を登録する必要がありますが
これは国際電話の番号になります
Android Market に開発者登録してみた [日記]

Google Android アプリ開発ガイド 第2番
によれば、
先頭に「81」をつけ、市外局番の先頭の0を取り除いた番号
とのことですが
そもそも固定電話など使わないし、携帯しか使っていないので
ここは
携帯の番号に +81
をつけてみました
この電話番号は非公開扱いで
何かトラブルとかがあった場合に Google から連絡をするためのもの
とのことです
規約は変わりますので、今後もこのままとは限りませんが
とりあえずは、携帯にしておきました
続いて、チェックアウトの画面にいきますが
このときに、念のために、Android マーケットデベロッパー販売/配布契約
のところをクリックし
画面の規約書を名前をつけて保存しておきます
(なにかあったときに、契約書は証拠にもなります)
まぁAndroid の普及具合からして問題はないとおもいますが
ただ、カード番号登録の画面で、国際電話ではなく
日本の携帯電話で普通に登録をしてしまいました
まぁ問題があれば、そのうちメールが届くでしょう
ここまでで、アプリのアップロードはできるようですが
まだ登録が完了していないようです
土日なので、もしかしたら休みなのかもしれません

Android アプリ作成(タッチ処理編)その4

Android アプリ作成(タッチ処理編)その3
の続きになります
まず、
public class test2Activity extends Activity {
の下に
SoundPoll sp;
int sound;
を記述し、
赤いラインがでているので、
SoundPoll のところへカーソルを持っていって
import SoundPoll (Android widget)
をクリックし、インポートします
int sound は音声ファイルの読み込みに使うための変数です
次に、
sp = new SoundPool(1,AudioManager.STREAM_MUSIC, 0);
を記述します
例のごとく、自動的に候補がでますので
実際にはかなり楽に書き込めます
続いて
sound = sp.loa
まで書き込むと候補がでてきますので
load(Context context, int resid, int priolity); int – SOundPool
を選択すれば自動的に書き込まれます
context を this へ、
resid を R.raw.dummy-message
と指定しようとしたのですが
[2011-02-19 00:07:17 – Test2] res/raw/dummy-message.wav: Invalid file name: must contain only [a-z0-9_.]
となるため、ファイル名を変更します
Eclipse の raw > dummy-message.wav
を右クリックし
Refactor > Rename 
もしくは
Shift + Alt + R
を押してファイル名を変更します
ファイル名を dum.wav
にして
resid を R.raw.dum
pliority を 1
へ変更します
そして
Button button = (Button)findViewById(R.id.Button02);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sp.play(sound, 1.0f, 1.0f, 0, 0, 1.0f);
}
});
を追加します
sp.play(sound, 1.0f, 1.0f, 0, 0, 1.0f);
は、音声再生の設定です
play()
の中の数値ですが、左から
サウンドの番号
左スピーカーの音量 (0.0~1.0)
右スピーカーの音量 (0.0~1.0)
優先度 (0が最優先数値になる)
再生速度 (1が標準。2で倍速、0.5で半分)
となります
かなりわかりにくくなったので、以下が
main.xml の全文になります
-------------------------------------------------------
package jp.co.nikkeibp.test2;
import android.app.Activity;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class test2Activity extends Activity {
SoundPool sp;
int sound;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sp = new SoundPool(1,AudioManager.STREAM_MUSIC, 0);
sound = sp.load(this, R.raw.dum, 1);
Button button = (Button)findViewById(R.id.Button02);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sp.play(sound, 1.0f, 1.0f, 0, 0, 1.0f);
}
});
}
}

--------------------------------------------------—-

Android アプリ作成(タッチ処理編)その3

Android アプリ作成(タッチ処理編)その2
をさらにカスタマイズし、音がでるように改造します
参考資料は、日経Linux 2011-03 です
新しく res の下に raw というディレクトリを作成します
まず
res ディレクトリの上で右クリックし
New > Folder
で設定ウィンドウがでてきますので
Folder name: の欄へ raw と入力し
Finish
をクリックします
これで、ディレクトリが作成されます
ちなみに、英語なのは
私の場合
DropBox とスクリプトで開発環境
にあるように、スクリプトでインストールしたときに
日本語化処理を行っていないためです
今後、英語のサイトなどを使うときの練習として
なるべくプログラミングは日本語化せずにできそうなものは
英語にしてみようと思っています
幸い、Eclipse は日本語化されて説明されていることが
多いので単語を置き換えながら
進めれば、なんとかなります
習慣化してくれば、気にならなくなります
日経 Linux 2011-03では don.wav
というファイルを使っているそうですが、
ubuntu には入っていませんし、再現性の問題から
デフォルトで入っている音源を使おうと思います
サンプルの音声が
/usr/share/sounds/
の中にありますので、好きなディレクトリの中のファイルから
使うことにします
今回は
ubuntu 10.10
の中の
/usr/share/sounds/speech-dispathcer/
の中にあるダミーメッセージファイルになる
dummy-message.wav
を使います
これをドラッグ&ドロップして、Eclipse の
raw ディレクトリにもっていきます
これで、音声ファイルが用意できましたので
それでは、引き続き java コードの改造をしていきます
今回、追加するのは
SoundPool クラス
(ゲームやボタンクリックの効果音など
 比較的短い音声再生につかうらしいです)
load メソッド
(音声ファイルの読み込みに使用)
playメソッド
(音声ファイルの再生に使用)
今回は、変更するために、いちど
setContentView(R.layout.main);
の下からの部分を切り取ります
切り取るのは
Button button = (Button)findViewById(R.id.Button02);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
TextView textView=(TextView)findViewById(R.id.TextView01);
textView.setText(“ボタンをクリックしたよ”);
}
});

の部分です
念のため、後で直せるように
アプリケーション > 
アクセサリ > Tomboy メモ
で新しいメモを開き、
張り付けておきます
これで、最悪の場合、この部分を張り付けて元に戻します
これで、バックアップもできたので
安心して機能を追記できます

Android アプリ作成(タッチ処理編)その2

Android アプリ作成(タッチ処理編)
の続きになります
ちなみに、参考書籍は 日経 Linux 2011-03です
写真入りの解説なので、わかりやすいです
ここで、main.xml のTexiView01 を取得し、 Text の
内容を変更する処理を追記します
public void onClick(View v) の下に追記します
TextView textView=(TextView)findViewById(R.id.TextView01);
今回もインポートすることが必要になるので
import TextView (Android widget)
をクリックします
これにより、文字列を表示する機能
TextView を使えるようになります
そして、その下へ文字列を表示する設定を記述します
文字列を表示するには
setText()
を使います
textView.setT
まで入力すると、候補がでてきますので
setText(CharSequence text);void
を選びます
そして、() の中を
“ボタンをクリックしたよ”
というように書き換えます
textView.setText(“ボタンをくりっくしたよ”);
という文になります
あとは保存して、実行すればボタンを押すことで
ボタンの下の文字が変わることを実感できるはずです

Android アプリ作成(タッチ処理編)

今度は、簡単な処理をする動作をつくってみます
まず、TextView を追加します
追加するには
Graphical Layout で
TextView をドラッグ&ドロップします
さらに
Show in > Propeties

T3ext の値を @string/hello
へ変更します
また、
main.xml の layout?height を wrap_content
にして文字に合わせ
layout_width を fill_parent にして
画面に合わせました
ここからは処理機能を追加するので、java のソースコードを改造していきます
まず、
src
というディレクトリの2階層下にある
Activity.java
を開きます
もう少し正確にいえば
アプリケーション名(testapplicationなど) >
src >
パッケージ名(jp.co,nikkei.testapplicationなど) >
Activity.java
という階層になっています
今回は Button2 をクリックしたら
TextView の内容が変わるというシンプルなものです
まず、
setContentView(R.layout.main);
の下に
Button button = (Button)findViewById(R.id.Button02);
を追記します
まだButton が java の標準機能に組み込まれていないので
Eclipse で赤い下線が引いてある Button にカーソルを合わせ
import “Button” (Android wodget)
をクリックすることでインポートされます
これを行うことで、
import android.widget.Button;
が追記されます
この次に、ボタンを押したときの処理を書きます
ボタンをクリックしたときの処理は
setOnClickListener() を使いますが
全部入力せずとも
Button.setOnC
まで入力すれば、Eclipse で候補をだしてくれるので
該当するものをダブブクリックすれば自動入力されます
このときできた
Button.setOnclickListener(1)
の1の部分を消し
new View.setOnClickListener
を追記するのですが
new View.OnC
まで入力すれば、さきほどと同じように Eclipse が候補を選別してくれます
これにより、自動的に
public void onClick(View v){
}
が追記されます
Eclipse ってほんとに便利だと思います

Android アプリ作成(ボタン表示編)その3

引き続き。Android プログラミングです
今回は、前回までとは異なり、main.xml ではなく
string.xml
を変更していきます
一般的に、レイアウトはmain,xml
文字列は string.xml で記述するようです
文字列を追加するには
string.xml の
Resource タグをクリックし、GUI で設定するか、もしくは
string.xmlを改造します
Resources で文字列を追加するには
Add > string
で設定画面をだし
Name に button1
Value に ここを押して
と入力します
これで、自動的に string.xml に追記されています
これで、新しくボタンを
Graphical Layout で Button をドラッグ&ドロップし
作成します
プロパティを変更したいので
ボタンの上で 
右クリック ≫ Show in > Properties でプロパティ画面をだします
今回は、 string.xml の設定を反映させてみたいので
Text の部分に @string/button1 を記述します
さらに、
layout width を fill_parent へ変更します
これで、新しくできたボタンには
ここを押して
という文字が表示されています
また、main.xml には
<Button android:id=”@+id/Button02″ android:layout_height=”wrap_content” android:text=”@string/button1″ android:layout_width=”fill_parent”>
というコードが追記されます
今回の例からわかったのは
string.xml ファイルから
<string name=”button1″>ここを押して
を呼び出しているように
string.xml からソースを読み込むには
@string/NAMEの値
を指定するということです
つまり、今回の場合なら
<string name=”button1“>ここを押して
になるというわけです

Android アプリ作成(ボタン表示編)その2

引き続き、ボタン設定の続きです
今回は、作成したボタンの設定をかえてみます
ボタン作成については
Android アプリ作成(ボタン表示編)
に箇条書きでメモってますので
参考にしてください
ボタンのレイアウトを変更するため、
XMLを変更します
現在、初期の状態では
Layout height
つまり、ボタンの高さ
そして
Layout witdh
ボタンの幅
の設定が
wrap_content
になっています
このwrap_content
文字のサイズに合わせて、自動でサイズ調整する
という意味になります
これを画面の幅に合わせるようにするには
fill_parent
に変更します
変更の方法ですが
Graphical Layout を使う方法と、
main.xml を編集する方法があるのですが
Grahical layout を使って
表示されているボタンの上で 右クリック > Properties > fill_parent
となるはずですが
私の環境ではできなかったので
直接 main.xml
を編集しました
main.xml のなかに
%lt;Button android:id=”@+id/Button01″ android:text='”ぽちっとな (笑)”‘ android:layout_width=”wrap_content” android:layout_height=”wrap_content“>
という部分がありますので
この wrap_content を fill parent へ変更します
%lt;Button android:id=”@+id/Button01″ android:text='”ぽちっとな (笑)”‘ android:layout_width=”fill_parent” android:layout_height=”wrap_content”>
これで、ボタンの横幅が文字ではなく
画面の大きさに合わせたものに変わります
また、サイズ指定も可能です
%lt;Button android:id=”@+id/Button01″ android:text='”ぽちっとな (笑)”‘ android:layout_width=”100px” android:layout_height=”wrap_content”>
というようにすれば、サイズも指定できます

Android アプリ作成(ボタン表示編)

こんどは、ボタンの表示についての勉強です
前回は、文字の表示の変更でした
今回は、ボタンを配置します
前回、使用した main.xml ファイルにある
<TextView
android:layout_widh=”fill_parent”
android:layout_height=”wrap_content”
android:text=”@string/hello”
/>
の部分を削除します
ちなみに、この意味ですが
fill_parent は画面と同じ幅で文字を表示
wrap_content で高さを自動的に調整
@string/hello で string.xml のhello の値を画面に表示
となります
では、今回のボタンの配置になります
XMLを記述するという方法もありますが
残念ながら、面倒でもあり、そもそもXMLを理解できていないため
GUIで操作できる
Graphical Layout を使い、Buttonをドラッグ&ドロップし
右側にある画面に配置します
これはIDEなどでアプリを作るときによく使います
このパズルのような画面と、ソースコードがリンクしているので
このパズルのような画面に部品を
ドラッグ&ドロップで配置すると
main.xml の中にもXMLのソースが自動的に記述されます
この追加したボタンのうえで右クリックし
Show in > Properties を選択すると、プロパティを出せますので
この中の値から、Text を探し、
Value のところに好きな文字を記述します
英語でなら問題ないのですが
日本語の場合、value に記述するときには
“” で囲みましょう
<例>
“このボタンを押しましょう!!”
これで、文字を変更したときのように、
実行をすれば、ボタンを配置したアプリが起動します

Android アプリ作成(画面レイアウト編)その2

ひきつづき Android プログラミングの勉強です
アプリの画面レイアウトには
XMLをいじる
もしくは
javaソースコードを改造する
のどちらかを使います
今回は、XMLをいじります
Eclipse の左側にある
Package Explorer を最大化し
プロジェクト名 > res > layout >
main.xml というファイルをダブルクリック
その main.xml の中に
android:text =”@string/hello”
という文があります
この意味は、res ディレクトリの中の
values の中にある string.xml を参照し
hello 属性の値を読み込む
ということになります
このことから
string.xml で表示する文字を管理
main.xml でどこに表示するか決定
Activity に反映
というのが文字表示の流れになっています
極端な話、
プロジェクトでできたアプリの文字列を変更したいなら
string.xml の中の
<string name=”hello”> Hello world testr Activity </string>
のタグの中の部分を
<string name=”hello”> アンドロイド実験です </string>
というよにタグの中を表示したい文字にするだけで変更可能です
あとはこれを保存し、実行すると変更が反映されます
また、アプリの名前を変更するには
<string name=”app_name”> test</string>
のタグの中のtest の部分を 好きなアプリ名に変更することで
アプリ名を変更できるようになります
たとえば、
<string name=”app_name”>実験アプリ</string>
とすると、アプリ名が実験アプリになります
このように、固く考えず
まずはソースの改造くらいから行うと
おもしろく開発できるようになっていくと思います