Maison  >  Article  >  tutoriels informatiques  >  Apprenez à développer des pilotes de périphériques Android

Apprenez à développer des pilotes de périphériques Android

WBOY
WBOYavant
2024-01-08 23:58:05982parcourir

Comment apprendre le développement de pilotes Android

Avec le développement rapide des smartphones, en particulier le développement explosif des smartphones Android, le poste d'ingénieur pilote Android est un poste de plus en plus populaire, et c'est un poste qui mérite d'être attendu avec impatience, car vous pourriez être impliqué dans le développement d'un téléphone mobile. Cela peut changer la vie de nombreuses personnes, alors avançons, singe pilote Android, et comment devenir un excellent singe pilote Android. Laissez-moi exprimer mon opinion, j'espère que tous les internautes ne feront pas d'erreurs facilement.

Connaissance de base des pilotes Android

Tout d'abord, en tant que programmeur de pilotes Android, vous devez clairement comprendre ce que vous allez faire, les connaissances de base que vous devez utiliser dans la vie quotidienne, il est toujours très nécessaire de comprendre le cadre de base d'Android, et vous aussi Il est nécessaire de comprendre les bases de la programmation sous Linux, car à proprement parler, les pilotes Android sont basés sur des pilotes Linux. Je recommande fortement de lire Linux Device Driver 3rd Edition. Ce livre parle des connaissances de base des pilotes de périphériques sous Linux. programmeur, vous devez être capable de mieux comprendre ce livre, et j'ai lu ce livre encore et encore, parce que j'ai découvert qu'à chaque fois que je relis ce livre, j'apprends quelque chose de nouveau. Ce livre vaut la peine d'être lu, et. Je le recommande fortement avec cinq étoiles ; et vous devez également connaître la programmation C de base, si vous savez très bien lire et écrire certains programmes C, il serait préférable que vous connaissiez également quelques bases de Java, car le code de la couche Framework est étroitement lié au code de la couche pilote. Si vous comprenez un peu le code Java, vous constaterez que vous serez plus familier avec l'ensemble du cadre du pilote, les scripts de compilation Linux associés et le système de compilation Linux. Pour certaines raisons de développement commercial. , Le système d'architecture de fichiers d'Android peut être modifié par certains scripts de compilation. En ajoutant de nouveaux pilotes de périphériques, vous devez comprendre l'ensemble du système de compilation des pilotes, afin que l'écriture des programmes de pilotes soit plus claire !

Connaissance du framework de pilotes liés à Android/Linux

Afin d'en savoir plus sur les technologies que les programmeurs de pilotes Android doivent connaître, j'ai spécialement répertorié les exigences pour le recrutement de programmeurs Android de divers programmeurs de pilotes Android. Quelle entreprise dois-je choisir ? Les représentants des téléphones mobiles nationaux sont ZTE, Huawei, Coolpad ? , et Lenovo. , Xiaomi, Meizu et VIVO sont tous de très bons fabricants nationaux de téléphones mobiles, et les smartphones Android qu'ils développent sont de mieux en mieux. Je suis même allé examiner les besoins de recrutement des sociétés émergentes de smartphones Android, y compris Android. conditions de recrutement d'ingénieurs chauffeurs sur le site officiel de Smartisan, le site officiel de One Plus One n'a même pas de lien pour nous rejoindre. Je ne sais pas si l'entreprise entrepreneuriale est temporairement saturée de talents, ou pour une autre raison, mais il y en a. Aucune information sur le recrutement. Après avoir résumé, j'ai trouvé que les différences entre ces entreprises ne sont pas particulièrement grandes et qu'il n'y a pas besoin de capacités de débogage Android de base, vous devez également comprendre le cadre du pilote de chaque module Android. Les exigences pour les ingénieurs de pilotes Android d'une certaine technologie Hammer sont disponibles. Vous pouvez l'essayer. Le smartphone prétend être le meilleur téléphone mobile, ce qui est meilleur que les téléphones phares actuels, donc je suis plutôt à la recherche. hâte de le rejoindre ! Les ingénieurs de pilotes Android d'une certaine entreprise de riz ont également besoin de connaissances liées à Android/Linux. Les exigences de recrutement de ZTE et Android sont plus générales. Je suppose que c'est parce que le site officiel de ZTE ne trouve pas de recrutement d'ingénieurs de pilotes au début. Mon Dieu, il m'a fallu tellement d'efforts pour trouver les informations de recrutement pertinentes !

Connaissances pertinentes en matière de matériel et de communication

