サブストラタム テーマは、サードパーティ アプリの更新頻度によって悪影響を受けることが多く、特にテーマが不適切にコーディングされているものに適応する必要がある場合に顕著です。
これはよくあることです。ユーザーは携帯電話に Substratum テーマを適用し、後で Slack、WhatsApp、Instagram、またはその他のアプリを Play ストアから更新します。 突然、テーマのオーバーレイが無効になるまで、それらのアプリを開くことさえできなくなります。 Substratum のリリース以来、多くの新しい Substratum ユーザーがこの問題に関する経験を表明してきました。 Android Oreo の rootless Substratum テーマ.
Substratum でオーバーレイを再構築すると問題が解決する場合もありますが、テーマ開発者がテーマを再度更新するまで機能しない場合もあります。 後者の場合、ユーザーは影響を受けるアプリをテーマのないストック状態で使用する必要があります。 言うまでもなく、これは多くの人にとってイライラする経験になる可能性があります。
この問題は通常、コーディングが不十分なサードパーティ アプリ、頻繁なアップデートなどの要因が組み合わさった結果発生します。 解決するよりも実際には多くの問題を引き起こすアプリと、オーバーレイ マネージャー サービス (OMS) の制限について フレームワーク。 私はこの問題について貴重な洞察を提供してくれた数名の著名なテーマ者と話をしました。 ジェレミー・ベック、誰が作るのか スペクトラム 基底テーマ、および デビッド・ウィルソン の 支配 名声。
これらの Substratum の有力者によると、コード化が不十分なアプリの分野で最も悪質な犯罪者の中には、最も人気のあるアプリの 1 つが含まれています。 WhatsApp、Instagram、Slack、Facebook、Telegram は、この問題を詳しく説明する際に、これらの Substratum テーマ者が私たちに引用した例です。 実際、デイビッド氏は、これらは「恐ろしく、嫌悪感を抱き、卑劣にコード化された」アプリの例だと述べた。 Substratum テーマの開発者が、Android エクスペリエンスを統合しようとする際にユーザーの満足度を維持する際に直面するフラストレーション 共通のテーマ。
たとえば、「卑劣にコーディングされた」アプリは、colors.xml ファイルでテキストの色を背景色に結び付ける可能性があります。 この例では、テーマが背景色を変更して白ではなくなると、テキストも変更され、読みにくくなる (または読みにくくなる) 可能性があります。 したがって、テーマ作成者は独自のレイアウト XML ファイルをテーマ オーバーレイに追加して、テキストと背景に別々の色を指定する必要があります。
注意点は、新しい XML ファイルには以下も含める必要があるということです。 元のアプリの同じ名前のファイルのコードのすべての文字 したがって、機能が失われることはありません。 これは、OMS が代わりのテーマのファイルから読み取るのに対し、アプリ自体は元のファイルで許可されているすべてのことを実行しようとするためです。 アプリがアップデートされると、 たとえほんのわずかでも関係のない変更が加えられた場合 元の XML ファイルに変更すると、オーバーレイは機能しません。
David は次のように説明しています。
これらのばかげた「開発者」(私はこれらのピエロを説明するときにこの用語を大まかに使用します)がしていることは、アイテムを使用することです。 レイアウト XML をオーバーレイに追加しないと、アプリのテーマを適切に設定することが困難になります。
例として、WhatsApp の /res/values/colors.xml 内の項目を見てみましょう。
#ffffffff アプリ全体でテキストの色と背景色の両方に @color/white を使用します。 これは、テーマが背景を暗くするために「白」の色を暗い色に変更したい場合、多くのテキストも暗くなってしまい、非常に悪いことを意味します。
この欠点を回避するために、テーマ作成者はレイアウト XML をオーバーレイに追加し、テキストの色または背景色のいずれか、あるいはその両方を変更します。 背景を暗くするには、android: background="@color/white" のようなものから android: background="@*android: color/background_dark" のようなものに変更します。
これは素晴らしいもので、背景が暗くなりますが、レイアウト XML には、元のレイアウト XML に含まれるすべてのものを含める必要があり、数行から 100 行を超えるものまでさまざまです。 レイアウト XML のこれらの行には、ID、ディメンション、文字列、スタイルなど、呼び出されるアプリの元のコード内に存在するさまざまなリソースが多数含まれている場合があります。
さて、ここに問題があります... テーマが WhatsApp 2.17.323 に合わせてオーバーレイを作成し、WhatsApp が 2.17.351 に更新された場合 (たとえば)、WhatsApp が無限の知恵で変更を決定した場合 たとえば、2.17.323 用に作成されたオーバーレイにあった文字列の名前ですが、その文字列が 2.17.351 には存在しない場合、オーバーレイは正常に動作しません。 建てる。
特定のリソースが オーバーレイが設計されたアプリ内にある場合、アプリが更新され、リソースがアプリのコード内に存在しなくなると、オーバーレイはコンパイルされません。
これは、Substratum テーマ使用者が直面する、アプリとテーマの更新を交互に繰り返すいたちごっこの一例にすぎません。 テーマが多数のサードパーティ アプリをサポートしている場合、テーマの更新ごとにこのゲームを何倍にも増やす必要があります。 これは、サポートされている複数のアプリを維持し、不満を抱いたユーザーが更新の間にテーマを低評価しないことを願うという終わりのないサイクルです。 なぜなら、Slack は (別の例として) お気に入りの Slack サポートの最後のアップデートから 2 週間で 3 つのアップデートをアプリにプッシュしたためです。 テーマ。
それについて何ができるでしょうか?
個人的には、通常は待つことが多いですが、 使用しているアプリを更新する前に、お気に入りのテーマに更新してください テーマになっているもの。 とはいえ、すべてのテーマがこれらのアプリのアップデートに対応するために常にアップデートをプッシュする時間があるわけではないため、使用できる距離は異なる場合があります。 テーマが設定されていない状態でアプリを使用することにどうしても耐えられない場合は、数時間または数日待つことは、あなたにとっては大したことではないかもしれません。 ただし、これが問題である場合は、すぐに変更される可能性が低いシステム アプリケーション (SystemUI や Android Framework など) のみをテーマにすることをお勧めします。
問題は Substratum 自体や Substratum テーマのせいではないことを認識し、何か問題が発生したときにテーマ開発者を責めないでください。 これが、EMUI、Samsung Experience、LG UX などの Android の OEM フレーバーのテーマ エンジンでは、システム アプリやシステム UI 自体以外のテーマを設定できない理由です。 Substratum が提供するカスタマイズのレベルを楽しむには、最新のアプリのアップデートを楽しむために少しの間待つ必要があるというトレードオフがあります。