HeadHunter站在Mobius 2018莫斯科的Android测验竞赛分析

今天,我们正在为移动开发人员Mobius 2018莫斯科发布大会上的Android测验。

格式很标准:15个问题,有4个可能的答案。 每个问题的时限为30秒。



走吧


问题1


答案
Astra boy/Bender 


说明
每个人都知道,Android的每个新版本都有一个糖果代号,它们是按字母顺序分配的(杯形蛋糕,甜甜圈,奶油饼等)。
但是,最初,开发人员计划使用虚拟机器人名称来命名版本。 因此,Android的第一个版本称为Astra boyBender 。 这些是未命名的版本1.0发行之前的内部发行。 但是,由于某些原因,此向量已更改,并且版本为1.1,因此决定将其命名为Petit Four 。 这是Android的第一个可爱版本。 并且已经从下一个版本(Cupcake 1.5)开始,名称开始按字母顺序分配。

来源

响应统计





问题2


答案
 Marshmallow 


说明
随着API 23(棉花糖)的发布,Android引入了运行时权限的新概念。 该功能应该为用户增加授予应用程序权限的透明度。 在“棉花糖”发布之前,权限是在安装应用程序时发布的。

来源

请注意,Android包含100多个唯一权限。


响应统计





问题3


答案
 measure() 


说明


measure() -调用以确定View及其所有子级的大小要求。

onMeasure() -从measure()调用以执行调整View大小的实际工作。

onLayout() -调用以将元素放置在容器内

onDraw() -调用以呈现View内容。

有关渲染视图的更多信息,请参见此处


响应统计





问题4



答案
 isUserSmell() 


说明
SDK中没有isUserSmell()方法。 也许将来,随着设备上合适的传感器的出现...

让我们看看其余方法的作用:

isUserMonkey() -该方法旨在检查用户是否是自动猴子测试框架内的测试。

isUserAGoat() -从API 21开始,检查是否已安装Goat Simulator GoatZ应用程序。 在以下版本中,该方法始终返回false。 位于android.os.UserManager类中。

isFinalCountdown() -该方法将打开Europa乐队的剪辑“ The Final Countdown”。 将其添加到API26。位于android.widget.Chronometer类中。


响应统计





问题5



答案
 private static final int mobius = 2018 


说明
测试了const关键字的知识,该关键字用于声明compile time constants 。 在Java世界中,这对应于static final修饰符。


响应统计





问题6


答案
 sdpi 


说明
尽管开发人员听说过xhdpimdpi ,但tvdpi却有所不同。 它没有得到普及,因此tvdpi类别中的设备很少,但是确实如此。 其中最著名的是Nexus 7(2012)。

来源

注意,相对于mdpi, tvdpi的系数为1.3


响应统计





问题7


答案
       apk 


说明
AAPT(Android资产打包工具) -用于创建.APK文件的Android工具。

有条件地,该实用程序的工作可以分为两个阶段:
-编译。 在此阶段,正在准备资源:生成类R,将XML资源转换为二进制格式,进行PNG处理等。
-包装(链接)。 在编译阶段创建的所有中间文件都打包在APK中。

至于其余的答案选项:
-混淆通常由proguard完成。
-Java字节码是Java编译器的结果,它将源代码转换为Java字节码。
-Dalvik字节码是Dalvik编译器(DX,D8)的结果,该编译器将.class(Java字节码)转换为.dex(Dalvik字节码)。 Dalvik字节码中的源代码不会直接广播。

文档中概述了构建Android应用程序的过程。


响应统计





问题8



答案
 RIGHT OUTER JOIN 


说明
其中,不支持RIGHT OUTER JOIN。

来源


响应统计





问题9



答案
 2x 


说明
名称密实度
分辨率0.75
分辨率1个
tvdpi1.3
分辨率1.5
xhdpi2
xxhdpi3和2.6
xxxhdpi4和3.5



响应统计





问题10


答案
 ART 


说明
ART(Android RunTime)是取代Dalvik的新的DEX字节码运行时。 Dalvik与ART之间最重要的区别在于Dalvik基于JIT( 即时 )编译,而ART基于AOT( 提前 )编译。 一般而言,这意味着Dalvik每次执行应用程序时都会将dalvik字节代码转换为机器代码,而ART在应用程序安装期间执行一次,将结果存储在设备内存中。 与Dalvik相比,这可以在ART上更快地启动和执行应用程序,但同时也增加了应用程序的安装时间。 此外,ART进行了GC优化,还添加了许多功能以改善应用程序开发和调试。

ART和达尔维克


此外,值得注意的是,ART还包括一个补充AOT的JIT编译器。 在此处了解更多信息。


响应统计





问题11


答案
 YAGNI 


说明
(保持简单,愚蠢)-不要使它复杂化!

(不要重复自己), DIE (复制就是邪恶)-不要重复!

WTF (每秒的“ chazan”量)是用于审核的代码质量的度量单位。

YAGNI (您将不需要它)-您将不需要它!


响应统计





问题12


答案
 Application Not Responding 


说明
ANR(应用程序无响应) -应用程序的主线程无法处理用户事件并重绘UI时发生的问题。

在Android中,应用程序的响应性由ActivityManagerWindowManager系统服务监视。 如果满足以下条件之一:

-对输入事件(触摸和按键事件)没有反应,
-BroadcastReceiver无法在10秒内完成,

然后系统将通过显示相应的ANR对话框将问题通知用户。


响应统计





问题13


答案
 Size & mode 


说明
MeasureSpec旨在将尺寸要求从父视图组件转移到子视图组件。 这些要求分为两个维度:宽度和高度。 每种测量的值都是合成的:第一部分包含有关可用空间的信息(以像素为单位),第二部分包含对可用空间使用的限制。 这些限制可能包括以下内容:

MeasureSpec.UNSPECIFIED-无限制,视图可以采用所需的任何大小。

MeasureSpec.EXACTLY-定义了确切的尺寸,将给出这些边界的视图。

MeasureSpec.AT_MOST-确定的最大大小。 视图可以任意大小,但最大可以指定大小。


响应统计





问题14


答案
 Linux Kernel 


说明

Linux内核(Linux内核) -此层提供系统功能,并负责安全性,内存管理,进程,还提供网络堆栈和驱动程序模型(显示驱动程序,相机驱动程序和其他驱动程序)。

库(库)是软件的中间层,旨在为应用程序提供基本功能,例如支持文件格式,编码和解码信息(例如,编解码器),渲染图形等等(Surface Manager,Media Framework,SQLite和其他)。

Android运行时 -与库位于同一级别。 此处的关键组件是Dalvik VM和许多核心库(Core Libraries)。

应用程序框架 -应用程序框架级别。 开发人员可以通过应用程序框架访问低于该级别的API。 其中包括:ActivityManager,程序包管理器,窗口管理器等。

应用程序 -基本的(预先安装在操作系统上的浏览器,日历,联系人等)并由用户安装的应用程序级别。

请注意,测验的作者是老派,因为 在官方文档中,这些层以另一种方式突出显示: source.android.com/devices/architecture


响应统计





问题15


答案
 invokeabstract 


说明
goto-跳转到另一条指令。

invokeinterface-用于调用接口方法。

invokestatic-用于调用静态方法。

其他说明的说明


响应统计



Source: https://habr.com/ru/post/zh-CN434210/


All Articles