Ubuntu への JDK, Android SDK のインストール


今まで Windows 環境で Android 開発をしてきたのですが、最近ふと思い立って Linux(Ubuntu/Xubuntu) で環境を構築してみました。この記事では、IDE をインストールする前に必要となる JDK と Android SDK のインストールについて記述します。 (ADT Bundle を使わず、 JDK/SDK と IDE を個別にインストールすることを想定しています。)

JDK のインストール

JDK は頻繁にアップデートされるので、パッケージ管理を使いたいと思って調べたところ、 Oracle Java (JDK) 6 / 7 / 8 Installer PPA : “WebUpd8” team で PPA が提供されていました。この PPA は、 Oracle のインストーラをダウンロードして実行するようになっています。
以下のように導入します。途中、Oracle ライセンスへの同意が求められますので同意して進めます。

最後の行で、インストールが正常に行われたか確認しています。
以上の作業で、私の環境では /usr/lib/jvm/java-7-oracle にインストールされました。

Android SDK のインストール

Android SDK のインストールは、 Android SDK | Android Developers に従って進めました。

  1. まず、 SYSTEM REQUIREMENTS の Linux 欄に以下の記述があります。

    64-bit distributions must be capable of running 32-bit applications.

    64-bit ディストリビューションは、 32-bit アプリケーションを実行できなければならない。

    私の環境は 64bit-Xubuntu なので、これに対応するため ia32-libs をインストールします。(32bit OS では不要です。)
    sudo apt-get install ia32-libs
    私の環境は 64bit-Xubuntu なので、これに対応するため lib32stdc++6 と lib32z1 をインストールします。(32bit OS では不要です。)

    ※注 2014/10/15) Ubuntu 14.04 以降では、ia32-libs をインストールできません。(Dan Dar3: Android SDK Tools on Ubuntu 14.04 beta x64)

  2. 次に DOWNLOAD FOR OTHER PLATFORMS から Linux 32 & 64-bit のパッケージをダウンロードします。(/home/hoge/Downloads/android-sdk_r21.1-linux.tgz とします)
    ※ 現在は、 Eclipse 環境も含めた ADT Bundle というパッケージが用意されていますが、本記事では、IDE を別途インストールする事を想定しています。
  3. ホームディレクトリに適当なディレクトリ (ここでは Development とします) を作成してそこに展開します。

  4. tools, platform-tools ディレクトリにパスを通しておくと便利です。 ~/.bashrc に以下を追加します。

    ※ 2014/02/14 修正: 現在では adb は platform-tools ディレクトリに移動されれているので、パスに platform-tools を追加しました。

    ※ 2014/05/28 補足: platform-tools は、Android SDK Platform-tools をインストールすると作成されます。

    パスを適用するために、以下を実行します。

  5. SDK をアップデートします。(全てのプラットフォーム用の SDK がダウンロードされますので、かなり時間を要します。)

    ※ 2014/05/28 補足: 現在は多くのプラットフォームが登録されていて、全てのアップデートを実行するのは現実的ではありません。この操作は飛ばして、次の項目へ進み、「SDK マネージャ」を起動して必要なものだけインストール&アップデートした方が良いと思われます。

  6. SDK マネージャを起動して確認してください。(私の環境では、ソースがダウンロードされていなかったので追加でダウンロードしました。)

  7. その他の android コマンドについては、–help オプションで確認してください。

この後は、Eclipse や IntelliJ 等好みの IDE をセットアップして開発を始めることができます。

[参考サイト]

[関連記事]

IntelliJ の Proguard ログフォルダと Git 管理


Android 開発において、 Eclipse と IntelliJ とでは Proguard のログファイルの出力フォルダが異なります。以下の記事では、その違いと Git 管理について説明します。

Proguard とログファイル

Proguard は Java の難読化・最適化ツールで、Eclipse や IntelliJ で簡単な設定をするだけで利用できます。設定をしておくと、署名付 .apk ファイルをエクスポートした際に、難読化によるマッピング情報等を記録したログファイル群が出力されます。エクスポートされた .apk をデバッグするときにはこの情報を利用することになります。

Eclipse の場合、以下のように、プロジェクト直下に proguard フォルダが作成されます。この中にログファイル群が出力されます。
eclipse_proguard_log_compressed

一方、IntelliJ の場合、フォルダ名が proguard_logs になります
intellij_proguard_log

今のところ、ログファイルの出力先フォルダを任意に指定することはできないようです。(YouTRACK:Change Proguard logs output dir)

Git とログファイル

.apk のエクスポートとソースファイルの修正とは必ずしも 1 対 1 に対応しているものでは無いので、ログファイルはバージョン管理に含めないのが一般的だと思います。(リリース時のログファイルは、何らかの方法で保存して置いたほうが良いでしょう。)

Git の場合、.gitignore を定義して Git 管理しないファイルを指定できます。Android 用の雛形としては、GitHub の Android 用 .gitignore テンプレートを使うと良いでしょう。最新版では、Eclipse/IntelliJ 双方に対応しています。

ただし、Proguard のログフォルダに関しては、上記雛形では Eclipse 用だけで IntelliJ 用の指定がありませんので、以下の行を追加しておくと良いと思います。

※2013/04/09 補足: 以前よりこの追加を github に PullRequest していましたが、gitignore.io の生成するテンプレートに取り込まれた旨、joeblau 氏からコメントをもらいました。(add Proguard folder generated by Intellij to Android.gitignore by junf · Pull Request #543 · github/gitignore)
gitignore.io は、環境に合わせて .gitignore を自動生成してくれるサービスです。

Eclipse で Deprecated メソッドの取り消し線を消すには


Android は頻繁にバージョンアップが行われるため、古い API のメソッドが非推奨となり、新しいメソッドが推奨されているケースがよくあります。現在ですと、3.x(Honeycomb) 以降で採用された API が推奨になり、2.x 以下でしか使えないでも使えるメソッドが Deprecated 扱いになっている事がよくあります。

現状、Support Library で対応出来る場合は新しい API を使うのがベストだと思われます。しかし、同ライブラリが対応していない場合は、古い API を使わざるを得えません。(少なくとも Gingerbread は、まだ 50% 近いシェアを持ちます。 詳しくは、Dashboards を参照。)

Eclipse で非推奨の古いメソッドを使用した場合、デフォルトの設定では「取り消し線」が付けられるためコードが読み難くなってしまいます。またこれは、@SuppressWarnings(“deprecation”) を付けても消えません。

「取り消し線」が無くても、以下のように lint が警告マークを付けてくれるので特に困らないと思います。
deprecated_method

そこで、この「取り消し線」を消す設定を調べてみました。

Java 開発(Android 開発を含む)時の、Deprecated に対する「取り消し線」を消すのは、以下のように簡単に行えます。

  1. Window > Preferences > Java > Editor > Syntax Colorling を開く
  2. Element にある “Deprecated members” を選択
  3. Enable のチェックマークをはずす
  4. Apply ボタンを押す

syntax_coloring

あるいは、Enable のままにしておいて、Color を変更するとか、StrikethroughUnderline にするとかでも良いでしょう。もちろん、代替の推奨メソッドが利用できる場合はそちらを利用すべきです。