4年Android开发3面字节,我上岸了

【面经分享】字节抖音Android客户端3+1轮已通过 不少同学对字节的面试有所忌惮,不愿轻易尝试。其实字节尤其是客户端的面试并没有大家想象的那么难,今天分享一篇面经,内容真实,希望帮助大家更好地了解字节客户端面试的出题范围和难度。 我是一名本科应届生,学校专业是软件开发。距离毕业之期不到半年,学校也在催促我们早点出校实习,年前通过一名学长内推去了字节跳动的抖音面试。12 月 31 号投的简历,1 月 6 号收到 HR 电话。隔这么长时间还是挺害怕的,以为简历都被筛掉了。 下面是我在字节抖音的面经分享,一二面和 HR 面都是凭印象回忆的,可能会漏掉一些问题。 阅读详情

背景经历

当时我工作近4年,明显感觉到了瓶颈期。 具体来说,感觉自己做过一些技术设计、也有过一些产出,但是从技术深度上感觉不足,到后期时做事也没有明显挑战,完全适应了公司节奏,说句不好听的成了老油条,可以每天舒服的混日子(这也有好处,有时间准备面试)。这对于个人成长不利,长此以往可能面临大龄失业。所以我觉得需要痛下决心改变一下现状。我定的目标就是进大厂,因为我觉得小厂做到我目前的程度已经很难有很多的提升了。

先说说面试的问题

一面部分考题:

  • 插件化。启动activity的hook方式。
  • okhttp支持HTTP2?http2的功能有哪些?tcp方面拥塞控制?tsl的握手和具体的非对称加密算法。非对称名称
  • handler的post(Runnable)如何实现的。callback,runnable,msg的执行优先级。阻塞是怎么实现的?为什么不会阻塞主线程?
  • 求二叉树中两个节点之间的最大距离。
  • 206含义,未修改资源是哪个,302含义,301含义
  • 多进程通信问题。binder优势。aidl生成的java类细节。多进程遇到哪些问题?
  • 动态代理传入的参数都有哪些?非接口的类能实现动态代理吗?ASM的原理
  • Application和Activity在Context的继承树上有何区别?二者使用上有何不同?
  • 任意一颗二叉树,求最大节点距离

二面部分考题:

  • 设计一个日志系统。
  • 内存泄露的分类。怎么查看内存泄露的问题
  • touch事件源码问题。
  • 组件化的问题。module和app之间的区别。moduler通信是如何实现的。
  • native奔溃的日志采集,怎么处理?
  • 注解实现一个提示功能:如果int的值大于了3需要提示。

三面部分考题:

  • 介绍下flutter的启动流程
  • 介绍下flutter与weex的区别
  • 组件化介绍一下
  • webview中与js通信的手段有哪些?
  • 介绍下flutter_boost的原理
  • 适配器和装饰模式各自特点和使用场景
  • 视频编解码是怎么做的
  • 三色球排序

聊聊我对面试的一些准备和心得

面试从哪些方面去准备呢? 例如,不太熟悉的技能要不要写在简历上、要复习哪些Android组件的知识、刷算法题目有没有用,可能在面试前你都会仔细考虑这些问题。 下面我就结合自身的经验和理解,帮你梳理一下关于简历、面试和算法方面需要准备的内容,分享一些我的心得体会。

简历篇

简历在面试过程会起到至关重要的作用,我们需要非常注意简历的撰写。

在面试的过程中,面试官通常会非常关注你简历中的工作经历、项目介绍、技能特长这三部分的内容,如果你面试的公司没有固定题目的话,那很多问题都会围绕你简历里这三部分内容去问。这里需要注意的一点是相关技能的书写,核心思想,想进大厂的简历,要突出自己的特色,写得要生动,能从简历看出你实力不俗。如果简历不过关,很大几率根本没有面试机会。

首先你要让面试官明确你面试的定级是什么。 很多时候一个职位对应了很多个职级,在投简历的时候,你的简历需要让面试官给你一个比较明确的定级,否则面试过程会比较被动,也会影响面试官对你的判断。

因此这部分的内容需要突出自己的特长,也要写一些现在公司相对关心的问题:

  • 比如你对插件化、热修复、组件化、性能优化等很熟悉,就可以明确的写上,但如果不是很熟悉那么尽量不要去写。
  • 如果你对Android某部分内容很熟悉就可以写得相对详细一些,比如你对Handler、Binder机制很熟悉,就可以写“熟悉Android常见机制,比如Handler、Binder机制等”。
  • 而看到你很熟悉这部分内容,面试官可能在问问题时一层层深入,因此你肯定需要提前准备一下这部分内容如何讲解,基本可以从机制的优点、重点、难点三方面去说明。

