技術情報
AndroidStudioのgradle
admin at 2017年10月03日 10:00:56
Android8.0の新機能!!
admin at 2017年08月29日 10:00:08
Android8.0 公式発表!!
admin at 2017年08月22日 10:39:22
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
admin at 2017年08月01日 10:00:15
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
admin at 2017年07月11日 11:39:01