Android Central

Всички андроиди създадени ли са еднакви? Софтуерът прави голяма разлика

protection click fraud

Говорихме за това как хардуерът във вашия телефон може да направи разлика, когато става въпрос за потребителското изживяване. Сега е време да поговорим за софтуера.

Софтуерът е най-важната част от всеки компютър. Независимо дали говорим за малкия компютър, който държите в джоба си, или клъстерите с размер на стая, които неща като управление на космически мисии, без софтуер всички тези вериги, кабели и чипове биха свършили работа Нищо. Необходим е дори софтуер, за да включите телефона си и да го стартирате, преди да го видите да прави нещо. Без значение колко скъп или нов е хардуерът във вашия телефон, той би бил безполезен без цялата работа, вложена в програмирането му, за да направи нещо.

Ще се съсредоточим върху Android с това, защото това е, което правим тук, но много от идеите, за които ще говорим, са еднакви за всеки компютър, който можете да купите или направите сами. Най-големите разлики (и предизвикателства) са, че нашите телефони са мобилни устройства, които не са много големи, и това означава, че всичко се прави с оглед на енергийната ефективност. Изключителна енергийна ефективност. След като правилните части са проектирани и сглобени, за да се опитат да осигурят най-доброто потребителско изживяване с малко захранване, е време софтуерните екипи да се захванат за работа.

Какво е Android

Това е Android
Кредит за изображение: Проект с отворен код на Android.

Споменавали сме това и преди, но си струва да го разгледаме отново – Android вероятно не е това, което мислите, че е. Думата се използва по доста различни начини - Android е марка, Android е операционна система и Android е изходен код. Това, което Android е на основно ниво, е куп код, който може да се използва за стартиране на приложения. Той идва с основен потребителски интерфейс за основните си функции, но изисква много време и разработка, за да може да работи на всяко устройство, на което е предназначен да работи.

Докато всичко вие трябва за да трябва да създадете стартиращ софтуерен образ е включен в изходния код на Android, не можете да създадете единичен образ и инсталатор, който може да се използва за целия хардуер. Поддръжката за конкретния хардуер трябва да бъде декларирана, преди да се опитате да го вградите в нещо, което действително ще работи. След като направите това, можете да изградите работеща операционна система Linux и да я инсталирате към желаната цел.

Преди да можете да изпратите каквото и да било обаче, ще трябва да го настроите и превъртите много от него — това имаме предвид, когато казваме оптимизация.

Операционната система

AT&T Galaxy S7

Има две нива на софтуер — операционната система и свързаните с нея екстри и приложения, които са инсталирани, за да работят на нея. Хората, които са създали вашия телефон, не само трябва да се грижат за това операционната система да работи добре, но трябва да поддържат съвместимост с около милион приложения. Забележете, че казахме „поддържане на съвместимост“, а не оптимизиране на нищо за приложения на трети страни. Това е съвсем различен въпрос и Google върши по-голямата част от работата там с рамката на приложенията на Android - всичко, което производителят на телефона трябва да направи, е да се опита да не счупи нищо от нея. И това е повече работа, отколкото си мислите, че е, поради начина, по който тези компании променят начина, по който Android изглежда и се чувства.

Всеки модел Android работи с различен софтуер.

Няма два еднакви модела Android. Дори телефони от един и същ производител с едно и също име могат да работят с различен софтуер в различни региони (или за различни клиенти — вашата телефонна компания) и го правят. И това има смисъл. Нямаме гигабайти място за съхранение, така че поддръжка за всеки различен модел на Samsung Galaxy S7 — има повече от 30 версии на този един телефон — вграждането в един софтуер не е практично. Ето защо, например, не можете да изтеглите актуализацията на Verizon за S7 и да я използвате на вашия модел AT&T. Но извън малките промени, направени за различни SKU на един и същи модел, основният софтуер, използван във всеки Galaxy S7 (с процесор Qualcomm), е един и същ.

За да продължите с нашия пример за Galaxy S7, трябва да запомните също, че "Touchwiz" не е скин или стартер. То е операционната система. Samsung взема този базов софтуер, предоставен от Google, и го променя, за да отговаря по-добре на нуждите му. Начинът, по който изглежда, функциите, които има, опциите и настройките са създадени от Samsung и добавени в Android по начин, който все пак ще позволи инсталирането и стартирането на приложения на трети страни. Има много части от кода на Android, които Samsung не променя (или не може да промени), тъй като Google изисква определени неща да бъдат запазени, за да използва техния магазин и приложения. От Google зависи да подобри и поддържа тези части, но голяма част от операционната система е оставена на Samsung да оптимизира за конкретния хардуер, на който ще бъде инсталирана.

Какво е оптимизация?

програмен код

Софтуерната оптимизация е необходимо зло. Отнема много време и е трудно. Но без него потребителското изживяване би пострадало. Google непрекъснато оптимизира кода на Android на независимо от хардуера ниво. Техники като разгръщане на цикъл, използване на по-малко извиквания на функции и по-ефективни рутинни процедури са неща, които са от полза всеки устройство, което работи с Android. Но Samsung (в нашия пример) трябва да ги допълни за хардуера, който използват, за да намали общата дължина на пътя на инструкциите (броя необходими цикли на процесора работи с по-малко инструкции) и намалява отпечатъка от паметта, както и надгражда върху неща като планиране и оптимизиране на кеша за техния конкретен модел на ПРОЦЕСОР. Всичко това, като същевременно добавя повече характеристики и функции към потребителя и поддържа съвместимост с Google Play. Като цяло процесът протича по следния начин:

  • Решете какви функции искат вашите клиенти. След това изхвърлете 80% от тях и решете кои функции са осъществими.
  • Определете конкретния хардуер, който ще се използва.
  • Създайте стартираща версия на операционната система с необходимите функции, всички работещи.
  • Намерете тесните места, опитайте се да ги поправите, изплакнете и повторете.

