Сцопед Стораге у Андроид К приморава програмере да користе САФ, што је срање

click fraud protection

Промене Сцопед Стораге-а у Андроид К-у представљају главобољу са којом се треба носити, јер оквир за приступ складишту тренутно има неколико недостатака.

Андроид К суштински мења начин на који складиште ради на вашем телефону. У свакој верзији до Пие-а, Андроид складиште је функционисало као стони рачунар: можете да користите било коју апликацију коју желите да прочитате или упишете било коју датотеку (ако апликацији дате дозволу за то). Са К-ом, Гоогле уводи (и захтева) "Сцопед Стораге“, што чини Андроид да ради више као иПхоне, где је складиште изоловано за сваку апликацију. Апликација може да приступи само сопственим датотекама, а ако је деинсталирана, све њене датотеке се бришу.

Срећом, Андроид К још увек задржава неке од оригиналних Андроид понашања централног система датотека. Нажалост, сада је гломазно за корисника да подеси апликације за приступ и има значајно смањене перформансе и могућности. А програмери ће морати значајно да прекодирају апликације да би то подржали.

Апликације којима је потребан општи приступ систему датотека, нпр. канцеларијски пакет, уређивач слика или менаџер датотека, сада ће морати да користи Андроид АПИ под називом "

Оквир за приступ складишту" (САФ), за све операције са датотекама. САФ је доступан од Андроида 5.0 Лоллипоп, али програмери га обично не користе осим ако није потребно, јер има тежак и лош документовани АПИ, лоше корисничко искуство, лоше перформансе и слаба поузданост (углавном у облику имплементације специфичне за добављаче уређаја питања). Као резултат потешкоћа у преласку на САФ, Гоогле је одлучио да дозволи апликације које још не указују Подршка за Андроид К ради као некада, али то ће се променити када Плаи продавница буде захтевала да све апликације подржавају К следеће године.

Најочигледнија промена са којом се суочавају корисници са САФ-ом је искуство давања приступа апликацији складишту. Да би апликација добила приступ, она поставља захтев ОС-у, који затим приказује екран за бирање директоријума. На овом екрану корисник бира корен хијерархије фасцикли у којој ће та апликација моћи да чита и пише датотеке. Корисник мора да прође кроз овај процес за сваку апликацију која захтева приступ локалним датотекама или два пута по апликацији ако треба да јој одобри и приступ спољној СД картици.

Гоогле је барем побољшао овај процес за К бета 3, пошто претходне бета верзије нису дозвољавале апликацији да чак предложи локацију коју корисник може изабрати, што захтевао од корисника да уради доста посла да заправо пронађу примарну меморију свог уређаја.

Улазно/излазне перформансе датотеке су донекле погођене под САФ-ом, али највећи проблем лежи у фајлу операције директоријума, где је то ~25 до 50 пута спорије од уобичајеног приступа фајлу који је могућ у Пита. У случају менаџера датотека, то значи да ће бити потребно више реда величине да се изврше претраге и прорачуни употребе складишта. Извештај о грешци са демонстрационом апликацијом је доступно овде.

Узорак пробног покретања САФТест-а који показује разлику у перформансама између конвенционалног фајл И/О АПИ-ја са САФ-ом.

Још већи проблем са перформансама је то што ће неке апликације морати да копирају датотеке у своју локалну област „складишта“ пре него што буду у могућности да раде са њима. Ово може бити проблематично када су такве датотеке величине више гигабајта, нпр. у случају видео датотека или компримованих архива. Многе Андроид апликације користе предности невероватног броја Јава библиотека отвореног кода у заједници програмера, а ове библиотеке обично захтевају директан приступ систему датотека за рад. Они нису специфични за Андроид и захтевало би поновно писање да би радили са САФ-ом. Још горе, многе Андроид-ове интерне библиотеке неће радити са њим, као што су менаџер пакета или зип АПИ. На пример, менаџер датотека неће моћи чак ни да прикаже икону за АПК датотеку (користећи стандардни Андроид АПИ) без претходног копирања целог АПК-а у своју област за складиштење. Извештај о грешци.

За технички склоне људе, тренутно је могуће онемогућити Андроид К „Сцопед Стораге“ за сваку апликацију преко АДБ-а користећи аппопс команду. Роот корисници могу да изврше команде директно на свом уређају без десктоп рачунара. Такве команде су описане у документацији као карактеристике програмера и стога се могу уклонити у било ком тренутку.

Омогућите општи приступ складишту за апликацију:

adb shell cmd appops set your-package-name android: legacy_storage allow && \adb shell am force-stop your-package-name

Онемогућите општи приступ складишту за апликацију:

adb shell cmd appops set your-package-name android: legacy_storage default && \adb shell am force-stop your-package-name

Гоогле истиче предности ове промене у погледу безбедности и приватности, али технички гледано, нема побољшања. Апликације имају могућност приватног складиштења датотека од Андроида 1.0 и скоро све апликације користе ову могућност. Када апликацији одобрите приступ основном директоријуму вашег складишта преко САФ-а, она може да чита, пише и шаље било коју датотеку коју жели свом злобном програмеру на потпуно исти начин као када сте апликацији одобрили приступ складишту у Пие-у.

Једино "безбедносно побољшање" настаје зато што је сада захтевнији процес за корисника да то уради. Осим ако, наравно, апликација не жели само да украде ваше најличније податке, попут фотографија и видео записа које имате преузето, за које је Гоогле додао алтернативно решење за приступ које користи једноставну сигурност искачућег прозора и клик-да дијалог.

Није познато какве користи Гугл нада да ће постићи овом променом. Званични разлог наведен у Андроид К бета документацији је да се „дају корисницима више контроле над њиховим датотекама и да се неред.” Складиштење у опсегу, у свом садашњем облику, је ново ограничење онога што је кориснику дозвољено да ради, а не проширење њиховог контролу. Тврдња о смањењу нереда може донекле бити валидна, али само зато што промена уопште смањује могућност коришћења датотека. А „неред“ се повећава када узмете у обзир проблем да неке апликације сада морају да дуплирају датотеке да би радиле са њима.

Ако је Гоогле заиста забринут да корисницима пружи већу контролу над датотекама и нередом, требало би да креирају а решење које се директно бави тим, уместо да лажно брендира тренутни Андроид К дизајн као такав побољшање. Најједноставнији одговор би био да се дозволи корисницима да одлуче да ли желе да апликација има приступ са опсегом или општим системом датотека, користећи постојећи дијалог захтева за дозволу за складиштење. Ако постоји посебна брига за кориснике који овде доносе лоше одлуке, то је свакако могуће учините тај дијалог истакнутијим и захтевајте додатну интеракцију корисника да бисте потпуно одобрили апликацију приступ.

Одговор на то како Андроид може корисницима дати већу контролу над њиховим датотекама је да заправо корисницима пружи већу контролу, а не да је одузима и суштински ограничава могућности Андроид платформе.


Напомена уредника: Ово је гостујући чланак који је написао КСДА старији члан тлиебецк, најпознатији по свом раду на ФКС Филе Екплорер. Садржај овог чланка одражава његово сопствено мишљење и анализу ограничења Андроид К-овог Сцопед Стораге-а, уз минималан унос и уређивање од Мисхаала Рахмана, главног уредника КСДА-Девелоперс. Контактирали смо Гоогле да их питамо о неким од ових забринутости, али нисмо добили одговор од компаније до тренутка објављивања.