Меняем интерфейс Android. Батарея.

Vladimir Medvedev

Владимир Медведев — автор PureGoogle.ru. Начал использовать Android с версии 1.5 и остается поклонником этой мобильной ОС по сей день.

Сегодня задача простая — научиться делать батарею в процентах в строке состояния на прошивках, в которых не предусмотрена такая функциональность. Точная индикация батареи сильно востребована в наше нелёгкое время, когда смартфон легко может не дотянуть до вечера, поэтому многие пользователи ищут моды, никчёмные виджеты и тому подобное, а ведь заменить системный индикатор — дело пяти минут.

bat1

Что потребуется: полное прочтение и не менее полное понимание предыдущих двух статей, SystemUI.apk и framework-res.apk из прошивки (более подробно о том, где их можно взять сказано во втором уроке), любой редактор кода, я, например, использую Notepad++, графика.

Итак, в системе по умолчанию находится около 8 картинок индикации разрядки батареи и столько же для процесса зарядки, каждая высвечивается при определённом уровне заряда этого самого. Наша задача — расширить набор иконок до 101 штуки, чтобы каждая соответствовала шагу в 1% и прописать новые изображения для значений заряда в .xml файле.

bat2

Новые иконки можете рисовать сами (если умеете), брать готовые наборы на xda или вытаскивать из понравившихся модов на другие телефоны/прошивки. Достаточно лишь открыть SystemUI.apk архиватором, пройти по пути .\res\drawable-xhdpi (drawable-xxhdpi; drawable-hdpi; drawable-mdpi — в зависимости от экрана аппарата) и извлечь все изображения в названии которых есть «stat_sys_battery».

Приступаем к созданию мода для себя любимого. Берём свой SystemUI.apk из прошивки и разбираем по этой инструкции.

Идём по пути res/drawable-xhdpi(mdpi,hdpi,xxhdpi) и закидываем туда всю нашу новую графику (разумеется, все картинки должны иметь те же имена, но разные цифры в них, скажем, для процесса разрядки должны быть картинки «stat_sys_battery_хх«, где хх — цифры от 0 до 100). Например в моём случае заместо 8 картинок разрядки их стало 101 штука — каждый процент и полный 0. Теперь нужно указать когда какой картинке гореть. Идём res/drawable и с помощью notepad++ открываем файл stat_sys_battery.xml — видим следующее:

Из кода видно, что картинка stat_sys_battery_100.png (полная батарея) отображается при уровне заряда от 90 до 100%, а stat_sys_battery_0.png (пустая) при уровне от 0 до 4%. Нам нужно видоизменить код так, чтобы при уровне 100% показывалась картинка stat_sys_battery_100.png, при 99% — stat_sys_battery_99.png, при 16% — stat_sys_battery_16.png. В целом ясно. Код примет вид:

С этим .xml файлом закончили.

Про процесс зарядки: картинки отображаются точно по такому же принципу, в какой промежуток попал — такая картинка горит. Многие наборы иконок батареи содержат и сотню картинок уровня зарядки, что же, в моём случаем их именно столько, засыпаем в res/drawable-xhdpi(mdpi,hdpi,xxhdpi) картинки для индикации зарядки смартфона.

Идём res/drawable и с помощью notepad++ открываем файл stat_sys_battery.xml и видим:

 Меняем код на:

Разумеется, если картинок не столько, то код нужно править под конкретно свой случай, допустим если их всего 15, то редактируйте строку так, чтобы цифра у картинки, допустим 75 и была максимальным показателем заряда для неё — android:maxLevel=»75″.

На этом всё. Собираем апк по той же инструкции, по которой разбирали, и кидаем на телефон.  Ставим прямо на телефон с маркета программу  «ZipSigner2» , ею придётся подписывать скомпилированный апк файл. Открываем её, выбираем ключ «platform», ищем наш файл, выбираем и подписываем. Появится подписанная копия файла, в конце имени которого будет «signed». Обзываем его просто SystemUI.apk и кидаем в system\app с заменой стандартного, перезагружаем аппарат.

Всегда сохраняйте на телефоне копию оригинального файла или делайте nandroid backup, вдруг что-то пойдёт не так.

Поделиться
Плюсануть
Класснуть
  • Рубрика: Моддинг