面试篇

对于Android工程师来说,面试开始的时候都会问一些算法和Android、Java的基础知识。

针对Java的基础知识,我列一下 Java 基础部分要掌握的知识点

  • Java序列化、注解,泛型与反射
  • 虚拟机底层原理
  • Android内存原理
  • Java高级并发原理
  • JDK高级动态代理
  • Java IO操作

对于Android的面试题,大多都是跟系统原理有关的内容,但也有很多没有准确答案的问题,比如四大组件的原理这样的题目,需要你从一个宏观的角度去解释一下四大组件,或者你也可以拆分开一个个去讲解。

关于Android面试高频的问点,这些你是必须要理解清楚的!如果你在准备面试,之前我参考的这个**《Android快速面试指南》,需要可文末里免费领取呢

在这里插入图片描述

一些Android经常使用到的组件一定要理解清楚,比如:

  • Handler.postDelay的机制
  • 触摸事件机制
  • 自定义View
  • 如何计算View大小
  • 容器控件如何对子控件进行布局
  • 数据库基本操作
  • Binder机制
  • LMK机制

还有面试官也可能会问一些开源框架的原理,建议你也要多了解一些:

  • 优秀的网络框架
  • 图片加载框架
  • 日志记录框架
  • EventBus
  • AAC框架的原理

还有性能优化,最近几年公司对性能优化关注很多, 有的人可能做过专门的性能优化或者自己开发过一些工具总结过一些方法论,这样比较好答一些。但是大部分人可能平时都在关注业务需求开发,性能优化的实战可能并不是很多。

面试的后面大多都会从项目入手,你需要在面试之前针对你的项目做详细的准备。比如面试官会:

  • 让你介绍一下你的项目
  • 你需要体现出这个项目的难点
  • 你在项目中的贡献
  • 项目的具体实现等
  • 有可能还会问到一些具体的细节,所以建议是实事求是去讲,但一定要对自己的模块非常清晰。

除了技术面试以外,有时还有可能会考察一些软技能,比如面试官会考察你跨部门协作能力、沟通能力、时间管理、任务分配和职业规划等

关于如何复习

对于复习,首先要对自己做一次自我了解, 我是通过画脑图来进行这个过程的,我会整体默想一遍大概的知识体系,画成类似下图。回想每个知识点可能考到的内容,记录下自己模糊的地方,然后去看网上总结的面试题,再对每个题目都做一下回答。这是一个迭代过程。

在你预想的问题都可以回答上来的时候,就需要深入挖掘一下技术细节和深度了, 比如我工作中开发了一个PLT Hook工具,这个工具可能是我参考开源项目并封装修改过来的,但对其中的细节并没有很了解,这个时候你就要对这个开源项目所涉及的内容做一次系统学习了。

算法这一块的话, “临时抱佛脚”对于算法的学习和积累作用不是很大,因此需要我们在平时繁忙的工作中抽出一些时间来复习,你也可以去LeetCode、LintCode上刷刷题。另外,虽然大部分面试的算法题目都是LeetCode上的简单题目,但你同样也需要关注一些中等和困难难度的经典题目。

总结

没有涉及太多具体的面试题,更多侧重的如何准备面试, 而面试的准备其实是在我们平时工作过程中一点一滴积累的,复习只是作为一种在面试前巩固知识的手段。 复习的过程主要是我们对知识点的整理和总结,你可以想一下在面试的时候可能会遇到的问题,以及该如何去表达。

但是我想说,虽然“临时抱佛脚”的准备可能有时有用,但是在短时间内靠“突击”是很难理解到某个知识点更加深度层次的内容, 而且知识面的广度也是需要时间和经验去积累的。所以不管你是否需要面试,在平时工作过程中都需要多思考、多训练、多总结,在有需要的时候可以厚积薄发。

