Maison tutoriels informatiques connaissances en informatique Apprenez à développer des pilotes de périphériques Android

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

Jan 08, 2024 pm 11:58 PM

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le code d'erreur Windows & quot; invalid_data_access_trap & quot; (0x00000004) Comment résoudre le code d'erreur Windows & quot; invalid_data_access_trap & quot; (0x00000004) Mar 11, 2025 am 11:26 AM

Cet article aborde l'erreur Windows "invalid_data_access_trap" (0x00000004), un BSOD critique. Il explore les causes communes comme les pilotes défectueux, les dysfonctionnements matériels (RAM, le disque dur), les conflits logiciels, l'overclocking et les logiciels malveillants. Trou

ENE SYS ENTRETIEN: Conseils et astuces pour maintenir votre système en douceur ENE SYS ENTRETIEN: Conseils et astuces pour maintenir votre système en douceur Mar 07, 2025 pm 03:09 PM

Cet article fournit des conseils pratiques pour maintenir les systèmes ENE SYS. Il traite des problèmes courants comme la surchauffe et la corruption des données, offrant des mesures préventives telles que le nettoyage régulier, les sauvegardes et les mises à jour logicielles. Une maintenance sur mesure s

5 erreurs courantes à éviter pendant la mise en œuvre de l'ene sys 5 erreurs courantes à éviter pendant la mise en œuvre de l'ene sys Mar 07, 2025 pm 03:11 PM

Cet article identifie cinq pièges communs dans la mise en œuvre de l'ene SYS: planification insuffisante, formation inadéquate des utilisateurs, migration inappropriée des données, négligence en matière de sécurité et tests insuffisants. Ces erreurs peuvent entraîner des retards de projet, des défaillances du système

Comment modifier le registre? (Avertissement: utilisez avec prudence!) Comment modifier le registre? (Avertissement: utilisez avec prudence!) Mar 21, 2025 pm 07:46 PM

L'article traite de l'édition du registre Windows, des précautions, des méthodes de sauvegarde et des problèmes potentiels des modifications incorrectes. Problème principal: risques d'instabilité du système et de perte de données contre les modifications inappropriées.

Découvrez comment réparer l'avertissement de santé dans les paramètres Windows Découvrez comment réparer l'avertissement de santé dans les paramètres Windows Mar 19, 2025 am 11:10 AM

Que signifie l'avertissement de santé des motivations dans les paramètres Windows et que devez-vous faire lorsque vous recevez l'avertissement de disque? Lisez ce tutoriel Php.CN pour obtenir des instructions étape par étape pour faire face à cette situation.

Comment gérer les services dans Windows? Comment gérer les services dans Windows? Mar 21, 2025 pm 07:52 PM

L'article discute de la gestion des services Windows pour la santé du système, y compris le démarrage, l'arrêt, le redémarrage des services et les meilleures pratiques de stabilité.

Quelle application utilise ene.sys Quelle application utilise ene.sys Mar 12, 2025 pm 01:25 PM

Cet article identifie ENE.SYS comme un composant de pilote audio haute définition Realtek. Il détaille sa fonction dans la gestion du matériel audio, mettant l'accent sur son rôle crucial dans la fonctionnalité audio. L'article guide également les utilisateurs sur la vérification de sa légitimité

Pourquoi le Driver Asio.sys ne charge-t-il pas Pourquoi le Driver Asio.sys ne charge-t-il pas Mar 10, 2025 pm 07:58 PM

Cet article traite de l'échec du pilote audio Windows Asio.sys. Les causes courantes incluent les fichiers système corrompus, l'incompatibilité matérielle / pilote, les conflits logiciels, les problèmes de registre et les logiciels malveillants. Le dépannage implique des scans SFC, le pilote Upda

See all articles