Як виробнику мобільних пристроїв пройти ліцензування для встановлення Google Mobile Services

Станом на перший квартал 2017 року Android був найпопулярнішою мобільною платформою. Кількість пристроїв на цій операційній системі в 6 разів більша, аніж на інших операційних системах загалом. Звичайно, йдеться не лише про смартфони, але й про безліч інших мобільних пристроїв, наприклад, планшети, смарт-годинники, телевізійні й автомобільні платформи тощо.

Чому ж Android став таким популярним? Одна із причин полягає у тому, що для виробників апаратного забезпечення (мобільних пристроїв) ця операційна система умовно безкоштовна. Її можна встановити на різноманітні пристрої. Щоправда, часто при цьому потрібно проводити портування, тобто адаптацію Android. До речі, це GlobalLogic реалізовує для широкого кола клієнтів, тому багато що із викладеного нижче перевірено на власному досвіді.

Одна із задач, з якою стикаються інженери, що займаються портуванням, — забезпечити появу на пристрої ключових сервісів Google: Google Play Store, Gmail, Google Maps, Google Drive та ін. Це не так просто: для цього потрібно пройти процедуру ліцензування. Отже, у цій статті я хочу розповісти про загальний алгоритм ліцензування і відповісти на питання, які постають перед багатьма розробниками.

З точки зору розробки Android можна поділити на:

  • The Android Open Source Project (AOSP) (вільний для завантаження);
  • Google Mobile Services (GMS) (потребує ліцензування).

На основі AOSPу, без використання GMS, цілком можна випустити пристрій. Так робили, наприклад, Amazon, Nokia, виробники Android-пристроїв на ринку Китаю. Розробкою на основі AOSPу активно займається спільнота LineageOS (послідовники Cyanogenmod). Але GMS значно додає функціональної привабливості. В першу чергу, перевага полягає у наявності Google Play Store «з коробки». Звісно, є методи установки офіційного магазину додатків від Google без ліцензії (по-різному дієві), але вони, як правило, не для звичайних користувачів, які хочуть, щоб усе просто працювало без додаткових «танців з бубном».

Що таке Google Mobile Services (GMS)

Google Mobile Services — це набір додатків і APIs, що допомагають покращувати функціональність операційної системи незалежно від пристрою. До їх числа входять наприклад, Gmail, Google Maps, Google Drive, YouTube, але найважливіша частина GMS — це Google Play Store і Google-сервіси. Їх доволі складно заінсталювати в обхід офіційної процедури від Google. Щоб отримати GMS-пакет офіційно, а головне, мати право на продаж пристроїв з ним, треба пройти процедуру ліцензування. Ліцензування здійснюється у рамках програми сумісності Android.

Програма сумісності Android (Android Compatibility Program)

Для того, щоб забезпечити якнайкращу якість операційної системи, була розроблена програма сумісності Android. Ця програма має на меті:

  • Надати чітко визначене середовище для розробників додатків. Без стандартів сумісності пристрої могли б відрізнятись настільки, що для кожної моделі розробникам потрібно було б робити різні версії додатків. Програма сумісності точно визначає, що розробники можуть очікувати від програмної частини і «заліза». При належному використані ця інформація може значно допомогти в розробці.
  • Дати можливість виробникам вирізнятись, але лишатись сумісними. Програма сумісності передбачає можливість роботи third-party-додатків, що дозволяє розробникам надавати пристроям унікальні функції без втрат у сумісності.
  • Мінімізувати витрати, пов’язані з сумісністю. Сумісність має бути легкою і недорогою для розробників. Інструменти для тестування є безкоштовними і пристосовані для постійного використання у процесі розробки.

Складові програми сумісності

Складовими програми сумісності є:

  • AOSP (Android Open Source Project) — вихідний код Android, доступний будь-кому для закачування і внесення змін.
  • CDD (Compatibility Definition Document) — документ, у якому описані вимоги до пристрою, що мають бути виконані, щоб пристрій вважався сумісним із певною версією Android. Кожна версія операційної системи має свій окремий варіант.
  • CTS (The Compatibility Test Suite) — набір автоматичних тестів, які запускаються на пристрої. Для різних версій Android доступні різні версії, причому для нових версій кількість тестів збільшується. Якщо у версії 1.6 було лише близько 23 тисяч тестів, то у версії 8.x їх уже більше 600 тисяч.