字节跳动(Android岗)三面+hr面的面经之旅(已OC) 前言 作者:独孤 目前Android开发岗位确实没有以前那么火爆了,但是只要你确实有真才实学,想要找一份自己满意的工作还是相当容易的。 而如果你是985,211,硕士学历,那么,要拿个相当好的Offer更是不在话下; 我是从渣本毕业,实习时是在一家小公司,每天基本的工作都是两三个小时就能完成,而每天没有新的项目可以挑战,整天感觉自己就在摸鱼……这样持续了一年,日子过得很安逸,但是对比了一下曾今的同学薪资基本完成了翻倍,觉得自己在清醒的堕落,于是逼自己沉下心来,把毫无进步空间工作辞了,打算潜心学习一波,. 阅读详情

相关推荐

字节跳动安卓、测试开发实习生面试题和总结

字节跳动安卓、测试开发实习生面试题和总结引言面试测开一面测开二面安卓一面安卓二面总结功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与...

weixin_41368740的博客 5454

2020年Android开发最新整理阿里巴巴、字节跳动、小米面经,你不看看吗?

前言 2020年是转折的一年,上半年疫情原因,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想提前准备刷下题。接下来分享一份我的字节跳动、阿里巴巴、百度、小米等大厂面试经验和总结。(文末附真题解析大全) 阿里(被拒) 字节跳动(offer) 小米(offer) 手百 (offer) 阿里巴巴 面试问题还记得一些,一部分已经忘记了,为了防止再忘记,所以写出来。 1:你是如何理解Android操

CHAMPION8888的博客 425

字节跳动Android客户端实习 3+1 面经,内部面试官透露通关秘籍

身边很多朋友知道我在字节担任面试官,写文章的初衷之一也是希望能多一个为团队网络人才的渠道。但是一段时间下来发现真正找我咨询、内推的人并不多,不少同学对字节的面试有所忌惮,总担心准备不够。 实际上字节特别是客户端的面试没有网上传说的那么可怕。碍于公司制度,我不能把我面试别人的具体内容写出来,但是可以分享一些候选人自己写的面经供大家参考。 比如今天分享的这个面经,内容靠谱,能够反映出抖音客户端面试的难度。当然面试内容是因人而异的,所以主要是帮大家了解面试范围和难度,无需拘泥于具体题目 背景介绍 我是一名本..

小圆爱吃糖 2373

字节跳动安卓面试题

一面 1.插件化,启动Activity的hook方式,taskAffity 2.okHttp支持http2,http2的功能有哪些?tcp方面拥塞控制?tsl握手和具体的非对称加密算法。非对称名称 3.handler的post是如何实现的。callback,runnable,msg的执行优先级。阻塞是怎么实现的,为什么不阻塞主线程。 4.求二叉树两个节点之间的最大距离 5.206含义,未修改资源是哪个,302含义,301含义 6.多进程通信问题,binder优势,aidl生成的java类细节,多进程遇到哪些

qq_34097002的博客 584

大三我与字节跳动4-1高级开发者舌枪唇战,15天4面字节,拿下1-2中级工程师!

