blog

Android開発早わかりチュートリアルIV:Androidアプリケーションの基本概念

Androidプラットフォームの大きな特徴の1つは「低カップリング」であり、ActivityはAndroidアプリケーションの最も基本的なユーザーUIモジュールの1つです。アプリケーションの保守性、拡...

Jul 7, 2025 · 3 min. read
シェア

Androidプラットフォームの特徴の1つは「低カップリング」です。ActivityはAndroidアプリケーションの基本的なユーザーUIモジュールで、Windowsフォームアプリケーションを参考にすれば、WindowsのWinFormに相当します。Windowsフォームアプリケーションを参考にすれば、ActivityはWindowsのWinFormに相当します。Windowsアプリケーションとは異なり、Activityの実行やActivity間のやり取りはメッセージを通して実現されます。つまり、WindowsのWinFormアプリケーションでは、Form例のShowメソッドやLoadメソッドを呼び出す必要がありますが、Activityを開始したり、Activity内で別のActivityを開始したい場合は、Intentメッセージを送信することで開始できます。IntentメッセージによるActivity間の相互作用は、モジュール間の結合を***程度に減らします。このメカニズムは、Subscriber/Publisher メカニズムに似ています。

Androidプラットフォームのもう一つの重要な特徴は「再利用」です。Androidアプリケーションは複数のアクティビティで構成することができます。トランプに例えると、Androidアプリケーションはトランプの箱に相当し、箱の中の各カードは比較的独立したActivityです。Androidアプリケーションの実行中は、トランプの山からカードを取り出して重ねるのと同じで、トランプの山から取り出されたカードがAndroidアプリケーションのメインActivityです。メインのActivityは他のActivityを呼び出すことができ、呼び出されたActivityはトランプのようにメインのActivityの上に配られます。これが「アクティビティ」のスタックです。端末で「戻る」を押すと、ブラウザのように前のActivityに戻ることができます。 Android携帯のアプリケーションはすべて同じ構造になっています。「再利用」とは、Androidアプリが実行中に他のアプリで定義されたActivityをトリガーできることを意味します。例えば、GTalkで友人の位置を地図上に表示したい場合、GoogleMapアプリは友人の位置を地図上に表示できます。例えば、GTalkで友人の位置を地図上に表示したい場合、GoogleMapで地図を表示することができれば、GTalkは同じコードを繰り返したり、似たようなActivityを実行する必要はなく、Intentメッセージで直接GoogleMapのMapViewActivityを起動することができます。

次の図は、Androidアプリケーションの基本コンポーネントを示しています。

Activityに加えて、AndroidはServiceも実装できます。ServiceはWindows Serviceに似ており、通常はバックグラウンドで実行され、ユーザーインターフェイスを含みません。基本的な機能はJava MEのPushRegistryに似ています。 たとえば、テキストメッセージを受信したときにアプリケーションをトリガーしたい場合は、AndroidアプリケーションのManifestファイルにBroadcast Receiverを定義してActivityをトリガーできます。

<activity android:name=”.HelloWorld” 
                  android:label=”@string/app_name”> 
            <intent-filter> 
                <action android:name=”android.intent.action.MAIN” /> 
                <category android:name=”android.intent.category.LAUNCHER” /> 
            </intent-filter> 
        </activity> 

上記はAndroidManifest.xmlのHelloWorldのメインActivityの定義で、このActivityの対応するクラスと、このActivityをトリガーできるIntent-filterが定義されていますが、ユーザーがこのアプリケーションのアイコンをクリックすると、AndroidオペレーティングシステムからAndroidシステムは、IntentメッセージをサブスクライブするActivity、Service、またはBroadcast Receiverをチェックし、1つでも見つかれば、そのActivity、Service、またはBroadcast Receiverをトリガーします。HelloWorldの場合は、画面に「Hello World」と表示します。 また、Androidのリファレンスは、システムがIntentを送信するだけでなく、startActivity(Intent)やStartService(Intent)を使って、他のActivityやServiceを起動することもできます。同じアプリケーションであっても、Intentを通じて情報を送信する必要があるため、アプリケーション内のさまざまなモジュール間の結合が大幅に削減され、他の部分に影響を与えることなく、アプリケーション内のモジュールをシームレスに置き換えることができます。 Androidに触れた当初は、この仕組みはWinForm ).Show ()のように直接的で便利には感じないかもしれません。しかし、アプリケーションの保守性、拡張性、Androidの観点から、この低カップリング設計は非常に有利です。 また、複数のActivity間でデータを共有する必要がある場合、Applicationクラスを拡張することで、Applicationクラスで定義された変数にアプリケーション内のすべてのActivityからアクセスすることができます。

Read next

MWC 2014の展望:ウェアラブル・テックがショーの焦点となる

米国の技術ブログサイトSlashGearの編集者クリス&#8226;デイビスは最近、バルセロナで来るモバイルワールドコングレスを見据えて、記事を書きました。記事は、ウェアラブル技術は、この大きなショーで最も人気のある焦点の一つになると主張し、サムスン、ファーウェイ、HTCや他の主流メーカーは、ウェアラブル製品を発売し、多くの新興企業が遅れて喜んでいない、そのウェアラブル新製品を表示するには、このステージをMWCを借ります。

Jul 7, 2025 · 3 min read