Які вимоги до ліцензування

Формально вимога лише одна — треба заповнити невелику форму: вказати назву компанії-виробника, тип і кількість пристроїв, що виробляються, версію Android тощо.

Google рекомендує формувати запит не пізніше, аніж за 30 днів перед початком продажів, але на практиці краще це робити за кілька місяців (як мінімум). Швидкість розгляду напряму залежить від кількості запланованих для продажу одиниць, надійності вашого бізнесу, країн розповсюдження тощо.

Після отримання схвальної відповіді від Google естафета передається перевіреним third-party-компаніям, що займаються тестуванням GMS. Ці компанії виступають посередником між Google і виробниками і беруть на себе офіційне GMS-тестування. Чим кращий продукт ви передасте на офіційне тестування, тим менше ресурсів у вас піде на отримання ліцензії. Тому не завадить почати процес тестування/відлагодження самостійно, а потім вже на певній стадії передати його посередникам.

Скільки це коштує

Android вважається безкоштовною операційною системою. Але це не зовсім так.

У 2014 році The Guardian опублікувала статтю, в якій вказувала, що Google отримує по кілька центів з кожного пристрою за ліцензування. Пізніше редакція була змушена виправити оригінальний текст у зв’язку з непорозумінням, яке він викликав. Google не отримує гроші за ліцензування від виробників пристроїв. Але для отримання GMS компанія вимагає GMS-ліцензування, для проходження якого потрібно співпрацювати з компаніями-посередниками, що працюють не безкоштовно. Вартість їхніх послуг не є сталою і залежить від багатьох умов. За неофіційними даними виробнику це коштує близько $10-15 тис. за одну модель пристрою.

Які перевірки потрібно пройти відповідно до вимог Google

Фактично весь процес поділяється на дві стадії: до отримання GMS і після. Тут ідеться про отримання спеціального Google GMS, який ще не можна офіційно випускати на пристроях, але вже можна завантажити і почати процес інтеграції.

До отримання GMS потрібно перевірити пристрій на відповідність певним вимогам:

  • CDD (Compatibility Definition Document) — деякі критерії CDD перевіряються за допомогою CTS та інших наборів тестів, але далеко не всі. Тому перевірка відповідності до CDD є окремим процесом, про який не варто забувати.
  • CTS (The Compatibility Test Suite) — це набір автоматичних тестів, про який ми згадували раніше.
  • CTS Verifier — це додаток до CTS, а саме ручні тести. Їх значно менше, аніж автоматичних, і вони стосуються функціональностей, які неможливо належно протестувати інакше.

Усі невідповідності мають бути усунені, окрім тих, які не можна подолати через певні обставини (наприклад, обмеження платформи або дефекти тестів). Дозвіл на ігнорування подібних результатів треба попередньо отримати від Google, зареєструвавши відповідний запит у Google Issue Tracker. Попередньо, звісно, слід пошукати, чи подібної проблеми вже не зареєстровано до вас. Якщо представник Google «дає добро» на ігнорування цієї проблеми, вона реєструється як «waiver» («відмашка»). На жаль, далеко не завжди відповідь можна отримати швидко.

Після цього ви віддаєте пристрій на офіційне тестування і, якщо результат відповідає заявленому, отримуєте GMS. З цього моменту ви вже можете почати процес інтеграції додатка в систему, але ще не маєте права на продаж пристрою з ним. Треба пройти ще кілька перевірок:

  • GTS (Google Mobile Services Test Suite) — це набір тестів, які перевіряють, чи коректно працює GMS на пристрої після інтеграції (наприклад, програвання відео різної якості з додатком Google Play Videos).
  • CAT — це тести для перевірки якості запису/відтворення звуку.

Під час цих перевірок, на відміну від попередніх, ми не маємо доступу до вихідного коду, і відповідно відлагоджувати проблеми набагато складніше.

Висновки