我的情况 字节实习生招聘开始的还是挺早的,一直很喜欢字节的名称与logo,而且一直对网上所传的“技术氛围”心有所往。但是听说字节的面试很难,所以在字节官微发布实习生招聘的推文后,最开始很没有底气,于是就准备了几天,把简历完善了一下,最后硬着头皮把简历发给了招聘推文下留的一个邮箱(事实上并不建议一开始就把简历投给自己喜欢的企业,毕竟第一次面试没有经验被挂的话还是挺伤心的)。 我自己是大三的数学系学生,平时涉及的东西挺多(图像处理、Flutter、后端),所以总感觉自己学的太杂而不精,自己的意愿是客户端或后端(

Android725的博客 1198

生物信息学新手必看:MAFFT多序列比对从安装到实战(附参数优化技巧)

本文为生物信息学新手提供了MAFFT多序列比对工具的完整指南。从Linux环境下的安装部署,到核心算法策略(如FFT-NS-i、L-INS-i)的选择逻辑,再到空位罚分等关键参数的深度解析与优化技巧,手把手教你完成从原始序列到高质量比对结果的实战流程,为后续进化树构建等分析奠定坚实基础。

weixin_29230773的博客 483

【int的取值范围以及溢出问题】

目录一、int 的取值范围及溢出原因二、溢出问题的解决 一、int 的取值范围及溢出原因 111个字= 222个字节(ByteByteByte) = 888个比特位(bitbitbit) intintint 型在323232位和646464位操作系统中取值范围一样,(longlonglong intintint 型有不同) 都为【−2147483648,2147483647】【-2147483648,2147483647】【−2147483648,2147483647】即 【−231,231−1】【-2^

u011562030的博客 4539

从UE4到Unity:双叶高光技术在角色皮肤渲染中的移植全流程

本文详细解析了将UE4中的双叶高光技术移植到Unity引擎的全流程。该技术通过模拟皮肤油脂层和真皮层的不同反射特性,能显著提升角色皮肤渲染的真实感。文章从核心原理、贴图资产处理、Shader代码重构到参数调校,提供了完整的跨引擎移植实战指南,帮助开发者实现高质量的皮肤质感还原。

alice7model的博客 476

Android-注解详解

Android-注解详解背景上一章,我们研究了 Java注解 的用法;紧跟着这章研究一下Android相关的注解的使用,比如我们熟悉的ButterKnife就是使用注解的方式实现对其使用,掌握注解的使用方法极大的方便了我们的开发效率环境使用Android注解前需要导入相关的包 compile 'com.android.support:support-annotations:latest.integr

wzgiceman 1万+

CANoe UDS $27服务DLL生成实战:从工程配置到算法修改全流程

本文详细介绍了在Vector CANoe中为UDS(统一诊断服务)的$27安全访问服务生成定制化DLL(动态链接库)的全流程。从定位官方参考工程、配置Visual Studio开发环境,到深入解析核心的GenerateKeyEx函数接口,并重点演示了如何修改和实现自定义的种子-密钥安全算法,最终完成DLL的编译、部署与CANoe集成测试,为汽车电子诊断开发提供实战指导。

star5的专栏 533

拆开一个烧坏的IGBT模块,手把手教你识别过压、过流、过温的“案发现场”

本文详细解析了IGBT模块失效分析的实战技巧,通过观察铝层熔化纹路、焊锡溢出形态等物理痕迹,手把手教你识别过压、过流、过温的典型失效模式。文章提供了从基础工具包到现场快速诊断的完整流程,帮助工程师精准定位IGBT模块失效的根本原因。

weixin_30655569的博客 423

Android注解实现简单的View注解功能,只实现了setContentView和findViewById功能.

最近在学怎么使用注解,所以用注解写了一个仿xUtils3的View注解功能,只实现了setContentView和findViewById功能. 首先我们创建一个VIewById接口 ``` package com.example.viewinject; import java.lang.annotation.ElementType; import java.lang.annotation....

yan1348的博客 421

看完这篇你就能讲解LLC软开关:一文秒懂 ZVS 和 ZCS 到底啥意思!

想要 MOS 管ZVS 好实现➜ 把工作频率保持在 fr1 或更高。想让整流二极管也ZCS 实现➜ 频率就别高过 fr1。设计磁性元件时,一定要计算好 Lr、Lm、Cr 的值,这直接决定你 fr、fr1 是多少!LLC 的软开关技术不是“魔法”,是电感电容+频率控制的精妙组合;fr1 就像黄金分割点,整流和开关都能“刚刚好”;不是所有软开关都能同时实现,要看你在频率曲线的哪一段!

weixin_43199439的博客 1528

艰辛挺过字节Android研发岗4轮面试,收到sp offer(月薪45k)!揭秘字节面试流程及考点

前段时间,有个朋友又出去面试了,这次他面试目标比较清晰,面的都是业务量大、业务比较核心的部门。前前后后去了不少公司,几家大厂里,他说给他印象最深的是字节。 3 轮技术面 + 1 轮 HR 面,他最终拿到了 45k*16薪 的 Offer。 第一轮主要考察 Java 基础,二、三轮注重对应技术的掌握,以及对过往项目的业务理解。之所以令他印象深刻,是因为每轮都聊了一个半小时以上,确实让他受益匪浅。 他最终选择字节,除了这是核心项目之外,还有一个原因,字节的福利号称业内最好,薪资也是同类公司中最高。..

嘴巴吃糖了 6467

MicroCap声学仿真介绍(一)

5-频率上下限选择,需要注意的是,第一个数字是上限,第二个数字是下限,如果填反了,会有报错提示;下三角可以选择“Auto”、“linear”、“log”和“list”,设置的是频率点之间的距离和频率点的数量。Component是用来选择部件的模块,如上图所示,声学仿真常用到的是“Electroacoustic Macros AC”、“Electroacoustic Macros TR”、“NXP Transducers”以及“NXP HD components”。3是声学部件,是声学仿真中常用的部件。

山无忧的博客 5084

【立创EDA-PCB设计基础】1.嘉立创EDA专业版软件安装+PCB基本概念+原理图绘制

本文详解PCB基本概念以及实现MCU最小系统原理图的绘制(原理图包括MCU芯片GD32F103C8T6、外部晶振、输出端口、USB输入口、5v转3v3稳压输出、复位按键、唤醒按键、LED)及嘉立创EDA专业版软件安装。为本专栏【立创EDA-PCB设计基础】后面章节实现PCB绘制做准备。

嵌入式阿齐Archie 3万+

Android:双非大二3轮技术面+HR面,过关斩将收割字节头条客户端offer_技术面也看眼缘吗

不妨先来听一听过来人的故事:来一起看看这位程序员是如何过关斩将,拿到字节跳动offer的吧。本人情况:双非大二,软件工程专业,在学校实验室里有两个安卓小项目。

2401_89190801的博客 716

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Android开发3年,4个月面试,终于拿到小米、京东、字节大厂offer

自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…Java IO 实战——AES加密让你的APK牢不可破。C++对C的加强,C/C++中的const, 引用。虚拟机的前世今生,深入理解JVM内存区域。内存分配与回收策略~深入理解垃圾回收器。#####FrameWork层源码解析。C++对C的函数扩展,C++面向对象一。北京:小米,京东,美团,百度,去哪儿。字符串,结构体 ,共用体,文件读写。JNI调用java函数与JNI引用。杭州:阿里,网易,微店,字节跳动。

2401_83817603的博客 631

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

起飞,年薪70万+ 5月字节Android高工岗4面上岸

5月了,不知道大家是不是已经从"铜三铁四"的毕业浪潮中缓过来了,不幸被裁的话也不要太焦虑,招聘机会还是很多的,最近就有很多同学留言说面试上了新公司了,其中大厂的不在少数,还有很多同学说:新公司年薪七十多万,**涨薪幅度比上家高了50%,**后悔跳晚了。 大挑战,大机遇,大未来,"毕业"几乎年年都有,不要因为今年的"毕业"潮大了点就灰心,该跳还是得跳,毕竟跳槽可是程序员加薪的最快途径。 这位同学就是之前被"毕业",面试了好久没有找到心仪的工作,**在后台留言之后给了他一份面试和进阶学习资料,之后经过四轮面试

m0_69519298的博客 588

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【Android面经】字节实习,技术岗的保姆级面经!

面试官的考核比较注重算法题和基础,主要的准备方向是 算法 > 基础知识 > 项目相关问题,关于算法题,还要注意以下几点:算法题题干当中如果有模棱两可的地方一定要向面试官确认,比如求数的宽度,直接问面试官是同一层最宽还是不同层最宽;拿到题先不急着做,可以先和面试官说明自己的方法和思路,再开始。力扣easy+mid刷到200道比较稳一点。这些就是关于我的一些实习成长,回过头来我也发现,字节确实是一个能够提升自己的平台,希望自己能够再接再厉。

Eqiqi的博客 1117

【面经分享】Android 开发面经

持续了大半个月的面试终于结束了,年后回来,从2月9号到3月1号,一直陆陆续续有面试邀约, 不得不说,一边在职承受工作压力,另一边还要承受面试找工作压力,双重压力下,多多少少有点难顶, 但是,收获offer还是比较满意的,拿下了网易、小米的offer, 着实有点可惜的是字节跳动,倒在了三面,只能说自己还是太菜,以后还需要继续努。 这期间只投递了互联网中大厂,面试并不多,以下是我在这大半个月以来的面试经历,发出来总结一波,也供大家参考参考! 面试均为Android开发,社招岗。

yang553566463的博客 3856

Android开发三年,面了八家公司终于腾讯上岸,含泪整理面经

二、Java基础+进阶。

2401_84413032的博客 697

2024年最全【Android面经分享】惜挂字节三面,终被小米收下!,2024年最新蚂蚁金服4面Android高级开发

我坚信,坚持学习,每天进步一点,滴水穿石,我们离成功都很近!以下是总结出来的字节经典面试题目,包含:计算机网络,Kotlin,数据结构与算法,Framework源码,微信小程序,NDK音视频开发,计算机网络等。字节高级Android经典面试题和答案网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!

2401_84545669的博客 972
上一篇: 全网都在用的Jetpack Compose ,最新进展,不来了解一下?
下一篇: 阿里P8整理总结,备战金九银十入职大厂必备Android核心知识,附加面试题
Agent学习路线
博客等级 码龄6年 1万+粉丝 1902原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值