天津网站建设代理商,农产品电商网站的建设需求,WordPress5.0新功能,app制作开发教程夸克Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《夸克Android一面凉经(2024)》。 面试职位: 智能信息-客户端开发工程师-夸克小说 技术一…夸克Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《夸克Android一面凉经(2024)》。 面试职位: 智能信息-客户端开发工程师-夸克小说 技术一面
面试形式视频面试面试时长: 60min(提问55min 反问5min)代码考核: 无岗位地点: 广州
面试问题(55min)
自我介绍RN页面打开速度优化 为什么工程中使用ReactNative, 而不是选择其他跨端的方案?看中了跨端的能力还是只是为了免发版优化方案是否同步到iOS端RN的缺点?RN底层还是用原生UI控件那它慢是慢在哪里怎么优化所有的优化效果最有效果是什么措施内置Bundle包对包体积的影响除了Bundle体积, RN本身的体积是多大你在用RN过程中有没有踩过什么坑?RN本身是用原生的View去渲染的, 跨端一致性会不会有什么问题比如在Android调好了, 在iOS上看上去样子不太对。有一些东西改完是两端都要测, 还是只测一端这个是怎么接入到工程中使用单独RN仓库打包进apk, 还是源码依赖到Android和iOS的主工程中?在真正上线后动态话能力用得多不多动态能力的跨版本兼容性如何之前发的一些App的旧版本, 后面升级了很多版本。会不会有一些重新打包出来的产物, 下发下去不兼容, 导致页面渲染会出问题会升级RN的版本吗切引擎是会有兼容的问题对吧 不切引擎之前是不是也有兼容问题下发的时候, 是针对不同的版本下发, 还是针对所有的版本下发是否可以针对不用app版本下发不同的RNBundle版本你们App的版本覆盖速度有多快为什么选择针对所有App版本下发相同的RNBundle的方案 播放优化 跟播放性能相关的那你主要在里面做的是什么事情为什么进程通信数据这么大, 超过了Binder通信上限,我理解应该是一个非常精简的数据集合所以说是有一些极端情况。刚说到的共享内存, 共享fd, 这个大概是怎么样做到的先把这些内存写到文件里面传过去, 还是写到什么地方传过去存在内存的数据怎么让它可以生成一个fd?我们new了一个对象, 我们怎么用它变成一个fd可以引用它的东西, 然后传给另外一个进程待传输的数据据是存在DVM的虚拟机里面, heap的内存嘛, 那它怎么又能调用到另外一个进程呢它内存之间本来就是内存隔绝的。 Android基础 HandlerThread HandlerThread用过吗?它和普通的new Thread()有什么区别什么时候用HandlerThread, 什么时候用new Thread就可以了 线程池 平常写异步操作的话, 是用new Thread()还是线程池去做?创建线程池的参数作用线程池的参数是怎么配合起来使用的他的流程是怎么样我们要设计一个IO的线程池, 它的参数可以怎么设计多个线程并发扫描文件。扫描文件, 统计行号。开一个线程池, 并发去读, 把数据加起来。参数设置上怎么考虑最好给出个数值。比如设备CPU是8核。队列的容量大小怎么设计有界or无界?文件的数量级非常大, 上层的业务可以控制它同时的并发量。如果是一个有界队列会怎么样它一定会进拒绝策略吗还是会怎么样最大线程数的作用是什么跟workqueue是什么关系 equals和hashcode 写JavaBean的时候, 什么时候需要重写equals和hashcode方法只是作为hMap中的value而不是key, 也需要复写吗?hashCode默认是用什么生成的 多线程方面 多线程并发, 数据安全要加锁, 常见的加锁方式有哪些synchronized修饰同步块和修饰普通方法有什么区别 网络 HTTP实现一个文件的分片下载, 客户端怎么跟服务端交互大文件分成多段去下载, 客户端和服务端要发一些什么协议
反问问题(5min)
夸克小说可以展开介绍一下吗
夸克小说目前是在夸克app里面比较重要的业务。目前它在夸克里面是底部工具栏里有一个Tab, 第二个Tab就是小说。 小说里面有两种版权来源。一种是正版的, 自己购买的版权, 这种是跟书旗共用同一套版权。整个阿里里面有一个叫书旗小说。 另外一些没有版权的。就是普通网页我们正常搜书会搜出来一些盗版网站, 我们会对这些盗版网站的页面做了一些去广告, 转码, 提升一些用户的阅读体验。
我了解到夸克是一个浏览器, 对吧。你说的小说的功能相当于是这个浏览器功能的一部分它也是native实现的
是浏览器。是一部分。是native实现的。
我应聘的这个岗位, 你们对候选有什么要求吗需要加强哪方面的技能比方在用什么新的技术, 或者跨端方案等等
小说业务还是用Native原生开发比较多。有一些书架页面是用flutter写的。flutter页面后续会有其他同学去做, 不一定由这个岗位的候选人来做。 但native一定要会。我们还有一个加载本地小说的渲染引擎, 我们平常丢进去的一些epub,mobi,txt文件, 这些是要一个小说的阅读器的, 这个小说的阅读器使我们自研的。这一方面是用c写的。所以对这块还是有一定的要求。主要还是Android原生的比较多。
除了技术技能这方面, 你们对候选人有软性素质上的要求比如说资深程度, 职级
目前职级不太限制。我们只是找到有热情的人, 然后加进来一起做事情。如果是P6进来我们会有P6适合的承担的责任, 他能胜任的任务分派给他。 P7的话也会招, 但是要求的话会更高, 他进来以后要承担的任务就会更P6的同学要求更高。不同层级的都会招, 只是进来以后我们对他的要求会不太一样。
P7是属于一个主力开发, 还不是带人的小组长这样的是吗
P7是主力开发为多。
面试流程几轮
共4轮。3轮技术1轮HR。
总结
这个岗位主要负责的是夸克小说的开发, 技术栈主要是Native, 有一部分flutter, 还有一个自研小说的阅读器(渲染引擎), 阅读器涉及C/C开发。p6p7都要, 但是p7也是大头兵, 只是要求更高。这也符合预期, 目前各家公司现状皆是如此, 对标p7职级的岗位也都是大头兵, 甚至还有不带人的P8。从面试问题来看, 项目经历和八股文各占一半。八股文以多线程、线程池、锁相关为主。