Внешняя компонента с вспомогательными функциями для мобильной платформы 1С на Android. Ид компоненты ANDROIDUTILS. Компонента готова для сборки и поставляется с sln проектом для Visual studio и .android проектом для Android Studio. Причем в Andoird Studio подключена как java, так и С++ часть компоненты, что дает возможность отладки обоих языков! Компонента может быть полезна как в учебных, так и в прикладных целях.
- Android Studio 3.5
- Visual Studio 2019
- Платформа 1С не ниже 8.3.10
- поддерживается только Android начиная с версии API 22
Delay/Пауза - останавливает выполнение кода на заданное число миллисекунд. Процессор в период простоя не грузится
Параметры:
- миллисекунд - Число - число миллисекунд на которое нужно остановить выполнение кода.
StartScreenWatch/НачатьОтслеживаниеЭкрана - начинает мониторинг состояния активности экрана устройства. Параметры отсутствуют. Если устройство возвращают из спящего режима блокировки, то вызывается внешнее события со следующими параметрами:
- Источник - org.ripreal.androidutils
- Событие - LockChanged
StopScreenWatch/ОстановитьОтслеживаниеЭкрана - прекращает мониторинг активности экрана устройства. Параметры отсутствуют.
DeviceInfo/ОписаниеУстройства (только чтение) - ид мобильного устройства
Если ПодключитьВнешнююКомпоненту("ОбщийМакет.Компонента", "RIPREAL", ТипВнешнейКомпоненты.Native) Тогда
Компонента = Новый("AddIn.RIPREAL.ANDROIDUTILS");
Устройство = Компонента.ОписаниеУстройства;
Компонента.Пауза(3000); // Пауза на 3 секунды
КонецЕсли;
&НаКлиенте
Процедура НачатьОтслеживаниеЭкрана()
Компонента.НачатьОтслеживаниеЭкрана();
КонецПроцедуры
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Источник = "org.ripreal.androidutils" И Событие = "LockChanged" Тогда
ПоказатьПредупреждение(, "Экран разблокирован", 5);
КонецЕсли;
КонецПроцедуры
Установить в конфигурацию 1С архив с компонентой из папки package.
- Установить Android Studio
- В студии перейти в Tools -> SDK Manager -> SDK Platforms и выбрать ANDROID API 28
- В студии перейти в Tools -> SDK Manager -> SDK Tools и выбрать следующее:
- Android SDK build Tools
- Cmake (система сборки C++ кода)
- LLDB (для отладки C++ кода)
- Android Emulator
- Android SDK Platform tools
- Android SDK tools
- Intel x86 Emulator Accelerator (для возможности запуска эмулятора из студии)
- NDK (Для поддержки C++ кода в android проекте)
- Support repository
- Скачать систему ассемблерной сборки ninja https://github.com/ninja-build/ninja/releases, установить ее в любой каталог и прописать путь к каталогу в системную переменную Path
- Через VS Studio 2019 открыть androidUtils.sln и скомпилировать release версии для ARM и X86 платформы. Перенести скомпилированные .so либы в папку package.
2 Через Android Studio не ниже 3.5 открыть каталог android и скомпилировать apk (Build -> Build bundle / APK -> APK) и перенести скомпилированный apk в папку package.
-
Заархивировать все файлы в папке package в архив zip
-
Загрузить архив в конфигурацию в качестве макета внешней компоненты
Отладка как java, так и c++ части компоненты возможна только в android Studio. Для отладки рекомендуется использовать следующий подход:
- Создается юнит-тест в package org.ripreal.android (androidTest)
- Тест вызывает из java native функцию C++
- Функция C++ тестирует какой-то нативный метод компоненты
Пример можно посмотреть здесь ExampleInstrumentedTest.java
Лицензировано на условиях MIT. Смотрите файл LICENSE
- Отстутствуют