技術情報

AndroidStudioのgradle

AndroidStudioのgradleで開発中に便利と思った機能をいくつか紹介していきます
今回はbuild.gradleの中の機能となります

続きを読む



Android8.0の新機能!!

前回の記事で紹介いたしました、Android8.0の公式発表が終了し、詳細がサイトに載っておりますので、便利な機能をピックアップしていきます!


続きを読む



Android8.0 公式発表!!

ニューヨーク時間8月21日14時40分(日本時間:8月22日3時40分)から
Android Oの正式発表イベント「Android O Reveal NYC」が開催されます

続きを読む



Android 8.0 公開目前!!

Android 8.0の最終ベータ版が公開となり、開発者の方は、アプリの8.0への移行などを意識しないといけない時期になりました
アプリで使用しているライブラリなどにも変更が来そうですね

確認項目は公式にもありますが、私が使用してそうなところをピックアップしたいと思います

8.0への移行

互換性の確認では、現状のアプリを8.0の端末で動作確認をします

1. バックグラウンドでの位置情報アップデートの頻度低下
 バックグラウンド状態での位置情報の取得が1時間に数回となるので、行動ログなどを取得しているアプリでは、影響がでますので注意が必要です
 フォアグラウンド時のみ、位置情報を取得している場合には影響はでません

使ったことのあるのは以上でした…。

次は、8.0からの機能です
1. マニフェストファイルからブロードキャストレシーバーを削除
 暗黙的なブロードキャストは8.0から制限されるために、レシーバーに記述していても機能しなくなります
 暗黙的なブロードキャストとは、ACTION_PACKAGE_REPLACEDなどの対象アプリを指定していないものです
 しかし、現状で例外がいくつかありACTION_BOOT_COMPLETED、ACTION_TIMEZONE_CHANGEDなど、重要で使う必要性が高いブロードキャストは例外とされているので、8.0にする場合には例外のブロードキャストを把握する必要があります

2. TextViewの自動サイズ設定
 名前の通り、Viewサイズに応じて中身の文字サイズが適切なサイズに変更されるようです
 今までならば、自分でViewのサイズを取得して文字サイズを少しずつ小さくしていましたが、これで開発が楽になりますね!

3. 統一されたレイアウト マージンとパディング
 現状、上下に同一のマージンをしたい場合には、layout_marginTop, layout_maringBottomの2つを記述する必要がありました
 しかし、8.0からはlayout_marginVerticalという属性1つで設定できるようになります
 パディングでは、paddingTop, paddingBottomとなりpaddingVerticalになります
 左右の場合には、Verticalの部分をHorizontalにすることで設定できます

終わりに

アップデートで利用者と開発者の両方が、便利になっていくのはいいことですね
今後も便利にしていって欲しいと共に、私も便利になるアプリを開発していきたいです

ちなみに、Android 7.0の公開が去年の8月でしたので、今年も8月になるのかと予想しております

火曜日担当:poppy



AndroidのContext

Androidを開発する上でContextを利用することは多々あります
ダイアログの表示、プリファレンス、トーストの表示などです
また、ユーティリティクラスでは、そのほとんどでContextの入れ子ができるでしょう
私は、Activity、Service、Broadcastで取得したContext、Applicationで取得したContextくらいしか使ったことはありませんが、どのような違いがあるのかを確認していきます

Activity、Service、Broadcast上のContext

ActivityとServiceについては、「this」でContextを取得することができます
Broadcastは、onReceiveの引数にContextがあるので、それを使います

これらのContextは、取得してきたコンポーネントの寿命と同じになります
コンポーネントは終了しているが、コールバックで戻ってきたところに、Contextを使っている場合には、メモリリークでエラーとなりアプリが異常終了します
ダイアログの表示タイミングによっても、メモリリークが発生します

Applicaiton上のContext

Application上のContextとは、getApplicationContext()で取得できるContextです
他にも、Applicationを継承しているクラスで「this」を使うこと、上記Activity等のContextからgetApplicationContext()で取得することができます

このContextの寿命は、アプリのタスクが切れるまでとなります
こちらの方が、一般的に寿命は長いと思います

終わりに

Contextは多くの箇所で使いますので、場所にあったContextを使うことが一番かと思います
Activity内で完結しており、Activityが終了以降はContextを使用していないなら、ActivityのContextを使えばいいと思います
Activityが終了以降でもContextを使用している場合でも、その一部をApplicationのContextを使えば問題ないかと思います

また、ダイアログ等の表示にContextを使う場合には、各Contextのテーマ等も影響しますので、注意が必要です

火曜日担当:poppy




アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム