2 votes

Comment utiliser les pilotes Linux C++ pour un capteur USB sur Android ?

Je travaille actuellement sur un projet Android, où je dois collecter des données à partir d'un bâton de thermomètre USB, appelé Temper, qui sera directement connecté à une tablette.

Ce dispositif dispose de pilotes Linux, écrits en C, et j'aimerais les utiliser pour mon application Android.

Savez-vous comment intégrer ces pilotes dans mon apk, ou autre part?

Ou est-il possible simplement d'utiliser le package android.hardware.usb (Android 3.0+), créant ainsi mon propre "pilote"?

Merci d'avance.

1voto

chrulri Points 1231

Option a) vous compilez uniquement les modules du noyau et utilisez les nœuds de périphérique spécifiques. Cela nécessiterait de rooter votre appareil et de compiler des modules de noyau spécifiques pour des noyaux spécifiques pour des appareils spécifiques (moche!)

Option b) vous écrivez une enveloppe autour des pilotes Linux en utilisant NDK et laissez l'enveloppe être l'intermédiaire entre l'interface hôte USB Android (Java) et les pilotes Linux (C) coordonnant tous les événements et distribuant les données.

J'ai commencé à travailler sur l'option b) pour les pilotes de périphériques usb-dvb, et c'est une quantité incroyable de travail à faire. J'espère que votre pilote n'est pas aussi compliqué.

Si votre pilote est très facile (seulement quelques fichiers et pas 10k+ lignes de code de bas niveau ou même d'assembleur) à traduire en Java, allez-y et utilisez Option c) réécrivez le code C en Java. Ainsi, vous n'avez pas besoin d'une enveloppe en C et vous pouvez éviter la partie NDK qui vous évite beaucoup de problèmes et de cauchemars.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X