Analyse des Android-Quizwettbewerbs vom HeadHunter-Stand auf der Mobius 2018 in Moskau

Heute zerlegen wir das Android-Quiz von der Konferenz für mobile Entwickler Mobius 2018 Moskau.

Das Format war ziemlich normal: 15 Fragen mit 4 möglichen Antworten. Zeitlimit von 30 Sekunden für jede Frage.



Lass uns gehen!


Frage 1


Die Antwort
Astra boy/Bender 


Erklärungen
Jeder weiß, dass jede neue Version von Android einen Codenamen für Süßigkeiten erhält und diese in alphabetischer Reihenfolge (Cupcake, Donut, Eclair usw.) zugewiesen werden.
Zunächst planten die Entwickler jedoch, die Versionen mit fiktiven Roboternamen zu benennen. Daher hießen die ersten Versionen von Android Astra Boy und Bender . Dies waren interne Releases vor der Veröffentlichung der unbenannten Version 1.0. Aus bestimmten Gründen hat sich der Vektor jedoch geändert und Version 1.1 wurde beschlossen, Petit Four zu nennen. Dies war die erste süße Version von Android. Und bereits ab der nächsten Version (Cupcake 1.5) wurden die Namen in alphabetischer Reihenfolge vergeben.

Quelle

Antwortstatistik





Frage 2


Die Antwort
 Marshmallow 


Erklärungen
Mit der Veröffentlichung von API 23 (Marshmallow) führte Android das neue Konzept der Laufzeitberechtigungen ein . Diese Funktion sollte den Benutzern Transparenz für die der Anwendung erteilten Berechtigungen verleihen. Vor der Veröffentlichung von „Marshmallows“ wurden zum Zeitpunkt der Anwendungsinstallation Berechtigungen erteilt.

Quelle

Beachten Sie, dass Android mehr als 100 eindeutige Berechtigungen enthält.


Antwortstatistik





Frage 3


Die Antwort
 measure() 


Erklärungen


Measure () - wird aufgerufen, um die Größenanforderungen der Ansicht und aller untergeordneten Elemente zu bestimmen.

onMeasure () - Wird von Measure () aufgerufen, um die eigentliche Größe der Ansicht zu ändern .

onLayout () - wird aufgerufen, um ein Element in einem Container zu platzieren

onDraw () - wird aufgerufen, um View-Inhalte zu rendern.

Weitere Informationen zum Rendern von View finden Sie hier .


Antwortstatistik





Frage 4



Die Antwort
 isUserSmell() 


Erklärungen
Das SDK enthält keine isUserSmell () -Methode. Vielleicht in Zukunft mit dem Aufkommen geeigneter Sensoren an Geräten ...

Mal sehen, was die restlichen Methoden bewirken:

isUserMonkey () - Mit dieser Methode soll überprüft werden, ob der Benutzer ein Test im Rahmen des automatisierten Affentests ist.

isUserAGoat () - Überprüft ab API 21, ob die Goat Simulator GoatZ-Anwendung installiert ist. In den folgenden Versionen gibt die Methode immer false zurück. Befindet sich in der Klasse android.os.UserManager .

isFinalCountdown () - Die Methode öffnet den Clip „The Final Countdown“ der Europa-Band. Es wurde zu API 26 android.widget.Chronometer . Befindet sich in der Klasse android.widget.Chronometer .


Antwortstatistik





Frage 5



Die Antwort
 private static final int mobius = 2018 


Erklärungen
Diese getestete Kenntnis des Schlüsselworts const , mit dem compile time constants deklariert compile time constants . In der Java-Welt entspricht dies static final Modifikatoren.


Antwortstatistik





Frage 6


Die Antwort
 sdpi 


Erklärungen
Während Entwickler xhdpi und mdpi gehört haben, sieht es bei tvdpi anders aus . Es hat nicht an Popularität gewonnen, und daher gibt es nur sehr wenige Geräte in der Kategorie tvdpi , aber sie waren es. Das bekannteste davon ist Nexus 7 (2012).

