Si vous parlez de programmation au niveau de la plate-forme, c'est-à-dire d'extensions de frameworks, de bibliothèques et de services natifs, il y a quelques endroits où commencer. Le premier est le nouveau site mis à jour page officielle du projet open source . Les parties concernant la contribution et le portage fournissent des informations de base sur l'architecture de la plate-forme et ce dont vous avez besoin pour travailler avec elle. L'étape suivante consiste à comprendre le système de construction de la plate-forme et du framework. Il y a quelques informations limitées disponibles sur le net si vous les cherchez sur Google. Le meilleur moyen est probablement d'étudier certains des modèles de fichiers makefile disponibles dans le projet open source dans le dossier build. Pour savoir comment ajouter vos propres modules en utilisant les fichiers Android.mk, il est bon d'étudier les fichiers make des projets existants tels que ceux disponibles en externe dans les projets open source.
Une fois que vous êtes allé jusqu'au bout de ce qui précède. C'est-à-dire que vous connaissez les bases du développement au niveau de la plate-forme et que vous savez comment construire vos propres modules pour la plate-forme, l'étape suivante consiste à étudier l'exemple d'extension du framework disponible dans le projet open source. Vérifiez le dossier vendor/sample/PlatformLibrary (edit, as of 2.2 the vendor stuff has moved to the device folder) dans le projet open source et lisez le fichier readme, étudiez le code, construisez-le et assurez-vous de le comprendre. Si ce n'est pas le cas, JNI, les bibliothèques partagées, le modèle de sécurité de la plate-forme et le cadre de base sont des domaines qui pourraient vous aider.
Je suppose que, puisque vous parlez de programmation du noyau, vous cherchez également des moyens de connecter du nouveau matériel à la plate-forme et d'exposer cette fonctionnalité aux applications en utilisant les extensions de votre cadre. Le matériel est fondamentalement ajouté comme un pilote Linux standard, donc le faire fonctionner sous Linux est une bonne première étape. La manière de l'intégrer dans le framework Android dépend ensuite du type de matériel. Vous pouvez soit utiliser un processus natif pour le contrôler (comparez le service de caméra ou le démon radio dans la plate-forme actuelle) ou simplement créer un thread dans l'application qui utilise votre extension de framework. Pour le matériel qui ne nécessite pas beaucoup d'attention, il est également possible de le brancher en utilisant une bibliothèque Android HAL.
J'espère que cela vous donnera une première idée de ce qu'il faut rechercher. Les listes de diffusion officielles sont par ailleurs la principale source d'informations sur le développement au niveau de la plate-forme. En particulier Portage Android y Plate-forme Android .