Maison >interface Web >Questions et réponses frontales >Résumé des questions d'entretien technique les plus chaudes sur Android

Résumé des questions d'entretien technique les plus chaudes sur Android

藏色散人
藏色散人avant
2020-07-31 14:01:433188parcourir

Recommandé : "Résumé des questions d'entretien Android 2020 [Collection] "

Avant-propos

De nombreuses personnes n'ont peut-être jamais travaillé dans une entreprise Internet auparavant, ou ont peut-être travaillé dans une entreprise Internet pendant une courte période de temps. Je me demande quelles questions sont posées lors des entretiens techniques. dans les sociétés Internet ? De plus, je n'étais peut-être pas complètement préparé. J'ai été déconcerté par les questions de l'intervieweur quelques tours après l'entretien et j'ai abouti à un échec désastreux.

Ce qui suit est un résumé des questions d'entretien Android que j'ai compilées. Pour des raisons d'espace, je ne liste les questions que dans la section technologique chaude. Le reste des questions d'entretien sera mis à jour plus tard. et restez informé. J'ai mis à jour mes points de connaissances, et il m'a également fallu beaucoup de temps pour compiler cette collection d'interviews !

1. Componentisation

(1) Concept :

Componentization : consiste à diviser une application en plusieurs modules, chaque module est un composant, ou il peut s'agir d'une bibliothèque de base. est fourni pour que les composants dépendent. Au cours du développement, certains composants peuvent être débogués séparément. Les composants n'ont pas besoin de dépendre les uns des autres mais peuvent s'appeler les uns les autres. Une fois finalement publiés, tous les composants sont regroupés dans un apk sous la forme d'une bibliothèque. par la dépendance principale du projet APP.

(2) Origine :

  1. Les versions de l'APP sont itératives, de nouvelles fonctions sont constamment ajoutées, le métier devient complexe et les coûts de maintenance sont élevés
  2. Le couplage métier est élevé et le code est gonflé, il est difficile pour plusieurs personnes de collaborer et de développer au sein de l'équipe
  3. Le code de compilation Android est bloqué, et le couplage de code dans un seul projet est sérieux. Modifier un point nécessite une recompilation et. l'emballage, ce qui prend du temps et demande beaucoup de travail.
  4. Pratique pour les tests unitaires, vous pouvez modifier un module métier seul sans vous concentrer sur les autres modules.

(3) Avantages :

  1. La composantisation sépare les modules communs et les gère uniformément pour améliorer la réutilisation et diviser la page en composants avec une granularité plus petite. Le composant contient l'implémentation de l'interface utilisateur, et peut également inclure une couche de données et une couche logique
  2. Chaque composant peut être compilé indépendamment, accélérant la compilation, et empaqueté indépendamment.
  3. Les modifications au sein de chaque projet n'affecteront pas les autres projets.
  4. Les projets de bibliothèque d'entreprise peuvent être rapidement séparés et intégrés à d'autres applications.
  5. Les modules métier avec des itérations fréquentes adoptent une approche par composants. La recherche et le développement des secteurs d'activité ne peuvent pas interférer les uns avec les autres, améliorer l'efficacité de la collaboration, contrôler la qualité des produits et améliorer la stabilité.
  6. Développement parallèle, les membres de l'équipe se concentrent uniquement sur de petits modules développés par eux-mêmes, réduisant ainsi les couplages et facilitant la maintenance ultérieure.

(4) Problèmes de prise en compte :

Changement de mode : comment faire en sorte que l'application bascule librement entre le débogage individuel et le débogage global

Modules pour chaque entreprise après la composantisation peut être une application distincte (isModuleRun=false). Lors de la publication du package, chaque module métier est utilisé comme une dépendance de bibliothèque. Ceci est entièrement contrôlé par une variable dans le projet racine gradle.properties, isModuleRun=true. Le statut isModuleRun est différent, et l'application de chargement et AndroidManifest sont différents pour distinguer s'il s'agit d'un APK indépendant ou d'une bibliothèque.

Configurer dans build.grade :

Conflit de ressources

Lorsque nous créons plusieurs modules, comment résoudre les mêmes conflits de ressources dans le fichier la fusion des noms. Les noms en double des fichiers de ressources du module métier et du module de base provoqueront des conflits :

Chaque module a app_name, dans la construction de chaque composant. pour vérifier de force le préfixe du nom de ressource dans gradle. Corrigez le préfixe de ressource de chaque composant. Cependant, la valeur resourcePrefix ne peut limiter que les ressources en XML et ne peut pas limiter les ressources d'image. Comment référencer certaines bibliothèques et classes d'outils communes entre plusieurs modules

Communication entre composants

Après la composantisation, les modules sont isolés les uns des autres, comment effectuer des sauts et des méthodes d'interface utilisateur Pour appeler, vous pouvez utiliser le routage des frameworks tels que Alibaba ARouter ou WMRouter de Meituan

Chaque module métier n'a besoin d'aucune dépendance avant de pouvoir passer par le routage, ce qui résout parfaitement le couplage entre les entreprises

Nous le savons. les composants sont liés, alors comment obtenir les paramètres transmis par d'autres modules lors du débogage seul

Application

Lorsque les composants sont seuls Lors de l'exécution, chaque module forme son propre APK, ce qui signifie qu'il y aura plusieurs applications. Évidemment, nous ne voulons pas écrire autant de code à plusieurs reprises, nous n'avons donc besoin de définir qu'une seule BaseApplication, et les autres applications héritent directement de cette BaseApplication. C'est OK, vous pouvez également définir des paramètres publics dans BaseApplication
.

2. Plug-in

(1) Présentation

En ce qui concerne le plug-in, nous devons mentionner le problème que le nombre de méthodes dépasse 65535. Nous pouvons le résoudre. grâce à la sous-traitance Dex, et en même temps cela peut être résolu en utilisant le développement de plug-ins. Le concept du plug-in est que l'application hôte charge et exécute l'application plug-in.

(2 avantages)

Dans un grand projet, afin d'avoir une division claire du travail, différentes équipes sont souvent responsables de différentes applications plug-in, de sorte que la division du travail soit plus clair. Chaque module est encapsulé dans différents APK de plug-in et différents modules peuvent être compilés séparément, ce qui améliore l'efficacité du développement. Résolution du problème ci-dessus du nombre de méthodes dépassant la limite. Les bugs en ligne peuvent être résolus en lançant de nouveaux plug-ins pour obtenir un effet « hot fix ». Réduction de la taille de l'APK hôte.

(3 inconvénients)

Les applications développées sous forme de plug-ins ne peuvent pas être lancées sur Google Play, ce qui signifie qu'il n'y a pas de marché à l'étranger.

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