-
Notifications
You must be signed in to change notification settings - Fork 354
1.03. Androidプロジェクトの作成 ( Eclipse )
GitHub Pagesへ移行しましたmixi-inc.github.ioへお願いします。
wikiの方はしばらくしたら消していきます
また、現在はAndroidStudioで開発することが推奨されています。
この章では、Eclipse上でのAndroidアプリ用のプロジェクトを解説します。
Androidアプリのプロジェクトは、以下の様な構成をしています。
- srcディレクトリ
- Javaで書かれたソースコードが格納されています。
- genディレクトリ
- Androidのフレームワークが自動で生成するコードが格納されています。基本的にこの中のコードに直接手を入れることはありません。 自動で生成するものなので、genディレクトリはリポジトリへチェックインしないようにします。
- assetsディレクトリ
- アプリで読み書きが可能なファイルの格納場所です。 簡単なhtmlを保存しておき、WebViewで開く等の使い方ができます。
- binディレクトリ
- コンパイルして生成される、jarやapkなどの各種ファイルが格納されます。 このディレクトリも、リポジトリへはチェックインしないようにします。
- libsディレクトリ
- 外部ライブラリのjarファイルを格納します。ここに格納したjarへのパスは、フレームワークが自動で通してくれます。
- resディレクトリ
- レイアウトファイルや、定型文、画像などの各種リソースが格納されています。 格納するリソースごとに命名規則が決められています。また、利用する端末のスペックに応じてのディレクトリの分割も可能です。
- AndroidManifest.xml
- アプリに関する様々な宣言をする場所です。 アプリが利用する端末の機能(カメラや外部ストレージなど)の宣言や、パーミッションの宣言もここで行います。
- proguard-project.txt
- ProGuardという、コードの難読化ツールの設定ファイルです。
Eclipse の File > New > Android Application Project から、新規にプロジェクトを作成します。
Application Name は、アプリの名前です。 Project Name は、プロジェクト用ディレクトリの名前に利用されます。 Package Name は、アプリ固有の名前空間です。ここで指定する名前空間は、Google Play Store でアプリの識別子として利用されるため、各アプリにユニークな名前空間を指定する必要があります。
Minimum Required SDK は、このアプリがサポートする最低バージョンです。ここで指定したバージョンより古い OS にはインストール出来ない様になります。 Target SDK は、アプリが正常に動作することを保証しているバージョンを指します。これより新しいバージョンの OS で動作させる時には、互換モードで動作するようシステムに伝えられます。 Compile With は、どのバージョンのAPIでコンパイルするかを設定します。これによって、より新しいバージョンで提供される API を不用意に使用してしまう事故を防ぐことができます。 Theme は、アプリ全体の見た目を設定します。
次に、プロジェクトの設定を決めます。
Create Custom Launcher Icon をチェックすると、次のページで独自のアイコンを設定できるようになります。 Create Activity をチェックすると、最初に起動する Activity を自動生成するようになります。
Mark this project as library をチェックすると、このプロジェクトをライブラリプロジェクトとして扱うようになります。 Create project in workspace をチェックすると、現在のワークスペース内にプロジェクトを配置します。 別のディレクトリにプロジェクトを配置したい場合は、チェックを外して、任意のパスを設定してください。
次に、アイコンの設定を行います。
次に、最初に作成する画面の設定を行います。
最後に、画面の名前とナビゲーションの種類を決めます。 特に無ければ、ナビゲーションの種類は、None に設定してください。
以上で、プロジェクトの作成は終了です。
画面左側の Package Explorer 上で、作成したプロジェクトを右クリックし、Run As > Android Application を選択します。
ビルドが完了すると、どのデバイスで実行するか選択する画面が表示されます。 実行したいデバイスを選択してください。
端末にデプロイされた後、アプリが自動で起動します。
アプリをリリースする際には、リリース専用の署名でアプリを署名する必要があります。 また、署名と同時に、ソースコードの難読化と最適化を行うことも大切な作業です。
Android アプリを署名するには、keystore ファイルを作成しておく必要があります。
※以下、ターミナルの文字コードを Shift-JIS に設定してください。
keystore ファイルの作成には、keytool コマンドを使用します。 このコマンドは、JDK に含まれるため、JDK にパスを通しておく必要があります(Macであれば、最初からパスが通っているはずです。)。
このコマンドの使用方法は以下のとおりです。
keytool -genkey -v -keystore [ファイル名] -alias [証明書の名称] -validity [有効日数]
このコマンドを実行すると、下記の質問が提示されますので、順次入力していきます。
$ keytool -genkey -v -keystore hoge.keystore -alias hoge -validity 1003
キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
姓名を入力してください。
[Unknown]: Hoge Fuga
組織単位名を入力してください。
[Unknown]: Company
組織名を入力してください。
[Unknown]: mixi
都市名または地域名を入力してください。
[Unknown]: Tokyo
州名または地方名を入力してください。
[Unknown]: Tokyo
この単位に該当する 2 文字の国番号を入力してください。
[Unknown]: jp
CN=Hoge Fuga, OU=Company, O=mixi, L=Tokyo, ST=Tokyo, C=jp でよろしいですか?
[no]: yes
1,003 日間有効な 1,024 ビットの DSA の鍵ペアと自己署名型証明書 (SHA1withDSA) を生成しています
ディレクトリ名: CN=Hoge Fuga, OU=Company, O=mixi, L=Tokyo, ST=Tokyo, C=jp
<hoge> の鍵パスワードを入力してください。
(キーストアのパスワードと同じ場合は RETURN を押してください):
新規パスワードを再入力してください:
[hoge.keystore を格納中]
以上で、keystore ファイルが生成されます。
keystore ファイルは Eclipse でも生成可能です。 下記のアプリの署名の過程で生成することができるようになっています。
署名したいアプリのプロジェクトを選択し、右クリックメニューから、Android Tools > Export Signed Application Package を選択します。
署名する対象のプロジェクトを訊かれます。
次に、キーストアファイルを選択します。 コマンドで作成したファイルが有る場合は、Use existing keystore を選択し、そのファイルのパスを入力し、パスワードを入力します。
ここで keystore ファイルを作成する場合は、Create new keystore を選択し、キーストアファイルを保存する場所と、パスワードを入力します。
次に、既存のキーストアを選択した場合は、Alias と対のパスワードを訊かれますので、それぞれ入力します。
新規にキーストアを作成する場合は、コマンドプロンプトと同じく各種質問に回答していきます。
最後に、署名済み apk ファイル(アプリの本体)を保存する場所を指定してください。
これで、署名済みアプリが作成できました。
以下の項目に取り組んでください。
- (実習)Android プロジェクトを作成してください。○
- {$repo_root}/practice/introductions/3rd の下にプロジェクトディレクトリを作成してください。
- (実習)作成した Android プロジェクトを実行してください。 ○
- (実習)keystore ファイルを作成してください。○
- (実習)作成した keystore ファイルで、作成したプロジェクトの Android アプリの apk ファイルを作成してください。
- (課題)作成した apk ファイルの中にあるファイル・ディレクトリを列挙してください。
- (課題)上記で列挙したファイル・ディレクトリについて、どのような役割を持っているか説明してください。
Portions of this page are reproduced from work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.