Android 14 の重要なアップデートのプレビュー
グローバリゼーション
Android 14 では、Android 13 をベースにアプリケーションごとに言語を設定する機能がさらに拡張され、いくつかの追加機能が提供されます。
-
アプリの localeConfig を自動的に生成する: Android Studio Giraffe Canary 7 および AGP 8.1.0-alpha07 以降では、アプリごとの言語設定を自動的にサポートするようにアプリを構成できます。Android Gradle プラグインは、プロジェクト リソースからファイルを生成し
LocaleConfig
、最終マニフェスト ファイルにそのファイルへの参照を自動的に追加するため、手動で作成または更新する必要がなくなります。AGP は、アプリ モジュールのリソースとライブラリ モジュールの依存関係を使用して、LocaleConfig
ファイルに追加するロケールを決定します。 -
アプリの localeConfig を動的に更新する:と の
LocaleManager
メソッドを使用すると、デバイスのシステム設定でアプリのサポートされている言語のリストを動的に更新できます。この柔軟性により、サポートされている言語のリストを地域ごとにカスタマイズしたり、A/B 実験を実施したり、アプリがサーバーサイド プッシュでローカライズされている場合は最新のロケール リストを提供したりすることができます。setOverrideLocaleConfig()
getOverrideLocaleConfig()
-
入力メソッド (IME) のアプリ言語の可視性: IME には、
getApplicationLocales()
現在のアプリの言語を確認し、IME 言語をその言語に一致させるための方法があります。 -
Grammar variations API : Android 14 では、性別を区別する言語向けのユーザー中心のインターフェイスの構築に役立つ Grammar variations API が導入されています。性別固有の文法は多くの言語で区別されており、ユーザーの性別を正しく反映することは、ユーザー エクスペリエンスとエンゲージメントにプラスの影響を与える可能性があります。
-
地域の設定: ユーザーは、地域の設定を通じて、温度単位、週の最初の曜日、および番号付けシステムをカスタマイズできます。これらの設定は Android 設定メニューに一元的に表示され、デバイスのバックアップと復元全体で保持されます。
getTemperatureUnit
アプリは、や などのいくつかの API やインテントを通じてgetFirstDayOfWeek
ユーザー設定にアクセスし、ユーザーの設定に基づいて情報の表示方法を調整できます。また、BroadcastReceiver
ロケール設定の変更を処理するために登録することもできます。
これらの設定を見つけるには、設定アプリを開いて に移動します系统 > 语言和输入法 > 地区偏好设置
。
バリアフリー
Android 14 は、最大 200% のノンリニア フォント スケーリングをサポートし、視覚障害のあるユーザーにより多くのアクセシビリティ オプションを提供し、Web コンテンツ アクセシビリティ ガイドライン (WCAG) に準拠しています。
非線形拡大曲線を使用すると、画面上の大きなテキスト要素が過度に拡大される問題が回避されるため、大きなテキストは小さなテキストと同じ比率で拡大されません。この拡大戦略は、異なるサイズの要素間の比例階層を維持し、テキストの切り捨てや読みにくい非常に大きなテキストなど、線形拡大によって引き起こされる問題を軽減します。
非線形フォント倍率でアプリをテストする アプリをテストするには、
デバイスのアクセシビリティ設定で最大フォント サイズを有効にします。
これらの追加オプションと倍率の改善は、アプリが拡大ピクセル (sp) 単位を使用してテキスト サイズを定義している場合に自動的に適用されます。ただし、アプリケーションがフォント サイズを正しく適用し、より大きなフォント サイズに適応するときに使いやすさに影響を与えないことを確認するために、最大フォント サイズを有効 (200%) にしてインターフェイス テストを実施することをお勧めします。
200% のフォント サイズを有効にする手順:
- 設定アプリを開き、「アクセシビリティ」>「表示サイズとテキスト」に移動します。
- [フォント サイズ] オプションで、[最大フォント サイズ] 設定が有効になるまでプラス (+) アイコンをクリックします。
アプリで拡大ピクセル (sp) 単位を使用する
Android がユーザーの好みのテキスト サイズとスケールを適切に適用できるように、常に sp でテキスト サイズを指定します。
フォントの非線形スケーリングにより不均衡な効果が生じる可能性があるため、パディングまたはビューの高さに sp 単位を使用しないでください。
TypedValue.applyDimension()
sp 単位をピクセルに変換するメソッドとTypedValue.deriveDimension()
ピクセルを sp に変換するメソッドを使用します。これらの方法では、適切な非線形スケーリング曲線が自動的に適用されます。
Configuration.fontScale
フォントのスケーリングが非線形になり、これらのフィールドが正確でなくなるため、またはDisplayMetrics.scaledDensity
を使用したハードコーディングは避けてください。
ユーザー体験
Android 14 は、アクセシビリティの観点から最大 200% の非線形フォント拡大をサポートし、弱視のユーザーにより多くのオプションを提供し、Web コンテンツ アクセシビリティ ガイドライン (WCAG) に準拠しています。非線形拡大により、大きなテキスト要素の過度の拡大が回避され、大きな要素と小さな要素の間の比例階層が維持され、テキストの拡大率が向上します。
アプリのテストでは、デバイスのアクセシビリティ設定で最大のフォント サイズを有効にして、アプリがフォント サイズを正しく適用するか、使いやすさを損なうことなく大きなフォント サイズに対応できるかどうかをテストできます。
開発者は、常に拡大ピクセル (sp) 単位でテキスト サイズを定義し、パディングやビューの高さに sp 単位を使用しないことをお勧めします。sp をピクセルに変換するメソッドを使用することTypedValue.applyDimension()
も、TypedValue.deriveDimension()
ピクセルを sp に変換するメソッドを使用することもできます。Configuration.fontScale
またはを使用したDisplayMetrics.scaledDensity
ハードコーディングは避けてください。
Android 14 では、直接共有ターゲットのランキングを決定するためのより多くのランキング シグナルも提供され、より有用な結果がユーザーに提供されます。また、組み込みおよびカスタムの予測リターン アニメーションのサポートや、アプリ ストアのPackageInstaller
ユーザー エクスペリエンスの向上に役立ついくつかの新しい API など、アプリ ストアの改善も行われています。
Android 14 では、いくつかの重要な機能改善が導入されています。
-
ダウンロード前にインストールの承認を要求する:
requestUserPreapproval()
インストール セッションを送信する前にアプリ ストアがユーザーにインストールの承認を求め、ユーザーが承認するまでダウンロード操作を延期できるようにする方法。これにより、ユーザーの邪魔をせずに、アプリをバックグラウンドでダウンロードしてインストールできるようになります。 -
将来の更新に対して責任を負う:
setRequestUpdateOwnership()
このメソッドを使用すると、インストーラーは、インストールされるアプリケーションの将来の更新に対して責任を負うことを示すことができます。これにより、ユーザーは目的のアプリ ストアからのみアップデートを受信できるようになります。 -
中断を少なくしてアプリを更新: InstallConstraints API を通じて、アプリ ストアはアプリの更新が適切なタイミングで行われるようにし、ユーザーがアプリを使用している間の更新を回避し、ユーザー操作の中断を防ぐことができます。
-
シームレスなインストールのためのオプションの分割:
setDontKillApp()
このメソッドを通じて、インストーラーは、新しい分割アイテムをインストールするときにアプリの実行プロセスを終了すべきではないことを示すことができ、ユーザーがアプリを使用するときに新しい機能をシームレスにインストールできるようになります。 -
ユーザーが撮影したスクリーンショットの検出: プライバシーが保護されたスクリーンショット検出 API が導入されました。アプリはアクティビティごとにコールバックを登録できます。ユーザーがスクリーンショットを撮ると、システムはアプリに通知します。注: コールバックは実際のスクリーンショットの画像を提供しません。キャプチャされた画面の内容はアプリケーションによって決まります。
これらの機能改善により、Android 14 は、インストール、アップデート、シームレスなインストール、スクリーンショット検出の点で、より柔軟でスマート、そしてユーザーフレンドリーになりました。
グラフィックス
Android 14 以降、Path API はクエリおよび補間関数をサポートし、パス オブジェクトの内部コンテンツをより深く理解して操作できるようになりました。
パスを作成するにはmoveTo()
、 、 、lineTo()
などのメソッドを呼び出してcubicTo()
パス フラグメントを追加できます。
クエリ機能: API
を使用してオブジェクトを取得できるようになり、オブジェクトを走査することでパスのフラグメントと関連データを 1 つずつクエリできるようになりました。これにより、パスの作成時にパスの詳細が保存および取得されます。Path.getPathIterator
PathIterator
PathIterator
val path = Path().apply {
moveTo(1.0f, 1.0f)
lineTo(2.0f, 2.0f)
close()
}
val pathIterator = path.pathIterator
補間機能:
Android 14 ではinterpolate()
、同じ内部構造を持つ 2 つのパス間を補間するパスのメソッドが提供されます。
for (segment in pathIterator) {
println("segment: ${
segment.verb}, ${
segment.points}")
}
これはアニメーションやシェイプモーフィング効果に便利です。このメソッドを使用するとinterpolate()
、2 つのパスの間に新しいパスを作成し、補間係数によって形状の変化の度合いを制御できます。
val interpolatedResult = Path()
if (path.isInterpolatable(otherPath)) {
path.interpolate(otherPath, .5f, interpolatedResult)
}
一般に、これらの関数の導入により、Path API はベクトル グラフィックスの作成、操作、制御においてより柔軟で便利になります。Jetpack グラフィックス パス ライブラリは、Android の以前のバージョンに対しても同様の機能サポートを提供します。
コア機能
OpenJDK 17 アップデート
Android 14 では、最新の OpenJDK LTS バージョンと一致するように Android のコア ライブラリが引き続きアップデートされ、次の機能と改善が導入されます。
- 約 300 の java.base クラスを更新して Java 17 をサポートします。
- テキスト ブロック関数を導入すると、複数行の文字列リテラルの使用が可能になり、Java プログラミング言語の記述の利便性が向上します。
- パターン マッチングをサポートし
instanceof
、追加の変数を必要とせずに、オブジェクトをinstanceof
で特定の型を持つものとして扱うことができます。 - シールド クラスの導入により、拡張または実装できるクラスとインターフェイスを制限できるようになり、コードのセキュリティと保守性が向上します。
Google Play システム アップデート (プロジェクト メインライン) を通じて、6 億を超えるデバイスがこれらの変更を含む最新の Android ランタイム (ART) アップデートを受け取ることができます。これらのアップデートは、デバイス間でより一貫性のある安全な環境をアプリに提供し、ユーザーがプラットフォームのバージョンに関係なく新機能を楽しめるように設計されています。
Java および OpenJDK は、Oracle および/またはその関連会社の商標または登録商標であることに注意してください。