Ако сте хардкор фен на Android, шансовете сасилен, че с нетърпение ще изпробвате нови теми, персонализирани ROM и всички подобни модове за вашето устройство. Една от основните точки на объркване е терминологията, свързана с тези модове - нещо доста познато на разработчиците, но не и много за начинаещия потребител. Две от най-често срещаните думи в персонализирани ROM и теми са „deodexed“ и „zipalign“. Няколко дни назад разгледахме „дезодексиран“ в детайли. В тази статия ще проучим какво означава zipalign и как APK файловете могат да бъдат ципирани.

КАКВО е ZIPALIGN?
zipalign е въведен инструмент за подравняване на архивза първи път с 1.6 Android SDK (комплект за разработка на софтуер). Той оптимизира начина, по който е пакетиран пакет за приложения за Android (APK). Това позволява на операционната система Android да взаимодейства по-ефективно с приложението и следователно има потенциал да направи приложението и цялостно цялата система много по-бързи. Времето за изпълнение е сведено до минимум за приложенията, които се подреждат по избор, което води до по-малко потребление на RAM памет при изпълнение на APK.
И така КАК РАБОТИ ТОЧНО?
В операционна среда Android, файлове с даннисъхранява се във всеки пакет приложения, достъпът се осъществява чрез множество процеси, например инсталаторът ще прочете манифеста на данните, за да определи свързаните разрешения; системният сървър може да чете тези ресурси по множество причини, като показване на известия; например приложението Home ще чете ресурси, за да получи името и иконата на приложението. Тъй като Android се базира на истинска многозадачна операционна инфраструктура, до тези файлове се осъществява непрекъснат и многократен достъп. И накрая, но не на последно място, самото приложение чете данните от манифеста.
Тъй като Android е базиран на Linux, картографирането на паметта играеключова роля в ефективното управление на процесите. По същество, оптималното подравняване за кода за обработка на ресурси на Android OS е 4-байтови граници. Това означава, че ако APK паметта е картографирана до 4-байтови граници и съответно се подравнява, ОС няма да трябва да „чете“ целия пакет от приложения, за да стигне до желания манифест на данните. Всеки системен процес ще знае предварително къде да търси желаните ресурси и следователно ще се изпълнява много по-гладко и бързо.
Обобщавайки го, зипалирането на APK води до всички резултатинекомпресирани данни в пакета да бъдат подравнени по 4-байтови граници, което позволява достъп до всички части директно с картата-памет. Консумацията на RAM паметта се намалява по време на изпълнение, тъй като не е необходимо кодът за заявка да се чете през целия пакет приложения.
НЕДОСТАТЪЦИ НА НЕИЗПРАВЛЕНИ APK файлове
Съвсем разбираемо ситуацията би била запазеназа несъответстващи пакети за приложения. Четенето на ресурси ще бъде бавно и използването на паметта ще бъде в по-горния край на спектъра. Това ще зависи и от броя на неприсъстващите приложения. Например, ако има по-малък брой приложения с несъгласувано домашно приложение, ще видите по-бавни времена на стартиране на приложения. Това е най-добрият сценарий. За най-лошия сценарий наличието на редица неприсъединени приложения ще доведе до това, че системата многократно стартира и убива процесите, бори се с изоставания и огромно изтощение на батерията.
КАК ДА СЕ ПРАВЕТЕ?
Както споменахме по-рано, инструментът zipalign стана част от Android SDK от 1.6 нататък. Тя може да бъде намерена в папката „инструменти“ на SDK. За да го използвате, просто стартирайте командата:
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
където infile.apk е изходният файл и outfile.apk е изходният файл.
Освен това можете да проверите подравняването на APK файл, като използвате следната команда:
zipalign -c -v <alignment> existing.apk
където existing.apk може да бъде всеки пакет за приложения, който трябва да получите проверка. Също така <Изравняване> етикетът и в двете команди трябва да бъде интегралстойност (в противен случай командата ще се върне невалидна). Тази стойност, въпреки че може да бъде всяко цяло число, ТРЯБВА да бъде 4, което би осигурило 32-битово подравняване. Всяка друга стойност и тя ефективно няма да направи нищо.
И накрая, за флаговете, използвани в тези команди,
- -f : презаписва съществуващия outfile.zip
- -V : ще даде многословен изход
- -° С : ще потвърди изравняването на даден файл
ДУМА НА ВНИМАНИЕ: операцията на zipalign трябва да се извършва само след сте подписали файла с APK с вашия личенключ. Ако се подрежда преди подписване, процедурата за подписване ще наруши изравняването. Същото важи за всяка друга промяна, добавяне или премахване на APK файла. Всяка промяна след стартиране на zipalign ще отмени подравняването.
Опровержение: Това ръководство е предназначено само за образователни цели. Това по никакъв начин не е заместител на инструментариума за разработчици на Android, нито е предназначен да се използва за целите на развитието. AddictiveTips не предоставя никаква поддръжка във връзка с материалите, представени тук.
Коментари