С недавними новостями о том, что Google все больше и больше перемещает возможности Android из ядра Android в сервисы Google Play, мне стало любопытно.
Если бы я сегодня загрузил исходный код Android со страницы AOSP и скомпилировал его, что бы я получил? Помимо бинарных драйверов для отдельных аппаратных устройств и различных сервисов Google, получу ли я рабочую версию Android?
Моя мотивация задать этот вопрос состоит в том, чтобы выяснить, какая часть опыта, который люди связывают с Android, на самом деле является частью AOSP.
Вам не нужно компилировать исходный код, чтобы понять, как выглядит AOSP; если вы загружаете эмулятор Android , он включает образ устройства по умолчанию, который представляет собой просто AOSP плюс несколько инструментов разработчика без каких-либо служб Google. Это сводится к:
Почти все основные платформы Android являются частью AOSP (например, система Intent, система разрешений, система Activity/Service, система Content Provider, система виджетов приложений, система Daydream, стандартные элементы пользовательского интерфейса, панель уведомлений, Dalvik VM, компилятор JIT, стандарт Java). библиотеки (Apache Harmony), OpenGL и Renderscript, мультимедийная среда, среда подключения, GPS, датчики и т. д.). Единственная значительная часть платформы, которая не является AOSP, — это Google Cloud Messaging, который обрабатывает службу Push, и службы Play Store, которые предоставляют обновления приложений, биллинг в приложении и игровые сервисы. Поскольку эти службы сильно зависят от серверов Google, они не могут быть частью AOSP. Все инструменты разработки Android также являются частью AOSP.
Некоторые важные приложения Google, которые не являются частью AOSP, включают Gmail, Google Maps, Youtube, Google Now, Google+, Chrome, Hangout и Play Store.
Вот несколько скриншотов из эмулятора Android 4.3:
Лаунчер с некоторыми стандартными виджетами достаточно сказал:
Все приложения в AOSP в значительной степени умещаются на одной странице, так было со времен раннего Android:
Все виджеты:
Сид
Мэтью Рид