Central Android

Toți Androidii sunt creați egali? Software-ul face o mare diferență

protection click fraud

Am vorbit despre modul în care hardware-ul din interiorul telefonului tău poate face diferența atunci când vine vorba de experiența utilizatorului. Acum este timpul să vorbim despre software.

Software-ul este cea mai importantă piesă a oricărui computer. Fie că vorbim despre computerul mic pe care îl ții în buzunar sau despre grupurile de dimensiunea unei camere care nu lucruri precum gestionarea misiunilor spațiale, fără software, toate acele circuite, fire și cipuri ar funcționa nimic. Este nevoie chiar și de software pentru a vă porni telefonul și a-l porni înainte de a-l putea vedea făcând ceva. Indiferent cât de scump sau nou ar fi hardware-ul din interiorul telefonului tău, ar fi inutil fără toată munca necesară pentru programarea lui pentru a face ceva.

Ne vom concentra pe Android pentru că asta facem aici, dar multe dintre ideile despre care vom vorbi sunt aceleași pentru orice computer pe care îl puteți cumpăra sau face singur. Cele mai mari diferențe (și provocări) sunt că telefoanele noastre sunt dispozitive mobile care nu sunt foarte mari și asta înseamnă că totul este făcut cu un ochi pentru eficiența energetică. Eficiență energetică extremă. După ce piesele potrivite sunt proiectate și asamblate pentru a încerca să ofere cea mai bună experiență utilizatorului cu o sursă de alimentare mică, este timpul ca echipele de software să se apuce de treabă.

Ce este Android

Acesta este Android
Credit imagine: Android Open Source Project.

Am menționat acest lucru înainte, dar merită acoperit din nou - Android probabil nu este ceea ce credeți că este. Cuvântul este folosit în mai multe moduri diferite — Android este o marcă, Android este un sistem de operare și Android este codul sursă. Ce este Android, la nivel de bază, este o grămadă de cod care poate fi folosit pentru a rula aplicații. Vine cu o interfață de bază cu utilizatorul pentru caracteristicile sale de bază, dar necesită mult timp și dezvoltare pentru a-l face să ruleze pe orice dispozitiv pe care este destinat să ruleze.

În timp ce totul tu nevoie a trebui să creați o imagine software bootabilă este inclusă în codul sursă Android, nu puteți crea o singură imagine și un program de instalare care să poată fi folosit pentru tot hardware-ul. Suportul pentru hardware-ul specific trebuie declarat înainte de a încerca să-l construiți într-un lucru care va rula efectiv. Odată ce ați terminat, puteți construi un sistem de operare Linux care rulează și îl puteți instala la ținta dorită.

Înainte de a putea expedia ceva, totuși, va trebui să-l modificați și să le răsuciți mult - la asta ne referim când spunem optimizare.

Sistemul de operare

AT&T Galaxy S7

Există două niveluri de software - sistemul de operare și extrasele asociate și aplicațiile care sunt instalate pentru a rula pe acesta. Oamenii care ți-au creat telefonul nu trebuie doar să-și facă griji pentru ca sistemul de operare să funcționeze bine, dar trebuie să mențină compatibilitatea cu aproximativ un milion de aplicații. Observați că am spus „mențineți compatibilitatea”, nu optimizați nimic pentru aplicațiile terță parte. Aceasta este o problemă cu totul diferită, iar Google face cea mai mare parte a muncii acolo cu cadrul aplicației Android - tot ce trebuie să facă producătorul de telefon este să încerce să nu rupă nimic din el. Și aceasta este mai multă muncă decât crezi că este, din cauza modului în care aceste companii schimbă modul în care arată și se simte Android.

Fiecare model Android rulează software diferit.

Nu există două modele de Android la fel. Chiar și telefoanele de la același producător cu același nume pot rula software diferit în regiuni diferite (sau pentru clienți diferiți - compania dvs. de telefonie) și o fac. Și asta are sens. Nu avem gigaocteți de spațiu de stocare, așa că suport pentru fiecare model diferit de Samsung Galaxy S7 — există mai mult de 30 de versiuni ale aceluiași telefon – încorporat într-un singur software nu este practic. Acesta este motivul pentru care, de exemplu, nu puteți descărca actualizarea Verizon pentru S7 și o puteți utiliza pe modelul dvs. AT&T. Dar în afara micilor modificări făcute pentru diferite SKU-uri ale aceluiași model, software-ul de bază utilizat pe fiecare Galaxy S7 (cu CPU Qualcomm) este același.

