Développement de navigateur Android! Les questions d'entrevue BAT les plus complètes sont triées et j'ai accepté l'offre de rejoindre le poste

Préface

Aujourd'hui, je vais partager avec vous plusieurs méthodes de mise en œuvre des idées les plus fortes de TIM. Dans cet article, j'utiliserai ioctl pour interagir avec le pilote de classeur pour réactiver le nouveau service keep-alive de la manière la plus rapide et éviter au maximum les échecs de keep-alive. Dans le même temps, je partagerai également avec vous comment je peux réaliser rapidement le fonctionnement avancé du classeur ioctl sans connaître le classeur.

Avertissement: cette méthode de maintien en vie ne peut plus rester en vie dans les systèmes Android personnalisés tels que MIUI et ne peut vivre que dans le simulateur la plupart du temps . Cependant, cette solution est toujours utile pour rester en vie avec notre système Android personnalisé léger et certaines applications au niveau du système.

Alors que les principaux fabricants de téléphones mobiles du camp Android attachent une grande importance à la durée de vie de la batterie, la conférence sur la téléphonie mobile il y a deux ou trois ans a pris l'anti-keep-alive comme argument de vente du système et a constamment proposé diverses solutions anti-keep-alive. , qui a conduit à la volonté actuelle de réaliser l'application keep-alive est tout simplement difficile à atteindre le ciel bleu, et nécessite même une équipe de se spécialiser dans ce domaine. Même les super applications comme WeChat doivent tomber sous la jupe anti-keep-alive. Autoriser l'activation en arrière-plan consomme trop d'énergie, et si l'activation en arrière-plan n'est pas autorisée, aucun message ne sera reçu. . Android trouve un moyen sauvage de le maintenir en vie, mais il en bloque une. Cependant, de nombreuses scènes ont de fortes exigences pour rester en vie. Certaines personnes ont réfléchi aux sentiments de nos développeurs. Pourquoi devrions-nous nous embarrasser?

Je pense que c'est une partie déraisonnable de la conception d'Android, la route peut être bloquée, mais il est toujours nécessaire de laisser une interface de maintien en vie unifiée. Que cette interface soit implémentée par Google ou un constructeur, elle vaut mieux que le système maladroit de gestion auto-démarrant ou JobScheduler. Je pense qu'au fond, il est inutile de laisser les développeurs d'applications essayer différentes façons de rester en vie. La manière de rester en vie est bloquée, mais rester en vie reste à faire, et le coût de la survie a également augmenté. C'est un gaspillage de la vie. Pot Android . (Uniquement au nom des opinions personnelles)

Les besoins de l'entreprise

Différentes entreprises ont des besoins différents. Il existe aujourd'hui sur le marché de nombreuses entreprises qui peuvent être à peu près divisées en deux catégories: les grandes et les petites entreprises, qui ont des besoins de talents différents lors du recrutement.

petite entreprise

Les petites entreprises ont généralement un besoin urgent de talents capables de se mettre au travail. Parce que l'entreprise est de petite taille et a un besoin urgent d'expansion rentable, elles doivent mettre en œuvre du travail et de la production, donc elles accordent plus d'attention à la capacité pratique. De manière générale, les entretiens avec les petites entreprises sont plus axés sur le développement Android. Ils accorderont plus d'attention à savoir si vous avez déjà réalisé des projets similaires, ou si vous avez une expérience de travail similaire, et si elles ont rencontré certains des problèmes qu'elles ont rencontrés. Pour vous préparer aux entretiens avec ces entreprises, en plus de certains points de connaissances de base, vous devez également prêter attention à certains des problèmes souvent rencontrés dans le développement Android, tels que la mise en cache, les problèmes courants de framework open source, etc.

grande entreprise

Par rapport aux petites entreprises qui viennent de démarrer ou qui viennent de démarrer, les grandes entreprises ont déjà eu une accumulation relativement importante de ressources et un système et un système relativement complets. Elles accordent plus d'attention à la capacité globale des talents et ont un potentiel de développement futur.

Dans l'interview, les grandes entreprises mentionneront presque les structures de données et les algorithmes, les réseaux informatiques, les systèmes d'exploitation et Java. Sur ces points, la structure des données et l'algorithme doivent être un tournant. La préparation de ce problème demande beaucoup de temps à s'accumuler. Il peut être difficile de tenir temporairement les pieds du Bouddha. C'est un mulet ou un cheval. Vous le saurez après le sortir pour une promenade. Est-ce un maître?

Par conséquent, de nombreuses entreprises sont obsédées par les algorithmes de test, tels que Baidu, Meituan et Taobao. L'entrevue entière peut vous demander d'écrire plus de 5 questions algorithmiques à la main. Ce point est principalement de dire à tout le monde que ce seuil détermine presque le niveau de l'emploi que vous recherchez enfin, donc je conseillerai à tous ceux qui recherchent un emploi lié à un programmeur de s'y préparer le plus tôt possible. Par exemple, faites glisser plus de leetcode ou d'autres questions similaires.

Ensuite, dans le reste des connaissances, je veux juste dire que vous n'avez pas besoin de les comprendre toutes, mais vous devez avoir une recherche approfondie sur un certain morceau de connaissance et être en mesure de répondre aux 4 à 5 supplémentaires de l'intervieweur. questions, "T" Les talents avec une structure de connaissances de type sont très populaires. Si tous les points de connaissance ne peuvent recevoir qu'une ou deux réponses, l'enquêteur aura le sentiment que votre niveau est comme celui-ci et que vous n'avez aucun esprit d'enquête. Le résultat de ce jugement est très effrayant, car une personne sans esprit d'enquête ne peut pas être un bon programmeur.