Le travail habituel d'un pilote Android consiste à déboguer divers périphériques. C'est un poste qui traite directement du matériel. Il vous oblige à comprendre les schémas de circuits, les principes d'affichage de base et les principes de base de l'imagerie de la caméra, etc. travail habituel. Connaissances de base pertinentes. Pour fabriquer un smartphone Android, vous devez également comprendre les connaissances de base liées à la communication, les principes des radiofréquences et les connaissances de base liées au modem. Ce n'est qu'en comprenant les connaissances matérielles pertinentes et les connaissances de base liées aux équipements de communication que vous pourrez écrire. mieux Ce n'est qu'avec le dernier pilote Android que vous pourrez déboguer des résultats plus satisfaisants !

J'adore le développement des pilotes et l'apprentissage continu

En fait, ce point est très important et doit être placé en premier. Tout d'abord, vous devez aimer ce travail pour pouvoir faire mieux. Cette phrase est vraiment vraie. se précipiter pour faire ce qu'ils veulent pour gagner de l'argent. En conséquence, ils peuvent finir par être très mécontents, et alors ils risquent de ne pas gagner d'argent. De nos jours, beaucoup de mes camarades de classe ont abandonné leurs spécialisations pour des emplois correspondants. les gens vont vendre de l'assurance, certains vont dans les usines en tant qu'ouvriers généraux, certains vont aux ventes et certains vont chercher un bol de riz en fer. Bien sûr, il n'y a pas de distinction entre les bons et les mauvais métiers. Quand je dis cela, je recommande principalement. que tout le monde s'y tienne premiers rêves ! Mon rêve est de créer un terminal mobile qui puisse changer la vie des gens et rendre le monde un peu différent grâce à moi. Les enfants, restons ensemble dans la réalisation du rêve ! De plus, être un ingénieur de pilotes Android nécessite un apprentissage continu et le maintien d'une passion à tout moment. Ce n'est que grâce à l'apprentissage continu que vous pourrez mieux accomplir les tâches quotidiennes de développement de pilotes et maintenir un sens aigu du développement. Je pense que Steve Jobs : Restez affamé, restez stupide. très bien dit. Cela a toujours été considéré comme ma devise pour m'inspirer à insister pour être un meilleur ingénieur de pilotes Android. Le but d'écrire ce blog est de partager certaines de mes petites opinions que je garderai à l'avenir. mettre à jour mon blog, partager des documents et des blogs liés au développement des pilotes et progresser avec la majorité des pilotes singes !

Séquence d'apprentissage de la programmation du pilote Windows

Vous en êtes encore trop loin. Il est trop tôt pour parler des pilotes du noyau maintenant. Ce cycle d'apprentissage est très long.

La programmation du pilote du noyau n'est pas une connaissance approfondie. Ce n'est rien de plus que de créer du code selon l'API et le framework du système. C'est juste que ces éléments fournissent des fonctions plus proches de la couche inférieure. Dans certains cas, cela est plus bénéfique et efficace. structure du programme. Juste élevé. Peu importe que quelque chose ne soit pas innovant ou non, il s'agit simplement de copier la gourde.

Par où commencer, l'itinéraire de base : Langage-》Algorithme-》Mécanisme de framework et programme WINDOWS-》Implémentation du noyau système, etc.

Certains des contenus mentionnés ci-dessous ont tous un principe commun, qui est de continuer à écrire du code et à déboguer du code, sinon tout sera vain. Un jour, j'ai eu un professeur de système d'exploitation qui m'a dit : « Si vous lisez un livre et vous demandez de le faire, si vous ne pouvez pas le faire, vous ne l'avez pas appris. »

La première étape : Puisque vous avez déjà proposé une direction, les langages à privilégier sont naturellement C et C++. Les deux sont obligatoires. Désormais le noyau WINDOWS est mixte, et de ce point de vue, vous devez connaître les deux. Pour les livres connexes, les Chinois peuvent acheter les livres C et C++ de Tan Haoqiang, qui sont relativement courts et adaptés pour débuter, et vous pouvez également lire des livres comme C++ PRIMER qui expliquent le C++ du point de vue du C++. Ensuite, afin d'avoir des bases solides en C et C++, vous pouvez lire des livres tels que EFFECTIVE C++/MORE EFFECTIVE C++/C Language Traps, etc., qui expliquent tous certaines expériences et techniques du niveau langage. ici n'implique pas une technologie diandienne, c'est juste la base linguistique la plus élémentaire.

Afin de faciliter l'apprentissage ultérieur, vous devez à ce stade apprendre des cours d'informatique de base, des structures de données, des réseaux informatiques, des systèmes d'exploitation, des principes de bases de données, des principes de composition, etc., et même quelques bases de mathématiques avancées et de mathématiques discrètes. Cela dépend de votre situation, c'est très important et a un grand impact sur votre développement ultérieur.

