Material You の monet テーマ エンジンは Android 12 の大きなハイライトであり、その仕組みは次のとおりです。

click fraud protection

Google の Materials You は、それほど複雑ではありませんが、1 か所に多くの情報がまとめられているわけではありません。 ここをチェックしてください!

クイックリンク

  • monet テーマ エンジンの仕組み
  • ランタイム リソース オーバーレイ (RRO) はどうなりましたか?
  • マテリアル あなたはまだ改善中です
  • Android 13 での変更点

これまでで最も大きな変化は、 アンドロイド12マテリアル・ユー、Google のマテリアル デザイン言語の最新バージョン。 Google が説明するように、マテリアル ユーザーは、「は、あらゆるスタイルに合わせてパーソナルで、あらゆるニーズにアクセスでき、あらゆる画面に生き生きと適応できるデザインを作成することを目指しています。Android 12の開発時に、Googleはパステルカラーの豊富なパレットを生成するコード名「monet」という新しいテーマエンジンを作成しました ユーザーの壁紙から派生. これらの色はシステムのさまざまな部分に適用され、その値は ユーザーのアプリケーションが呼び出すことができる API。これにより、アプリケーションが色を変更するかどうかを決定できるようになります。 UI。 Google はマテリアル ユーに全力を尽くしており、同社はほとんどのアプリを更新して動的な色を組み込んでいます。

マテリアル デザインの歴史に関する短期集中コースとして、ユーザー エクスペリエンスに本質的に焦点を当てた Android 5 Lollipop で初めてリリースされました。 として Googleはこう言っています, 「マテリアルは、ガイドライン、コンポーネント、およびツールのベスト プラクティスをサポートする適応性のあるシステムです。 ユーザー インターフェイス デザイン。フラットなパステル カラー パレット、奥行き、柔らかな照明、リアルなデザインが特徴です。 物理。 Android 9 Pie ではマテリアル デザイン 2 が登場しましたが、最初のマテリアル デザインのイテレーションほど大規模な視覚的な見直しには至りませんでした。 Android 12 では、 マテリアルデザイン3、これはより重要な見直しです。

ただし、カラー テーマ エンジンを取り除いた場合、マテリアル ユーは実際にはそうではありません。 それ 違う。 実際、「あなた」によって示される個人的な要素は多かれ少なかれ完全に消えてしまいます。

monet テーマ エンジンの仕組み

「monet」テーマ エンジンは、マテリアル ユーに関して魔法が起こる場所であり、壁紙からどの色が選択されるかを決定するアルゴリズムです。 Android 12LではAOSPに「Monet」が追加されました。 カスタム ROM 開発者もこれを実装できます 「monet」のオープンソース実装. サードパーティのアプリ開発者は無料です 動的カラーのサポートを追加するには 現時点では、限られた数のデバイスでしか動作しないとしても。

ほとんどの人がマテリアル ユーについて抱く最初の疑問は、どのようにして毎回一緒に機能し、コントラストの良い色を選択することができるかということです。 私は色選択アルゴリズムを破るつもりで数え切れないほどの壁紙を試してきましたが、どれもそれを実行できませんでした。 今でも毎回相性の良い色を選んでいますが、これは控えめに言っても素晴らしい偉業です。 Android 12 の色選択アルゴリズムがどのように機能するかを理解するには、2 つのイースター エッグのうち 1 つがウィジェットの形で提供されており、デスクトップに追加できます。 ウィジェットには monet が選択したすべての色が表示され、タップすると全画面表示されます。 全画面表示の場合は、色をタップして共有できます。 共有すると、出力は次のようになります。

A1-600 (@android:color/system_accent1_600)
currently: #626200

ユーザーが Android 12 デバイスで壁紙を変更すると、画像が分析されて色が選択されます 初期シードを使用して、アルゴリズム的にプライマリ、セカンダリ、ターシャリ、およびエラーの色を選択します 色。 マテリアル ユーに全体的な色合いを与える 2 つのニュートラル カラーも選択されています。 同時に、色彩理論とアクセシビリティ ルールを適用しています。 これらの色から、アルゴリズムは輝度 0% (黒) から 100% (白) までの範囲の色調パレットを作成します。 動的テーマまたはカスタム テーマは、これらの色調パレットの値を使用して、その色の範囲のテーマ属性を設定します。 仲介として壁紙から最大 128 色を CIELAB 色空間に抽出し、それらの色が CAM16にマッピング. CAM16 cオール ある外観 メートルオーデル は、実際のシード カラーを決定するために色の並べ替えとフィルタリングに使用され、そのシード カラーを使用してパレットが生成されます。 その後、システム全体で色を設定するために、これらの色が RGB にマッピングされて戻されます。

CIELAB は「L*a*b*」と呼ばれることもあります。 L* は知覚される明るさ/明るさを表し、a* と b* は人間の視覚に特有の 4 つの色 (赤、緑、青、黄) を表します。 明度はコントラスト比の計算に使用され、可読性が保証されます。 適用すると、システム UI やアプリなどに実装できるシステム全体の美しい色がすべて得られます。

ランタイム リソース オーバーレイ (RRO) はどうなりましたか?

