Как начать Программирование ядра Android?


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

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

3   51  

3 ответа:

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

обновление

для исходного кода android вы можете проверить одно из следующих...

  • или этот вопрос
  • или source.android.com
  • я лично копать этот плагин chrome для просмотра исходного кода Android.

    Если вы говорите о программировании на уровне платформы, т. е. расширениях фреймворка, собственных библиотеках и службах, есть несколько мест для начала. Первый - это новый и обновленный официальная страница проекта с открытым исходным кодом. Части О внесении вклада и переносе предоставляют некоторую базовую информацию об архитектуре платформы и о том, что вам нужно для работы с платформой. Следующий шаг-понять систему сборки для платформы и рамок. Есть некоторая ограниченная информация доступно в сети, Если вы google для него. Лучший способ, вероятно, изучить некоторые шаблоны makefile, доступные в проекте с открытым исходным кодом в папке сборки. Для получения информации о том, как добавить свои собственные модули с помощью Android.mk файлы это хорошая вещь, чтобы изучить сделать файлы для существующих проектов, таких как те, которые доступны во внешнем в проектах с открытым исходным кодом.

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

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

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

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