Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassung der wichtigsten technischen Interviewfragen für Android

Zusammenfassung der wichtigsten technischen Interviewfragen für Android

藏色散人
藏色散人nach vorne
2020-07-31 14:01:433136Durchsuche

Empfohlen: „Zusammenfassung der Android-Interviewfragen 2020 [Sammlung]

Vorwort

Viele Menschen haben möglicherweise noch nie oder nur kurze Zeit in einem Internetunternehmen gearbeitet. Ich frage mich, welche Fragen in technischen Vorstellungsgesprächen gestellt werden bei Internetunternehmen? Außerdem war ich möglicherweise nicht vollständig vorbereitet durch die Fragen des Interviewers innerhalb weniger Runden des Interviews und endete mit einem katastrophalen Misserfolg.

Das Folgende ist eine Zusammenfassung der von mir zusammengestellten Android-Interviewfragen. Ich liste die Fragen nur im Abschnitt „Hot Technology“ auf. Sie können mir später folgen und bleiben Sie auf dem Laufenden, und es hat mir auch viel Zeit gekostet, diese Interviewsammlung zusammenzustellen!

1. Komponentisierung

(1) Konzept:

Komponentisierung: besteht darin, eine APP in mehrere Module zu unterteilen. Jedes Modul ist eine Komponente oder kann eine Basisbibliothek sein wird bereitgestellt, damit Komponenten während der Entwicklung voneinander abhängen können. Die Komponenten müssen nicht voneinander abhängig sein, sondern können sich gegenseitig aufrufen. Bei der endgültigen Veröffentlichung werden alle Komponenten in Form einer Bibliothek gepackt durch die Hauptabhängigkeit des APP-Projekts.

(2) Ursprung:

  1. APP-Versionen sind iterativ, neue Funktionen werden ständig hinzugefügt, das Geschäft wird komplex und die Wartungskosten sind hoch
  2. Die Geschäftskopplung ist hoch und der Code ist aufgebläht, es ist schwierig für mehrere Personen, innerhalb des Teams zusammenzuarbeiten und zu entwickeln
  3. Der Android-Kompilierungscode steckt fest und die Codekopplung in einem einzelnen Projekt ist schwerwiegend. Das Ändern eines Punktes erfordert eine Neukompilierung Verpackung, was zeit- und arbeitsintensiv ist.
  4. Praktisch für Unit-Tests, da Sie nur ein Geschäftsmodul ändern können, ohne sich auf andere Module konzentrieren zu müssen.

(3) Vorteile:

  1. Durch die Komponentisierung werden gängige Module getrennt und einheitlich verwaltet, um die Wiederverwendung zu verbessern und die Seite in Komponenten mit geringerer Granularität aufzuteilen. Die Komponente enthält eine UI-Implementierung. und kann auch eine Datenschicht und eine Logikschicht umfassen
  2. Jede Komponente kann unabhängig kompiliert werden, was die Kompilierung beschleunigt, und unabhängig verpackt werden.
  3. Änderungen innerhalb jedes Projekts haben keine Auswirkungen auf andere Projekte.
  4. Wirtschaftsbibliotheksprojekte können schnell separiert und in andere Apps integriert werden.
  5. Geschäftsmodule mit häufigen Iterationen verfolgen einen Komponentenansatz und können sich nicht gegenseitig beeinträchtigen, die Effizienz der Zusammenarbeit verbessern, die Produktqualität kontrollieren und die Stabilität erhöhen.
  6. Bei der parallelen Entwicklung konzentrieren sich die Teammitglieder nur auf kleine, von ihnen selbst entwickelte Module, wodurch die Kopplung reduziert und die spätere Wartung erleichtert wird.

(4) Überlegungen:

Moduswechsel: So können Sie die APP frei zwischen individuellem Debugging und Gesamt-Debugging umschalten

Module für jedes Unternehmen nach der Komponentisierung kann eine separate APP sein (isModuleRun=false). Bei der Veröffentlichung des Pakets wird jedes Geschäftsmodul als lib-Abhängigkeit verwendet. Dies wird vollständig durch eine Variable im Root-Projekt gradle.properties gesteuert. Der Status von isModuleRun ist unterschiedlich, und die Ladeanwendung und AndroidManifest unterscheiden sich, um zu unterscheiden, ob es sich um eine unabhängige APK oder eine Bibliothek handelt.

Konfigurieren Sie in build.grade:

Ressourcenkonflikt

Wenn wir mehrere Module erstellen, wie können dieselben Ressourcenkonflikte in der Datei gelöst werden? Das Zusammenführen von Namen führt zu Konflikten:

Um doppelte Ressourcennamen zu vermeiden, fügen Sie im Build jeder Komponente das Präfix „xxx_“ hinzu. um das Ressourcennamenpräfix in Gradle zu erzwingen. Der Wert „resourcePrefix“ kann jedoch nur die Ressourcen in XML begrenzen und nicht die Bildressourcen So referenzieren Sie einige gängige Bibliotheken und Toolklassen zwischen mehreren Modulen

Komponentenkommunikation

Nach der Komponentisierung sind die Module voneinander isoliert, wie werden UI-Sprünge und Methoden ausgeführt? Zum Aufrufen können Sie Routing verwenden Frameworks wie Alibaba ARouter oder Meituans WMRouter

Jedes Geschäftsmodul benötigt keine Abhängigkeiten, bevor es durch das Routing gesprungen werden kann, wodurch die Kopplung zwischen Unternehmen perfekt gelöst wird.

Das wissen wir Komponenten sind miteinander verbunden, also wie man die Parameter erhält, die von anderen Modulen übergeben werden, wenn man alleine debuggt

Anwendung

Wenn die Komponenten alleine sind. Beim Ausführen bildet jedes Modul seine eigene APK, was bedeutet, dass es welche gibt Natürlich möchten wir nicht so viel Code schreiben, daher müssen wir nur eine BaseApplication definieren, und andere Anwendungen erben diese BaseApplication. Das ist auch in Ordnung.

2. Plug-in

(1) Übersicht

Wenn es um Plug-ins geht, müssen wir das Problem erwähnen, dass die Anzahl der Methoden 65535 überschreitet. Wir können es lösen durch Dex-Unterauftragsvergabe und gleichzeitig Dies kann durch die Verwendung von Plug-In-Entwicklung gelöst werden. Das Konzept des Plug-Ins besteht darin, dass die Host-APP die Plug-In-APP lädt und ausführt.

(2 Vorteile)

Um in einem großen Projekt eine klare Arbeitsteilung zu haben, sind oft verschiedene Teams für unterschiedliche Plug-in-APPs verantwortlich, so dass die Arbeitsteilung stimmt klarer. Jedes Modul ist in verschiedene Plug-in-APKs gekapselt und verschiedene Module können separat kompiliert werden, was die Entwicklungseffizienz verbessert. Das obige Problem, dass die Anzahl der Methoden den Grenzwert überschreitet, wurde gelöst. Online-Fehler können durch die Einführung neuer Plug-Ins behoben werden, um einen „Hotfix“-Effekt zu erzielen. Die Größe des Host-APK wurde reduziert.

(3 Nachteile)

Apps, die als Plug-Ins entwickelt wurden, können nicht auf Google Play gestartet werden, was bedeutet, dass es keinen Überseemarkt gibt.

Das obige ist der detaillierte Inhalt vonZusammenfassung der wichtigsten technischen Interviewfragen für Android. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen