こんにちは。技術チームの孫です。
今月の社内勉強会は「アンドロイドの基礎 四大コンポーネント」を開講しました。
勉強会の主催者は技術チームの張 万强さんです。
弊社はPDA(Android OS)を活用して、各社内システムと連携して、倉庫のデータ分析、情報処理など日常業務をサポートしています。
Androidアプリ開発に関して、「作ってみたいけど、作り方が右も左もわからない..」という状態の人も多いです。
今回の勉強会は、初心者向けにAndroidアプリ開発の基礎知識を説明しました。
アクティビティ
ユーザーとやり取りするためのエントリポイントです。
App中で、通常一つのアクティビティは、一つの独立した画面です。
画面の中で、ボタンのような要素を表示しています。
ユーザーイベントを監視して処理します。
- アクティビティが作成されると、「未作成」状態から「最前面」状態へと一気に遷移する。その過程で onCreate, onStart, onResume が呼ばれる。
- 他のアクティビティが手前に来たら「非最前面」状態に遷移する。その過程で onPause が呼ばれる。
- 不透明な他のアクティビティが手前に来ると、元のアクティビティは「不可視」状態へ遷移する。その過程で onPause, onStop が呼ばれる。
- 「最前面」状態から「未作成」状態へと一気に遷移する。その過程で onPause, onStop, onDestroy が呼ばれる。
- 「未作成」状態へと遷移する。その過程で onDestroy が呼ばれる。
サービス
音楽を再生するプレーヤーAPPを例にしてサービスを説明しました。
メディアプレーヤーアクティビティは Context.startService() を利用して、バックグラウンドで音楽再生サービスを稼働します。
Context.bindService() を利用して、サービスに通信することもできます。
BroadcastReceive
BroadcastReceiveは端末が送信している様々なメッセージや情報を受信するクラスです。これを利用すると、時間やタイムゾーンの変化、バッテリーの残量や充電状態など、細かな端末の状態を知ることができます。また、自分で情報を発信してそれを受信することも可能です。
Content Provider
AndroidでDBにデータを取得/保存する時に利用するクラスです。このクラスを使えば、あるアプリが持っているデータを他のアプリも使用できるようになったりします。もともと用意されているものとしては、着信ログや電話帳、ブラウザのブックマークなどがあります。異なるアプリで同じDBを触ることができるというあたり、様々利用できそうで夢が膨らみます。これらのデータを利用するためには getContentResolver().query()メソッドで、目的のデータを示すURIを指定してCursorインスタンスを取得する必要があるそうです。
最後に練習問題も出ました。アンドロイドのコンポーネント基礎知識が理解出来たら、問題を解くのが難しくないでしょうね。
スマートフォンの登場と普及は、凄まじい勢いで世界中の人々の生活を変えてきました。初めの音楽アプリの開発に挑戦してみませんか?