開発環境
※ 明らかに情報古いけどテスト範囲なのでそのまま学習。
Eclipse
Eclipseとは
オープンソースの統合開発環境。もとはIBNがJava用に開発。2001年にオープンソース化。
現在ではEclipse Foundationが取り仕切っている
プラグイン
Eclipseにはプラグインという仕組みがあり、いろいろな機能拡張が出来る
AndroidではADT(Android Developer Tools)というプラグインを使用する。
Eclipseの使い方
使うためにはJRE(Java Runtime Environment)が必要。
通常はJDK(Java SE Development Kit)を事前にインストールする。
Eclipseのダウンロードとインストール
サイトからダウンロードして解凍。展開し配置する。
Eclipseの起動
eclipse.exeを実行し、ワークスペースフォルダを指定すると起動する。
日本語化プラグインの利用
Pleiadesという日本語化プラグインを利用すると日本語で表示されるようになる。
ダウンロードしたファイルをpluginsとfeaturesの各フォルダに配置して、
eclipse.iniファイルを編集する
Pleiades All in Oneという最初から組み込まれたものもダウンロードできる
ADTプラグイン
ADTとは
Eclipseで、Androidアプリケーション開発を行うためのプラグイン。
ADTプラグインを組み込むことで次の操作が可能となる
- Androidプロジェクトの生成、ビルド、パッケージ化、インストール、デバッグ
- Android SDKとAVDの管理、DDMS、adbなどのAndroid SDKのツールの利用
- JavaソースコードやXMLリソースの作成や編集
ADTの使い方
ADTのインストール
ADTはEclipse上でインストールする。
Android SDK Manager
Android SDK Managerにより、Android SDKのインストールやアップデートができる。
AVD Manager
AVD ManagerによりAVD(Android Virtual Device)の作成編集削除ができる。
AVDはエミュレータを使うときに必要。
Androidプロジェクトの作成、ビルド、デバッグなど
ファイルメニューのプロジェクトからAndroidのプロジェクトやテストプロジェクトが作成できる
ソースコードやリソースの編集
いろいろ編集できる。CTRL+[SPACE]で入力補完とか
XMLファイルの編集も可能
Android SDK ツールの利用
Eclipseで利用可能なツール
ツール | 概要 |
---|---|
adb | Androidアプリケーションの実行環境へのアクセスを可能とする |
DDMS | Androidアプリケーションをデバッグするための各種機能を提供する |
Hierarchy Viewer | Androidアプリケーションに含まれるViewの階層を表示する |
Pixcel Perfect | Androidアプリケーションの画面を拡大表示し、画面の設計や構築支援を行う |
ProGurard | ソースコードの最適化(リバースエンジニアリング対策)を行う |
TraceView | Androidアプリケーションの実行ログを取得する |
layoutopt
layoutoptとは
レイアウトのXMLにおいて、実際に使われない無駄な定義がないかをチェックするためのツール
layoutoptの使い方
コマンドラインツール。Android SDKのtoolsフォルダに格納されている。
レイアウトファイル名かレイアウトファイルを含むフォルダ名を引数として渡す。
問題があれば、ファイル名とその行と内容を表示する。
検出するだけで自分で直す必要がある。
##### lintツール
ADT16以降で提供されているツール。アプリケーションの潜在的な問題を検出できる。
レイアウトの問題も検出できるため、layoutoptの代わりに使うこともできる
Draw 9-patch
Draw 9-patchとは
AndroidではPNG形式の画像を使う。画像をビューの背景とすると、ビューのコンテンツのサイズが変わった場合に
画像のサイズも変わってしまい、見た目が崩れる可能性がある。
NinePatchは画像のどこを拡大してよいかどこにコンテンツが入るかを指定可能なPNG形式の画像。
Draw 9-patchはNinePatch形式の画像を作成するツール
Draw 9-patchの使い方
コマンドラインから起動する。toolsフォルダに入っており、draw9patchコマンドの実行で起動する。
画像のオープン
ドラッグするかFileメニューから指定することで画像を開ける。
左側に元の画像、右側に画像を拡大した時のイメージが表示される。
拡大領域の指定
拡大してよい領域を指定することが出来る。ボタンの端は拡大しないなど。
コンテンツ領域の指定
ボタンにテキストなどが入る場合コンテンツ領域を指定できる。Show contentボックスをONにすることで、コンテンツ領域のイメージが紫色で表示される。
NinePatch画像の保存
ファイルメニューのSaveより保存できる。NinePatch形式のファイルの拡張子は9.pngとなる。
ex. button.png -> button.9.pngとなる
aapt
aaptとは
コンパイルしたコードをapkファイルにまとめるツール
Android Asset Packaging Toolの略
aaptの使い方
コマンドラインツールとしても利用できる。(通常はEclipse上で使う)
apkファイルの内容の一覧表示
aapt l[ist] コマンドで指定したファイル(zip, jar apk)の内容を表示できる
apkファイルの内容表示
aapt d[ump] コマンドで指定したapkファイルの内容を表示できる
aapt dumpコマンドに指定する表示内容
指定 | 表示内容 |
---|---|
badging | apkファイル内のラベルとアイコン |
permissions | apkファイル内のパーミッション |
resources | apkファイル内のリソース |
configurations | apkファイル内の設定 |
xmltree | apkファイル内のコンパイル済みXMLファイル |
xmlstrings | apkファイル内のコンパイル済みXMLファイルの文字列 |
apkファイルのパッケージ化
aapt p[ackage]でapkファイルを作成する。
apkファイルからのファイルの削除
aapt r[emove]でapkファイル(zip,jarも可)から指定したファイルを削除する。
apkファイルへのファイルの追加
aapt a[dd]ででapkファイル(zip,jarも可)に指定したファイルを追加する。
その他のコマンド
aaptのみで実施するとヘルプが表示される。aapt vでバージョン情報が表示される
AIDL
AIDLとは
AIDL(Android Interface Definition Language)という。
Androidアプリケーションは独立したプロセス上で実行されている。
そのプロセス間通信を利用する場合のインタフェースを定義するツール
AIDLの使い方
- 他のアプリケーションからアクセス可能なフィールドとメソッドを含むインターフェースを定義し、aidlファイルとして保存する
- aidlコマンドで作成したaidlファイルからJavaのインタフェースを作成する(Eclipseの場合、aidlファイルを自動的にJavaのソースコードに変換してくれる)
- サービスで、作成されたインターフェースの内部クラスであるStubクラスを継承してaidlファイルで定義したメソッドを実装する
- サービスで、Stubクラスのインスタンスを返すようにonBindメソッドをオーバーライドする
aidlファイルの作成
次のデータ型を利用してフィールドやメソッドを定義する。
- Javaの基本型
- Stringクラス、Listインターフェース、Mapインターフェース、CharSequenceインタフェース
- AIDLによって定義したインターフェース(import文でインポートする必要がある)
- Parcelableインターフェース(import文でインポートする必要がある)
aidlコマンドによるJavaインターフェースの作成
作成したaidlファイルからaidlコマンドでJavaのインターフェースを作成する(Eclipseの場合は自動的にできる)
aidlコマンドはtoolsフォルダに格納されている。
定義したメソッドの実装とonBindメソッドのオーバーライド
サービスを継承するクラスを作成し、AIDLで定義したインタフェースのメソッドを実装する。
その際、作成されたインターフェースの内部クラスであるStubクラスを継承する必要がある。
さらにonBindメソッドをオーバーライドして、前述のStubクラスのインスタンスを返すようにする
AIDLで定義したメソッドの呼び出し
- AIDLで定義したインターフェースのインスタンスを宣言する
- ServiceConnectionインターフェースを実装する
- bindServiceメソッドを呼び出す際に、サービスのクラスを指定したインテントと実装したServiceConnectionのインスタンスを渡す
- ServiceConnectionインターフェースのonServiceConnectedメソッド内で、AIDLで定義したインタフェースのStubクラスのasInterfaceメソッドを呼び出す。asInterfaceメソッドには、onServiceConnectedメソッドの引数として渡されるIBinderオブジェクトを指定する
- asInterfaceメソッドはAIDLで定義したインターフェースのオブジェクトを返すため、このオブジェクトを使ってメソッドを呼び出す。
sqlite3
sqlite3とは
SQLiteを利用する為のコマンドラインツール。SQL文の発行もできるほか、各種情報を表示できる
sqlite3の使い方
toolsフォルダに格納されている。
通常は、adb shellコマンドでエミュレータもしくは実機にアクセスしている状態で、データベースを操作する。
sqlite3を単独で実行
単独で実行することもできるので、試しにいろいろする場合に便利につかえる。
各種コマンドの実行
主なコマンド
コマンド | 概要 |
---|---|
.database | データベースの一覧を表示する |
.tables | テーブルの一覧を表示する |
.schema | テーブルを作成したCREATE TABLE文を表示する |
.dump | データベースの内容をSQLの形式で表示する |
.header on/off | ヘッダを表示する/しない |
.show | sqlite3の現在の設定を表示する |
.help | sqlite3のヘルプを表示する |
.exitまたは.quit | sqlite3を終了する |
SQL文の実行
直接SQLも実行可能。末尾に;をつける
dx
dxとは
AndroidアプリケーションのソースはJavaだが、Dalvik仮想マシンで実行するにはJava->Classファイル->dexファイル(Dalvikバイトコード)に変換する必要がある。これを行うのがdxツールである。
Eclipseの場合は自動で行われるため、単独で使う場合はほとんどない。
dxの使い方
dxツールはコマンドラインで実行する。platform-toolsフォルダに格納されている。
dx --helpでヘルプが表示される
zipalign
zipalignとは
apkファイルを最適化するツールである。具体的には、apkファイル内の圧縮されていないファイル(画像ファイルなど)を4バイト境界に合わせる。これをapkファイルのアラインメントという。
Eclipseを利用している場合、自動的に実行されるためあまり単独で実行する必要はない。
zipalignの使い方
コマンドラインから実行する。toolsフォルダに格納されている。