Разработка драйвера устройства Android - точка входа - PullRequest
7 голосов
/ 23 сентября 2011

Я буду участвовать в разработке драйвера устройства для Android. В процессе подготовки я хочу понять основы и усовершенствовать свои навыки для этого.

Я был на VB и JAVA последние 2 года, поэтому не уверен в своем программировании на Си. Драйвер устройства для Linux - это новый мир для меня.

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

Q1: Могу ли я услышать ваши предложения по этому поводу.

  1. http://lwn.net/Kernel/LDD3/
  2. http://www.freesoftwaremagazine.com/articles/drivers_linux

Q2: Знаете ли вы учебные пособия для Android?

А также, вот конкретные драйверы Android, которые я должен изучить.

  1. USB
  2. Bluetooth
  3. Wi-Fi
  4. Камера

Спасибо за ваше время!

Ответы [ 2 ]

5 голосов
/ 23 ноября 2011

Мне пришлось портировать ядро ​​Android и драйверы на пользовательскую платформу. Ядро Android - это ядро ​​Linux (2.6.x) с несколькими модификациями. Ядро и драйверы в основном написаны на C, и вам придется в него войти. Если у вас уже есть опыт работы с другими языками, вы тоже справитесь с этим. Есть множество книг об этом и учебных пособий на веб-сайте. Не забудьте освоиться со всеми этими «указательными» вещами. Это главное в C. Ядро Linux, если оно заполнено указателем на структуры данных и даже больше, указателем на функции, упакованные в структуры данных.

Вот как я получил необходимую информацию и знания. Для ядра Linux книги О'Рейли великолепны. Тот, к которому я обращаюсь все время для драйверов устройств:
«Понимание ядра Linux»
«Драйверы устройств Linux»

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

Удачи, получайте удовольствие и не забывайте, что всегда полезно приобретать новые навыки

4 голосов
/ 17 ноября 2011

Первая книга, которую вы упомянули, очень хороша (там описаны USB и сеть).

Другие книги, которые я бы предложил, находятся в: исходном коде ядра /Documentation/kernel-docs.txt
(также доступно здесь: https://www.kernel.org/doc/Documentation/kernel-docs.txt)

...