Pentru a continua cu exemplul nostru Galaxy S7, trebuie să rețineți că „Touchwiz” nu este un skin sau un lansator. Aceasta este sistemul de operare. Samsung preia software-ul de bază furnizat de Google și îl modifică pentru a se potrivi mai bine nevoilor sale. Felul în care arată, caracteristicile pe care le are și opțiunile și setările sunt toate construite de Samsung și adăugate în Android într-un mod care va permite în continuare instalarea și rularea aplicațiilor terță parte. Există o mulțime de părți ale codului Android pe care Samsung nu le modifică (sau nu le poate modifica), deoarece Google cere să fie păstrate anumite lucruri pentru a-și folosi magazinul și aplicațiile. Depinde de Google să îmbunătățească și să mențină acele porțiuni, dar o mare parte a sistemului de operare este lăsată în sarcina lui Samsung să-l optimizeze pentru hardware-ul specific pe care urmează să fie instalat.

Ce este optimizarea?

cod sursa

Optimizarea software este un rău necesar. Este consumator de timp și dificil. Dar fără el, experiența utilizatorului ar avea de suferit. Google optimizează continuu codul Android la un nivel independent de hardware. Tehnici precum derularea buclei, utilizarea mai puține apeluri de funcții și rutine mai eficiente în memorie sunt lucruri care beneficiază fiecare dispozitiv care rulează Android. Dar Samsung (în exemplul nostru) trebuie să le dezvolte pentru hardware-ul pe care îl utilizează pentru a reduce lungimea totală a căii de instrucțiuni (numărul de cicluri CPU necesare scade cu mai puține instrucțiuni) și reduce amprenta memoriei, precum și se bazează pe lucruri precum programarea și optimizarea memoriei cache pentru modelul lor specific de CPU. Totul, adăugând mai multe caracteristici și funcții utilizatorului și menținând compatibilitatea cu Google Play. În general, procesul decurge cam așa:

  • Decideți ce caracteristici doresc clienții dvs. Apoi aruncați 80% dintre ele și decideți ce caracteristici sunt fezabile.
  • Definiți hardware-ul specific care va fi utilizat.
  • Creați o versiune bootabilă a sistemului de operare cu toate funcțiile necesare.
  • Găsiți blocajele, încercați să le remediați, clătiți și repetați.

Găsirea acestor blocaje este dificilă. Repararea lor este și mai dificilă. Și există mai multe moduri de a aborda totul. O modalitate este de a nu adăuga caracteristici sistemului de operare care creează supraîncărcare, ceea ce vă oferă mai puține lucruri care pot merge prost. Acolo a strălucit Moto G din 2015. Era un telefon foarte simplu, cu un software foarte simplu. După ce o echipă talentată a optimizat software-ul livrat pe telefon, a fost una dintre cele mai fluide experiențe Android ale anului - până când ați adăugat o mână de aplicații de pe Google Play în combinație. Apoi a fost evident că hardware-ul din interior nu era la fel de capabil să facă multe lucruri simultan, precum telefoanele mai scumpe. Hardware-ul folosit a fost ieftin, astfel încât telefonul ar putea fi ieftin, iar optimizarea software-ului doar pe sistemul de operare a fost excelentă.

O a doua modalitate este să continuați să vă optimizați platforma fără a elimina nicio caracteristică importantă și a permite hardware-ului mai bun să contribuie la minimizarea impactului. Galaxy S7 este un produs al fiecărei lucrări pe care echipa de dezvoltare de software de la Samsung a făcut-o încă de la Galaxy S original a fost introdus, rulând pe un hardware suficient de puternic pentru a-l livra într-un mod lin și prietenos pachet. Rezultatul este un telefon care este laudat universal atât de industrie, cât și de utilizatori. Pașii greșiți în gestionarea memoriei și încetinirea pe care le-am văzut, inclusiv Galaxy S6, au dispărut aproape, indiferent dacă vă place sau Urăsc produsul final, nu poți spune că nu este unul dintre cele mai bune telefoane Android pe care le poți cumpăra astăzi când vine vorba de performanță.

