2013年1月18日金曜日

Android SDKのソースを参照できるようにしてみよう

開発をしていると、デバッグ時やもっと詳細な仕様を調べたいときにAndroid SDKのプログラムソースを見てみたいと思うことがあります。
そんな時にEclipse上でAndroid SDKのプログラムソースを参照できるように設定をしてみましょう。


最初に設定前の状況を見て見ます。

何でもよいので開発しているプログラムソースを表示させます。




例えば、Activityのソースを見てみようとしてみます。Activityを右クリックして、宣言を開くを選択してみます。




ところが、エラーになってしまいソースを見ることはできません。



これからが設定を行う方法になります。

SDKマネージャーからAndroidSDKのソースをダウンロードしましょう。下記のようにSDKマネージャーから対象のAPIバージョンの「Sources for Android SDK」を選択してインストールします。

2、3系のバージョンの場合は別な方法でダウンロードしなければならなくて面倒だったのですが
4系(APIレベル 14)以降であれば、簡単にSDKマネージャーでダウンロードできます。



どこにダウンロードされたのか見て見ましょう。
ダウンロードしたソースは、[AndroidSDKホームディレクトリ]\sdk\sources ディレクトリの中にあります。



次にEclipseからソースを参照できるように設定をしてみましょう。

「パッケージエクスプローラー」より「android.jar」を選択し、右クリックでプロパティを開きます。




Javaソースの添付の設定画面が表示されるので、「外部フォルダ」のボタンを押します。





先ほど確認したソースのフォルダを指定して、OKを押せば完了です。

[AndroidSDKホームディレクトリ]\sdk\sources\android-(APIレベル)




もう一度、Activityのソースを参照してみましょう。
Activityを右クリックして、宣言を開くを選択すると、今度はちゃんと表示されました。




Androidのリファレンスだけでは細かい仕様がわからず、
直接ソースを見て理解することが何度かありました。
また、ソースをみてコーディングの手本になるかと思います。

簡単に設定できるのでぜひSDKソースの参照を設定してみてください。




2013年1月2日水曜日

Androidエミュレーターを高速にする

重くて遅いAndroidエミュレーターを高速に動作できるよう設定をしてみます。

Intel Hardware Accelerated Execution Manager(HAXM)をインストールして、Intel x86 Atom System ImageのシステムイメージでGPエンコーディングをONにしたエミュレーターを作成することで高速に動作させることができます。

作成の手順は以下にまとめます。


Intel Hardware Accelerated Execution Manager (HAXM) のインストール

HAXMのセットアッププログラムは以下のフォルダーにあります
[AndroidSDKホーム]\sdk\extras\intel\Hardware_Accelerated_Execution_Manager

フォルダにあるIntelHaxm.exeを起動します



セットアップウィザードが起動するのでNextを押します


メモリーの上限値を設定します。今回はDefaultのままNextを押します。
ちなみにセットアップ後に変更したい場合は、再度セットアップウィザードを起動すると変更できます。


Installボタンを押下して、インストールを開始します


セットアップ完了です。


エミュレーターの作成

Android仮想デバイスマネージャーを起動して、AVDを新規に作成します。




設定パラメーターは、以下のポイントにまとめます。

・CPU/ABI
「Intel Atom (x86)」 を選択する
選択するには事前にSDKマネージャーでIntel版のシステムイメージをダウンロードしておく必要があります。
今のところ、最新バージョン(4.2 [apiレベル 17])まで用意されていないようで、一世代前のバージョン(4.1 [apiレベル 16])までしか用意されていない

・Emulation Option
「Use Host GPU」にチェックをつける




エミュレーターを起動します。


初回は時間がかかりますが、ARM版と同じように利用できます。


あたりまえのことですが、NDKの開発ではC言語による開発になる為、ARM版、Intel版を意識する必要がありますが、Javaでの開発ではCPUによる違いはありません。

同じようにアプリの検証やテストをすることができます。
サクサク動くIntel版で検証したほうが効率がよいため、Javaでの開発であれば積極的に利用することをお勧めします。

以上です。