앱 업데이트가 때때로 Substratum 테마를 깨뜨리는 이유

Substratum 테마는 타사 앱의 업데이트 빈도로 인해 부정적인 영향을 받는 경우가 많습니다. 특히 테마가 잘못 코딩된 앱에 적응해야 하는 경우에는 더욱 그렇습니다.

이는 흔히 발생하는 일입니다. 사용자는 휴대폰에 Substratum 테마를 적용한 다음 나중에 Play 스토어에서 Slack, WhatsApp, Instagram 또는 기타 여러 앱을 업데이트합니다. 갑자기 테마 오버레이가 비활성화될 때까지 해당 앱을 열 수도 없습니다. 많은 신규 Substratum 사용자가 출시 이후 이 문제에 대한 경험을 표명했습니다. Android Oreo용 뿌리 없는 Substratum 테마.

때로는 Substratum에서 오버레이를 다시 빌드하면 문제가 해결되지만 때로는 테마 개발자가 테마를 다시 업데이트할 때까지 작동하지 않는 경우도 있습니다. 후자의 경우 사용자는 테마가 없는 재고 상태에서 영향을 받는 앱을 사용해야 합니다. 말할 필요도 없이, 이는 많은 사람들에게 실망스러운 경험이 될 수 있습니다.

문제는 일반적으로 잘못 코딩된 타사 앱, 잦은 업데이트 등 여러 요인의 조합으로 인해 발생합니다. 실제로 수정하는 것보다 더 많은 문제를 일으키는 앱과 OMS(Overlay Manager Service)의 제한 사항이 있습니다. 뼈대. 저는 이 문제에 대한 귀중한 통찰력을 제공한 몇 명의 유명 테마자들과 이야기를 나눴습니다. 제레미 벡, 누가 만드는지 스펙트럼 하층 테마 및 데이비드 윌슨 ~의 지배 명성.

이러한 Substratum의 충실한 사람들에 따르면, 잘못 코딩된 앱 영역에서 최악의 범죄자 중 일부가 가장 인기 있는 범죄자 중 하나입니다. WhatsApp, Instagram, Slack, Facebook 및 Telegram은 Substratum 테마가 이 문제를 설명할 때 우리에게 인용한 예입니다. 실제로 David는 이러한 앱이 "끔찍하고, 역겹고, 비열하게 코딩된" 앱의 예라고 말했습니다. Substratum 테마 개발자는 Android 경험을 하나의 주제로 통합하려고 할 때 사용자를 만족시킬 때 직면하게 됩니다. 공통 테마.

예를 들어, "비열하게 코딩된" 앱은 텍스트 색상을 colors.xml 파일의 배경 색상에 연결할 수 있습니다. 이 예에서 테마가 배경색을 더 이상 흰색이 아닌 것으로 변경하면 텍스트도 변경되어 읽기가 더 어려워지거나 불가능해질 수 있습니다. 결과적으로 테마는 텍스트와 배경에 대해 별도의 색상을 지정하기 위해 테마 오버레이에 자체 레이아웃 xml 파일을 추가해야 합니다.

주의할 점은 새 xml 파일에도 다음이 포함되어야 한다는 것입니다. 동일한 이름을 가진 원본 앱 파일의 모든 단일 문자 코드 따라서 기능이 손실되지 않습니다. 이는 앱 자체가 원본 파일에서 허용하는 모든 작업을 수행하려고 시도하는 동안 OMS가 대체 테마 파일에서 읽기 때문입니다. 앱이 업데이트되면 전혀 관련이 없는 작은 변화라도 일어난다 원본 xml 파일에 추가하면 오버레이가 작동하지 않습니다.

David가 설명하는 방법은 다음과 같습니다.

이 우스꽝스러운 "개발자"(저는 이 광대를 설명할 때 느슨하게 이 용어를 사용합니다)가 하는 일은 아이템을 사용하는 것입니다. 레이아웃 xml을 오버레이에 추가하지 않으면 앱 테마를 적절하게 지정하기 어렵게 만드는 레이아웃 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 프레임워크)만 원할 수도 있습니다.

다만 문제가 Substratum 자체나 Substratum 테마 때문이 아니라는 점을 인지하시고, 문제가 발생하더라도 테마 개발자를 비난하지 마시기 바랍니다. 이것이 바로 EMUI, Samsung Experience 또는 LG UX와 같은 Android OEM 버전의 테마 엔진이 시스템 앱 및 시스템 UI 자체 이상의 테마를 허용하지 않는 이유입니다. Substratum이 제공하는 사용자 정의 수준을 즐기려면 최신 앱 업데이트를 즐기기 위해 잠시 기다려야 할 수도 있다는 단점이 있습니다.