Android
下記は開発系がメイン。アプリはAndroidApplicationに。
環境構築(コマンドラインベース)
homebrewで入れたらSDKは /usr/local/Cellar/android-sdk 以下にインストールされる。
あとはGUIデザイナだけあれば良さそうだな。DroidDraw というやつがあるのだがちょっとオールドファッションなかんじ。AndroidStudioのGUIデザイナは結構よいが遅いなあ。
うーん、仕方ない。こちらにならってEclipseも入れる。結局全部入れるんかい!しかしやはりこいつも遅すぎる。
Qt5.2からAndroid NDKビルドに対応した。これはすごい。OSXなビルドとAndroidなビルドがさっくり動いた。QtForAndroid
C/C++
JavaでやるにはAndroid SDK, C/C++の場合はAndroidNDK。GNUツールとかbuildしたい向きにはNDKか。同様にhomebrewでインストールできる。
スクリプト言語
- py4a Python for Android
リンク集
- Androidプログラミング入門
- Android Design 本家
- Android APIs 本家のAPIリファレンス
- Android Patterns UIのデザインパターン
- Android Assert Studio GUI部品のジェネレータ等。Webベース。
- 逆引きAndroid
- Android開発者が知らないと損をするXXのこと
アプリのインストール・アンインストール
> emulator -avd AVD名
でエミュレータを起動の上、
> adb -s emulator-5554 install ./bin/helloworld-debug.apk > adb uninstall com.sample.helloworld
emulator-5554 はシリアル番号。adb devices でわかる。デバイスがひとつしか無いときは自動認識。アンインストールはフルパスで指定。AndroidManifest.xmlに従う。
エミュレータが認識されないときは
> adb kill-server > adb start-server
とか。
なんども adb install ほげほげ。。とか打つのがうざいので、build.xmlに
<target name="install" depends="debug"> <exec executable="adb" > <arg line="uninstall com.sample.helloworld" /> </exec> <exec executable="adb" > <arg line="install bin/helloworld-debug.apk" /> </exec> </target>
などと直書きしてみる。これで、ant install一発で、ビルド->アンインストール->インストールされる。
ファイルのコピーとか
adb push file /sdcard/path adb pull /sdcard/path dest
HTMLを表示するだけのアプリ
assetsフォルダにhtmlを入れるだけ。
エミュレータ遅すぎ
仮想マシンが速いらしい。リンクなど。Genymotionからダウンロード。要ユーザ登録。SDKのパスを聞かれるので私の環境だと/usr/local/Cellar/android-sdk/r22.0.1などを入力。 。。あとは環境選んでRunするだけ。簡単。なるほど、こりゃあ速い。VirtualBoxを勝手に設定して立ち上げるのか。
HAXM版Androidエミュレータと比較してもGenymotionのほうが早かったのでGenymotion一本でいく。
実機デバッグ
- Windowsの場合、Android USB Driverを入れる。OSXの場合は不要。
実機のほうで、[設定][タブレット情報]の[ビルド番号]を7回タップすると、[設定][開発者オプション]が現れる。そこでUSBデバッグモードを有効にする。
- http://developer.android.com/tools/device.htmlに書いてあった。7回タップはちょっと目を疑った。
アプリ名
- アプリ名はAndroidManifest.xmlに@string/app_nameとあるようにres/values/strings.xmlのapp_nameに書かれている
アイコン
res/xxhdpi/ic_launcher.pngを144x144で作って、
convert -geometry 96x96 drawable-xxhdpi/ic_launcher.png drawable-xhdpi/ic_launcher.png convert -geometry 72x72 drawable-xxhdpi/ic_launcher.png drawable-hdpi/ic_launcher.png convert -geometry 48x48 drawable-xxhdpi/ic_launcher.png drawable-mdpi/ic_launcher.png convert -geometry 36x36 drawable-xxhdpi/ic_launcher.png drawable-ldpi/ic_launcher.png
すればいいかね。
リソース管理
res以下のフォルダにおいたファイルとリソースクラスとの関連付けはビルド時に行われる。 R.javaがリソースとクラスの対応付けをする自動生成クラス。たとえば上記アイコンファイルは R.drawable.ic_launcherでアクセスできる。