Gestionarea memoriei

managementul RAM

Nu putem pleca de la acest subiect fără a aborda gestionarea memoriei. Este unul dintre acei termeni care sunt aruncați pentru că unii oameni văd un fel de problemă atunci când fac unele lucruri, iar vagonul începe. Totuși, poate (și a fost) o problemă reală.

Sistemul de operare decide când să distrugă (ca în apropiere și nu rulează în fundal) aplicațiile și procesele care sunt stocate în RAM. Scrierea și citirea din RAM este rapidă - mult mai rapidă decât scrierea și citirea din stocare. Dar este limitat. Chiar și un telefon cu 6 GB de RAM trebuie să aibă parametri setați pentru cea mai bună performanță. Și nu toată memoria RAM instalată în interiorul telefonului este disponibilă pentru utilizarea sistemului de operare. Porțiuni sunt rezervate pentru kernel-ul pentru a rula, GPU-ul de utilizat și radioul celular. La pornire, este obișnuit să vedeți cel puțin 512 MB (sau mai mult) de memorie RAM în uz și indisponibil. Este un lucru bun - acele funcții au nevoie de acces „instantaneu” la procesor.

Ceea ce a mai rămas este gestionat în mod treptat. Anumite aplicații și procese au o prioritate mai mare decât altele și vor fi atribuite la un nivel mai înalt decât alte lucruri, uneori opționale, care rulează în fundal. Când cantitatea totală de RAM liberă se micșorează la un nivel predefinit, procesele sunt oprite în funcție de prioritate. Scopul este de a menține cât mai multe lucruri vii în fundal, lăsând în același timp suficient spațiu pentru a începe lucruri noi. În timp ce aceste lucruri noi încep, RAM este golită până când au suficient de încărcat și se menține un buffer liber. De aceea, auziți oameni spunând că „RAM liberă este RAM irosită” atunci când vorbiți despre Linux - Android rulează pe nucleul Linux.

Modificarea managementului RAM este un proces de încercare și eroare. Apoi mai multe încercări și erori. Este greu.

Toți acești parametri (în afara zonei rezervate pentru kernel) sunt ajustabili de către persoanele care au construit sistemul de operare. Ei pot decide cât de multă RAM trebuie să rămână liberă și câtă RAM poate fi utilizată de fiecare nivel de procese. De asemenea, își pot scrie software-ul astfel încât porțiunile să fie alocate unui anumit nivel din arbore. Un truc la îndemână este să păstrați lansatorul - ceea ce vedeți pe ecranul (e) de start și pe sertarul aplicațiilor - în RAM în orice moment. Aceasta înseamnă că interfața cu utilizatorul pentru lucrurile cu care este posibil să petreceți cel mai mult timp interacționând sunt întotdeauna stocate în RAM și va fi mai fluidă, deoarece nu se petrece timp citind din stocare și scrieți în RAM atunci când glisați și atingeți.

Probleme pot apărea atunci când prea multă sau prea puțină RAM este păstrată liberă sau prea multe lucruri sunt „marcate” ca esențiale și păstrate rezidente în RAM. De aceea, de exemplu, puteți începe să introduceți ceva într-un formular de pe o pagină web, să treceți la o altă aplicație și să vă întoarceți pentru a vedea că tot ce ați scris a dispărut deoarece pagina a trebuit să se reîmprospăteze. Sistemul va încerca în continuare să păstreze lucrurile pe care le utilizați cel mai mult în RAM, dar nu reușește să facă acest lucru.

Toate acestea pot fi reparate, cu condiția să existe suficientă RAM instalată. Este o altă parte a procesului de optimizare și una dificil de rezolvat.

Toți Androidii nu sunt creați egali

Și nu ar trebui să ne dorim să fie. Software-ul este adaptat hardware-ului specific utilizat, iar încercarea și eroarea și Red Bull fac parte din procesul de optimizare. Aceasta face parte din ceea ce face ca fiecare telefon Android să fie unic și permite oricui o alegere.

instagram story viewer