Поддержка Android 4.4

Материал из SmartPlayer

Описание ситуации

На платформе SmartPlayer раньше создавались клиентские приложения под версии API начиная с 21 версии. Более ранние версии не поддерживались. Но, появилась задача адаптировать клиентское приложение под Android версии 4.4 и создать на нём решение, которое позволит стабильно отыгрывать простые виды трансляций. Данное решение было проработано и реализовано на практике.

Рекомендуется использовать более новые устройства, соответствующие минимальным требованиям для клиентских приложений (Android 7.0)

Логика работы

Для реализации рассматривался сценарий, который включал в себя:

  • проигрывание видео и графического контента;
  • запуск трансляции в одной зоне.

В процессе подготовки клиентского приложения на устройстве с ОС Android 4.4 использовалось клиентское приложение ver. 1.67. У этого клиентского приложения множество функций, которые нагружало «железо» старого устройства.

Проблемы при реализации

  1. У версии 4.4 есть проблемы с декодингом. При доработке был изменен декодер и процесс декодинга при низкоуровневом взаимодействии.
  2. При разработке были проработаны проблемы с сетевым взаимодействием и работой сертификатов. Для корректной работы протоколов безопасности использовалась отдельная библиотека, которая добавляла необходимые сертификаты.
  3. Проблема с утечкой памяти. Из-за технических характеристик устройства были проблемы с постоянным переполнением памяти. Реализация получения подключений была оставлена через rxJava, а проигрывание трансляций было сделано через корутины.

Ограничения

Android 4.4 KitKat является достаточно старой ОС и реализация работы клиентского приложения имеет множество ограничений. Известные на данный момент ограничения:

  • устройство может проигрывать один контент в одной зоне;
  • проигрывает контент графический и видео контент;
  • не работает в многозонном режиме;
  • работа с аудиоконтентом не рекомендуется из-за избыточной нагрузки на устройство.