Šis klausimas dažniausiai iškyla kai trinant nereikalingas programas ir failus telefone bei peržiūrint kas dar užima dalį vidinės atminties, dėmesį patraukia operacininės sistemos skiltis. Nustatymuose dažniausiai rodoma kaip Android OS arba System žymėjimu. Android operacinė sistemos telefone užimama vidinė atmintis varijuoja nei daug nei mažai, nuo 4GB iki 60GB. Sakysite neprotingai didelis skirtumas? Sutinkame. Todėl norėdami suprasti iš kur jis atsiranda ir kodėl pas jus telefone Android OS gali užimti 3x mažiau vietos nei pas draugą, turite žinoti kokie esminiai programiniai elementai sudaro Android OS struktūrą. Bus naudinga žinoti ir kaip telefone atlaisvinti vidinę atmintį jos pritrūkus. Ir taip, čia tas straipsnis, kur sudėtingus dalykus bandysime paaiškinti kuo paprasčiau.
Kiekviena istorija turi savo priežąstį, o jos sudedamosios dalys įvairius, įvykių eigoje atsiradusius padarinius. Prieš neriant į detalias schemas, kuriomis šiandieną apipinta visa Android operacinė sistema, pasižiūrėkime kiek vietos ji užėmė pačioje raidos pradžioje. Norintiems pasinerti į ilgą ir gražią pasaką, siūlome paskaityti 10-ies metų Android OS vystymo istoriją.
Pirmoji Android OS versija
„Android 1.0“ buvo pirmoji oficiali Android operacinės sistemos versija, išleista 2008 m. rugsėjo mėn. Android 1.0 OS dydis turėjo nežymų skirtumą priklausomai nuo įrenginio, kuriame operacinė sistema buvo įdiegta ir telefono gamintojo įtrauktų specifinių funkcijų ar konfigūracijų. Tačiau pagrindinis Android 1.0 kodas buvo maždaug 85 megabaitų dydžio.
Nuo pat pirmojo leidimo Linux pagrindu Android sistema buvo sukurta taip, kad naudotų kuo mažiau resursų. Iš pradžių ji buvo suspausta ir patalpinta į „HTC Dream“ (dar žinomą kaip „T-Mobile G1“), kuriame buvo tik 256 MB vidinės atminties. Tačiau Android 1.0 ten jau tilpo su visomis jai priklausančiomis pagrindinėmis programomis.
Nuo to laiko Android stengiasi būti lengva išmaniųjų telefonų operacinė sistema, galinti veikti ir būti lengvai pritaikoma įvairiuose įrenginiuose.
Android OS architektūra
Kaip jau minėjome, Android OS sukurta ir veikia Linux branduolio pagrindu, kurį papildo C/C++ programinių bibliotekų kolekcijos. Tos C/C++ bibliotekos suteikia pagrindą veikti ir su operacine sistema sąveikauti visoms telefone esančioms aplikacijoms. Jos taip pat įgalina aplikacijų valdymą iš vartotojo pusės. Android operacinė sistema buvo sukurta Linux atvirojo kodo pagrindu. Viena pagrindinė šio pasirinkimo priežastis buvo ta, kad Linux turėjo visas laiko patikrintas pagrindines funkcijas, kuriomis galima sukurti Android operacinę sistemą.
O dabar pasižiūrėkime už ką kiekviena Android OS dalis atsakinga ir kas į ją įeina:
Linux branduolys (Linux kernel)
- Saugumas – Linux branduolys užtikrina saugumą tarp operacinės sistemos ir programų.
- Atminties valdymas -jis efektyviai valdo vidinę įrenginio atmintį, taip suteikdama laisvę kurti ir į ją diegti programas.
- Procesų valdymas – valdo visus įrenginyje vykstančius procesą ir skiria jiems būtinus techninius išteklius, kai tik jiems jų reikia.
- Tinklo infrastruktūra – jis veiksmingai tvarko tinklo ryšį (mobilus ryšys, mobilūs duomenys, WiFi).
- Draiverių komplektavimas – užtikrina, kad kiekviena programa veiktų. Telefonų gamintojai gali integruoti savo draiverius į Linux branduolį.
Bibliotekos (Frameworks)
Veikiant ant branduolio viršaus, Android bibliotekos suteikia pagrindą pačioje sistemoje veikti įvairioms funkcijomis. Bibliotekų pagrindą sudaro įvairios C/C ++ programinės kalbos su daugybe atvirojo kodo įrankių. Kai kurie iš jų yra:
- Android Runtime – operacinės sistemos variklį sudaro pagrindinės Java ir Art (Android Runtime) bibliotekos. Senesnės Android versijos (4.x ir ankstesnė) turėjo Dalvik operacinės sistemos variklį.
- Open GL – tai kryžminė kalba tarp operacinės sistemos ir programos sąsaja (API), naudojama 2D ir 3D kompiuterinės grafikos atvaizdavimui.
- WebKit – šis atvirojo kodo naršyklės variklis suteikia visas funkcijas, skirtas rodyti turinį per naršyklę ir supaprastinti puslapio įkėlimą.
- Media Frameworks – leidžia groti ir įrašyti garso bei vaizdo įrašus.
- Secure Socket Layer (SSL) – šios bibliotekos yra skirtos interneto saugumui.
Android variklis (Runtime)
Tai yra trečiasis architektūros skyrius ir vienas iš pagrindinių komponentų, dar vadinamų „Dalvik“ virtualia mašina. Jis veikia kaip „Java“ virtualioji mašina, kuri yra specialiai sukurta Android operacinei sistemai. Android naudoja savo unikalų VM (virtual machine), skirtą užtikrinti, kad keli funkcionalumai vienu metu veiksmingai veiktų viename įrenginyje. „Dalvik VM“ naudoja pagrindinį įrenginio „Linux“ branduolį, kad galėtų tvarkyti centrinio lygio funkcionalumą, įskaitant saugumą ir atminties valdymą.
Programos sistema
Android programuotojų komanda sukūrė žinomą bibliotekų sąsajų rinkinį veikiantį programinės įrangos fone. Šis bibliotekų rinkinys savo funkcionalumu labai naudingas operacinės sistemos kūrėjams, nes jiems nereikia kurti jokių pavienių Android funkcijų. Pagrindinius funkcionalumus apima:
- Activity Manager – jis valdo operacinės programos veiklos ciklą ir jame vykstančius procesus.
- Telephony Manager – telefonijos paslaugų ir su ja susijusių procesų valdymas (skambučiai, adresatai, žinutės).
- View System – sukuria vartotojo sąsają tvarkydama vaizdu ir jų išdėstymus.
- Location Manager – nustato įrenginio geografinę vietą.
Programos
Android programos talpinamos aukščiausiame operacinės sistemos sluoksnyje. Programas, dar vadinamas aplikacijas galima įdiegti tik šiame sluoksnyje.
Android OS architektūra šiandiena
Šiandien Android OS sveria ~ 4 GB, įskaitant visas būtinasias ir kartu komplektuojamas aplikacijas, tokias kaip žemėlapiai, kontaktai, nuotraukos, kalendorius, el. paštas ir kita.
Jei jūsų telefone Android OS užima žymiai daugiau vietos nei 4 GB, tuomet greičiausiai turite Samsung Galaxy. Teisinga? Turėtumėte nepamiršti, kad didžiausi gamintojai, tokie kaip Samsung, savo naujus įrenginius išleidžia su iš anksto įdiegtomis trečiųjų šalimių aplikacijomis. Tos trečiosios šalys moka didelius pinigus, kad išsipirkti vietą gamintojo įrenginiuose. Greičiausiai pastebėjote, kad daugelio iš anksto įdiegtų programų negalima pašalinti iš įrenginio, tačiau jas galima paslėpti nuo pagrindinio ekrano. Pavyzdžiui, iš anksto įdiegtos programos, tokios kaip „Facebook“, gauna išskirtinius sistemos leidimus duomenų prieigai ir gali efektyviau sekti vartotojus jų duomenis vėliau panaudojant tikslinės reklamos tikslams. Tokie leidimai nebūtų suteikiami diegiant bet kurią aplikaciją iš Google Play. Kitos panašius leidimus turinčios aplikacijos būtų Netflix, Microsoft Office ir Spotify. Priskirkime jas privilegijuotų programų kategorijai, nes iš dalies dėl jų Android OS užima ženkliai daug vietos.
Žinoma, tai vartotojui nesukelia problemu, jeigu jis žino kaip telefone atlaisvinti vidinę atmintį. Prie ko neužilgo ir prieisime.
Jei telefonas perkamas iš mobilaus ryšio operatoriaus, tikėtina, kad jame taip pat bus papildomų programų, per kurias mobilaus ryšio operatorius tikisi parduoti daugiau paslaugų ar papildomų produktų. Šių, galime pavadinti šlamštinių (bloatware), aplikacijų užimamos vidinės atminties kiekis skiriasi priklausomai nuo šalies operatoriaus ir jo teikiamų paslaugų. Vienas pavyzdžių galėtų būti USA veikiantis Verizon, kuris dar 2021 metais pradėjo tiesiogiai bendradarbiauti su Google.
Žemiau pateikiame išsamią švarios Android OS struktūros vizualizaciją su visais jos sluoksniais. Kiekvieną sluoksnį paaiškiname žemiau jos pateikiamame aprašyme:
Android Apps – Google Play parduotuvė yra plačiai naudojama norint rasti ir atsisiųsti Android aplikacijas. Be jos veikia ir kitos alternatyvios, tačiau dažnai neoficialios parduotuvės. Mūsų minėtais atvejais, telefonų gamintojai į operacinę sistemą gali būti iš anksto įdiegę savo aplikcijas.
Privileget Apps – aplikacijos sukurtos kombinuojant Android ir sistemos API. Šios aplikacijos turi būti iš anksto įdiegtos kaip privilegijuotos operacinėje sistemoje.
Device manufacturer app – aplikacija sukurta naudojant Android API, sistemos API ir tiesioginės prieigos prie Android Framework derinį. Tokio tipo gamintojo aplikacijos būna iš anksto įdiegtos įrenginyje ir gali būti atnaujinamos tik visos programinės įrangos atnaujinimo metu.
System API – prieinama tik telefonų gamintojams ir Android programinės įrangos kūrėjams. Per System API galima talpinti privilegijuotas komplektuojamas aplikacijas. Tokio tipo aplikacijos sistemos kode turi @Systemapi požymį.
Android API – yra viešai prieinamas API trečiųjų šalių Android aplikacijų kūrėjams.
Android Framework – Java klasifikacijos kodų grupė ant kurių kuriamos ir veikia visos aplikacijos. Dalis framework’ų yra viešai prieinami naudojant Android API. Kitos sistemos dalys yra prieinamos tik telefonų ir programinės įrangos kūrėjams, naudojant System API. Android Framework skiltis yra atsakinga už aplikacijų procesų sąveikavimą su operacine sistema.
System services – yra moduliniai komponentai, tokie kaip SurfaceFlinger ir MediaService. Android Framework API šiame lygmenyje bendrauja su operacine sistema, kad perduotų nurodymus į įrenginio komponentus.
Android Runtime (ART) – Java Runtime aplinka, kurioje aplikacijų funcionalumo kodai išverčiami į konkrečias užduotis įrenginio vidiniams komponentams.
Hardware abstraction layer (HAL) – šiame skyriuje laikomi draiveriai per kuriuos tiesiogiai valdomi įrenginio komponentai. Naudojimasis HAL leidžia papildyti įrenginio kompnentų funkcionalumą nepaveikiant ir nemodifikuojant aukštesnio lygio sistemos funkcionalumo.
Native daemons and libraries – aktyviųjų kodų bibliotekos tiesiogiai sąveikauja su operacinės sistemos branduoliu ir kitais skyriais, tačiau visiškai nepriklauso nuo vartotojo erdvės funkcionalumo.
Kernel – yra pagrindinė ir centrinė bet kurios operacinės sistemos dalis. Ji atsakinga už įrenginio komponentų valdymą ir tiesioginę komunikaciją su jais. Tam tikrais atvejais Kernel (centrinio kodo failas) gali būti padalintas į įrenginio koponentų ir papildomai komplektuojamų priedų valdymo modulius.
Kas įtakoja Android OS užimamą vietą telefone?
Yra keletas veiksnių, dėl kurių Android operacinė sistema telefone gali užimti daugiau vietos nei norėtusi ar nurodo telefono gamintojas. Išvardinsime pačius pagrindinius:
- Operacinės sistemos atnaujinimai: Kai atnaujinama Android operacinė sistema, jai paprastai reikia rezervuoti daugiau vidinės atminties vietos, kad įdiegti naują versiją. Šie atnaujinimai gali užimti papildomos keletą gigabaitų erdvės. Atsisiųstas atnaujinimo paketas ištrinamas iškart po operacinės sistemos atnaujinimo, kas atlaisviną didžiąją dalį prieš tai rezervuotos vietos.
- Iš anksto įdiegtos (privalomosios) programos: Daugelyje Android telefonų yra iš anksto įdiegtos gamintojo ir kitų paslaugų tiekėjų programos, kurios užima ar yra sistemoje rezervavusios daug vietos. Nors kai kurios iš šių programų yra naudingos, kitos vartotojui gali būti visai nereikalingos. Visgi ne visos tokio tipo programos gali būti pašalintos.
- Programų duomenys ir laikinoji talpykla (Data and Cache): Aplikacijos saugo savo duomenis pačiame įrenginyje, kurie laikui bėgant gali kauptis ir užimti daug vietos. Išvalant aplikacijų duomenų talpyklą ar pašalinant nenaudojamas programėles, galima savo telefone atlaisvinti daugiau vietos.
- Media failai: nuotraukos, vaizdo įrašai ir muzikos failai gali ženkliai įtakoti vidinės atminties sumažėjimą Android telefone. Šių failų perkėlimas į išorinę saugyklą ar debesis gali padėti atlaisvinti vidinės atminties.
- Atsisiuntimai (Download): Dažnas atvejis kai vartotojas siunčiasi didelius failus, tokius kaip filmai ar žaidimai, o vėliau pamiršta juos pašalinti iš atsisiuntimų katalogo. Tokiais atvejais svarbu nepamiršti laikas nuo laiko peržiūrėtii atsisiuntimų skyrių ir ištrinti failus, kurių nebereikia.
- Sistemos logai (System logs): Android telefonų sistemos logai reguliariai kaupiami ir laikui bėgant gali užimti vietos. Šių logų išvalymas gali padėti atlaisvinti vietą.
Žinant kaip atlaisvinti vidinę atmintį ir valdyti Android telefone užimamą vietą, niekada nesusidursite su atminties resursų trūkumu. Tą galite daryti reguliariai tikrindami ar nėra nereikalingų failų ir programų. Išvalant aplikacijos duomenų talpyklą, tuo pačiu ištrinsite ir ten saugomus asmeninius duomenis, todėl įvertinkite ką ir kiek dažnai naudojate. Taip pat nepamirškite vis užsukti į atsisiuntimo (Download) folderį, ten vartotojo dažnai būna palikti didelio tipo failai.