C++ ときどき ごはん、わりとてぃーぶれいく☆

Wonder Rabbit Projectのなかのひとのブログ。主にC++。

openSUSE-12.2にAndroid SDKを入れる

どうやら

http://software.opensuse.org/package/android-sdk

リポジトリーにもエントリーがある様だけど、r07で止まってるし、どのみちAndroid SDKは独自のパッケージ管理で使う事になるわけなのでopenSUSEリポジトリーは見なかった事する。と、言うわけでSDKを拾って来ようかと思いましたなら、

https://www.facebook.com/usagi.wrp/posts/165552260257958

と、言うわけでSDK単体配布はしなくなったのかな?まあ、バンドルでもSDKは以前のまま入ってそうなので、さてさて手作業で環境を整えて行くと致しましょう。

% mkdir ~/opt
% cd ~/opt
% wget http://dl.google.com/android/adt/adt-bundle-linux-x86_64.zip
 ...
% unzip adt-bundle-linux-x86_64.zip
 ...
% cd adt-bundle-linux/eclipse
% ./eclipse
 ...

f:id:USAGI-WRP:20121118161131p:plain

…やばい、Eclipseだ!逃げろ!!

-> 戦う

面倒くさいので逃げましょう。

-> 逃げる

% cd ~/opt
% mkdir android
% mv adt-bundle-linux android
% cd android
% ln -s adt-bundle-linux/sdk sdk
% export ANDROID_HOME=~/opt/android/sdk
% export PATH=$ANDROID_HOME/platform_tools:$ANDROID_HOME/tools:$PATH
% which android
 ...

と、言うわけでsdk以下のファイル構造は以前と何も変わっておらず、シェル変数にANDROID_HOMEを設定し、platform_toolsとtoolsにパスを通せばコマンドで生きて行ける。必要に応じてexportしてある2行は.zshrcなどに追記しておきましょう。

% android

f:id:USAGI-WRP:20121118163853p:plain

…やばい、GUIだ!逃げろ!!

-> さらに逃げる

うっかり android コマンドをオプション無しで叩いてしまうとGUIが出てきてしまうので気をつけましょう。玄人にはお勧めできません。いやまあGUIでもいいっていうかそもそもKDE4使って(ry

と、言うわけでコマンドで生きましょう。

% android --help

       Usage:
       android [global options] action [action options]
       Global options:
  -h --help       : Help on a specific command.
  -v --verbose    : Verbose mode, shows errors, warnings and all messages.
     --clear-cache: Clear the SDK Manager repository manifest cache.
  -s --silent     : Silent mode, shows errors only.

                                                                    Valid
                                                                    actions
                                                                    are
                                                                    composed
                                                                    of a verb
                                                                    and an
                                                                    optional
                                                                    direct
                                                                    object:
-    sdk              : Displays the SDK Manager window.
-    avd              : Displays the AVD Manager window.
-   list              : Lists existing targets or virtual devices.
-   list avd          : Lists existing Android Virtual Devices.
-   list target       : Lists existing targets.
-   list sdk          : Lists remote SDK repository.
- create avd          : Creates a new Android Virtual Device.
-   move avd          : Moves or renames an Android Virtual Device.
- delete avd          : Deletes an Android Virtual Device.
- update avd          : Updates an Android Virtual Device to match the folders
                        of a new SDK.
- create project      : Creates a new Android project.
- update project      : Updates an Android project (must already have an
                        AndroidManifest.xml).
- create test-project : Creates a new Android project for a test package.
- update test-project : Updates the Android project for a test package (must
                        already have an AndroidManifest.xml).
- create lib-project  : Creates a new Android library project.
- update lib-project  : Updates an Android library project (must already have
                        an AndroidManifest.xml).
- create uitest-project: Creates a new UI test project.
- update adb          : Updates adb to support the USB devices declared in the
                        SDK add-ons.
- update sdk          : Updates the SDK by suggesting new platforms to install
                        if available.

と、言うわけでandroidコマンドを使えばSDKのアップデートや仮想マシンの管理などGUIフリーで行えます。createオプションでプロジェクトの雛形の作成をしたり、updateオプションで既存プロジェクトへのbuild.xmlの更新(作成)などもできます。オプション大量に付けないといけなかったりする事もありますが気にしない。

実際にAndroid SDKのプロジェクトをビルドする際には ant も必要になるので、入れていない場合は

% zypper in ant

とかして入れて置きましょう。EclipseでもビルドできますがIDEなんて窓から放り投げてvimzshを使いましょう。