Андроид О застарева ТИПЕ_СИСТЕМ_ОВЕРЛАИ у корист ТИПЕ_АППЛИЦАТИОН_ОВЕРЛАИ, што доводи до тога да се апликације које се преклапају на врху статусне траке покваре.
Проток постова који оцртавају нове функције које се налазе у корисницима Андроид О почиње да успорава сада када су корисници имали недеље да тестирају софтвер на свом уређају. Међутим, постоје многе, многе промене направљене испод хаубе које се полако откривају. О једној таквој промени смо објавили пре неки дан о Некус и Пикел уређајима који користе Андроид О усвајање СДЦардФС. Али данас бисмо желели да разговарамо о промени која ће утицати на програмере одређених апликација, посебно оних које преклапање на врху статусне траке. Чини се да су ове апликације покварено у прегледу за Андроид О Девелопер, што бисте на први поглед могли одбацити као једноставну грешку, али ако зароните дубље у референтну документацију, ово може бити намеравана промена од Гоогле-а.
Андроид О квари слојеве статусне траке
Једна од мојих омиљених ствари у вези са Андроидом је колико је прилагодљив. Корисници који имају роот-овање или покрећу прилагођене РОМ-ове могу изворно да тематизују своје системске статусне траке без ограничења, али ако је ваш уређај унроотед, имате мање опција које су вам доступне. Срећом, у Гоогле Плаи продавници постоји много апликација које вам омогућавају да промените како статусна трака изгледа на основном нивоу. Ово је могуће захваљујући паметној комбинацији Виндовс Оверлаи система за приказ прилагођене статусне траке преко постојеће, Слушаоци обавештења за приказ обавештења и опционо услугу приступачности која омогућава контекстуално нијансирање прилагођеног статусна трака.
Два горња снимка екрана показују како би изгледала моја трака са обавештењима када користим једну од многих апликација за преклапање статусне траке које су доступне у Плаи продавници. Ови снимци екрана су направљени на нероотираном Хуавеи Мате 9 који користи ЕМУИ 5.0. За оне од вас који нису упознати са ЕМУИ-јем, статусна трака не изгледа као на горњим снимцима екрана. Уместо тога, изгледа овако:
Ако вам не смета како изгледа трака статуса залиха, онда апликације као што су Статус или Трака статуса материјала су богомдани. Али ако или када се ваш уређај ажурира на Андроид О, ове апликације можда више неће радити. Ево како ове исте две апликације изгледају на Гоогле Пикел-у који покреће Андроид О Девелопер Превиев:
Уместо да преклапање блокира оригиналну статусну траку, изгледа као преклапање преклапања са оригиналном статусном траком што доводи до великог нереда.
Нажалост, ово ефикасно чини апликације попут ових бескорисним. И ово не утиче само на ваше типичне апликације за тему статусне траке - погођене су све апликације које захтевају да се прекривач прикаже на врху статусне траке.
Ево листе неких популарних апликација које могу бити бескорисне:
- Статус (500.000 - 1.000.000 инсталација)
- Трака статуса материјала (1.000.000 - 5.000.000 инсталација)
- Цоол Тоол - Системска статистика (500.000 - 1.000.000 инсталација)
- Телецине (50.000 - 100.000 инсталација)
- Очисти статусну траку (100.000 - 500.000 инсталација)
- Тиницоре (100.000 - 500.000 инсталација)
И листа неких апликација које ће радити, али више не могу да се преклапају на врху статусне траке (ограничавајући претходну функционалност):
- Сумрак (5.000.000 - 10.000.000 инсталација)
- Главу горе (100.000 - 500.000 инсталација)
- Ресоурце Монитор Мини (50.000 - 100.000 инсталација)
- Нетворк Монитор Мини (1.000.000 - 5.000.000 инсталација)
Постоји много више апликација у Плаи продавници које користе неку врсту преклапања на врху статусне траке, али већ можете рећи да ће таква промена утицати на многе апликације које потенцијално користе милиони корисника. Па шта се овде дешава?
ТИПЕ_СИСТЕМ_ОВЕРЛАИ је застарео
Са сваком новом итерацијом Андроид-а, Гоогле уводи и застарева (означава као застареле и које треба уклонити) различите функције. Овог пута, карактеристика која се налази на блоку за сечење је ТИПЕ_СИСТЕМ_ОВЕРЛАИ. Да цитирам референтна страница за оно што је ова функција понудила програмерима:
ТИПЕ_СИСТЕМ_ОВЕРЛАИ
Тип прозора: системски преклопни прозори, који морају бити приказани изнад свега осталог. Ови прозори не смеју да се фокусирају на унос или ће ометати блокаду тастатуре. У вишекорисничким системима приказује се само на прозору власника.
У суштини, овај тип прозора омогућава апликацији да црта на врху било ког елемента на екрану - укључујући статусну траку. Међутим, почевши од Андроид О, овај тип прозора је застарео. За несистемске апликације, Гоогле препоручује програмерима да уместо њих користе ТИПЕ_АППЛИЦАТИОН_ОВЕРЛАИ. Да цитирам референтна страница за шта ради овај нови тип прозора:
ТИПЕ_АППЛИЦАТИОН_ОВЕРЛАИ
Тип прозора: Прозори са преклапањем апликације се приказују изнад свих прозора активности (типови између
FIRST_APPLICATION_WINDOW
иLAST_APPLICATION_WINDOW
) али испод критичних системских прозора као што су статусна трака или ИМЕ.Систем може да промени положај, величину или видљивост ових прозора у било ком тренутку како би смањио визуелни неред за корисника и такође управљао ресурсима.
Систем ће прилагодити важност процеса са овим типом прозора како би смањио шансу да их убица са мало меморије убије.
У системима са више корисника приказује се само на екрану власника.
Као што видите, овај нови тип прозора омогућава апликацијама да преклопе садржај изнад свих осталих прозора активности осим „критични системски прозори попут статусне траке или ИМЕ“ (ИМЕ се односи на тастатуру). Ово је у реду за апликације као што је Фацебоок Мессенгер, јер главе за ћаскање које пружа та апликација немају сврху да седе на врху статусне траке, али то негативно утиче на већину апликација које сам раније поменуо.
Штавише, чини се да у овом тренутку не постоји решење које би програмери могли да користе. Могло би се очекивати да, како би се избегао овај проблем на Андроид О, програмери једноставно праве своје апликације тако да циљају СДК 25 (Андроид 7.1.1). Међутим, како је истакао и програмер Статуса на Реддиту, Гоогле има замењени ТИПЕ_СИСТЕМ_ОВЕРЛАИ са ТИПЕ_АППЛИЦАТИОН_ОВЕРЛАИ, а промена је независно од циљног СДК-а верзија. Програмери који користе ТИПЕ_СИСТЕМ_ОВЕРЛАИ тренутно морају да користе ТИПЕ_АППЛИЦАТИОН_ОВЕРЛАИ да би одржали компатибилност, стога, без обзира на којој циљној верзији СДК-а је одређена апликација заснована, она може више не користите ТИПЕ_СИСТЕМ_ОВЕРЛАИ на Андроид О.
Шта се може учинити поводом овога?
Није баш јасно зашто је Гугл направио ову промену, јер још увек нису дали званично објашњење. Претпостављам да је то покушај побољшања безбедности на Андроид-у спречавањем несуђених корисника да случајно инсталирају апликације које злонамерно блокирају или замењују њихову статусну траку. Нажалост, ова промена хвата многе савршено легитимне апликације које користе ТИПЕ_СИСТЕМ_ОВЕРЛАИ у унакрсној ватри.
Програмери који користе ову функцију отворили су извештаје о грешкама на Андроид-овом програму за праћење проблема (#260787 и #36574245) да протестује због промене и затражи алтернативни АПИ, али је Гугловац коментарисао трагач са Следећа изјава:
Статус: Неће поправити (намеравано понашање)
Наставили смо са тимом за производе и инжењере и добили предлог да програмери могу да користе СХОВ_ВХЕН_ЛОЦКЕД активности за прикажи када је уређај закључан, али намерно више није могуће приказати преко закључаног екрана/преко екрана за обавештења
За сада се чини да ови програмери нису имали среће, јер су програмери истакли да ФЛАГ_СХОВ_ВХЕН_ЛОЦКЕД још увек не дозвољава да се прозори преклапају на врху статусне траке. Није јасно шта програмери ових апликација могу да ураде осим да се моле да Гугл промени ствари или да направи пакао због тога.
Пошто је ово само први преглед за програмере за Андроид О, још увек је могуће да их Гоогле промени ума и обезбеди ову функцију за апликације које не циљају Андроид О или за Гоогле да их врати ТИПЕ_СИСТЕМ_ОВЕРЛАИ. Али ако ствари остану како су тренутно, можете пољуби ове апликације збогом. А то би била проклета штета.
Хвала Ели Ирвину што је тестирао многе од ових апликација за мене!