Creating an Android Project ~ Running Your Application

2013年8月31日

構成の都合上、以前の記事から切り離し加筆したものです。

Creating an Android Project | Android Developers
http://developer.android.com/training/basics/firstapp/creating-project.html

指示通りのプロジェクトを作成しましょう。Create a Project with EclipseとCreate a Project with Command Line Toolsがありますが、コマンドラインの方は割愛します。


20121218_Eclipse_createproject

 

20121218_Eclipse_projectsetting

Application Name : アプリ一覧等に表示されるアプリケーション名です。
Project Name : Eclipse上でのプロジェクト名、ディレクトリ名にまります。
Package Name : Androidが管理するjavaの一意なパッケージ名称です。

Minimum Required SDK : 動作を保証する最低のAPIレベル
Target SDK :
ターゲットのAPIレベル
Compile With : ビルドに使用されたSDK(APIレベル)

Theme : UIのスタイルを指定

各項目はAndroidManifest.xmlへ反映されます。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.planetleaf.lab.firstapp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.planetleaf.lab.firstapp.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 

パッケージネームがドメイン名なのは重複を避けるための物なので、サンプルのうちは適当でかまいません。
ドメインを持っていない人のために、以下のような機構も存在します。
パッケージ名登録/利用サービスについて
http://www.java-conf.gr.jp/wg_bof/package/about.html

続いてアプリケーションセッティングですが、ビルドできるかのテストなので、デフォルトで行きます。
20121218_Eclipse_project_appsetting
以下アクティビティの設定などありますが、すべてデフォルト設定にします。
ウィザードが終わると、パッケージエクスクローラを起点とするアプリケーション開発環境が整います。
20121218_Eclips_firstapp_

Running Your App | Android Developers
http://developer.android.com/training/basics/firstapp/running-app.html
ここではManifestファイルの説明と、ソースやリソースの場所の説明、デフォルトアクティビティに”Hello World."が設定されている事に触れています。

実行に関してですが、android.comにより提供されているAndroid Virtual Deviceを使用する方法もありますが、androidのバージョンや端末タイプ、CPUを気にする必要が無い場合はVirtualBoxで動くAndroVMを使ったほうがストレスがよろしいかと思います。

Download | AndroVM blog
http://androvm.org/blog/download/

AndroidエミュレータはAndroVM一択 – ogaclejapan
http://ogaclejapan.com/android/2013/03/09/androvm-as-android-emulator/

Virtual Deviceを起動した状態でツールボタンのRunをクリックするとアプリをパッケージ化、AVDへ転送実行を一気にやってくれます。
20121218_Eclips_run_avd_firstapp_
そして実行結果へ、
20121218_AndroidSDK_Nexus7Emu_onFirstApp
これで簡単なアプリケーションの作成は可能となります。

以下はAVDの場合

Android Virtual Deviceの起動

Run on the Emulator
まずは実行環境を用意します。
20121218_AVD_launch_0
IDEのAVD Managerボタンをクリックしてマネージャを起動。
20121218_AndroidSDK_Nexus7Emu_create
ここではDevice DefinitionsよりNexus 7 by Googleを選択します。CPUに余裕のない方はスペックの低いDeviceで作成すべきでしょう。
20121218_AndroidSDK_Nexus7Emu_create2
Core2Duo 2.4GHzで8GBを積んでいる当方の環境は、1024MBの端末では起動できなかったため、800MBへ削減して起動しました。
そして、アプリケーションを実行するわけですが、Android Virtual Deviceのエミュレーションが兎にも角にも重いし遅い、手持ちのNexus7ベースの端末をセッティングしてみたところ、
20121218_AndroidSDK_Nexus7Emu
あまりに遅すぎて、端末のランチャーが応答なしと判断する始末。
半端なスペックのマシンで動かすなという話もありますが、これは流石に使い物にならない。
そもそも、マルチタップのアプリなどの作成を考えると、AVD(Android Virtual Device)での動作実験は現実味がありません。やはり実機を使うのが一番でしょう。
IDEと手軽に連携できるという事もあり、今回はVirtual Deviceで動作確認をしておきます。
※追記
20121218_AndroidSDK_Nexus7Emu_setting_gpu
ADV の設定にUse Host GPUのチェックボックスがあり、描画エミュレーションによる負荷から解放され、この状態は格段に改善する。さらに、Virtual Deviceの起動はシングルコアで行われるため、タスクマネージャーの関係の設定(A)から使用可能なコアを有効にする。ただしARMコアのエミュレー ションが遅いことには変わりがなく、実機ほどの速度では動かない。ARMコンパイラが内蔵されればという話ではあるけれど、それは実機シミュレートとして はどうなのだろうというジレンマがある。