Намирането на тези тесни места е трудно. Поправянето им е още по-трудно. И има няколко начина да се справите с всичко това. Един от начините е да не добавяте функции към операционната система, които създават излишни разходи, което ви дава по-малко неща, които могат да се объркат. Това е мястото, където 2015 Moto G блесна. Това беше много елементарен телефон, с много елементарен софтуер. След като талантлив екип оптимизира софтуера, доставен на телефона, това беше едно от най-течните изживявания с Android за годината – докато не добавихте шепа приложения от Google Play към микса. Тогава стана ясно, че хардуерът вътре не е способен да прави много неща едновременно, както по-скъпите телефони. Използваният хардуер не беше скъп, така че телефонът можеше да бъде евтин, а софтуерната оптимизация само на операционната система беше отлична.

Вторият начин е да продължите да оптимизирате платформата си, като същевременно не премахвате никакви важни функции и оставяте по-добрия хардуер да помогне за минимизиране на въздействието. Galaxy S7 е продукт на всяка част от работата, свършена от екипа за разработка на софтуер в Samsung от беше представен оригиналният Galaxy S, работещ върху достатъчно мощен хардуер, за да го доставя гладко и приятелски пакет. Резултатът е телефон, който е универсално възхваляван както от индустрията, така и от потребителите. Грешките с управлението на паметта и мудността, които видяхме и включително Galaxy S6, почти изчезнаха и независимо дали обичате или мразя крайния продукт, не може да се каже, че не е един от най-добрите телефони с Android, които можете да закупите днес, що се отнася до производителността.

Управление на паметта

Управление на RAM

Не можем да се отдалечим от тази тема, без да разгледаме управлението на паметта. Това е един от онези термини, които се подхвърлят, защото някои хора виждат някакъв проблем, когато правят някои неща, и бандата се търкаля. Това обаче може (и е било) истински проблем.

Операционната система решава кога да убие (като затвори и да не работи във фонов режим) приложения и процеси, които се съхраняват в RAM. Записването и четенето от RAM е бързо - много по-бързо от записването и четенето от паметта. Но е ограничено. Дори телефон с 6 GB RAM все още трябва да има зададени параметри за най-добра производителност. Освен това не цялата RAM памет, инсталирана във вашия телефон, е достъпна за използване от операционната система. Части са запазени за ядрото за работа, графичния процесор за използване и клетъчното радио. По време на зареждане е обичайно да видите поне 512MB (или повече) RAM в употреба и недостъпна. Това е хубаво нещо - тези функции се нуждаят от "незабавен" достъп до процесора.

Това, което е останало, се управлява поетапно. Някои приложения и процеси имат по-висок приоритет от други и ще бъдат присвоени на по-високо ниво от други, понякога незадължителни неща, които се изпълняват във фонов режим. Когато общото количество свободна RAM се свие до предварително определено ниво, процесите се унищожават според приоритета. Целта е да запазите възможно най-много неща живи на заден план, като същевременно оставите достатъчно място за започване на нови неща. Докато тези нови неща стартират, RAM паметта се измива, докато имат достатъчно за зареждане и поддържа се свободен буфер. Ето защо чувате хората да казват „безплатната RAM е загубена RAM“, когато говорят за Linux – Android работи върху ядрото на Linux.

Промяната на управлението на RAM е процес на проба и грешка. След това още опити и грешки. Това е трудно.

Всички тези параметри (извън запазената област за ядрото) се регулират от хората, които са изградили операционната система. Те могат да решат колко RAM трябва да остане свободна и колко RAM може да се използва от всяко ниво на процеси. Те също могат да напишат своя софтуер, така че частите да бъдат присвоени на конкретно ниво в дървото. Удобен трик е да запазите стартовия панел - това, което виждате на началния екран(и) и чекмеджето на приложенията - в RAM през цялото време. Това означава, че потребителският интерфейс за нещата, с които е вероятно да прекарате най-много време във взаимодействие, винаги се съхранява в RAM и ще бъде по-плавен, защото не се изразходва време за четене от паметта и запис в RAM, когато плъзгате и докосвате.

Проблеми могат да възникнат, когато твърде много или твърде малко RAM се поддържа свободна или твърде много неща са „маркирани“ като основни и остават постоянно в RAM. Ето защо, например, можете да започнете да въвеждате нещо във формуляр на уеб страница, да превключите към друго приложение и да се върнете, за да видите, че всичко, което сте написали, е изчезнало, защото страницата трябваше да се опресни. Системата все още ще се опитва да запази нещата, които използвате най-много в RAM, но не може да го направи.

Всичко това е поправимо, при условие че има достатъчно инсталирана RAM. Това е друга част от процеса на оптимизация и е трудна за правилна работа.

Не всички Android са създадени равни

И не трябва да искаме те да бъдат. Софтуерът е съобразен с конкретния използван хардуер, а пробата и грешката и Red Bull са част от процеса на оптимизация. Това е част от това, което прави всеки телефон с Android уникален и позволява избор за всеки.

instagram story viewer