Android

Android 10の概要をまとめました。

投稿日:

はじめに

Android 10が9/3にリリースされました。まずはpixelシリーズからローリングアウトされ、今年中にはサードパーティの端末にも適用される予定です。Android10が正式名称となり、Android 9(Pie)まで続いていたお菓子のコードネームは無くなりました。また、圧倒的なハイスピードと低遅延次世代通信規格5Gや折りたたみ式スマホをサポートしています。

主な変更点

Android 10で追加された主な機能のまとめは以下になります。

バックグラウンドからの起動について

Android 10 は、アプリのアクティビティを起動するタイミングを制限します。この動作変更により、ユーザーに対する割り込みを最小限に抑え、ユーザーは画面内の表示内容を詳細に制御できるようになります。
Android 9(API レベル 28)以前をターゲットにしているアプリも含め、Android 10上で稼働するすべてのアプリに適用されます。また、アプリが Android 9 以前をターゲットにしていて、元々 Android 9 以前が稼働していたデバイス上にインストールされていた場合でも、デバイスを Android 10にアップグレードすると、この動作変更が適用されます。
アクティビティのパーミッションが必要とされる条件はこちらから確認することができます。
通常、Andorid 10上で稼働しているアプリがバックグラウンドから起動しようすると、AndroidStudioのlogcatに警告メッセージが表示されます。

バックグラウンドにあるアプリは、直接アクティビティを起動するのではなく、通知を作成してユーザーに情報を提供することが求められるようになりました。
ただし、現在進行形のアラームや着信などによって、ユーザーの注意を早急に引き付けることが必要となる場合があります。このような場合に備えて、これまではバックグラウンド アクティビティを起動するようにアプリを設定することがありました。Android 10で同じ動作を実装するには、次のような記述を行います。

通知ベースのアラート/リマインダーシステム
他のアプリを起動している最中でも画面上部に通知が表示され進行中の動作を邪魔することなく通知に対してアクションが可能になりました。例えば通話の際には通話を受けるか、拒否するかを選択できます。上記のようにフォアグラウンドで現在進行形のサービスに関連づけた通知の表は下記実装を行います。

通知はユーザーの設定したサイレントモードのルールが適用されます。たとえば、サイレント モードが有効になっている場合でも、特定の相手からの着信のみを通知することができるようになります。

ストレージへの権限

Android 10では、複数のアプリで共有できる領域は写真、動画、音楽のみとなりました。
この領域にアクセスするにはREAD_EXTERNAL_STORAGEやWRITE_EXTERNAL_STORAGEを使用します。Android 10ではアプリごとに領域が作られ、他のアプリが管理する領域には直接アクセスすることができなくなりました。
他のアプリが作成したファイルにアクセスするには、
・アプリに READ_EXTERNAL_STORAGEパーミッションが付与されていること。
・対象ファイルが、写真(MediaStore.Images)、動画(MediaStore.Video)、音楽ファイル(Media.Audio)の中にあること。
が条件となります。
ダウンロード領域へのアクセスも可能ですがStorageAccessFrameworkのファイルピッカーを利用する必要があります。

位置情報制御

現在地のアクセス許可にアプリ使用中のみが追加されました。これまで「常に許可」or「許可しない」の2択でしたが、「使用中のみ許可」を選択することができるようになっています。Android 10をターゲットにしているアプリが、バックグラウンドで稼働しているときにデバイス位置情報にアクセスする必要がある場合、アプリのマニフェストファイル内で、次のように新しいパーミッションを宣言する必要があります。

その他ユースケースによって異なる場合は詳細を確認しましょう。

Live caption

動画、音声メッセージ等の音声のリアルタイムの字幕が自動的に表示されるようになります。タップするだけですべてのアプリで使うことができ、自分で録音した音声にも活用できます。この機能は、まず英語のみの対応となり、Google Pixel 端末にて秋頃から使えるようになる予定です。

Smart Reply

