Разработка
Сервисы Google и Huawei в единой кодовой базе Android-приложения
Эти функции обеспечивают гармоничную интеграцию, позволяя нам без труда использовать соответствующие сервисы с помощью единой кодовой базы.

Отдельное управление библиотеками HMS и GMS в вашем Android-приложении может со временем сделать его более сложным. Поэтому мы поговорим о том, как легко выйти из этой ситуации.
Вступление
Здравствуйте, дорогие Android-разработчики, сегодня я расскажу вам об использовании библиотек HMS и GMS в одной кодовой базе. Также в качестве примера мы рассмотрим использование Google Maps и Huawei Map Kit в одном проекте. Если вы готовы, давайте начнем!
Прежде всего, нам нужно добавить зависимости в наш проект.
Затем нам нужно создать связанные функции, которые проверяют, активны ли услуги GMS и HMS на нашем телефоне.
Проверки
Проверяем, доступны ли Google Services на нашем телефоне.
Проверяем, доступны ли Huawei Services на нашем телефоне.
По значениям true и false, возвращаемым из вышеуказанных функций, мы можем решить, какие сервисы будут работать на нашем телефоне, а какие нет. Теперь мы попробуем наши функции только на телефонах с сервисами Google или только с сервисами Huawei.


Как видите, когда мы попробовали это на телефоне с сервисами Google, функция Google вернула true, а функция сервисов Huawei — false (в качестве телефона использовался Pixel 3).


Когда же мы попробовали это на телефоне с сервисами Google, функция Google вернула true, а функция сервисов Huawei — false (в качестве телефона использовался Pixel 3).
Как видно из приведенных примеров, мы можем выполнять операции с нашими соответствующими функциями в зависимости от того, какая служба активна или нет на телефоне в данный момент.
Интеграция
Когда мы выполним соответствующие проверки, мы сможем добавить Google Maps и Huawei Map Kit в наш проект. Давайте сначала подготовим XML-сторону.
Затем мы добавим наш OnMapReadyCallback для Google Maps и Huawei Map в наш класс в соответствующей Activity. Кроме того, мы должны добавить наши функции onMapReady для двух картографических сервисов в наш класс.


Добавьте OnMapReadyCallback для Google Maps и Huawei Map в наш класс в соответствующей Activity.
Наконец, вы можете использовать сервис, необходимый вам в вашем проекте, в зависимости от рабочего состояния соответствующих сервисов Google и Huawei на вашем телефоне.
Теперь давайте посмотрим на результаты. Сначала попробуем наше приложение на телефоне Pixel 3 с использованием только сервисов Google. Позже мы также попробуем его на телефоне P40 Lite, который работает только с сервисами Huawei.


Как видите, мы используем Google Maps, которые работают только в сервисах Google.


Или используем Huawei Map Kit в этом же приложении и на телефоне, включающем только сервисы Huawei.
Ключевые моменты
- Не забудьте создать отдельную логику для телефонов, использующих сервисы Huawei и Google.
- Не забудьте активировать консоль для Google Maps и Huawei Maps (Google Console для сервиса Google, App Gallery Connect для Huawei).
- Не забудьте поместить API-ключ для Google Maps в AndroidManifest. Аналогично, не забудьте вызвать функцию MapsInitializer.setApiKey(«YOUR_API_KEY») в Huawei Map Kit.
- Для Huawei Map Kit версии выше ‘com.huawei.hms:maps:5.0.5.301’ могут иметь ошибку map not loading. Убедитесь, что вы правильно выбрали версию или используйте эту версию.
- При работе со значениями Google Map и Huawei Map не забывайте импортировать значения из соответствующего класса для соответствующего сервиса. Потому что большинство имен значений и функций в этих двух сервисах похожи.
- Не забывайте добавлять значения SHA1 и SHA-256 вашего приложения в консоли сервисов Google и Huawei. Кроме того, создайте SHA1 и SHA-256 снова для релиза, чтобы сервисы правильно работали в релиз-пакетах (выполните gradle signinReport из терминала Android Studio для генерации SHA1 и SHA-256).
- Убедитесь, что к проекту прикреплены самые актуальные версии JSON-файлов сервисов, которые вы загрузите из консоли.
Заключение
Возможность подтверждать доступность сервисов Google и Huawei для конкретных телефонов привела к значительному скачку в нашей производительности. Эти функции обеспечивают гармоничную интеграцию, позволяя нам без труда использовать соответствующие сервисы с помощью единой кодовой базы. Более того, они дают нам свободу включать и изменять использование сервисов Google и Huawei в нашем приложении по мере необходимости.


-
Рекламные сети1 месяц назад
Кейс SB-Games: как увеличить APRU 18 приложений на 40%
-
Аналитика магазинов1 месяц назад
Глобальный охват китайских приложений: исследование прибыльных рынков и вертикалей
-
Интегрированные среды разработки1 месяц назад
Анализ производительности для ускорения сборок в Xcode
-
GitHub1 месяц назад
JsonTree: красивый Json в Compose