Analyse du concours de quiz Android du stand HeadHunter au Mobius 2018 Moscou

Aujourd'hui, nous démontons le quiz Android de la conférence pour les développeurs mobiles Mobius 2018 Moscou.

Le format était assez standard: 15 questions avec 4 réponses possibles. Délai de 30 secondes pour chaque question.



C'est parti!


Question 1


La réponse
Astra boy/Bender 


Explications
Tout le monde sait que chaque nouvelle version d'Android reçoit un nom de code pour les bonbons et ils sont attribués par ordre alphabétique (Cupcake, Donut, Eclair, etc.).
Cependant, au départ, les développeurs prévoyaient de nommer les versions en utilisant des noms de robots fictifs. Par conséquent, les premières versions d'Android s'appelaient Astra boy et Bender . Il s'agissait de versions internes avant la sortie de la version 1.0 sans nom. Cependant, pour certaines raisons, le vecteur a changé et la version 1.1, il a été décidé d'appeler Petit Four . Ce fut la première version douce d'Android. Et déjà à partir de la prochaine version (Cupcake 1.5), les noms ont commencé à être attribués dans un ordre alphabétique.

Source

Statistiques de réponse





Question 2


La réponse
 Marshmallow 


Explications
Avec la sortie de l'API 23 (Marshmallow), Android a introduit le nouveau concept d' autorisations d'exécution . Cette fonctionnalité était censée ajouter de la transparence pour les utilisateurs aux autorisations accordées à l'application. Avant la sortie de «guimauves», les autorisations étaient délivrées au moment de l'installation de l'application.

Source

Remarque, Android contient plus de 100 autorisations uniques.


Statistiques de réponse





Question 3


La réponse
 measure() 


Explications


mesure () - appelée pour déterminer les exigences de taille de la vue et de tous ses enfants.

onMeasure () - appelé à partir de measure () pour effectuer le travail réel de dimensionnement de la vue.

onLayout () - appelé pour placer un élément à l'intérieur d'un conteneur

onDraw () - appelé pour rendre le contenu de View.

Vous trouverez plus d'informations sur le rendu de la vue ici .


Statistiques de réponse





Question 4



La réponse
 isUserSmell() 


Explications
Il n'y a pas de méthode isUserSmell () dans le SDK. Peut-être à l'avenir, avec l'avènement de capteurs appropriés sur les appareils ...

Voyons ce que font les autres méthodes:

isUserMonkey () - la méthode est conçue pour vérifier si l'utilisateur est un test dans le cadre du test de singe automatisé.

isUserAGoat () - à partir de l'API 21, vérifie si l'application Goat Simulator GoatZ est installée. Sur les versions ci-dessous, la méthode retourne toujours false. Situé dans la classe android.os.UserManager .

isFinalCountdown () - la méthode ouvre le clip du groupe Europa «The Final Countdown». Ajouté à l'API 26. Situé dans la classe android.widget.Chronometer .


Statistiques de réponse





Question 5



La réponse
 private static final int mobius = 2018 


Explications
Cette connaissance testée du mot clé const , qui est utilisé pour déclarer les compile time constants . Dans le monde Java, cela correspond aux modificateurs static final .


Statistiques de réponse





Question 6


La réponse
 sdpi 


Explications
Alors que les développeurs ont entendu xhdpi et mdpi , les choses sont différentes avec tvdpi . Il n'a pas gagné en popularité, et donc il y a très très peu d'appareils dans la catégorie tvdpi , mais ils l'ont été. Le plus célèbre d'entre eux est le Nexus 7 (2012).

Source

Notez que tvdpi a un coefficient de 1,3 par rapport à mdpi.


Statistiques de réponse





Question 7


La réponse
       apk 


Explications
AAPT (Android Asset Packaging Tool) - Un outil Android pour créer des fichiers .APK.

Conditionnellement, le travail de cet utilitaire peut être divisé en deux étapes:
- Compilation. A ce stade, des ressources sont en cours de préparation: la classe R est générée, les ressources XML sont traduites au format binaire, traitement PNG, etc.
- Emballage (liaison). Tous les fichiers intermédiaires créés au stade de la compilation sont regroupés dans l'APK.

Quant aux options de réponse restantes:
- L'obfuscation est généralement effectuée par proguard
- Le bytecode Java est le résultat du compilateur Java, qui traduit le code source en bytecode Java.
- Le bytecode Dalvik est le résultat du compilateur Dalvik (DX, D8), qui traduit le .class (Java bytecode) en .dex (Dalvik bytecode). Le code source dans le bytecode Dalvik n'est pas diffusé directement.

Le processus de création d'une application Android est décrit dans la documentation .


Statistiques de réponse





Question 8



La réponse
 RIGHT OUTER JOIN 


Explications
Parmi les éléments ci-dessus, RIGHT OUTER JOIN n'est pas pris en charge.

Source


Statistiques de réponse





Question 9



La réponse
 2x 


