Как использовать GIF в качестве домашнего ключа Android Navbar

  • Как декомпилировать APK-файлы для Android
  • Как деодексировать ваши APK на стоковых ROM
  • Требования:

    • Телефон Android с рутированным доступом (В Appuals есть множество руководств по рутингу Android!)
    • Инструмент декомпиляции APK ( мы рекомендуем APK Easy Tool )
    • Хороший редактор кода вроде Блокнот ++

    Декомпиляция вашего SystemUI.apk

    Первое, что вам нужно сделать, это деодексировать ваш SystemUI.apk - для этого вы можете использовать такой инструмент, как Tickle My Android. Прочтите руководство Appuals по деодексированию APK для этого процесса.



    Следующим шагом является декомпиляция SystemUI.apk, которая требует отдельного руководства, если вы никогда не делали этого раньше - к счастью, в Appuals есть « Как вручную создать тему пользовательского интерфейса системы Android »С инструкциями по декомпиляции, так что прочтите это, если вы никогда раньше не декомпилировали APK.

    Добавление в Файлы SMALI

    Теперь вам нужно добавить новые файлы smali - есть пакет уже измененных файлов .smali именно для того, что нам нужно сделать. ВОТ . В частности, вам необходимо извлечь файл «SelfAnimatingImageView.smali» из .zip и добавить его в свой декомпилированный APK в каталоге:



    SystemUI.apk  smali  com  android  morningstar 

    Вам нужно будет создать эти папки, если их не существует.



    Разделение GIF на фреймы

    Теперь вам нужно найти анимированный .gif, который вам нравится и который вы хотите использовать в качестве домашней кнопки панели навигации. Вы должны использовать стикер gif как вы можете найти на Giphy.com/stickers - вы заметите, что у них прозрачный фон, как у PNG, но на самом деле это GIF.



    Как только вы сохраните понравившийся стикер в формате GIF, вам необходимо преобразовать его в серию PNG. Это связано с тем, что наш модифицированный SystemUI не будет запускать собственный файл .gif, он будет воспроизводить PNG в последовательном порядке. Поэтому нам нужно разделить .gif на последовательные PNG, к счастью, мы можем очень легко сделать это с помощью онлайн-конвертера, такого как EZGIF Сплит .

    Просто загрузите свой GIF в инструмент EZGIF Split, выберите «Вывод изображений в формате PNG» в раскрывающемся меню «Параметры разделения», и он извлечет все кадры в последовательном порядке. Затем вы можете загрузить кадры вместе в ZIP-файл.



    Теперь вам нужно добавить кадры PNG из разделенного GIF в соответствующий « вытяжка-xxxDPI »В вашей декомпилированной папке apk SystemUI. Папка, которую вы будете использовать, зависит от DPI вашего устройства, поэтому:

    • MDPI = ~ 160 точек на дюйм
    • HDPI = ~ 240 точек на дюйм
    • XHDPI = ~ 320 точек на дюйм
    • XXHDPI = ~ 480 точек на дюйм
    • XXXHDPI = ~ 640 точек на дюйм

    Теперь нам нужен XML-файл, который инструктирует Android, какие изображения использовать для анимации и как быстро их перебирать. Вернитесь к ранее загруженному ZIP-файлу, возьмите «frame_anim.xml» и скопируйте его в папку «res drawable» внутри декомпилированного APK.

    Если вы откроете frame_anim.xml в Notepad ++, он должен выглядеть так:

     

    Каждая строка, начинающаяся с

    И, наконец, прежде чем мы сможем перекомпилировать SystemUI.apk, нам нужно поместить нашу анимацию на панель навигации. Это немного сложно, так как мы будем редактировать XML-файл макета. В большинстве стандартных ПЗУ код, который управляет функциональной клавишей панели навигации HOME, можно найти в «layout navigation_bar.xml», но его также можно найти в «layout home.xml». Вам нужно искать это в зависимости от вашего ПЗУ.

    По сути, вы ищете XML-файл макета, содержащий код, который выглядит следующим образом:

    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' />

    Вы поймете, что находитесь в правильном XML-файле, когда увидите строки, ссылающиеся на Домашняя кнопка или похожие. Что нам нужно сделать, это скрывать этот ключ HOME и поместите на его место новый, который будет того же размера, но невидимым, а затем наши анимированные кадры будут находиться под ним. На самом деле это довольно просто, все, что нам нужно, это FrameLayout код .

     

    Если вы изучите этот код, вы увидите, как у нас есть три разных объекта, расположенные друг над другом. Но когда приложение запущено, вы его не увидите - все, что вы увидите, это анимированный GIF-файл, где на панели навигации должна находиться клавиша HOME.

    Итак, все, что вам нужно сделать, это заменить строку кода программной клавиши HOME приведенным выше кодом FrameLayout, но вам может потребоваться настроить его для вашего конкретного ПЗУ. Здесь необходимо немного проб и ошибок.

    Перекомпиляция APK и прошивка

    Теперь мы готовы перекомпилировать модифицированный APK. Просто используйте APK Easy Tool, чтобы перекомпилировать SystemUI.apk и прошить его в режиме восстановления на вашем устройстве. Это важно сделать в режиме восстановления, потому что вам нужно очистить кеш Dalvik, иначе новые файлы smali, которые мы добавили, не будут активированы.

    Если все пойдет хорошо, вы должны увидеть свой анимированный GIF в качестве новой домашней клавиши на панели навигации!

    4 минуты на чтение