Hoe u een GIF gebruikt als de starttoets van uw Android Navbar

  • Hoe Android APK's te decompileren en te thematiseren
  • Hoe u uw APK's kunt Deodexen op Stock ROM's
  • Vereisten:

    • Een geroote Android-telefoon (Appuals heeft veel Android-rootgidsen!)
    • Een APK-decompileertool ( wij raden aan APK Easy Tool )
    • Een goede code-editor zoals Kladblok ++

    Decompileren van uw SystemUI.apk

    Het eerste dat u hoeft te doen, is uw SystemUI.apk deodex - u kunt hiervoor een tool als Tickle My Android gebruiken. Lees de Appuals-gids voor deodexing van APK's over dit proces.



    De volgende stap is het decompileren van de SystemUI.apk, waarvoor een handleiding nodig is als je dit nog nooit eerder hebt gedaan - gelukkig heeft Appuals ' Hoe u de gebruikersinterface van het Android-systeem handmatig kunt thematiseren 'Met decompileerinstructies, dus lees dat als je nog nooit een APK hebt gedecompileerd.

    Toevoegen de SMALI-bestanden

    Nu moet je nieuwe smali-bestanden toevoegen - er is een pakket reeds gewijzigde .smali-bestanden beschikbaar voor precies wat we moeten doen HIER . In het bijzonder moet u het bestand 'SelfAnimatingImageView.smali' uit de .zip halen en het aan uw gedecompileerde APK in de map toevoegen:



    SystemUI.apk  smali  com  android  morningstar 

    U moet deze mappen maken als ze niet bestaan.



    Een GIF splitsen in frames

    Nu moet je een geanimeerde .gif vinden die je leuk vindt en die je wilt gebruiken als de startknop van je navigatiebalk. U moet een sticker gif, zoals je kunt vinden op Giphy.com/stickers - je zult zien dat ze transparante achtergronden hebben, zoals een PNG, maar het zijn in feite GIF's.



    Zodra je een sticker-GIF hebt opgeslagen die je leuk vindt, moet je deze converteren naar een reeks PNG's. Dit komt omdat onze gewijzigde SystemUI niet echt een native .gif-bestand zal uitvoeren, maar PNG's in opeenvolgende volgorde zal afspelen. Dus we moeten de .gif splitsen in opeenvolgende PNG's, gelukkig kunnen we dit heel gemakkelijk doen met een online converter zoals EZGIF Split .

    Upload eenvoudig uw GIF naar de EZGIF Split-tool, kies 'Output images in PNG format' in het vervolgkeuzemenu Split Options, en het zal alle frames in opeenvolgende volgorde extraheren. Vervolgens kunt u de frames samen downloaden in een ZIP-bestand.



    Nu moet u de PNG-frames van de gesplitste GIF toevoegen aan uw juiste ' tekenbare-xxxDPI ”Map in uw gedecompileerde SystemUI apk-map. De map die u gebruikt, is afhankelijk van de DPI van uw apparaat, dus:

    • MDPI = ~ 160 DPI
    • HDPI = ~ 240 DPI
    • XHDPI = ~ 320 DPI
    • XXHDPI = ~ 480 DPI
    • XXXHDPI = ~ 640 DPI

    Nu hebben we een XML-bestand nodig dat Android instrueert welke afbeeldingen moeten worden gebruikt voor de animatie en hoe snel we er doorheen kunnen bladeren. Ga terug naar de ZIP die je eerder hebt gedownload en pak de 'frame_anim.xml', en kopieer deze naar je 'res drawable' map in de gedecompileerde APK.

    Als je frame_anim.xml in Notepad ++ opent, zou het er als volgt uit moeten zien:

     

    Elke regel begint met

    En tot slot, voordat we de SystemUI.apk opnieuw kunnen compileren, moeten we onze animatie op de navigatiebalk plaatsen. Dit is een beetje lastig, aangezien we het XML-lay-outbestand gaan bewerken. In de meeste standaard-ROM's is de code die de softkey HOME-navigatiebalk bestuurt te vinden in 'layout navigation_bar.xml', maar het kan ook worden gevonden in 'layout home.xml'. Je moet hiervoor rondkijken, afhankelijk van je ROM.

    In feite zoekt u naar het XML-lay-outbestand dat de code bevat die er als volgt uitziet:

    android: id = '@ id / home_button' android: layout_width = '0.0dip' android: layout_height = '0.0dip' android: scaleType = 'center' android: contentDescription = '@ string / accessibility_home' systemui: keyCode = '3' />

    U weet dat u zich in het juiste XML-bestand bevindt als u regels ziet die verwijzen naar het thuis knop of vergelijkbaar. Wat we moeten doen is verbergen deze HOME-toets, en plaats er een nieuwe op zijn plaats die dezelfde grootte heeft, maar onzichtbaar is, en dan gaan onze geanimeerde frames eronder. Dit is eigenlijk vrij eenvoudig, we hebben alleen een FrameLayout code .

     

    Als u deze code bekijkt, ziet u hoe we drie verschillende dingen op elkaar hebben gestapeld. Maar wanneer de app actief is, zie je hem niet - alles wat je ziet is je geanimeerde GIF waar de HOME-toets op de navigatiebalk zou moeten staan.

    Het enige dat u hoeft te doen, is de coderegel HOME-softkey te vervangen door de bovenstaande FrameLayout-code, maar u moet deze wellicht aanpassen voor uw specifieke ROM. Een beetje vallen en opstaan ​​is hier noodzakelijk.

    Hercompileren de APK en het knipperen

    Nu zijn we klaar om de gemodificeerde APK opnieuw te compileren. Gebruik gewoon de APK Easy Tool om de SystemUI.apk opnieuw te compileren en flash deze in de herstelmodus op uw apparaat. Het is belangrijk om dit te doen in de herstelmodus, omdat je de Dalvik-cache moet wissen, anders worden de nieuwe smali-bestanden die we hebben toegevoegd niet geactiveerd.

    Als alles goed gaat, zou je je geanimeerde GIF moeten zien als je nieuwe starttoets voor de navigatiebalk!

    4 minuten gelezen