Тоже столкнулись с проблемой, не работало мобильное приложение на устройствах c Android 9 и ниже с ошибками SslHandshake и SocketTimeout. Началось 2024-03-31 08:00 (примерно), закончилось 2024-04-01 19:20 по мск.
Существует RuStore, из-за которого непонятно на какое устройство с каками Mobile Services будет установлено приложение
Google Play не рад, что в него льют приложение с HMS зависимостями (может быть это уже закончилось, но инцидент был и еще раз наступать на эти грабли не хочется)
В нашей частной реализации, если на устройстве есть GPS и HMS, то мы предпочтение отдаем GPS и хотели бы, чтобы пользователь использовал их.
поэтому нужна еще универсальная реализация, которая умеет в runtime делегировать работу GPS или HMS.
Т.о. обернули GPS и HMS в отдельные модули mobile-services-google-impl и mobile-services-huawei-impl с реализацией своих собственных общих интерфейсов из модуля mobile-services-api. Создали дополнительный модуль mobile-services-universal-impl, который так же реализует интерфейсы mobile-services-api, но под капотом через DI делегирует всю работу одной из имплиментаций моделей mobile-services-google-impl или mobile-services-huawei-impl, в зависимости от того, что доступно. В фичевые модули, где нужны Mobile Services, подключается только mobile-services-api, а нужная имплиментация пройвадится через DI.
Теперь при сборке приложения можно указать через Flavors или -Pgradle флаг что нужно собрать подключив только модуль с GPS реализацией или универсальной реализацией.
if (isNeedHuaweiMobileServices) {
implementation(project(':mobile-services-universal-impl'))
} else {
implementation(project(':mobile-services-google-impl'))
}
Первый вариант можно катить в Google Play, а второй в Huawei AppGallery и RuStore.
Расскажите пожалуйста подробней про автоматизацию. Очень интересная тема. Интересует 1. На каких принципах строится проверка описанных вами проблем? 2. По каким критериям проходят проверки? 3. Проверка алармит подсвечивая потенциальные проблемы или кидает Exception об ошибке? 4. Чуть подробней как автоматизация зависимостей и сборки позволяет выстроить всю производственную цепочку разработки от бизнес-аналитики до тестирования и релиза?
Привет. Проверили на нескольких VPN, все работает. Тем не менее нам важно разобрать ваш кейс. Напишите пожалуйста еще раз в поддержку, укажите что попросила команда разработчки и прикрипите ссылку на эту переписку. Клиентская служба переведет общение на нас.
Он все-равно трещит. Может быть дело в подключении через PWM, т.к. пишут следующее
На что ещё стоит обратить внимание, так это на путаницу в терминологии. Часто способ управления сервоприводами называют PWM/ШИМ (Pulse Width Modulation) или PPM (Pulse Position Modulation). Это не так, и использование этих способов может даже повредить привод. Корректный термин — PDM (Pulse Duration Modulation). В нём крайне важна длина импульсов и не так важна частота их появления. 50 Гц — это норма, но сервопривод будет работать корректно и при 40, и при 60 Гц. Единственное, что нужно при этом иметь в виду — это то, что при сильном уменьшении частоты он может работать рывками и на пониженной мощности, а при сильном завышении частоты (например, 100 Гц) может перегреться и выйти из строя.
Главным образом мы преследовали следующие 3 интереса:
Gradle 4 — они каждый раз обещают более быстрые сборки. Но увы, надежда не оправдала себя ни на секунду.
Избавиться от Retrolambda. Вы должны знать, что она генерирует доп методы (до 7 для 2.1.0 версии и 4 для 2.3.0). А если перескочить на Java8 лямбды, то только один. И действительно, в целом из проекта ушло -9к методов с внедрениями всех описанных плюшек.
Ну и конечно — просто сделать это! Что бы быть в эпицентре разворачиваемых событий ))
Да, теперь можно посмотреть из студии через APK Analyzer. Но по мне это не очень удобно. Люблю собирать через command line. А также dexcount-gradle-plugin помогает на CI получить информацию при каждой сборке.
И можно подробнее про: С выходом Android 7.1 также обновился Pixel Launcher с поддержкой иконок круглой формы
На самом деле это к публикации приложения не относится. Просто в 7.1 появилась возможность использовать второй набор круглых иконок для одного и того же приложения. Лаунчеры, которые поддерживают круглые иконки (такие как Pixel Launcher), используют этот набор, остальные старый, дефолтовый. Реализуется через указание android:roundIcon="@drawable/ic_launcher_round" свойства рядом с привычным android:icon="@drawavle/ic_launcher"
Думаю это уже неактуально, посколько согласно Android Dashboard количество 4.0-4.3 версий Android на 03.04.17 составляет 10.1% и резко упал за первый квартал 2017 года. Так что разработчики отказываются от них и поддерживают с 4.4+ (19 API Level), а многие даже уже с 5+.
Тоже столкнулись с проблемой, не работало мобильное приложение на устройствах c Android 9 и ниже с ошибками SslHandshake и SocketTimeout. Началось 2024-03-31 08:00 (примерно), закончилось 2024-04-01 19:20 по мск.
Расскажу еще один вариант решение зависимостей.
Вводные:
Существует RuStore, из-за которого непонятно на какое устройство с каками Mobile Services будет установлено приложение
Google Play не рад, что в него льют приложение с HMS зависимостями (может быть это уже закончилось, но инцидент был и еще раз наступать на эти грабли не хочется)
В нашей частной реализации, если на устройстве есть GPS и HMS, то мы предпочтение отдаем GPS и хотели бы, чтобы пользователь использовал их.
поэтому нужна еще универсальная реализация, которая умеет в runtime делегировать работу GPS или HMS.
Т.о. обернули GPS и HMS в отдельные модули
mobile-services-google-impl
иmobile-services-huawei-impl
с реализацией своих собственных общих интерфейсов из модуляmobile-services-api
. Создали дополнительный модульmobile-services-universal-impl
, который так же реализует интерфейсыmobile-services-api
, но под капотом через DI делегирует всю работу одной из имплиментаций моделейmobile-services-google-impl
илиmobile-services-huawei-impl
, в зависимости от того, что доступно. В фичевые модули, где нужны Mobile Services, подключается толькоmobile-services-api
, а нужная имплиментация пройвадится через DI.Теперь при сборке приложения можно указать через Flavors или -Pgradle флаг что нужно собрать подключив только модуль с GPS реализацией или универсальной реализацией.
Первый вариант можно катить в Google Play, а второй в Huawei AppGallery и RuStore.
Для автоматизации публикаий сборок в Huawei AppGallery можно использовать Gradle плагин https://github.com/cianru/huawei-appgallery-publish-gradle-plugin
Как уже ответил @Neikistэто Trace, который можно записать и просмотреть в Android Studio. Прикладываю ссылку для изучения графиков из статьи https://developer.android.com/studio/profile/inspect-traces. Но лучше изучить всю документацию по профилированию приложения https://developer.android.com/studio/profile/android-profiler. Там действительно много интересного.
Расскажите пожалуйста подробней про автоматизацию. Очень интересная тема. Интересует
1. На каких принципах строится проверка описанных вами проблем?
2. По каким критериям проходят проверки?
3. Проверка алармит подсвечивая потенциальные проблемы или кидает Exception об ошибке?
4. Чуть подробней как автоматизация зависимостей и сборки позволяет выстроить всю производственную цепочку разработки от бизнес-аналитики до тестирования и релиза?
Для непрерывной доставки можно воспользоваться Gradle плагином https://github.com/cianru/huawei-publish-gradle-plugin
Привет. Проверили на нескольких VPN, все работает. Тем не менее нам важно разобрать ваш кейс. Напишите пожалуйста еще раз в поддержку, укажите что попросила команда разработчки и прикрипите ссылку на эту переписку. Клиентская служба переведет общение на нас.
Подскажите, у вас есть чек-лист по которому можно пройтись дизайнер или разработчик и проверить что компонент проработан полность?
Достаточно много. От 8mAh PowerBank с подключением через 2.3А разьем она прожила примерно 2 дня с периодическими отключениями на технические работы.
Можно. Подойдут либы для Android.
Он все-равно трещит. Может быть дело в подключении через PWM, т.к. пишут следующее
Баг, конечно. С ним ни о какой безопасности не может идти речи.
Хм, неплохо )
Целью было попробовать Android Things
Главным образом мы преследовали следующие 3 интереса:
Да, теперь можно посмотреть из студии через APK Analyzer. Но по мне это не очень удобно. Люблю собирать через command line. А также dexcount-gradle-plugin помогает на CI получить информацию при каждой сборке.
Кстати начиная с Google Play Services 10.2
Спасибо, исправим.
На самом деле это к публикации приложения не относится. Просто в 7.1 появилась возможность использовать второй набор круглых иконок для одного и того же приложения. Лаунчеры, которые поддерживают круглые иконки (такие как Pixel Launcher), используют этот набор, остальные старый, дефолтовый. Реализуется через указание
android:roundIcon="@drawable/ic_launcher_round"
свойства рядом с привычнымandroid:icon="@drawavle/ic_launcher"
Думаю это уже неактуально, посколько согласно Android Dashboard количество 4.0-4.3 версий Android на 03.04.17 составляет 10.1% и резко упал за первый квартал 2017 года. Так что разработчики отказываются от них и поддерживают с 4.4+ (19 API Level), а многие даже уже с 5+.
Да, App Store Optimization (ASO) — целая наука. Тут в 2х словах не рассказать. Уже есть хорошие материальчики, например, могу посоветовать этот