Explications
NomDensité
ldpi0,75
mdpi1
tvdpi1,3
hdpi1,5
xhdpi2
xxhdpi3 et 2.6
xxxhdpi4 et 3,5



Statistiques de réponse





Question 10


La réponse
 ART 


Explications
ART (Android RunTime) est le nouveau runtime de bytecode DEX qui remplace Dalvik. La différence la plus significative entre Dalvik et ART est que Dalvik est basé sur la compilation JIT ( Just-in-Time ), tandis que ART est basé sur AOT ( Ahead-of-Time ). De manière générale, cela signifie que Dalvik traduit le code d'octet dalvik en code machine à chaque exécution de l'application, et ART le fait une fois, lors de l'installation de l'application, en stockant le résultat dans la mémoire de l'appareil. Cela entraîne un lancement et une exécution plus rapides des applications sur ART par rapport à Dalvik, mais cela augmente également le temps d'installation de l'application. En outre, ART a effectué l'optimisation GC et a également ajouté un certain nombre de fonctions pour améliorer le développement et le débogage des applications.

ART et Dalvik


De plus, il convient de noter que ART comprend également un compilateur JIT qui complète AOT. En savoir plus ici .


Statistiques de réponse





Question 11


La réponse
 YAGNI 


Explications
KISS (Keep It Simple, Stupid) - ne vous compliquez pas!

SEC (ne vous répétez pas), DIE (la duplication est mauvaise) - ne répétez pas!

WTF (le montant de «chazan» par seconde) est une unité de mesure de la qualité du code pour une revue.

YAGNI (vous n'en aurez pas besoin) - vous n'en aurez pas besoin!


Statistiques de réponse





Question 12


La réponse
 Application Not Responding 


Explications
ANR (Application Not Responding) - un problème qui se produit lorsque le thread principal de l'application ne peut pas traiter les événements utilisateur et redessiner l'interface utilisateur.

Sous Android, la réactivité d'une application est surveillée par les services système ActivityManager et WindowManager . Si l'une des conditions suivantes est remplie:

- il n'y a pas de réaction aux événements entrés (événements tactiles et appuyés),
- BroadcastReceiver ne se termine pas dans les 10 secondes,

le système informera alors l'utilisateur du problème en affichant la boîte de dialogue ANR correspondante.


Statistiques de réponse





Question 13


La réponse
 Size & mode 


Explications
MeasureSpec est conçu pour transférer les exigences de taille des composants de vue parent à enfant. Ces exigences sont compilées en deux dimensions: largeur et hauteur. Les valeurs pour chacune des mesures sont composites: la première partie contient des informations sur l'espace disponible (en pixels), la seconde partie contient des restrictions sur l'utilisation de l'espace disponible. Ces restrictions peuvent inclure les éléments suivants:

MeasureSpec.UNSPECIFIED - aucune restriction, la vue peut prendre n'importe quelle taille dont elle a besoin.

MeasureSpec.EXACTEMENT - les tailles exactes sont définies, voir ces bordures seront données.

MeasureSpec.AT_MOST - Tailles maximales déterminées. La vue peut être aussi grande qu'elle le souhaite, mais jusqu'à la taille spécifiée.


Statistiques de réponse





Question 14


La réponse
 Linux Kernel 


Explications

Noyau Linux (noyau Linux) - cette couche assure le fonctionnement du système et est responsable de la sécurité, de la gestion de la mémoire, des processus, et fournit également une pile réseau et un modèle de pilote (pilote d'affichage, pilote de caméra et autres pilotes).

Les bibliothèques (bibliothèques) sont une couche intermédiaire de logiciels conçue pour fournir des fonctionnalités de base pour des applications telles que la prise en charge des formats de fichiers, le codage et le décodage des informations (par exemple, les codecs), le rendu des graphiques, etc. (Surface Manager, Media Framework, SQLite et autre).

Android Runtime - situé au même niveau que les bibliothèques. Les composants clés ici sont Dalvik VM et un certain nombre de bibliothèques principales (bibliothèques principales).

Cadre d' application - niveau du cadre d'application. C'est à travers des frameworks d'application que les développeurs ont accès aux API qui se trouvent en dessous du niveau. Il s'agit notamment de: ActivityManager, Gestionnaire de packages, Gestionnaire de fenêtres, etc.

Applications - le niveau des applications, à la fois de base (préinstallées sur le système d'exploitation: navigateur, calendrier, contacts, etc.) et installées par l'utilisateur.

A noter, les auteurs du quiz sont de la vieille école, car dans la documentation officielle, les couches sont mises en évidence d'une autre manière: source.android.com/devices/architecture .


Statistiques de réponse





Question 15


La réponse
 invokeabstract 


Explications
goto - passez à une autre instruction.

invokeinterface - utilisé pour appeler les méthodes d'interface.

invokestatic - utilisé pour appeler des méthodes statiques.

Description des autres instructions .


Statistiques de réponse



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


All Articles