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

リンク集

アプリのインストール・アンインストール

> 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一本でいく。

実機デバッグ

実機のほうで、[設定][タブレット情報]の[ビルド番号]を7回タップすると、[設定][開発者オプション]が現れる。そこでUSBデバッグモードを有効にする。

アプリ名

  • アプリ名は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でアクセスできる。

アプリ作成例