Доклад о плохой пригодности Android для портирования на другие платформы

Matt Porter, принимавший участие в портировании платформы Android на архитектуры MIPS и PPC, выступил на конференции Embedded Linux Conference с докладом, обобщающим полученный опыт. В целях оптимизации производительности и экономии дискового пространства, код Android изобилует разнообразными жестко прописанными настройками, которые в по всем правилам должны быть определены в файлах конфигурации. Например, список устройств и прав доступа к ним определен прямо в коде.

Кроме того, из Linux начинки удалены многие возможности, такие как поддержка hot-plug в udev (правила hot-plug реализованы на языке Си прямо в коде процесса init), из стандартной библиотеки убрана поддержка System V IPC, существенно урезана функциональность POSIX нитей, нет STL, вместо glibc используется урезанная по возможностям libc и т.д. Системы ввода и управления питанием изначально разработаны с допущениями, допустимыми только для карманных устройств. В пользовательском интерфейсе такие функции, как индикаторы Wifi и уровня сигнала, зашиты прямо в код базовой экранной оболочки, диалог настройки уровня громкости привязан к подсистеме телефонии, в зачаточном состоянии находятся средства для настройки Ethernet соединений.

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

©  OpenNet