Je pense que les points de connaissance pour interviewer Android peuvent être triés en fonction de leur importance:
1. Structure des données et algorithme
2. Java, Android
3. Réseau informatique
4. Système d'exploitation
5. Base de données ou modèle de conception, etc.

Pour java , les choses les plus importantes sont la synchronisation multi-thread et asynchrone, le recyclage de la mémoire de la machine virtuelle java, les conteneurs et la connaissance orientée objet. Vous pouvez lire plusieurs livres spécialisés uniquement sur le multithreading et les machines virtuelles. Pour d'autres connaissances, vous pouvez en savoir plus sur les idées de programmation Java. Si vous ne comprenez pas, lisez d'autres blogs pour approfondir votre compréhension.

Pour Android , le mécanisme asynchrone, le dessin de la vue, le contrôle personnalisé et les quatre composants principaux sont tous très importants. Qu'il s'agisse d'Android ou de Java, il est préférable de regarder du code source, Java peut consulter le code source de certains conteneurs, Android peut consulter le code source de la communication asynchrone comme le gestionnaire, le boucleur, le message ou le code source de certains frameworks open source, c'est certainement un bonus de regarder le code source.

Les réseaux informatiques peuvent se concentrer sur les couches supérieures et la couche de transport doit se concentrer sur la recherche. De manière générale, si vous maîtrisez les points ci-dessus, il suffit de parler de plusieurs séries d'entretiens.En général, l'enquêteur peut le guider pour parler de certains points de connaissance dans lesquels vous êtes doué. Pour les quelques points de connaissance suivants, vous pouvez d'abord maîtriser certains des plus importants. Vous ne les rencontrez peut-être pas à chaque entretien, mais vous devez également vous préparer.

## Ce qui précède est de fournir quelques idées générales, parlons des points de connaissance de chaque pièce en détail ci-dessous

1. Structure des données et algorithme

Livres recommandés: Big talk sur la structure des données, la structure des données et l'analyse des algorithmes (description du langage Java), l'épée fait référence à l'offre, entre dans la Silicon Valley.

Site Web de brossage en ligne recommandé: Leetcode

Plan recommandé: faites principalement trois choses

1. Commencez par examiner la structure de données du grand discours et familiarisez-vous avec certains concepts de base. Ce livre ne traite que de certaines structures de données de base, telles que B-tree, B + tree, red-black tree. Blogues ou sites Web par vous-même. Recommandez une explication Algorithme de site Web - Algorithme de juillet. De plus, le traitement massif de données est également un sujet fréquemment examiné. Il combine une certaine connaissance de la structure des données et du système d'exploitation. Cela nécessite une préparation ciblée.

2. Ensuite, commencez à brosser les questions. Le plus recommandé est leetcode. Il est recommandé de brosser les questions en fonction de l'étiquette (comme la file d'attente, la pile, la table de hachage). Les questions sont de faciles à difficiles, et il est préférable de être capable de brosser une centaine de questions. Une question par jour prend au moins trois mois ou plus, donc cela prend beaucoup de temps et doit être préparé tôt. Le livre Entrer dans la Silicon Valley est organisé par thèmes, le sujet provient essentiellement de leetcode, qui peut être utilisé comme référence.

2. Ensuite, nous devons analyser l'implémentation du code source de certaines structures de données courantes (telles que les files d'attente, les piles, les hashmaps, etc.). Le livre sur la structure des données et l'analyse des algorithmes a quelques sujets, qui peuvent être préparés en conjonction avec certains blogs .

Comment devenir un architecte senior Android!

Les architectes doivent avoir la capacité d'abstraire la réflexion et l'analyse, ce qui est la qualité de base de l'analyse et de la décomposition du système. Ce n'est que grâce à cette capacité que l'architecte peut voir l'ensemble du système et contrôler la situation globale, ce qui constitue également la base de la formation de la vue d'ensemble de l'architecte. Comment avez-vous cette capacité? L'un vient de l'expérience et l'autre de l'apprentissage.

L'architecte doit non seulement avoir de l'expérience dans le domaine du problème, mais doit également avoir de l'expérience dans le domaine du génie logiciel. En d'autres termes, l'architecte doit être capable de comprendre avec précision les exigences, puis utiliser l'idée du génie logiciel pour transformer et décomposer les exigences en un diplôme qui peut être implémenté dans des langages informatiques. L'accumulation d'expérience nécessite un processus de temps, et personne ne peut vous aider dans ce processus, il a besoin de vous pour le traverser.

Cependant, si vous cultivez consciemment et absorbez continuellement l'expérience des prédécesseurs, vous pouvez toujours raccourcir ce cycle. C'est aussi l'une des motivations pour moi d'organiser des architectes pour avancer vers cette série.


Les connaissances et compétences nécessaires pour devenir architecte Android

Notes d'étude correspondant à la carte (rédigées à la main par Ali P8 Daniel, je suis responsable de l'assemblage en notes PDF)

Une partie de l'affichage du contenu

"Interprétation du Design Thinking du Framework Open Source"

  • table des matières
  • Conception de réparation à chaud
  • Conception de frameworks plug-in

    "Optimisation des performances à 360 ° dans tous les aspects"
  • Design thinking et optimisation de la qualité du code
  • Optimisation des performances du programme

Dans ... (img-WmluvtAs-1614434501377)]

  • Optimisation des performances du programme
    [Transfert d'images par lien externe ... (img-5bmvnzsf-1614434501379)]

Cet article a été inclus dans le projet open source: [ GitHub ], qui contient des itinéraires de programmation d'auto-apprentissage dans différentes directions, une collection de questions / visages d'entretien, et une série d'articles techniques, etc. Les ressources sont continuellement mises à jour. ..

Je suppose que tu aimes

Origine blog.csdn.net/fanzhang_vip0723/article/details/114194976
conseillé
Classement