Quelle

Beachten Sie, dass tvdpi einen Koeffizienten von 1,3 relativ zu mdpi hat.


Antwortstatistik





Frage 7


Die Antwort
       apk 


Erklärungen
AAPT (Android Asset Packaging Tool) - Ein Android-Tool zum Erstellen von .APK-Dateien.

Bedingt kann die Arbeit dieses Dienstprogramms in zwei Stufen unterteilt werden:
- Zusammenstellung. In dieser Phase werden Ressourcen vorbereitet: Die Klasse R wird generiert, XML-Ressourcen werden in ein Binärformat übersetzt, PNG-Verarbeitung usw.
- Verpackung (Verknüpfung). Alle in der Kompilierungsphase erstellten Zwischendateien werden in die APK gepackt.

Wie für die verbleibenden Antwortoptionen:
- Die Verschleierung des Codes erfolgt normalerweise durch Proguard.
- Java-Bytecode ist das Ergebnis des Java-Compilers, der den Quellcode in Java-Bytecode übersetzt.
- Dalvik-Bytecode ist das Ergebnis des Dalvik-Compilers (DX, D8), der .class (Java-Bytecode) in .dex (Dalvik-Bytecode) übersetzt. Der Quellcode im Dalvik-Bytecode wird nicht direkt gesendet.

Der Prozess zum Erstellen einer Android-Anwendung wird in der Dokumentation beschrieben .


Antwortstatistik





Frage 8



Die Antwort
 RIGHT OUTER JOIN 


Erklärungen
Von den oben genannten wird RIGHT OUTER JOIN nicht unterstützt.

Quelle


Antwortstatistik





Frage 9



Die Antwort
 2x 


Erklärungen
NameDichte
ldpi0,75
mdpi1
tvdpi1.3
hdpi1.5
xhdpi2
xxhdpi3 und 2.6
xxxhdpi4 und 3.5



Antwortstatistik





Frage 10


Die Antwort
 ART 


Erklärungen
ART (Android RunTime) ist die neue DEX-Bytecode-Laufzeit, die Dalvik ersetzt. Der wichtigste Unterschied zwischen Dalvik und ART besteht darin, dass Dalvik auf der JIT - Kompilierung ( Just-in-Time ) basiert, während ART auf AOT ( Ahead-of-Time ) basiert. Im Allgemeinen bedeutet dies, dass Dalvik bei jeder Ausführung der Anwendung Dalvik-Bytecode in den Maschinencode übersetzt. ART führt dies einmal während der Installation der Anwendung aus und speichert das Ergebnis im Gerätespeicher. Dies führt zu einem schnelleren Start und einer schnelleren Ausführung von Anwendungen auf ART im Vergleich zu Dalvik, erhöht jedoch auch die Installationszeit der Anwendung. Darüber hinaus führte ART eine GC-Optimierung durch und fügte eine Reihe von Funktionen hinzu, um die Anwendungsentwicklung und das Debugging zu verbessern.

KUNST und Dalvik


Darüber hinaus ist anzumerken, dass ART auch einen JIT-Compiler enthält, der AOT ergänzt. Lesen Sie hier mehr darüber.


Antwortstatistik





Frage 11


Die Antwort
 YAGNI 


Erklärungen
KISS (halte es einfach, dumm) - mach es nicht komplizierter!

DRY (Wiederhole dich nicht), DIE (Duplication Is Evil) - wiederhole es nicht!

WTF (die Menge an „Chazan“ pro Sekunde) ist eine Maßeinheit für die Qualität des Codes für eine Überprüfung.

YAGNI (Du wirst es nicht brauchen) - Du wirst es nicht brauchen!


Antwortstatistik





Frage 12


Die Antwort
 Application Not Responding 


