Androidアプリケーションの基本
Upcoming SlideShare
Loading in...5
×
 

Androidアプリケーションの基本

on

  • 412 views

 

Statistics

Views

Total Views
412
Views on SlideShare
411
Embed Views
1

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 1

http://s.deeeki.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Androidアプリケーションの基本 Androidアプリケーションの基本 Presentation Transcript

  • Androidアプリケーションの基本構成要素とその概要http://developer.android.com/guide/components/fundamentals.html (HP)http://www.techdoctranslator.com/android/basics/fundamentals (邦訳サイト)
  • この資料の構成2. Core framecomponent2-1. 4種類のコンポーネント2-2. コンポーネントのアクティブ化3. Manifest file3-1. コンポーネントの宣言3-2. コンポーネント機能3-3. アプリケーションに必要となるハードやソフトの要件4. アプリケーションリソース1. Androidアプリケーションとは(アプリケーションを構成する3つの要素)
  • 1. Androidアプリケーションとは• .apkでまとめられたパッケージをAndroidアプリケーションと呼ぶ→コード、データ、リソースなどに分けられたファイル群で構成→Android SDK toolsによってコンパイル• Java言語で記述
  • 1-1. 実行環境での取り扱われ方(1)• Android OSはマルチユーザLinuxシステム→アプリケーションはシステムによって一つのuser IDが付与され、管理される→そのuser IDによってでしかそのアプリケーションにはアクセスできない→各プロセスにVMが用意され、他のアプリケーションとは独立に実行されるセキュアな環境での実行
  • 1-1.実行環境での取り扱われ方(2)• 複数のアプリケーションでの連携も可能→連携するアプリケーション群にシステムによって一つのuser IDが付与され、管理される→同一アプリケーションは同一プロセス内で実行され、同一VMを共有する• システムへのアクセスも可能→アプリケーションのインストール時にシステムが持つ資源(カメラ、bluetoothなど)やユーザ情報へのアクセスの許可が設定される
  • 2. Core Frame Component• アプリケーションの挙動を定義するもの(アプリの部品)• システムが利用するエントリーポイント→2-1. 4種類のコンポーネント→2-2. コンポーネントのアクティブ化
  • 2-1. 4種類のコンポーネント(1)A. Activity-一つのUI(画面)を意味する-Activityは他のアプリケーションからの呼び出しが可能-ActivityはActivityクラスのサブクラスとして実装されるB. Service-バックグラウンドの処理やリモートプロセスの実施-Activityなど他のコンポーネントからの呼び出しが可能-ServiceはServiceクラスのサブクラスとして実装される
  • 2-1. 4種類のコンポーネント(2)C. Content provider-データのマネジメント-読み出し、書き込み-Content providerはContentProviderのサブクラスとして実装D. Broadcast receiver-システムからのブロードキャストへの応答やアプリケーションからのブロードキャスト配信-二つのコンポーネントのつなぎ役-Broadcast receiverはBroadcastReceiverのサブクラスとして実装される-BroadcastはIntentオブジェクトとして配信される
  • 2-2. コンポーネントのアクティブ化• 同一アプリの話なのか?他のアプリから呼び出されるときの話なのか??(そこがわからないので自分の中でうまく抽象化ができておらず以下では具体的な表現の羅列になってしまっている)• Anroidでは一つのアプリケーションから他のアプリケーションの呼び出しが可能→各アプリは単一のエントリーポイント(mainなど)を持たない• 呼び出しはシステムへのIntentメッセージを送ることで行われる• 呼び出されたコンポーネントからの結果もIntentによって返される→Activity、Service、Broadcast receiverの3コンポーネントはIntentで呼び出し可能→Content providerのアクティブ化はContentResolverがその役割を担う
  • 3. Manifest file• アプリケーションのルートファイル(.xml)• 使用する全てのコンポーネントを宣言→3-1. コンポーネントの宣言→3-2. コンポーネント機能(他のアプリケーションとの連携)• コンポーネント以外の宣言→3-3. アプリに必要となるハードやソフトの要件-Screen size and density-Input configulation-Device features-Platform Version-API libraries (other than the Android APIs)
  • 3-1. コンポーネント• 使用する全てのコンポーネントを<application></application>の間に宣言する• <activity>、<service>、<provider>、<receiver>のタグをもちいて記述する<applicationandroid:name=".EosApplication"><activityandroid:name=".ui.activity.EosU02MainMenuActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application>例)
  • 3-2. コンポーネント機能(他のアプリケーションとの連携)• アプリケーションの各コンポーネントは他のアプリケーションからのIntentによる呼び出しが可能• Intent actionによって定義された呼び出しへの対応を宣言• コンポーネントの宣言時に<intent-filter>でその挙動を宣言Anotherアプリ yourアプリIntent: ACTION_SENDstartActivity()で実行<intent-filter><action android:name=“SEND" /></intent-filter>システム
  • 3-3. アプリケーションに必要となるハードやソフトの要件(1)• Screen size and density-画面サイズと解像度を設定-<supports-screens>などで宣言• Input configuration-入力デバイス-<uses-configuration>で宣言
  • 3-3. アプリケーションに必要となるハードやソフトの要件(2)• Device features-Android端末に搭載されるハード:カメラやbluetoothなど-<uses-feature>で宣言• Platform Version-使用する最小のAndroid APIレベル-<uses-SDK>で宣言
  • 4. アプリケーションリソース(1)• Androidアプリケーションではコードとリソースが分けられている• リソース:image、audio、style、color、etc…→全てのリソースに個別のIDが割り振られ、管理される• コードとリソースを分けることで保守性と移植性を高める
  • 4. アプリケーションリソース(2)例1)多言語対応-res/values-fr/ for French string values-システムがデバイスの言語を判断し、もしフランス語であれば上のリソースを自動で読み込んでくれる例2)デバイスのオリエンテーション対応-landscapeとportraitのレイアウトを別々に用意-システムがデバイスのオリエンテーションに合わせて適切なレイアウトを自動で読み込んでくれる