夸克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。
  • 从面试问题来看, 项目经历和八股文各占一半。八股文以多线程、线程池、锁相关为主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/877040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Drools】(二)基于业务需求动态生成 DRL 规则文件:事实与动作定义详解

(二)基于业务需求动态生成 DRL 规则文件:事实与动作定义详解 在现代业务规则管理系统中,灵活高效地生成和管理规则至关重要。通过上一部分的DRT 规则模板(请参考:(一)基于业务需求动…

PHP师生荣誉管理系统—计算机毕业设计源码10079

目 录 摘要 1 绪论 1.1 研究背景 1.2论文结构与章节安排 2 师生荣誉管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.…

UDP connect 内核源码分析

1 从诡异开始 最近遇到一个线上问题,client 发了一个 udp 请求,服务器回了一个响应,但诡异的是,client 的 log 却看不到对应的处理日志。抓包发现内核发出了一个指示 udp 目的端口不可达的 icmp 报文,类似这样的&#…

ES6语法详解,面试必会,通俗易懂版

目录 Set的基本使用WeakSet 使用Set 和 WeakSet 区别内存泄漏示例:使用普通 Set 保存 DOM 节点如何避免这个内存泄漏MapWeakMap 的使用 Set的基本使用 在ES6之前,我们存储数据的结构主要有两种:数组、对象。 在ES6中新增了另外两种数据结构&a…

Java面试八股之@Qualifier的作用

Qualifier的作用 Qualifier 是 Spring 框架中的一个非常有用的注解,它主要用于解决在依赖注入过程中出现的歧义问题。当 Spring 容器中有多个相同类型的 Bean 时,Qualifier 可以帮助指明应该使用哪一个具体的 Bean 进行注入。 Qualifier 的作用&#x…

成为git砖家(7): posh-git的安装和使用

文章目录 1. PowerShell 里的 git 默认使用体验不够好2. posh-git 介绍2.1 安装 posh-git2.2 PS1 显示的内容2.3 补全分支 1. PowerShell 里的 git 默认使用体验不够好 在 Windows 系统上,安装了 git for windows 后, git bash 里的体验确实不错。 但是…

C# 获取 Excel 文件的所有文本数据内容

目录 功能需求 范例运行环境 关键代码 组件库引入 获取Excel文件的文本内容 总结 功能需求 获取上传的 EXCEL 文件的所有文本信息并存储到数据库里,可以进一步实现对文件内容资料关键字查询的全文检索。有助于我们定位相关文档,基本实现的步骤如下&…

零代码拖拽,轻松搞定GIS场景编辑

在三维GIS领域,编辑场景和处理影像数据通常是一个复杂且费时的过程,但现在有了山海鲸可视化,这一切都变得简单有趣。这款免费可视化工具为您提供了零代码拖拽式编辑的体验,让您无需编程知识就能轻松创建和优化GIS场景。通过直观的…

Hive多维分析函数——With cube、Grouping sets、With rollup

有些指标涉及【多维度】的聚合,大的汇总维度,小的明细维度,需要精细化的下钻。 grouping sets: 多维度组合,组合维度自定义;with cube: 多维度组合,程序自由组合,组合为…

大数据:数据标准化及质量管控方案

本方案是一套全面的解决方案,旨在为企业构建科学、规范的数据管理体系,确保数据的准确性、一致性、完整性、合理性、及时性和有效性,从而支撑业务数据的高效应用与正确决策。以下是对该方案的详细介绍: 一、方案概述 本数据标准…

迎峰度夏,应急备电:应急电源和燃油发电机哪个好?应急电源选购

在电网迎峰度夏的严峻挑战面前,铂陆帝应急电源以其卓越的性能和可靠性,成为了不可或缺的电力保障伙伴。与燃油发电机相比,铂陆帝应急电源在多个方面均展现出显著的优势。 更高效稳定,性能卓越 铂陆帝应急电源具备出色的性能和稳定…

GPIO子系统

1. GPIO子系统视频概述 1.1 GPIO子系统的作用 芯片内部有很多引脚,这些引脚可以接到GPIO模块,也可以接到I2C等模块。 通过Pinctrl子系统来选择引脚的功能(mux function)、配置引脚: 当一个引脚被复用为GPIO功能时,我们可以去设…

PySide(PyQt)的QPropertyAnimation(属性动画)

学不完,根本学不完:(,感觉逐渐陷入了学习深渊。。。 QPropertyAnimation 是 PySide(PyQt) 中一个用于在时间轴上平滑地改变对象属性的类。它常用于制作动画效果,比如移动、缩放或改变透明度等。 基本概念 QPropertyAnimation 是 Qt …

GPT5发布时间预测,即将到来的GPT5

GPT-5:未来的展望与功能预测 随着人工智能技术的飞速发展,生成式预训练模型(GPT)已经成为自然语言处理领域的核心技术。从 GPT-1 到目前的 GPT-4,每一代模型都带来了显著的进步和变革。那么,GPT-5 的到来将…

【环境搭建问题】linux服务器安装conda并创建虚拟环境

1.检查有没有conda 首先看root文件夹下有没有anaconda或者conda 没有的话就要先下载安装conda: https://repo.anaconda.com/archive/index.html 在这个链接下找自己需要的。服务器一般为linux,所以我这里选择的是: 2.安装conda 下载安装…

自动控制:PID控制器参数对控制性能的影响

自动控制:PID控制器参数对控制性能的影响 PID控制器是工业控制领域中最常用的控制算法之一。PID控制器通过调节比例、积分(I)、微分(D)三个参数,使系统达到预期的控制效果。本文将详细讨论PID控制器的三个参数对控制性能的影响,并给出一些实…

Python脚本:使用PyPDF2给一个PDF添加上页数/总页数标签

一、实现代码 import PyPDF2 from PyPDF2 import PdfWriter from PyPDF2.generic import AnnotationBuilder# 指定输入和输出pdf pdf_path rC:\Users\ASUS\Desktop\temp\xxxx.pdf out_path rC:\Users\ASUS\Desktop\temp\xxxx2.pdf# 创建 PdfWriter 对象 writer PdfWriter()…

【管理咨询宝藏148】顶级咨询公司大型线下连锁门店客户生命周期规划方案

【管理咨询宝藏148】顶级咨询公司大型线下连锁门店客户生命周期规划方案 【格式】PDF版本 【关键词】零售数字化、客户生命周期、客户画像 【核心观点】 - 在多年的行业研究积累过程中,将每个行业中具有典型代表性的用户维度进行了总结。本项目选择用户服务的标杆企…

视频监控管理平台LntonAIServer智能视频监控平台在工业排污检测中的应用

随着工业化的不断发展,环境污染问题日益严重。为了保护生态环境,各国政府纷纷出台相关政策,对工业排污进行严格监管。然而,传统的排污检测方法往往耗时耗力,且难以实现实时监控。因此,如何提高工业排污检测…

Graph-RAG:知识图谱与大模型的融合

在数字化的浪潮中,知识的累积已非线性增长,以指数级的速度膨胀。我们站在一个信息过载的十字路口,迫切需要一种能力,能够穿透数据的迷雾,捕捉知识的精髓。本文将揭示 Graph-RAG 的神秘面纱,这是一种突破传统…