Полёт над полюсами Земли
Runway vs. Higgsfield
Секрет быстрых дейликов
Предок электроса-моката
Ламба из картона
Японская робозмея
Робот-погрузчик

9. Тестирование энергопотребления и нагрузки на батарею

Дружище, тестирование батареи — это не просто «ой, быстро садится»! В мобильных приложениях можно всё сломать так, что телефон будет жрать заряд, как голодный студент доширак. Давай разберём, почему это важно, что тестить, и какие инструменты помогут найти прожорливые баги.

⚡ Зачем тестировать энергопотребление?

📉 Плохая оптимизация — плохие отзывы. Если приложение высаживает батарею за пару часов, его удаляют.
🔥 Фоновые процессы могут тайно кушать заряд. Чаты, трекеры, пуши — всё это может незаметно жрать проц и сеть.
📊 Приложение может перегружать CPU, GPU и сеть. Игры, анимации, кривые API-запросы – и вот уже телефон кипит.
📱 Старые устройства страдают больше. На флагманах лагов нет, а на бюджетках ад.

🔋 Что тестируем?

1 Базовые сценарии проверки батареи

✅ Запустить приложение и понаблюдать за расходом заряда.
✅ Оставить в фоне и посмотреть, жрёт ли батарею.
✅ Использовать активные функции (видео, GPS, анимации).
✅ Проверить, как ведёт себя приложение в условиях низкого заряда.

2 Ключевые метрики энергопотребления

🔌 CPU Usage – сколько жрёт процессор?
🖥 GPU Load – если есть анимации и графика, грузит ли GPU?
📶 Сетевые запросы – не спамит ли API?
🔋 Wakelocks – не мешает ли приложуха телефону заснуть?
📡 Сенсоры (GPS, акселерометр, Bluetooth, Wi-Fi) – отключаются ли, когда не нужны?

🛠 Инструменты для тестирования батареи

📌 Android

1) ADB Battery Stats (стандартный инструмент Android)

adb shell dumpsys batterystats adb shell dumpsys batterystats | grep "Uid u0a202"

📌 Показывает, какие процессы жрут заряд и какие компоненты активны (CPU, Wi-Fi, GPS, экран, сенсоры).

2) Battery Historian

  • Визуализирует отчёты из ADB.
  • Показывает графики энергопотребления.
  • Можно увидеть, какие сервисы держат wakelock и мешают спать телефону.

Запуск:

python3 historian.py -c batterystats.txt

📌 Пример: приложение не отпускает Wi-Fi после завершения работы – фикс в коде:

val wifiManager = context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager wifiManager.disconnect() // Освобождаем Wi-Fi, когда не нужен

3) Android Studio Profiler

  • Отображает CPU, RAM, батарею, сетевые вызовы в реальном времени.
  • Можно посмотреть нагрузку при разных сценариях (скролл, видео, анимации).

📌 iOS

  • Включаем через Instruments → Energy Log.
  • Показывает, где процессор уходит в космос, какие фоновые задачи жрут заряд.

📌 Пример: приложение использует GPS в фоне (нужно отключать, когда не нужно)

locationManager.stopUpdatingLocation()

2) instruments → Time Profiler

  • Анализирует, какой код нагружает процессор.
  • Полезно для оптимизации CPU-heavy задач (анимации, фоновые вычисления).

📡 Как тестировать энергопотребление?

1 Ручное тестирование (базовые проверки)

✅ Запустить приложение и поиграться с ним 10-15 минут.
✅ Оставить в фоне и посмотреть, разряжается ли батарея.
✅ Включить режим энергосбережения и проверить, как ведёт себя приложение.

2 Автоматизация замеров батареи (Android)

adb shell dumpsys batterystats > battery_report.txt

📌 Анализируем battery_report.txt, ищем жрущие процессы и сервисы.

3 Анализ Wakelocks (Android)

adb shell dumpsys power | grep "WakeLocks"

