夸克Android一面凉经(2024)

news2024/11/19 19:31:47

夸克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.coloradmin.cn/o/1955042.html

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

相关文章

20240728 每日AI必读资讯

Google Gemini 聊天机器人更新 可以免费使用Gemini 1.5 Flash 1. 引入Gemini 1.5 Flash模型: • 提供更快和更高质量的响应。 • 提升推理和图像理解能力。 • 上下文窗口扩大到 32Ktokens,允许进行更长的对话和处理更复杂的问题。 • 即将支持通过 Goo…

【你也能从零基础学会网站开发】 SQL结构化查询语言应用基础-- SQL Server数据库开发创建表之FOREIGN KEY外键约束完全详解最详细!

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 浅谈FOREIGN K…

故障诊断 | CNN-LSSVM卷积神经网络结合最小二乘支持向量机故障诊断(Matlab)

效果一览 文章概述 故障诊断 | CNN-LSSVM卷积神经网络结合最小二乘支持向量机故障诊断(Matlab) 模型描述 使用CNN进行特征提取: 使用CNN模型对数据进行训练,通常是图像数据。 通过CNN的卷积层和池化层提取图像的特征。 将提取到的特征作为输入,可以是全连接层的输出或者卷…

系统架构师考点--系统架构设计(上)

大家好。今天我来总结一下系统架构设计相关的考点。这块考点是重中之重,每年上午场客观题占20-25分左右,下午案例题也会考到,下午论文也会考到。大家要好好学学这部分内容。 一、软件架构概述 软件架构是指从需求分析到软件设计之间的过渡过…

机器学习 | 分类算法原理——逻辑回归

Hi,大家好,我是半亩花海。接着上次的线性可分继续更新《白话机器学习的数学》这本书的学习笔记,在此分享逻辑回归这一分类算法原理。本章的分类算法原理基于《基于图像大小进行分类》项目,欢迎大家交流学习! 目录 一、…

【51CTO-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

vim的使用及退出码(return 0)

linux基础之vim快速入门 linux基础之vim快速入门_基本linux vim-CSDN博客https://blog.csdn.net/ypxcan/article/details/119878137?ops_request_misc&request_id&biz_id102&utm_termvim%E7%BC%96%E8%BE%91%E5%99%A8%E5%A4%8D%E5%88%B6%E7%B2%98%E8%B4%B4%E4%BA%…

达梦数据库激活

SSH登录 192.168.0.148 账号:root 密码:xxx 1.上传 dm.key 文件到安装目录 /bin 目录下 cd /home/dmdba/dmdbms/bin rz -E dm.key2.修改 dm.key 文件权限 chown -R dmdba.dinstall dm.key3.打开数据库工具,新建查询,输入 cd /…

Odoo 17 仪表盘开发指南:打造高效的数据可视化中心

在现代企业管理中,数据驱动的决策至关重要。Odoo 17 提供了强大的平台来构建自定义仪表板, 适用于数据统计、工作台、驾驶舱、数据可视化等场景,以便用户能够一目了然地监控关键指标并做出及时反应。本文将介绍如何在 Odoo 17 中开发一个灵活且高度定制化的仪表盘系统,包括…

CVE-2018-8715

目录 前言影响范围漏洞利用0x04 漏洞修复指纹总结 前言 AppWeb 是一个嵌入式 Web 服务器,基于由 Embedthis Software LLC 开发和维护的开源 GPL 协议。它是用 C/C 编写的,几乎可以在任何现代操作系统上运行。当然,它的作用是为嵌入式设备提供…

【CodinGame】趣味算法(教学用) CLASH OF CODE -20240728

文章目录 正文数字*三角形四舍五入 写在最后END 正文 数字* import sys import math# Auto-generated code below aims at helping you parse # the standard input according to the problem statement.n int(input()) for i in range(n):a, b [int(j) for j in input().sp…

【2024最新】国内6个免费的AI绘画网站,支持Midjourney等绘画模型

一、什么是AI绘画? AI绘画,也称为人工智能绘画或机器生成艺术,是指使用人工智能技术来创作视觉艺术作品的过程。这种技术通常涉及到深度学习模型,尤其是生成对抗网络(GANs)和变分自编码器(VAEs…

CTRL+Y,定位后快速复制

复制后可在EXCEL中进行粘贴。

SVN没有绿色图标解决方法

一.总体方法介绍 如果在使用 SVN(Subversion)时遇到没有绿色小图标的情况,可能是因为 SVN 客户端(如 TortoiseSVN)没有正确检测到工作拷贝的状态。以下是一些常见的解决方法: 确认安装 TortoiseSVN&#x…

SAPUI5基础知识18 - 自定义CSS和主题色

1. 背景 在上一篇博客中,我们通过使用SAPUI5提供的CSS类实现元素间距的调整。在本篇博客中,让我们看一下如何实现自定义的CSS样式。 2. 背景知识 2.1 CSS基础语法 CSS,全称为级联样式表(Cascading Style Sheets)&a…

搭建自己的金融数据源和量化分析平台(三):读取深交所股票列表

深交所的股票信息读取比较简单: 看上图,爬虫读取到下载按钮的链接之后发起请求,得到XLS文件后直接解析就可以了。 这里放出深交所爬虫模块的代码: # -*- coding: utf-8 -*- # 深圳交易所爬虫 import osimport pandas as pd imp…

关于Buffer和Channel的注意事项和细节

1.举例 package org.example.demo;import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.util.RandomAccess;/*** MappedByteBuffer可…

mqtt:测试eclipse paho qos=1的数据重发的功能

# 测试程序 【pom.xml】 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.12.RELEASE</version></dependency><dependency…