La deuxième étape : le programme WINDOWS. Familiarisez-vous avec le mécanisme d'implémentation du programme WINDOWS, tel que la réponse aux messages et le traitement des événements. Vous devez comprendre comment l'implémentation sous-jacente est implémentée, et pas seulement un concept. Les plus pertinents incluent le SDK WINDOWS, le framework MFC, etc. Les livres incluent "WINDOWS Programming" (le livre de 1 300 pages de Microsoft, bien que très épais, n'est rien de plus qu'un classique dans ce domaine. Bien sûr, il existe de nombreux livres nationaux, mais ils sont tous L'écriture est relativement simple et de nombreux endroits sont couverts d'un seul coup), "Insider MFC in a Simple Language", "VC Technology Insider", etc. Ce sont des livres qui expliquent le mécanisme de mise en œuvre sous-jacent de MFC. Ils sont plus pratiques. que de vous apprendre à faire glisser les contrôles. >C'est pour expliquer SOCKET. En fait, cet aspect est généralement abordé dans les manuels des programmes WINDOWS, mais beaucoup de gens ne le comprennent toujours pas. Pour se familiariser, il est quand même nécessaire de le lire. Pilote, cela se fait simplement sous un cadre fixe de WINDOWS, ce n'est pas grave.

La troisième étape : liée au noyau. Étant donné que WINDOWS n'est pas open source, il n'y a pas de code à examiner. La bonne nouvelle est qu'un système de type Windows comme REACTOS est désormais open source. Vous pouvez examiner l'implémentation du code et vous familiariser avec le fonctionnement du système d'exploitation. . Beaucoup de ces éléments impliquent des mécanismes liés à la sécurité, vous devez donc les découvrir par vous-même.

De plus, vous devez également comprendre comment le compilateur compile, comment l'éditeur de liens établit des liens, comment le système d'exploitation charge les fichiers, comment WINDOWS gère la mémoire et d'innombrables autres connaissances connexes. Celles-ci n'auront pas de valeur directe pour votre programme, mais une valeur indirecte. est illimité. Au cours du processus d'apprentissage, vous devez comprendre certaines méthodes de base de résolution de problèmes, des modèles de conception, etc. Ce sont les véritables technologies. Je suppose qu’il vous sera difficile de faire quelques recherches, mais ce qui précède suffit.

De nos jours, de nombreuses personnes doivent apprendre systématiquement lorsqu'elles apprennent, mais il faut aussi en comprendre le coût. Les progrès sur le front sont très lents, le cycle d'apprentissage est très long et il est difficile de persister. Dans quelle mesure avez-vous appris ? Une fois que vous avez appris à l'utiliser et que vous pouvez le faire et l'expliquer, vous pouvez continuer à étudier plus tard. N'utilisez pas NEW pendant plusieurs années sans savoir ce que NEW a fait.

Comment apprendre le développement de pilotes Linux

Développer tout

1. Alors, qu’est-ce qu’un pilote exactement et à quoi sert-il :

l Driver est une couche logicielle intermédiaire entre les périphériques matériels et les applications

l Il permet à un élément matériel spécifique de répondre à une interface de programmation interne bien définie tout en masquant complètement les détails de fonctionnement de l'appareil

l Les utilisateurs effectuent les opérations correspondantes via un ensemble d'appels standardisés indépendants des appareils spécifiques

l La tâche du pilote est de mapper ces appels système standardisés aux opérations spécifiques du périphérique spécifique sur le matériel réel

l Le pilote fait partie du noyau et peut utiliser des interruptions, du DMA et d'autres opérations

l Driver transfère les données entre le mode utilisateur et le mode noyau

2. Cadre de base du pilote Linux

Apprenez à développer des pilotes de périphériques Android

3. Les pilotes de périphériques sous Linux peuvent généralement être divisés dans les trois catégories suivantes

1) Appareil de caractère

a) Tous les appareils accessibles comme les flux d'octets sont implémentés via des appareils de caractères

b) Ils sont mappés en tant que nœuds dans le système de fichiers, généralement dans le répertoire /dev/

c) Inclut généralement la mise en œuvre d'appels système tels que open read write close

2) Bloquer les appareils

d) Fait généralement référence aux périphériques de stockage tels que les disques, la mémoire, Flash, etc. qui peuvent accueillir des systèmes de fichiers.

e) Les périphériques bloc sont également accessibles via le système de fichiers. La différence avec les périphériques caractères est que la façon dont le noyau gère les données est différente

.

f) Il permet l'accès sous forme de flux d'octets comme un périphérique de caractères, et peut également transférer n'importe quel nombre d'octets à la fois.

3) Périphérique d'interface réseau

g) Il s'agit généralement d'un périphérique matériel, mais il peut parfois s'agir d'un périphérique logiciel (comme une interface de bouclage). Ils sont pilotés par le sous-système réseau du noyau et sont responsables de l'envoi et de la réception des paquets de données.

h) Leur transfert de données n'est souvent pas orienté flux, il est donc difficile de les mapper à un nœud du système de fichiers.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer