AndroidはEclipse使わないと開発できないよね~。重いよね~メモリ食うよね~
CUIだけでAndroidプログラミングしたいなぁ、と思ってやってみました。
以下にその方法を記述します。
環境はLinux(Ubuntu)を想定しています。
◆ 1. 準備
|
以下のコマンドでアンドロイドmanagerを起動させる。
|
Error: Target id is not valid. Use 'android list targets' to get the target ids.
とか
Available Android targets:
だけしか出ない場合はアンドロイドの開発環境がダウンロードできていないことを表す
◆ 2. エミュレータの作成方法
例えばエミュレータの名前をandi_vs_rockyとする場合
|
◆ 3. Hello worldの作成
android create projectで引数を指定してプロジェクトを作ることができる。
さて、引数は
-t (--target)で、上記のTargetと対応していないとまずいだろう
-k はパッケージネーム ( --package )
-a はアクティビティ ( --activity )
-p はPath( --path )
で、コマンドをうつ。(ちなみに以下のフォルダは勝手に作られる。)
|
HelloWorld android 等でぐぐればワンサカ出てくるので割愛。
hello worldをかき終えたら、
|
と出る。したらOK。
なお、リリースモードやデバッグモードは以下のようにして切り替える
|
ant debug でエラーが出る場合について
原因1 antがインストールされていない
|
|
.bashrcに以下を書く(環境依存。which, ls-laなどのコマンドで地道にjavacの場所をさがす)
export JAVA_HOME=/usr/lib/jvm/java-6-sun/
JAVAC, JAVAはインストールされているものとする。
原因3
プログラムがおかしい
◆ 4. プログラムの転送
◆◆エミュレータに転送する
エミュレータに転送するには以下のコマンドを叩く
|
280 KB/s (13342 bytes in 0.046s)
pkg: /data/local/tmp/HelloWorld-debug.apk
Success
などとでる。ダメな場合は
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: device offline
エミュレータで画面ロックがかかっていると送れないことがある。
◆◆実機に転送する
実機に転送する際、まずベンダーIDをLinuxマシンに登録する必要がある。
/etc/udev/rules.d下に下記のファイルを作成する。
|
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", MODE="0666"
続いてパーミッションの変更
|
|
アンドロイド端末をつなげて、デバイスの確認をする。
|
それでもダメな場合は、
|
|
いよいよプログラムを転送する。プログラムの転送は以下の通り。
|
エミュレータも存在している場合(例えば以下のような場合)
・emulator-5554 device
・SSHEV049822 device
こうした二つ以上(例えば、エミュレータと実機が走っていた場合)どこにインストールするのか引数で明示する必要がある。引数は以下の通り
* -d:USBで接続されている実機に対してコマンドを実行する
* -e:エミュレータに対してコマンドを実行する
* -s:指定したシリアル番号の端末に対してコマンドを実行する
さて、転送する。
|
株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house