Android

Android Contextクラス 【講座体験レポート 第9回】

Posted 7月 23 2012 by NABE  , , with 1 コメント

Android Contextクラス 【講座体験レポート 第9回】

こんにちは、Kです。

今度は急に涼しくなりましたね。笑
弊社の最寄駅である秋葉原駅周辺では急激にジャケット率が上がりました。
皆さんも体調管理には十分お気を付けください。

私は涼しくなると焼肉が食べたくなります。あ、あと熱燗も、笑
しかしながらその前に身体を絞らなければならないのです。
調子に乗って飲み食いしていたところぶくぶくと太ってしまったのです。
そして本日、弊社営業部のKさんより「中トトロ」と例えられてしまいました。。。

8月末までに急激に落とそうと考え今週の火曜から減量を開始し、2日間で3.5キロ落としました。
が、残り一ヶ月と一週間で15キロ落とすつもりです。あくまでもつもりです。笑

実は弊社スクールマネジャーTさんも2週間ほど前から減量しています。
ブログにも稀に登場していますので、見てみてください。笑
Tさんは毎日自転車で相当な距離を走っています。
そして弊社のスレンダーな社員が、ラーメンやマックといった重いものを食べに行こうとふざけて誘うと・・・
「○○○とかマジ、テロだろ~!」
と連呼しており、その光景を見ていると仕事の疲れがとれます。笑

私ですか?
もちろん行きませんよ。(私は減量云々ではなく毎年この時期は脂っこいものや重いものが食べれないので。)

何はともあれT氏に同志と認められたので便乗して頑張ります。
※私は減量に関する話を今後は書かないので、減量の今後が気になる方はT氏のブログをご覧ください!笑

今回はAndroid Basic第9回の講座です。

今回学んだ内容

講座内容はContextクラス、マニフェストファイル、データ入出力です。

Contextクラス

アプリケーションの環境情報をAndroid全体で受け渡すためのインタフェースです。

Contextクラスを通してアプリ間のリソースへのアクセスや、アプリケーションレベルのオペレーション
(アクティビティの起動、ブロードキャスト、インテントの受信など)を行うことができます。

Androidアプリケーションにおいては様々な場面で、このContextクラスオブジェクトを使用する必要があります。

例えばActivityクラスの中で使用する場合は、【getApplicationContext()】または【this】のどちらも使用できます.
ただ以下の点で異なります。
【getApplicationContext()】の場合はライフサイクルに限らず同じオブジェクトを取得します。
【this】の場合はActivityのライフサイクルと連動したContextオブジェクトを取得します。
図のように有効範囲が異なるという訳ですね。

ここでActivityのライフサイクルと連動しActivityContextオブジェクトが破棄された場合、
ActivityContextオブジェクトへの参照が残ったままになっていると、
ガベージコレクションによってActivityContextオブジェクトが回収されず、メモリリークを起こしてしまいます。

無駄にContextオブジェクトへの参照をコピーしないことが重要となります。
しかしながらApplicationContextを利用することによってもメモリリークを回避することは可能です。
(ApplicationContextはActivityのライフサイクルに左右されないからです。)
したがってgetApplicationContext()にて取得したApplicationContextを使用していれば問題はありません。

マニフェストファイル


Androidアプリケーションにはマニフェストファイルが必ず必要となります。

このマニフェストフェイルはアプリ全体の設計図の役割をしているXMLファイルです。
具体的にはアプリの機能をAndroidシステムに伝える役割をしています。

図のマニフェストファイルは前回のサンプルアプリのマニフェストファイルです。
「manifest」ではパッケージ(package属性)とネームスペース(xml:android属性)を必ず指定しなければなりません。
「users-sdk」は開発時のSDKのバージョンですね。
ここでは「1.6」という表記ではなく、各バージョンの「APIレベル」で指定しています。
尚、「android:minSdkVersion」は「最低限これ以上のAPI(SDKバージョン)で」という意味です。

「uses-permission」はアプリが動作する上で必要な「権限の決定」を設定します。これにより・・・
重要なデータや機能へ誤ってアクセスすることによる、デバイスに対しての致命的な障害を引き起こすことを防ぐことができます。
「application」はアプリケーションの宣言です。
「android:icon」ではアプリのアイコンを指定し、「android:label」はアイコンの下に表示させるアプリ名を指定しています。
「activity」はアプリのアクティビティの宣言で、ここで宣言していないアクティビティは実行できません。
図の場合「android:name」でアクティビティを指定し、「android:label」でアクティビティの名前を指定しています。

他にもいろいろな要素や属性がありましたが・・・覚えることがたくさんでパンクしたため覚えていません。笑
何度も繰り返しやるしかないですね。。。

本日演習問題がなかった&時間短縮の為、以上となります。
やはり演習がないとさびしいですね。笑

次回は再度データベースについてです。

ではまた次回もよろしくお願いします!

JAVA Android初心者パックコース


Android 講座



  未経験OKの仕事 |  上場企業の仕事 |  高待遇の仕事 |  外資系の仕事 |  社内SEで検索 |  自社サービスで検索





メールアドレス
ご質問・問い合わせ等、ご自由にお書きください。