Erklärungen
ANR (Application Not Responding) - Ein Problem, das auftritt, wenn der Hauptthread der Anwendung keine Benutzerereignisse verarbeiten und die Benutzeroberfläche nicht neu zeichnen kann.

In Android wird die Reaktionsfähigkeit einer Anwendung von den Systemdiensten ActivityManager und WindowManager überwacht. Wenn eine der folgenden Bedingungen erfüllt ist:

- Es erfolgt keine Reaktion auf Eingabeereignisse (Berührungs- und Tastendruckereignisse).
- BroadcastReceiver wird nicht innerhalb von 10 Sekunden abgeschlossen.

Anschließend benachrichtigt das System den Benutzer über das Problem, indem der entsprechende ANR- Dialog angezeigt wird.


Antwortstatistik





Frage 13


Die Antwort
 Size & mode 


Erklärungen
MeasureSpec wurde entwickelt, um Größenanforderungen von übergeordneten auf untergeordnete Ansichtskomponenten zu übertragen. Diese Anforderungen werden in zwei Dimensionen zusammengestellt: Breite und Höhe. Die Werte für jede der Messungen sind zusammengesetzt: Der erste Teil enthält Informationen zum verfügbaren Speicherplatz (in Pixel), der zweite Teil enthält Einschränkungen für die Verwendung des verfügbaren Speicherplatzes. Diese Einschränkungen können Folgendes umfassen:

MeasureSpec.UNSPECIFIED - Keine Einschränkungen, die Ansicht kann jede benötigte Größe annehmen.

MeasureSpec.EXACTLY - genaue Größen sind definiert, diese Ränder werden angezeigt .

MeasureSpec.AT_MOST - Bestimmte maximale Größen. Die Ansicht kann beliebig groß sein, jedoch bis zur angegebenen Größe.


Antwortstatistik





Frage 14


Die Antwort
 Linux Kernel 


Erklärungen

Linux-Kernel (Linux-Kernel) - Diese Schicht stellt die Funktionsweise des Systems bereit und ist für Sicherheit, Speicherverwaltung, Prozesse sowie einen Netzwerkstapel und ein Treibermodell (Anzeigetreiber, Kameratreiber und andere Treiber) verantwortlich.

Bibliotheken (Bibliotheken) ist eine Zwischenschicht von Software, die grundlegende Funktionen für Anwendungen bereitstellt, z. B. Unterstützung für Dateiformate, Codierungs- und Decodierungsinformationen (z. B. Codecs), Rendern von Grafiken und vieles mehr (Surface Manager, Media Framework, SQLite und andere).

Android Runtime - befindet sich auf derselben Ebene wie Libraries. Die Schlüsselkomponenten hier sind Dalvik VM und eine Reihe von Kernbibliotheken (Kernbibliotheken).

Application Framework - Anwendungsframework-Ebene. Über Anwendungsframeworks erhalten Entwickler Zugriff auf die APIs, die unterhalb der Ebene liegen. Dazu gehören: ActivityManager, Paketmanager, Fenstermanager usw.

Anwendungen - Die Ebene der Anwendungen, die sowohl grundlegend (auf dem Betriebssystem vorinstalliert: Browser, Kalender, Kontakte usw.) als auch vom Benutzer installiert sind.

Beachten Sie, dass die Autoren des Quiz alte Schule sind, weil In der offiziellen Dokumentation werden die Ebenen auf andere Weise hervorgehoben: source.android.com/devices/architecture .


Antwortstatistik





Frage 15


Die Antwort
 invokeabstract 


Erklärungen
gehe zu einer anderen Anweisung.

invokeinterface - wird zum Aufrufen von Schnittstellenmethoden verwendet.

invokestatic - wird zum Aufrufen statischer Methoden verwendet.

Beschreibung anderer Anweisungen .


Antwortstatistik



Source: https://habr.com/ru/post/de434210/


All Articles