Jak dekompilovat, kompilovat a optimalizovat APK balíčky? [návod]
- Návody
- Karel Kilián
- 15.10.2014
- 23
Široká přizpůsobitelnost je jedním z hlavních rysů mobilního operačního systému Android. Existují jednoduché cesty, jak dosáhnout změny vzhledu či chování aplikace – zpravidla takové možnosti najdete v příslušné sekci nastavení. Pokud se ale chcete ponořit hlouběji – například změnit vzhled některé části programu, ke které není přístup z rozhraní – budete muset nejprve dekompilovat, následně upravit a opětovně zkompilovat APK balíček. Jak na to vám prozradíme v následujících řádcích.
Hned na začátku si ale dovolíme upozornit, že následující postup může vést k nefunkčnosti aplikace, pádům, v krajním případě i ztrátě dat. Proto vezměte na vědomí, že případné následky takového počínání nesete jen vy sami.
Příprava
Stáhněte si nástroj Minimal Fastboot a rozbalte ho.
- Stáhnout Minimal Fastboot (1,4 MB).
Stáhněte balíček apktool-files.zip (v prohlížeči Chrome možná budete muset v nastavení deaktivovat volbu Povolit ochranu proti phishingu a malwaru) a rozbalte ho do té samé složky.
- Stáhnout apktool-files.zip (7,9 MB).
Stáhněte framework a uložte ho do stejné složky, do které jste předtím rozbalili soubory.
- Stáhnout framework-res.apk (10,4 MB).
Stáhněte si nástroj Zipalign a opět ho rozbalte do té samé složky.
- Stáhnout Zipalign (81 KB).
Dekompilace APK souboru
Připravte si do složky s rozbalenými daty APK soubor, který budete chtít “rozebrat” – v našem případě se jednalo o Mapy Google 8.1.0.
Následně je nutné spustit příkazový řádek ze složky, do které byly rozbaleny stažené soubory, a zadat příkaz apktool if framework-res.apk.
Měli byste dostat odpověď ve stylu I: Framework installed to:.
Jako další zadejte apktool if název_souboru.apk. Dejte pozor na to, že název souboru nesmí obsahovat mezery!
Nyní jste připraveni na dekompilaci, kterou provedete zadáním příkazu apktool d název_souboru.apk. Tím dojde k rozbalení balíčku.
Ve složce, ze které jste spouštěli příkazy, vznikne nová složka s názvem odpovídajícím jménu dekompilovaného souboru.
Pokud se do ní podíváte, najdete v ní několik souborů a složek. Toto uspořádání je víceméně stejné pro jakýkoli soubor APK.
Například složka res obsahuje všechny multimediální soubory, používané aplikací, jako jsou obrázky, zvuky a další. Najdete v ní také grafické prvky uživatelského rozhraní. Editací souborů XML můžete ovlivnit vzhled a chování aplikace.
Složka smali obsahuje zpracované Java soubory .smali. Zobrazuje se jen v případě, že aplikace je takzvaně “deodexovaná”. V opačném případě jsou soubory zkomprimovány do jediného s příponou .odex.
Soubory .smali jsou odpovědné za funkčnost aplikace a manipulace s nimi by měla přímý dopad na fungování a chování programu. Buďte tedy při případné editaci těchto souborů velmi opatrní, neboť změny způsobit neočekávané reakce na vašem zařízení.
Kompilace APK souboru
Poté, co provedete požadované změny, můžete balíček znovu zkompilovat. Provedete to zadáním příkazu apktool b název_složky.
Výsledný balíček najdete ve složce s dekompilovanou aplikací, konkrétně v podřízeném adresáři dist.
Máme tedy sestavený APK soubor, ale s ohledem na provedené změny je možné, že není kompaktní a používal by mnohem více systémových prostředků, než ve skutečnosti měl. Abyste tomu předešli, můžete balíček optimalizovat pomocí nástroje Zipalign.
Optimalizaci spustíte příkazem zipalign -v 4 rekompilovaný_soubor.apk výsledný_soubor.apk.
Pro snadnější zadávání doporučujeme soubor přesunout do stejné složky, ze které budete spouštět Zipalign.
Tím získáte upravený a optimalizovaný APK balíček, který můžete nainstalovat do telefonu nebo tabletu.
Zdroj: Droid Views.
Karel Kilián je zkušený technický redaktor a copywriter s bohatou praxí v oblasti informačních a komunikačních technologií. Jeho kariéra začala na pozici prodavače, odkud postupně… více o autorovi
Komentáře (23)
Přidat komentář