Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Интеграция Huawei Mobile Services

Egor Aganin
February 17, 2021

Интеграция Huawei Mobile Services

Слайды презентации.

Egor Aganin

February 17, 2021
Tweet

Other Decks in Programming

Transcript

  1. 1
    Интеграция Huawei Mobile Services
    Егор Аганин

    View Slide

  2. 2
    О ЧЕМ ПОГОВОРИМ
    • Что такое HMS и зачем он нужен в вашем приложении
    • Способы поддержки HMS и GMS в одном приложении
    • Интеграция PushKit, MapKit, LocationKit и SafetyDetect
    • Результаты подхода в продакшн среде

    View Slide

  3. 3
    ЧТО ТАКОЕ HMS И ЗАЧЕМ ОН НУЖЕН В ВАШЕМ ПРИЛОЖЕНИИ

    View Slide

  4. 4
    ЧТО ТАКОЕ HMS И ЗАЧЕМ ОН НУЖЕН В ВАШЕМ ПРИЛОЖЕНИИ

    View Slide

  5. Мировая статистика продаж 3 квартал
    2020
    vivo
    9 %
    Xiaomi
    9 %
    Apple
    13 %
    Huawei
    19 %
    Samsung
    22 %
    Другие
    28 %
    Источник IDC 2020
    Российская статистика продаж 3 квартал
    2020
    Xiaomi
    22 %
    Apple
    10 %
    Huawei
    20 %
    Samsung
    33 %
    Другие
    15 %
    Источник Mobile Research Group 2020
    5

    View Slide

  6. 6
    РОСТ ПОЛЬЗОВАТЕЛЕЙ ПОСЛЕ ИНТЕГРАЦИИ
    0 %
    20 %
    40 %
    60 %
    80 %
    100 %
    120 %
    140 %
    160 %
    02.2020
    04.2020
    06.2020
    08.2020
    10.2020
    12.2020
    02.2021
    PlayMarket AppGallery

    View Slide

  7. 7
    ПОЧЕМУ ПОДДЕРЖКА HMS АКТУАЛЬНА СЕГОДНЯ?

    View Slide

  8. 8
    ПОЧЕМУ ПОДДЕРЖКА HMS АКТУАЛЬНА СЕГОДНЯ?
    • Отказываясь от поддержки HMS мы теряем до 30% новых пользователей

    View Slide

  9. 9
    ПОЧЕМУ ПОДДЕРЖКА HMS АКТУАЛЬНА СЕГОДНЯ?
    • Отказываясь от поддержки HMS мы теряем до 30% новых пользователей
    • Помощь в интеграции со стороны Huawei

    View Slide

  10. 10
    ПОЧЕМУ ПОДДЕРЖКА HMS АКТУАЛЬНА СЕГОДНЯ?
    • Отказываясь от поддержки HMS мы теряем до 30% новых пользователей
    • Помощь в интеграции со стороны Huawei
    • Отсутствие или малое количество конкурентов в AppGalery

    View Slide

  11. 11
    ПОЧЕМУ ПОДДЕРЖКА HMS АКТУАЛЬНА СЕГОДНЯ?
    • Отказываясь от поддержки HMS мы теряем до 30% новых пользователей
    • Помощь в интеграции со стороны Huawei
    • Отсутствие или малое количество конкурентов в AppGalery
    • Выгодные условия от внутрених продаж приложений в AppGalery
    AppGalery 10-15%, Google Play / App Store 15-30%

    View Slide

  12. 12
    СТРУКТУРА HMS СЕРВИСОВ

    View Slide

  13. 13
    СТРУКТУРА HMS СЕРВИСОВ

    View Slide

  14. 14
    СТРУКТУРА HMS СЕРВИСОВ

    View Slide

  15. 15
    СТРУКТУРА HMS СЕРВИСОВ

    View Slide

  16. 16
    Способы поддержки HMS и GMS в одном приложении

    View Slide

  17. 17
    СПОСОБЫ ПОДДЕРЖКИ HMS И GMS В ОДНОМ ПРИЛОЖЕНИИ

    View Slide

  18. 18
    • Быстрее и проще в реализации
    Плюсы
    ОТДЕЛЬНЫЕ СБОРКИ ПОД МАРКЕТ

    View Slide

  19. 19
    • Быстрее и проще в реализации • Риск попадания версии, предназначенной для
    другой платформы
    Плюсы
    ОТДЕЛЬНЫЕ СБОРКИ ПОД МАРКЕТ
    Минусы
    • Тестировать 2 приложения

    View Slide

  20. СПОСОБЫ ПОДДЕРЖКИ HMS И GMS В ОДНОМ ПРИЛОЖЕНИИ
    20

    View Slide

  21. 21
    ОДНА ВЕРСИЯ ДЛЯ ВСЕХ ПЛАТФОРМ
    Плюсы
    • Одна версия подходит для любых устройств
    • Реализация любого алгоритма выбора
    мобильных сервисов
    • Тестируем только одно приложение
    • Выкладываемся одновременно на все
    площадки

    View Slide

  22. 22
    ОДНА ВЕРСИЯ ДЛЯ ВСЕХ ПЛАТФОРМ
    • Медленнее и сложнее в реализации
    • Потенциально больше багов
    Плюсы Минусы
    • Одна версия подходит для любых устройств
    • Реализация любого алгоритма выбора
    мобильных сервисов
    • Тестируем только одно приложение
    • Выкладываемся одновременно на все
    площадки

    View Slide

  23. 23
    НАШ ВЫБОР

    View Slide

  24. 24
    ЛОГИКА ВЫБОРА СЕРВИСОВ

    View Slide

  25. 25
    ПРИОРИТЕТ GMS ПО УМОЛЧАНИЮ

    View Slide

  26. 26
    ПРИОРИТЕТ GMS ПО УМОЛЧАНИЮ
    Плюсы
    • Знакомый инструмент
    • Большая база знаний
    • Надежность и стабильность

    View Slide

  27. 27
    ПРИОРИТЕТ GMS ПО УМОЛЧАНИЮ
    Плюсы
    • Знакомый инструмент
    • Большая база знаний
    • Надежность и стабильность
    Минусы
    • Ограничения работы GMS на
    устройствах Huawei

    View Slide

  28. 28
    УСЛОВИЯ ВЫБОРА HMS СЕРВИСОВ
    •Доступность HMS сервисов на устройстве
    •Проверка версии EMUI >= 10

    View Slide

  29. 29
    ОПРЕДЕЛЕНИЕ ДОСТУПНОСТИ СЕРВИСОВ

    View Slide

  30. 30
    ОПРЕДЕЛЕНИЕ ДОСТУПНОСТИ СЕРВИСОВ

    View Slide

  31. 31
    ОПРЕДЕЛЕНИЕ ДОСТУПНОСТИ СЕРВИСОВ

    View Slide

  32. 32
    ОПРЕДЕЛЯЕМ ВЕРСИЮ EMUI

    View Slide

  33. 33
    Имплементация Push Kit

    View Slide

  34. 34
    ДОБАВЛЕНИЕ ЗАВИСИМОСТЕЙ В GRADLE

    View Slide

  35. 35
    ОТДЕЛЬНЫЙ ПРОЦЕСС :PUSHSERVICE

    View Slide

  36. 36
    ОТДЕЛЬНЫЙ ПРОЦЕСС :PUSHSERVICE

    View Slide

  37. 37
    НАСТРОЙКА AndroidManifest.xml

    View Slide

  38. 38
    ИМПЛЕМЕНТАЦИЯ HmsMessageService

    View Slide

  39. 39
    ПОЛУЧЕНИЕ PUSH ТОКЕНА

    View Slide

  40. 40
    ПОЛУЧЕНИЕ PUSH ТОКЕНА EMUI < 10

    View Slide

  41. 41
    ЛОГИКА ПОЛУЧЕНИЯ PUSH ТОКЕНА

    View Slide

  42. 42
    ИМПЛЕМЕНТАЦИЯ HmsMessageService

    View Slide

  43. 43
    Имплементация SafetyDetect

    View Slide

  44. 44
    ЛОГИКА РАБОТЫ SafetyDetect

    View Slide

  45. 45
    ПАРАМЕТРЫ ЗАПУСКА

    View Slide

  46. 46
    ЗАПУСК ПРОВЕРКИ БЕЗОПАСНОСТИ

    View Slide

  47. 47
    ОБРАБОТКА РЕЗУЛЬТАТА ПРОВЕРКИ

    View Slide

  48. 48
    ИНТЕРПРЕТАЦИЯ РЕЗУЛЬТАТОВ ПРОВЕРКИ

    View Slide

  49. 49
    SafetyNet vs SafetyDetect
    Состояние устройства SafetyNet SafetyDetect
    ctsProfileMatch basicIntegrity basicIntegrity
    Устройство, успешно прошедшее
    сертификацию совместимости Google
    true true true
    Сертифицированные устройство с
    разблокированным загрузчиком
    false true false
    Устройство без сертификации false true true
    Кастомная прошивка без рута false true true
    Эмулятор(система Android) false false false
    Скрипт эмулирующий устройство(не
    система Android)
    false false false
    Устройство рутовано false false false
    Атаки во время выполнения проверки false false false

    View Slide

  50. 50
    Имплементация MapKit

    View Slide

  51. 51
    MapFragment

    View Slide

  52. 52
    HuaweiMapFragment

    View Slide

  53. 53
    Имплементация Location Kit

    View Slide

  54. 54
    СПОСОБЫ ПОЛУЧЕНИЯ МЕСТОПОЛОЖЕНИЯ
    • Стандартное Android API
    • Location API мобильных сервисов

    View Slide

  55. 55
    ДОБАВЛЕНИЕ ЗАВИСИМОСТЕЙ В GRADLE

    View Slide

  56. 56
    РАЗРЕШЕНИЯ ДЛЯ ДОСТУПА К ГЕОЛОКАЦИИ

    View Slide

  57. 57
    BACKGROUND/FOREGROUND ГЕОЛОКАЦИЯ

    View Slide

  58. 58
    РАЗРЕШЕНИЕ ГЕОЛОКАЦИИ ДЛЯ МОБИЛЬНЫХ
    СЕРВИСОВ
    Для не Huawei устройств необходимо постоянное
    разрешение на геолокацию в HMS Core
    С

    View Slide

  59. 59
    ИНТЕРФЕЙС LocationDataSource

    View Slide

  60. 60
    ПОЛУЧЕНИЕ ПОСЛЕДНЕГО МЕСТОПОЛОЖЕНИЯ

    View Slide

  61. 61
    ПОЛУЧЕНИЕ ТЕКУЩИХ НАСТРОЕК МЕСТОПОЛОЖЕНИЯ

    View Slide

  62. 62
    ИЗМЕНЕНИЕ ТЕКУЩИХ НАСТРОЕК МЕСТОПОЛОЖЕНИЯ

    View Slide

  63. 63
    ПОЛУЧЕНИЕ ОБНОВЛЕНИЙ МЕСТОПОЛОЖЕНИЯ

    View Slide

  64. 64
    ПОЛУЧЕНИЕ ОБНОВЛЕНИЙ МЕСТОПОЛОЖЕНИЯ

    View Slide

  65. 65
    ПРЕКРАЩЕНИЕ ПОЛУЧЕНИЯ ОБНОВЛЕНИЙ МЕСТОПОЛОЖЕНИЯ

    View Slide

  66. 66
    РЕЗУЛЬТАТЫ
    • 1.5 миллиона установок в AppGallery
    • Сохранение возможности выкладывать все релизы приложения для двух
    сервисов
    • В первые дни запуска были на 2 месте в общем топе AppGallery после TikTok
    • Реализация нашего решения заняла 4 месяца

    View Slide

  67. 67
    ПОЛЕЗНЫЕ ССЫЛКИ
    • https://github.com/and291/HmsTest - код демонстрационного проекта
    • https://habr.com/ru/company/cardsmobile/blog/522008/ - статья на Habr об интеграции HMS,
    написанная моим коллегой Андреем Бусик
    • https://habr.com/ru/company/huawei/blog/520710/ - устройство Huawei PushKit
    • https://developer.huawei.com/consumer/en/codelabsPortal/index - codelabs по интеграции
    всех сервисов Huawei

    View Slide