Google arbetar på ett inkrementellt filsystem, en ny FS som kan göra det möjligt att börja spela stora Android-spel innan de är helt nedladdade.
Mobilspel är en enorm marknad, med dess totala intäkter som står för nästan hälften av den globala spelmarknaden 2019, enligt marknadsundersökningsföretaget Newzoo. Play Store svämmar över av nya spel att prova varje vecka, vilket kan vara svårt att hänga med om du har begränsad tid att spela. Google jobbar på ett nytt filsystem för en framtida version av Android, ev Android 12 2021, vilket kan göra det mycket lättare att testa nya spel. Filsystemet kallas Incremental File System, och det är utformat för att tillåta applikationer att köras medan dess binära filer och resursfiler fortfarande laddas ner.
I början av maj 2019, Google inlämnade patchar för att slå samman stödet för det inkrementella filsystemet i Linux-kärnan. Enligt dokumentationen som Google skickade, är Incremental FS ett "virtuellt Linux-filsystem för speciella ändamål som tillåter exekvering av ett program medan dess binära filer och resursfiler fortfarande laddat ned över nätverket, USB etc." Syftet med den här funktionen är "att tillåta att köra stora Android-appar innan deras binärer och resurser laddas ner helt till en Android-enhet." Just nu, om du vill spela ett Android-spel som är 5 GB i storlek, måste du vänta tills hela nedladdningen är klar innan du kan starta spelet. Google säger att Incremental FS kan "friktionsfritt vänta på [tillfälligt] saknade data", vilket innebär att du kommer att kunna starta spelet när det fortsätter att ladda ner mer och mer av hela spelet. När det gäller vårt hypotetiska Android-spel på 5 GB, låt oss säga att spelets intro är 200 MB i storlek med en offset på 1 GB. Med Incremental File System kan spelets första MB data laddas ner, och medan det körs, processen kan kräva att den första MB data vid 1 GB offset laddas ner härnäst, vilket gör att introduktionen till Start. Sedan kan resten av de 200 MB introdata laddas ner, vilket förhoppningsvis skulle ske snabbare än introt spelas upp, och sedan kan spelets huvudmeny laddas. Det kan bli en liten frysning i exekveringen när nästa uppsättning data behöver laddas, dvs. menyn ligger på 150 MB offset, men detta skulle tillåta användaren att komma in i spelet snabbare än att vänta på att hela nedladdningen ska slutföras.
Efter att ha skickat in korrigeringarna till Linux-kärnan, engagerade Google sig i diskussioner med flera Linux-kärnunderhållare angående implementeringen och syftet med FS. Vissa kritiserade Google för att skapa ett anpassat kärnfilsystem snarare än att utöka det befintliga FUSE, eller filsystemet i användarutrymmet. Google uppgav det FUSE-baserade filsystem lägger till betydande prestandakostnader för sina målscenarier ökade strömanvändningen till en punkt där telefoner förbrukade energi snabbare än de laddade över en sladd. Detta var problematiskt eftersom en Googler sa "projektets mål var att tillåta omedelbar (-ish) distribution av appar från utvecklarmiljön till Android [telefoner]." Baserat på den här kommentaren antog vi att Google endast hade för avsikt att den här funktionen skulle hjälpa utvecklare att testa inkrementella versioner av deras mobilspel. Det kan dock fortfarande vara fallet flera månader efter att den senaste kommentaren gjordes på de första Linux-kärnpatcharna, Google började smälta samman åtaganden relaterade till det inkrementella filsystemet till Android Open Source Project (AOSP). Åtagandena introducerar enorma förändringar i många delar av Android och Androids Linuxkärna, så vi tror att det är möjligt att Google planerar att använda det inkrementella filsystemet för att förbättra den allmänna användarupplevelsen. Kanske vill Google tillåta användare att börja spela stora Android-spel utan att behöva ladda ner dem helt – huvudsakligen som en infödd Snabbappar ersättning som inte kräver något extra arbete från utvecklare eftersom implementeringen är i kärnan.
För närvarande testar Google funktionen på en Pixel 4 XL (korall), och det har de också byggde en kärnmodul för användning med en Generic Kernel Image (GKI). I flera kommentarer förklarar Googlers att Android-enheter med den här funktionen kommer att ha en ny /data/inkrementell katalog som innehåller underkataloger för varje app på enheten. Underkatalogerna kommer att innehålla APK-filer, inbyggda bibliotek och OBB-filer. I dessa underkataloger kommer det inkrementella filsystemet att monteras, och var och en kommer att bindas för att peka på de ursprungliga installationskatalogerna, dvs. /data/app/. Google Play Butik kommer att kunna kontrollera filsignaturen av applikationer installerade på Incremental FS, vilket sannolikt kommer att förhindra exekvering av inkrementella applikationer med andra signaturer än de för närvarande installerade applikationerna.
Med tanke på att arbetet med den här funktionen fortfarande pågår och den interna deadline för större Android 11-funktionsändringar är sannolikt snabb närmar sig, om inte redan godkänts, misstänker vi att enheter inte kommer att börja skickas med stöd för det inkrementella filsystemet förrän Android 12 år 2021. Vi kommer att fortsätta följa utvecklingen av den här funktionen och kommer naturligtvis att uppdatera dig om vi lär oss mer om hur den fungerar.
Tack vare XDA Recognized Developers phhusson och luca020400 för deras insatser!