Можливо, вищеописаний процес не надто простий, але таким чином Google вдається гарантувати:

  • Правильну роботу Google-сервісів.
  • Сумісність з абсолютною більшістю доступних додатків. Відповідно, користувач буде стикатися зі значно меншою кількістю проблем при використанні пристрою, що позитивно вплине на його задоволення продуктом.

Безпеку зберігання особистих даних. Більшість пристроїв на Android містять персональну інформацію наприклад, паролі, дані банківських карт тощо. Пройдена сертифікація підтверджує, що дані користувачів, збережені на пристрої, будуть у безпеці, а критичні вразливості будуть швидко вирішені (відносно недавній приклад — Stagefright).

Звісно, це лише невелика частка інформації з цієї теми, але її має бути достатньо для загального розуміння процесу. Якщо у вас будуть додаткові питання, додавайте в коментарі — спробую відповісти.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn



7 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Очень полезная статья, как раз собирался производить мобильные прыстрои

Эти гугл сервисы только батарею потребляют безмерно. Зачем вообще они нужны? Есть аналоги, которые можно просто выкинуть из запущенных процессов, и они там не будут появляться без разрешения владельца.
Нужна разве что, иногда — заглушка гугл плея, чтобы некоторые программы запускались.

Взагалі GMS інтегрується досить глибоко в систему і має значно більші можливості ніж інші програми в свободі роботи на пристрої. З того що надає — як бачили вище інтеграцію з усіма сервісами Google. Також максимально швидку реакцію на оновлення додатків, обробку push notifications і масу інших речей які використовуються розробниками додатків.
Просто викинути у вас швидше за все не вийде, бо поламає роботу більшості додатків які використовують GMS.
А те що батарею їсть — так в мене на API 15 теж бувають періодичні глюки з висаджуванням батареї..
Не можна виключати що софт який встановлюється на телефон написаний «погано» що також може суттєво зменшувати час роботи від батареї. Так що спробуйте передивитись що у Вас встановленно на телефоні.
Якщо версія Android 5.0 і новіша — попросіть девів встановити
github.com/google/battery-historian
нехай зроблять bugreport з Вашого пристрою і вже разом ознайомитесь з пожирачами вашої батареї.

Они потребляют батарею, потому что через них работают некоторые сервисы, например пуш уведомления, аналитика и т. п., и другие приложения их активно юзают. По факту они, скорей, экономят заряд батареи, так как каждому приложению не приходится держать свои сервисы для этих целей — суммарно отдельные сервисы в каждом приложении сожрали бы намного больше заряда.

Да, но пользователь не может выбрать ненужные ему. Они все работают скопом. Еще и обновляться могут без спроса. Например, зарядки моего планшета с гугл сервисами хватает на 2,5-3 дня, преимущественно, в режиме ожидания. Без оных (шел без них с завода) — потребляет 1-1,5% в день. Это может, конечно персональный случай (я кроме вайбера и фаервола/антивируса, в режиме ожидания ничего не использую), но он весьма показателен для меня лично.
Думаю, тем людям, которые хотят быть полными владельцами своих устройств (насколько это вообще возможно на андроиде), лучше использовать программы со своими сервисами. Их, по крайней мере, возможно завершить/удалить по желанию.

Вы не поняли суть моего ответа: если бы не гугл сервисы — то каждое приложение держало бы СВОИ пуши, СВОЮ аналитику и прочее. В результате они все жрали бы намного больше, потому что каждый сам за себя и никакой оптимизации. Выбрать пользователь может всегда: просто удалить ненужные приложения. А удаляя гугл сервисы вы просто ломаете некоторую функциональность в самих программах.

Я понял суть. Но уши приложений можно отключить как при установке, так и во время работы, просто завершив процесс приложения или заблокировав их фаерволом.
Да и далеко не все приложения следят так, как гугл сервисы. Скорее даже верно изречение, что гугл сервисы — чемпион по слежке за пользователем.
Я выше привел пример того, что приложения, которые я использую (даже, как вы написали, не оптимизированные) потребляют на порядок-полтора меньше ресурсов. И никакой особо функциональности в них не поломано — кроме, разве что, микроплатежей для некоторых игр.

Підписатись на коментарі