2011-09-23 12 views
7

私はアンドロイドのデバイスドライバの開発の一部になります。準備のために、私は基礎を掴み、これに対する私の技能を向上させたいと思う。Androidデバイスドライバの開発 - エントリーポイント

私はこの2年間、VBとJAVAを使っていましたので、私のCプログラミングには自信がありません。 Linuxデバイスドライバは私にとっても新しい世界です。

現在、さまざまなフォーラムで見つかったヒントによれば、以下のリソースは良い出発点でした。

Q1:この件に関するご意見をお聞かせください。

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

Q2:あなたはアンドロイドのための具体的なチュートリアルを知っていますか?

また、ここで私が学ぶべきアンドロイドの特定のドライバがあります。

  1. USB
  2. ブルートゥース
  3. 無線LAN
  4. カメラ

お時間をいただき、ありがとうございます!

+0

を獲得することは常に良いことだ忘れないでください:http://stackoverflow.com/questions/4953452/how-to-write-ドライバーフォーアンドロイド。しかし、ここにはより多くの情報があります(どちらか良い答えはありません)。 –

答えて

5

あなたが言及した最初の本はとても良いです(USBとネットワークはそこに記述されています)。
/Documentation/kernel-docs.txtカーネルソース(ここでも利用可能:https://www.kernel.org/doc/Documentation/kernel-docs.txt)私はお勧めし

他の本がでている

+0

ありがとう、私はそのファイルが役に立ちました。(カーネルソース/Documentation/kernel-docs.txt) – quiel

5

私は、カスタムプラットフォームにAndroidのカーネルとドライバのポートに持っていました。 Android Kernelは基本的にLinux Kernel(2.6.x)ですが、いくつか変更されています。カーネルとドライバは主にC言語で記述されているため、そのドライバに取り込まなければなりません。すでに他の言語での経験がある場合は、その言語も経験します。 WEBには、そのことやチュートリアルに関する書籍がたくさんあります。その "ポインタ"のすべてを快適に使うことを忘れないでください。これはC言語の主なものです。Linuxカーネルは、データ構造体へのポインタがいっぱいであれば、データ構造体にパックされている関数へのポインタです。

私は必要な情報と知識をどのように得ているのですか? Linuxカーネルの場合、O'Reillyの書籍は素晴らしいです。私は、デバイスドライバのためにすべての時間を参照してください1は、以下のとおりです。
「Linuxカーネルの理解」
「Linuxデバイスドライバ」

Androidのカーネルのものを書くことに非常に特定のリソースのために、私はそれを探してきたように何ヶ月もLinuxのリソースを使用して終わり、私は仕事を終えました。

幸運、楽しみを持っているし、これは非常によく似ているあなたは新しいスキル

関連する問題