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

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

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

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

Ba848c78ed669fdba1eef0d3160bc2ac?s=128

Egor Aganin

February 17, 2021
Tweet

Transcript

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

  2. 2 О ЧЕМ ПОГОВОРИМ • Что такое HMS и зачем

    он нужен в вашем приложении • Способы поддержки HMS и GMS в одном приложении • Интеграция PushKit, MapKit, LocationKit и SafetyDetect • Результаты подхода в продакшн среде
  3. 3 ЧТО ТАКОЕ HMS И ЗАЧЕМ ОН НУЖЕН В ВАШЕМ

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

    ПРИЛОЖЕНИИ
  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
  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
  7. 7 ПОЧЕМУ ПОДДЕРЖКА HMS АКТУАЛЬНА СЕГОДНЯ?

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

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

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

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

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

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

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

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

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

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

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

    ПОД МАРКЕТ
  19. 19 • Быстрее и проще в реализации • Риск попадания

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

  21. 21 ОДНА ВЕРСИЯ ДЛЯ ВСЕХ ПЛАТФОРМ Плюсы • Одна версия

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

    в реализации • Потенциально больше багов Плюсы Минусы • Одна версия подходит для любых устройств • Реализация любого алгоритма выбора мобильных сервисов • Тестируем только одно приложение • Выкладываемся одновременно на все площадки
  23. 23 НАШ ВЫБОР

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

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

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

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

    Большая база знаний • Надежность и стабильность Минусы • Ограничения работы GMS на устройствах Huawei
  28. 28 УСЛОВИЯ ВЫБОРА HMS СЕРВИСОВ •Доступность HMS сервисов на устройстве

    •Проверка версии EMUI >= 10
  29. 29 ОПРЕДЕЛЕНИЕ ДОСТУПНОСТИ СЕРВИСОВ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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
  50. 50 Имплементация MapKit

  51. 51 MapFragment

  52. 52 HuaweiMapFragment

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

  54. 54 СПОСОБЫ ПОЛУЧЕНИЯ МЕСТОПОЛОЖЕНИЯ • Стандартное Android API • Location

    API мобильных сервисов
  55. 55 ДОБАВЛЕНИЕ ЗАВИСИМОСТЕЙ В GRADLE

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

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

  58. 58 РАЗРЕШЕНИЕ ГЕОЛОКАЦИИ ДЛЯ МОБИЛЬНЫХ СЕРВИСОВ Для не Huawei устройств

    необходимо постоянное разрешение на геолокацию в HMS Core С
  59. 59 ИНТЕРФЕЙС LocationDataSource

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

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

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

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

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

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

  66. 66 РЕЗУЛЬТАТЫ • 1.5 миллиона установок в AppGallery • Сохранение

    возможности выкладывать все релизы приложения для двух сервисов • В первые дни запуска были на 2 месте в общем топе AppGallery после TikTok • Реализация нашего решения заняла 4 месяца
  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