Как запустить Android Kernel?
У меня 6-месячный опыт работы с Android, разработка простых приложений на основе пользовательского интерфейса. Теперь я хочу писать приложения, ориентированные на ядро ядра Android. Например, я хочу разработать фреймворк, которого нет в Android. Для этого нам нужно написать код для ядра. Я не знаю, где и как запустить Android Kernel.
Если кто-нибудь знает, как начать, пожалуйста, помогите мне.
Ответы
Ответ 1
- xda-developers
Очень удивительное и очень активное место для любого смартфона, связанного с смартфоном.
-
kernelnewbies
Вообще-то хороший ресурс для начала изучения Linux-ядра
(от чего и отстроен андроид)
- Построение ядра Android
Источник ядра Google
- Ядро Linux
Онлайн-руководство по разработке драйверов среди многих других связанных тем.
Update
Для исходного кода Android вы можете проверить одно из следующих...
или этот вопрос
или source.android.com
Я лично копаю этот хром-плагин для просмотра исходного кода Android.
Ответ 2
Если вы говорите о программировании на уровне платформы, т.е. расширениям рамок, родным библиотекам и службам есть несколько мест для начала.
Первая - новая и обновленная официальная страница с открытым исходным кодом . Части, посвященные внесению и переносу, предоставляют некоторую базовую информацию о архитектуре платформы и то, что вам нужно для работы с платформой. Следующий шаг - понять систему сборки для платформы и инфраструктуры. В сети есть какая-то ограниченная информация, если вы за нее заходите. Лучшим способом, вероятно, является изучение некоторых шаблонов makefile, доступных в проекте с открытым исходным кодом в папке сборки. Для получения информации о том, как добавить свои собственные модули с помощью файлов Android.mk, полезно изучить файлы для существующих проектов, таких как внешние, доступные в проектах с открытым исходным кодом.
Как только вы достигнете вышеуказанного. То есть вы знаете основы разработки уровня платформы и как создать свои собственные модули для платформы, следующий шаг - изучить пример расширения рамки, доступный в проекте с открытым исходным кодом. Проверьте папку vendor/sample/PlatformLibrary (отредактируйте, начиная с версии 2.2, материал поставщика переместился в папку устройства) в проекте с открытым исходным кодом и прочитайте файл readme, изучите код, создайте его и убедитесь, что вы его понимаете. Если вы этого не сделаете, JNI, общие библиотеки, модель безопасности платформы и основная структура - это области, которые могут вам помочь.
Я предполагаю, что, поскольку вы говорите о программном обеспечении ядра, вы также ищете способы подключения нового оборудования к платформе и раскрываете эту функциональность, используя расширения вашей инфраструктуры для приложений. Аппаратное обеспечение в основном добавлено как стандартный драйвер Linux, поэтому заставить его работать под Linux - это хороший первый шаг. Как подключить его к платформе Android после этого, зависит от того, какой тип оборудования он есть. Вы можете использовать собственный процесс для управления им (сравнить службу камеры или радио-демон в текущей платформе) или просто создать поток в приложении, использующем расширение вашей инфраструктуры. Для аппаратного обеспечения, которое не требует большого внимания, включение его в использование библиотеки Android HAL также может быть вариантом.
Надеюсь, это даст некоторые начальные указания о том, где искать. Официальные списки рассылки в остальном являются основным источником информации о развитии уровня платформы. Особенно Android портирование и платформа Android.
Ответ 3
Вы также должны проверить http://pdk.android.com. Недавно я нашел этот сайт и очень полезен. Хотел бы я знать об этом раньше. Я не уверен, как выделенный Google обновляет сайт, потому что, поскольку BMB упомянул, что материал поставщика был перемещен в папку устройства в 2.2, но никаких изменений на PDK-сайте не было, чтобы это отразить. Кроме того, некоторые из ссылок не работают, но я смог найти все страницы, выполнив поиск по сайту в Google.