L'écriture du pilote USB pour Android
Je développe une application android dans lequel j'ai besoin de vous connecter à un périphérique USB.
J'ai développé une application similaire sur windows et j'ai du pilote écrit en c.
Je veux développer un pilote USB pour mon application android.
Je veux savoir ce que les choses sont nécessaires pour développer des pilotes USB pour android.
ou
Puis-je réutiliser le code écrit en c en utilisant ndk.
Merci,
OriginalL'auteur NK- | 2012-10-05
Vous devez vous connecter pour publier un commentaire.
Première, Android est en fait juste Linux, donc si vous parlez de "l'écriture d'un pilote USB pour mon application Android", vous devriez plutôt dire "écrire un linux USB pilote pour votre périphérique".
Prochain, vous aurez accès à votre appareil d'une certaine façon. Ce que vous obtenez lorsque vous avez écrit le pilote USB pour linux est probablement un nœud de fichier dans /dev/. Je suppose vous souhaitez créer un pilote pour un non-standard périphérique USB (comme une souris/joystick/stockage de masse) pour qui Android ne fournit pas une belle api JAVA? Dans ce cas, vous devrez écrire une bibliothèque native (probablement basé sur le code c que vous avez déjà) et le compiler avec le NDK. L' .si le fichier que vous obtiendrez hors de lui peut être emballé dans des vous application Android, qui peut alors l'utiliser pour parler à votre périphérique USB.
Donc pour résumer:
pilote de périphérique usb -> créer un module dans le noyau ou intégrer un pilote dans votre noyau linux: c'est linux pilote usb de la programmation des choses, pour laquelle vous devriez être capable de trouver assez de guides sur le web. Vous devriez être en mesure de réutiliser des parties de votre code c si vous avez vraiment créé un driver usb windows.
natif wrapper de la bibliothèque pour accéder à votre appareil.donc, fichier, ou .dll si vous êtes habitué à la terminologie windows) -> créer un NDK projet qui ouvre le droit nœud de périphérique et correctement lit à partir de/écrit à votre appareil.
android app ->.donc, de fichiers et l'accès natif (c) les méthodes par la jni. Vous pouvez être en mesure d'utiliser des outils comme javah ou rasade de générer de la jni du code à partir de votre bibliothèque de fichiers d'en-tête.
OriginalL'auteur baske
La réponse précédente suppose que vous avez accès à la racine de votre périphérique et n'est pas adapté pour un déploiement de masse. Depuis la version de l'api 12 android a fourni une interface usb qui permet d'interagir avec certains appareils utilisant le faible niveau des canaux de contrôle et usb demande de tampons.
Il existe deux types de périphérique pris en charge
hôte usb périphériques
usb (android) accessoires
mode hôte est généralement bien sur les tablettes, les téléphones et ne peut soutenir, mais leur ablity pour soutenir le mode hôte est de moins en moins et très dépendant de la tension des exigences de la deviec en question
accessoire de mode est bizarre qu'il s'étend normes usb pour ajouter un échangeur qui identifie un accessoire comme un "android" accessoire
si les modes ci-dessus sont utilisables pour vous, ils sont de loin la meilleure option à l'aide d'un faible niveau de pilote c, à moins que vous havve le contrôle complet sur tous les périphériques qu'il sera installé.
Ce sont à la fois des api java et peut être trouvé documenté sur le google android site de documentation, en vertu de l'usb.
Non, vous ne le font pas. Code natif peut construit développé et déployé sans racine, mais l'accès au système de la propriété des ressources telles que des dispositifs de va nécessiter une racine. Non USB exemple serait d'utiliser un standard de linux sshd comme dropbear, ce qui est plausible, vous pouvez les trouver sur le play store, mais l'exécuter sur le standrard ports dont ils auraient besoin pour exécuter en tant que root.
OriginalL'auteur Neil