📌 Показывает, какие процессы не дают телефону уснуть.

4 Тестирование нагрузки в экстремальных условиях

🔥 Высокая температура – как ведёт себя телефон, если он нагревается?
📶 Плохая сеть – приложение продолжает спамить API или ждёт нормального соединения?
📡 Выключение GPS, Wi-Fi, Bluetooth – корректно ли реагирует приложение?

🚀 Оптимизация энергопотребления

📌 Избавляемся от ненужных фоновых сервисов

jobScheduler.cancelAll() // Останавливаем ненужные задачи

📌 Ограничиваем Wakelocks

wakeLock.release() // Даем телефону заснуть

📌 Меньше обновлений в фоне

workManager.enqueueUniqueWork("background_sync", ExistingWorkPolicy.KEEP, workRequest)

🔥 Вместо бесконечных фоновых сервисов – WorkManager (Android) или Background Tasks (iOS).

📌 Итоги

🔋 Плохая оптимизация = плохие отзывы и удаление приложения.
📊 Важно следить за CPU, GPU, сетью и Wakelocks.
🛠 Лучшие инструменты: ADB Battery Stats, Battery Historian, Xcode Energy Log.
🚀 Тестируем вручную и автоматизируем замеры.

реклама
разместить
Начать дискуссию
8. Тестирование жестов и сенсоров в мобильных приложениях

Братишка, сегодня разберём одну из самых хардкорных тем в мобильном тестировании — жесты и сенсоры. Если кнопки можно просто понажимать, то тут уже начинается магия: свайпы, мультитач, акселерометр, гироскоп, приближение... И всё это нужно тестить, чтобы юзеры не страдали от глюков.

реклама
разместить
5. Особенности тестирования Android vs iOS

🤔 Почему важно тестировать отдельно?

Продолжаю инвестировать в крипту. Пенсионный криптофонд. Месяц 23

Март для криптанов оказался достаточно довольно волатильным, но по итогам всё обернулось вялостью. Биткоин сходил вверх и вниз, потом просто отдыхал. Я продолжаю готовиться к крипточилу на пенсии и формирую криптопортфель, благодаря которому буду чилить на криптоострове. Для этого я ежемесячно покупаю крипту на небольшую сумму. Смотрим, что произош…

Продолжаю инвестировать в крипту. Пенсионный криптофонд. Месяц 23
77
11
6. Сетевое тестирование в мобильных приложениях

🤔 Почему это важно?

Концепция личной (не)эффективности

Не наводи порядок в том, от чего нужно избавиться. Про бесконечные списки задач, фокусировку и "У меня все задачи важные"

Концепция личной (не)эффективности
77
33
11
Аяз Шабутдинов признал вину в мошенничестве — но пока не в суде

Он сообщил об этом в своём Telegram-канале.

Источник: Telegram-канал Аяза Шабутдинова
2525
1515
55
44
22
Парни вы издеваетесь ?
Бизнес-идея: в США «усыновляют» гиперреалистичных кукол — со свидетельством о рождении, процедурой «выписки» и силиконовой плацентой

Их стоимость варьируется от $250 до $1000.

На фото Мария Тригг. Источник фото: Thomas Simonetti / The Times
2323
1414
1010
33
11
11
11
А продолжение-то есть у этой фигни? Типа через год отдаешь куклу, тебе дают новую, потом еще раз, относишь ее в садик, потом в школу, потом ЕГЭ сдаешь со здоровенной тупой силиконовой дурындой...
Как я привел с Авито 400 заявок по 113 рублей и клиент меня "уволил"...

Настроил Авито так, что отдел продаж заказчика лег, а я получил самое хвалебное и приятное письмо благодарности за всю свою жизнь, а потом меня уволили. Рассказываю о том, как правильно настраивать Авито, чтобы он колоссально окупался.

Как я привел с Авито 400 заявок по 113 рублей и клиент меня "уволил"...
2020
55
44
33
22