Как начать программирование Android Kernel? - PullRequest
52 голосов
/ 18 июня 2010

У меня 6 месяцев опыта работы с Android, разработки простых приложений на основе пользовательского интерфейса.Теперь я хочу писать приложения, ориентированные на ядро ​​Android.Например, я хочу разработать фреймворк, которого нет в Android.Чтобы достичь этого, мы должны написать код для ядра.Я не знаю, где и как начать программирование Android Kernel.

Если кто-нибудь знает, как его запустить, пожалуйста, помогите мне.

Ответы [ 3 ]

31 голосов
/ 18 июня 2010
  • xda-developers
    Очень крутое и очень активное место для всего, что связано со смартфоном.
  • kernelnewbies
    Как правило, хороший ресурс для начала изучения ядра Linux.
    (Вот из чего построен android)
  • Сборка ядра Android
    Источник ядра Android
  • Ядро Linux
    Онлайн-руководство по разработке драйверов среди множества других связанных тем.

Обновление

Исходный код Android можно проверить одним из следующих ...

или этот вопрос или source.android.com

Я лично копаю этот плагин Chrome для просмотра исходного кода Android.

11 голосов
/ 18 июня 2010

Если вы говорите о программировании на уровне платформы, т.е. расширения фреймворка, нативные библиотеки и сервисы есть несколько мест для начала. Первый - это новая и обновленная официальная страница проекта с открытым исходным кодом . В разделах о внесении вклада и портировании содержится некоторая базовая информация об архитектуре платформы и о том, что вам нужно для работы с платформой. Следующим шагом является понимание системы сборки для платформы и фреймворка. Есть некоторая ограниченная информация, доступная в сети, если вы Google для этого. Вероятно, лучше всего изучить некоторые шаблоны make-файлов, доступные в проекте с открытым исходным кодом в папке сборки. Информацию о том, как добавить свои собственные модули с помощью файлов Android.mk, было бы полезно изучить для создания файлов для существующих проектов, например, доступных для внешних в проектах с открытым исходным кодом.

Как только вы достигли уровня, указанного выше. То есть вы знаете основы разработки на уровне платформы и как создавать свои собственные модули для платформы. Следующим шагом является изучение примера расширения платформы, доступного в проекте с открытым исходным кодом. Изучите папку vendor / sample / PlatformLibrary (отредактируйте, начиная с 2.2, материал поставщика перемещен в папку устройства) в проекте с открытым исходным кодом и прочитайте файл readme, изучите код, соберите его и убедитесь, что вы его понимаете. Если вы этого не сделаете, JNI, общие библиотеки, модель безопасности платформы и базовая структура - области, которые могут вам помочь.

Полагаю, что поскольку вы говорите о программировании ядра, вы также ищете способы подключить новое оборудование к платформе и предоставить эту функциональность, используя расширения платформы для приложений. Аппаратное обеспечение в основном добавляется в качестве стандартного драйвера для Linux, так что заставить его работать под Linux - хороший первый шаг. Как подключить его к платформе Android после этого, зависит от того, какое это оборудование. Вы можете использовать собственный процесс для управления им (сравнить сервис камеры или радио-демон на текущей платформе) или просто создать поток в приложении, использующем ваше расширение платформы. Для оборудования, которое не требует особого внимания, можно также подключить его с помощью библиотеки Android HAL.

Я надеюсь, что это даст некоторые начальные указания о том, где искать Официальные списки рассылки являются основным источником информации о разработке на уровне платформы. Особенно Android-портирование и Android-платформа .

2 голосов
/ 09 июля 2010

Вы также должны проверить http://pdk.android.com. Я недавно нашел этот сайт, и он очень полезен.Хотел бы я знать об этом раньше.Я не уверен, насколько Google посвящает себя обновлению сайта, потому что, как упомянул BMB, материал поставщика был перемещен в папку устройства в 2.2, но на сайте PDK не было никаких изменений, отражающих это.Кроме того, некоторые ссылки не работают, но я смог найти все страницы, выполнив поиск по сайту в Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...