AIがメッセージに対して返信の候補を出してくれる機能が追加されました。さらに、メッセージに住所が含まれている場合に、「地図を開く」などのアクションを提示してくれます。Android 9 で、通知内に定型返信文を表示する機能が導入されましたが、Android 10 以降では、通知にインテントベースのアクションの候補を含めることもできます。さらに、こうした候補を自動生成できるようにもなっています。定型返信文の生成に使用される API は TextClassifier に含まれており、Android 10ではデベロッパーに直接公開されています。アプリで独自の候補を提供する場合、プラットフォームによる候補の自動生成は行われません。

※詳しくはこちらで確認できます。

Gesture Navigation

設定でナビゲーションバーのないUIに切り替えられ、戻るボタンがなくなります。画面左または右から中央にスワイプすると一つ前の画面に戻るなど、インターフェイスをiPhoneライクにすることができます。ナビゲーションバー領域を排除し、アプリをフルスクリーン表示にできるようにすることができます。

Dark Thema

UIがダークになります。Dark Themaは以下のようなメリットがあります。
・デバイスの画面テクノロジーによっては電力使用量を大幅に削減できます。
・低視力のユーザーや明るい光に敏感なユーザーが画面を見やすくなります。
・すべてのユーザーが薄暗い環境でもデバイスを簡単に操作できます。

セキュリティアップデート

Androidは1ヶ月に1回のセキュリティアップデートを提供しており、アップデート提供後に新たな問題が見つかった場合は翌月のセキュリティアップデートを待たなければいけませんでした。Android10では、セキュリティアップデートがGoogle Playから配信されるので、従来より適用が早くできるようになります。

フォーカスモード

DigitalWellbeingを向上させる機能として、仕事や勉強中につい気になるアプリの起動を制限できます。アプリの通知やバックグラウンド稼働を停止することができます。

Kotlinに関する変更

通常、Kotlin 内で null 可能性規約違反が発生すると、コンパイル エラーになります。既存のコードとの互換性を維持するため、Android 9 の際に導入された新しいアノテーションは @RecentlyNullable@RecentlyNonNull だけに限定されていました。これにより、null 可能性違反があっても、エラーではなく警告が出力されるようになっていました。今回、Android 9 のときに追加されていた @RecentlyNullable アノテーションと @RecentlyNonNull アノテーションは、それぞれ @Nullable@NonNull に変更されました。null可能性違反があった場合は、警告ではなくエラーが出力されるようになります。

さいごに

Android10では主にセキュリティやプライバシーの面での変更が行われました。既存の機能にも知らないものもこの機会に学ぶことができました。
皆様のAndroid10実装のお役に立てればと思います。

おすすめ書籍



blog-page_footer_336




blog-page_footer_336




-Android
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

AndroidでWebViewを使用する時に押さえておきたいポイント5選

1 はじめに2 JSのAlert, Confirm, Promptが表示されない!3 読み込み中の進捗を表示する4 UserAgent5 クリアテキスト設定5.1 クリアテキストを無効にする5.2 H ...

【Java】ストリームについてまとめてみました

1 はじめに2 Streamの分類3 テキストファイルの読み書き4 バイナリファイルの読み書き5 読み書きのバッファリング処理6 さいごに7 おすすめ書籍 はじめに Javaではすべての入出力をストリ ...

Kotlinでクラスのネストについて

1 はじめに2 クラスのネスト3 内部クラス3.1 Javaコードとの比較4 さいごに5 おすすめ書籍 はじめに こんにちは。引き続きKotlinの基本文法で、今回はクラスのネストについてです。 Ja ...

Android StudioのInstant Runの種類

1 はじめに2 概要3 全部で3種類4 コールドスワップになる条件5 ビルドおよびデプロイが実行される条件6 再実行について7 参考ページ8 さいごに はじめに はじめまして、nomuraと申します。 ...

[Kotlin]DatePickerDialogとTimePickerDialogを使って見た。

1 はじめに2 Anko Commons3 DatePickerDialog3.1 DatePickerFlagment3.2 呼び出し方4 TimePickerDialog4.1 TimePicke ...

フォロー

blog-page_side_responsive

2019年9月
1234567
891011121314
15161718192021
22232425262728
2930  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。