Как устранить зависания мобильного клиента 1С на ТСД Global POS C5000 GP под управлением Android 9?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переходе на новое складское оборудование или обновлении операционной системы на терминалах сбора данных (ТСД) разработчики часто сталкиваются с нетипичным поведением мобильных приложений 1С. Одной из наиболее распространенных проблем на устройствах Global POS C5000 GP является полная блокировка интерфейса мобильного клиента или мобильной платформы при запуске на операционной системе Android 9. Ситуация выглядит следующим образом: приложение успешно устанавливается, открывается начальная форма, однако после первого же нажатия на любую кнопку или элемент управления интерфейс перестает отзываться, хотя системные кнопки Android продолжают работать.

В этой статье мы подробно разберем причины такого поведения, проанализируем технические нюансы архитектуры устройства и составим пошаговый план решения проблемы, основываясь на практическом опыте коллег и специфике работы ОС Android 9.

Анализ архитектуры: ARM против ARM64

Разберем первопричину, которая чаще всего приводит к «тихим» зависаниям. Современные процессоры в ТСД поддерживают 64-битную архитектуру, что побуждает разработчиков использовать при сборке apk пакеты для arm64-v8a. Однако на модели Global POS C5000 GP производитель нередко устанавливает 32-битную версию Android 9 (ARMv7), даже если аппаратная часть теоретически поддерживает 64 бита.

Проанализируем ситуацию: если вы устанавливаете версию arm64 на 32-битную систему, Android может позволить приложению запуститься, используя механизмы совместимости, но при попытке обращения к системным библиотекам или отрисовке элементов интерфейса через WebView происходит конфликт, приводящий к зависанию основного потока (UI-thread).

Решение: При использовании онлайн-сборщика мобильных приложений 1С или при ручной сборке в Android Studio необходимо выбирать архитектуру ARM (arm-v7a). Как показывает практика, именно эта архитектура является стабильной для данной модели ТСД. Даже если приложение версии arm64 устанавливается без ошибок, его работа на Android 9 в случае с C5000 будет некорректной.

Настройка прав доступа и системных разрешений

Выясним, какие настройки операционной системы могут блокировать работу 1С. В Android 9 значительно ужесточились требования к безопасности и фоновым процессам. Рассмотрим список необходимых действий для корректной работы мобильного клиента:

  1. Разрешение на установку из неизвестных источников: Без этого флага мобильное приложение может испытывать трудности с обновлением внутренних компонент и сохранением временных файлов (например, фотографий или кэша).
  2. Доступ к памяти и камере: Убедитесь, что в настройках приложения на ТСД выданы все возможные разрешения. Зачастую отсутствие прав на запись во внутреннюю память приводит к тому, что 1С «замирает» при попытке создать лог-файл или прочитать данные конфигурации.
  3. Отображение поверх других окон: Это критически важно для корректной работы диалоговых окон и уведомлений в мобильном клиенте.

Конфликт со сканирующим модулем (Keyboard Wedge vs Broadcast)

Проанализируем работу встроенного сканера штрихкодов. Одной из скрытых причин зависания является режим эмуляции клавиатуры (Keyboard Wedge). Если в системном приложении «Scanner» или «BarCodeSetting» выбран этот режим, ТСД передает данные сканирования как нажатия клавиш.

Когда вы нажимаете на кнопку в 1С, фокус ввода может конфликтовать со службой сканера, которая ожидает ввода данных. Это вызывает блокировку интерфейса. Разберем правильный алгоритм настройки:

  1. Зайдите в системное приложение для настройки сканера на ТСД.
  2. Переключите режим передачи данных на Intent Output или Broadcast Intent.
  3. В конфигурации 1С настройте работу со сканером через «1С:Библиотеку подключаемого оборудования» (БПО), используя внешнюю компоненту, предназначенную для работы с Intent-сообщениями.

Обновление Android System WebView

Мобильный клиент 1С на платформе 8.3.20 и выше сильно полагается на системный компонент Android System WebView для отрисовки форм. В заводских прошивках Global POS C5000 GP на Android 9 версия этого компонента может быть устаревшей и содержать ошибки аппаратного ускорения графики.

Рассмотрим шаги по оптимизации:

Оптимизация энергопотребления (Doze Mode)

Система Android 9 активно ограничивает приложения, которые, по ее мнению, потребляют много ресурсов. Поскольку мобильный клиент 1С — это ресурсоемкое приложение, система может переводить его в режим сна сразу после запуска.

Чтобы исключить это, выполните следующие действия:

  1. Перейдите в Настройки -> Батарея -> Экономия заряда.
  2. Найдите ваше приложение 1С и выберите пункт «Не экономить».
  3. Разрешите приложению фоновую деятельность и бессрочный доступ к данным.

Выбор версии мобильной платформы 1С

Посмотрим на совместимость версий. Если ваше устройство имеет ограниченный объем оперативной памяти (например, 2 ГБ), использование платформы 8.3.20.х или 8.3.22.х может быть избыточным.

Рекомендуем протестировать работу на версиях 8.3.18.х или 8.3.19.х. Эти версии считаются более «легкими» для Android 9 и показывают лучшую стабильность на устройствах со слабым железом. При сборке в мобильном сборщике также попробуйте включить опцию «Использовать легкий интерфейс», что снизит нагрузку на графическую подсистему ТСД.

Подводя итог, можно сказать, что решение проблемы чаще всего кроется в правильном выборе архитектуры ARMv7 при сборке приложения и тонкой настройке системных разрешений Android. Проделав эти шаги, вы обеспечите стабильную работу мобильного решения 1С на терминалах Global POS.

← На главную