RRO はどこにも行っておらず、Material You は Fabricated Overlays API を通じて機能します。 過去に、私たちは次のように話しました。 Fabricated Overlays を使用して根無し草のテーマを取り戻す方法. Fabricated Overlay は Android 12 に新しく追加されたもので、RRO とは動作が若干異なります。 その 1 つとして、RRO デバイスにインストールされているオーバーレイ APK を介して機能するのに対し、製造されたオーバーレイは単にアプリに色を指示するだけです。 使用。

製造されたオーバーレイも、RRO よりも少し制限されています。 Android 11 より前では、RRO は次のようなことができました。 ブール値、整数、ディメンション、属性、レイアウト、さらには生のリソースなど、ほとんどすべてのリソースをオーバーライドします。 データファイル。 Android 11 では RRO の動作方法にいくつかの変更が加えられ、レイアウトのオーバーライドは実際には不可能になりました。 一方、製造されたオーバーレイは、整数として表現できる値のみをオーバーライドできます。 これには、整数、次元、ブール値、色が含まれます。 これらを使用して生データのリソース、レイアウト、文字列、配列をオーバーライドすることは、少なくとも簡単にはできません。

それでも、マテリアル ユーとモネに関しては、これらの制限はあまり重要ではありません。 製造されたオーバーレイを使用すると、APK がコンパイルされたり、システムが再起動されて適用されるのを待たずに、システムが色と寸法のオーバーレイをその場で簡単に適用できるようになります。

マテリアル あなたはまだ改善中です

マテリアル ユーのダイナミックなカラーには確かに問題がないわけではありませんが、それを根本的に打ち破るのはそれほど難しいことではありません。 たとえば、壁紙をすぐに変更すると、次のことが可能になります。 事実上サービス拒否攻撃を仕掛ける. ミシャール・ラーマン 確認しました このサービス拒否攻撃は Android 12L で修正されたとのことです。 私は、マテリアル ユーとそのコンセプトが大好きですが、多くの作業が必要なため、将来のバージョンでマテリアル ユーが改善されることを心から願っています。 私自身の個人的な経験から、AOSP に追加されなかった理由の 1 つは、そのバグの多さであると感じています。 それと、Googleが事実上Pixelシリーズの時限独占にしたという事実。 最近、Google Pixel 7 を Android 13 の 12 月パッチに更新した後、問題が発生しました。 Pro、後で logcat で追跡したところ、原因は Materials You と Google Pixel でした。 ランチャー。

迷惑なことに、 Android 12 ではカスタム フォントとカスタム アイコンの選択肢が削除されました マテリアルユーのダイナミックなテーマを支持します。 テーマ システムは Pixel Themes アプリで初めて導入され、Android のオーバーレイベースのテーマ フレームワークに基づいていました。 Android 12 のマテリアル ユー テーマ システムはよりカスタマイズ可能ですが、Google が Android 10 で導入したカスタム スタイルは備えていません。 で コメント Google Issue Tracker で、Google 社員は削除の理由を次のように述べています。

「R のカスタム スタイル機能 (フォント、アイコンの形状、アイコン パック、アクセント カラー) は、S で導入される新しいダイナミック テーマ機能に置き換えられます。 新しい動的テーマ機能は、より現代的でインテリジェントなものであると考えられます。 シンプルで楽しい体験をすべてのユーザーに楽しんでいただけることを願っています。」

Google が将来的にフォントやカスタム アイコンの選択肢を再導入する可能性は低いと思われます。 多くのユーザーが Google のマテリアル ユーの変更に失望の声を上げていますが、それがどれほど壊れる可能性があるかを考えると、その理由はよくわかります。 Google がその実装を改善することを期待しています。 他の OEM は同じ罠に陥ることはありません Google が実装しているものです。

Android 13 での変更点

Google がマテリアル ユーを改良しました のリリースのために アンドロイド13最初の改良点の 1 つは、5 つの追加のカラー スタイルの追加でした。 これらの新しいカラー スタイルは、TONAL_SPOT、VIBRANT、EXPRESSIVE、SPRITZ、RAINBOW、および FRUIT_SALAD と呼ばれます。 スクリーンショットを撮ったので以下に示します。

  • TONAL_SPOT: デフォルトのマテリアルの色
  • 鮮やか: わずかに異なる色合いと、よりカラフルな二次色および背景色を使用して、より色調の高いパレットを生成します。
  • EXPRESSIVE: VIBRANT よりもカラフルな、複数の目立つ色合いを含むパレットを生成します。
  • SPRITZ: より低色パレットを生成します

Android 13 では、開発者がシステム テーマを引き継ぐことができるように、テーマ付きのアプリ アイコンを使用できる機能も導入されました。 開発者は、アプリにアダプティブ アイコンと単色のアプリ アイコンの両方を提供することでこれをサポートできます。 ただし、ランチャーは Google Pixel ランチャーなどのテーマ付きアイコンをサポートする必要があります。


XDA シニアメンバーに感謝 kdrag0n、ProtonAOSPと両方の開発者 マテリアルユーテーマシステムの再現、この記事にご協力いただきました。