一面

  1. 自我介绍
  • 注意点:说有亮点的、跳槽原因,从各个点尽力彰显自己优势、技术特长
  1. 手写代码:计算View树上所有view的数量,参数ViewGroup
  • 本质上就是数据结构多叉树递归层序遍历+Android View基本api调用
public int getCount(ViewGroup viewGroup){int count=viewGroup.getChildCount();//循环获取子Viewfor(int i=0;i<count;i++){View child=viewGroup.getChildAt(i);if(child instanceof ViewGroup){//如果子View是ViewGroup,则用递归获取子View数量int childCount = getCount((ViewGroup)child);count+=childCount;}else {count++;}}return count;}
  1. Android相关
  • 主线程Looper一直循环查消息为何没卡主线程?
线程的阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。
主线程Looper从消息队列读取消息,当读完所有消息时,主线程阻塞。子线程往消息队列发送消息,并且往管道文件写数据,主线程即被唤醒,从管道文件读取数据,主线程被唤醒只是为了读取消息,当消息读取完毕,再次睡眠。因此loop的循环并不会对CPU性能有过多的消耗。
  • RecyclerView相对ListView区别?
    i. 布局效果上
    ii. 缓存机制上
  • Bitmap resize相关,设置option,decode
  1. 项目相关
  • 用MultiDex解决何事?其根本原因在于?Dex如何优化?主Dex放哪些东西?主Dex和其他
    Dex调用、关联?Odex优化点在于什么?
  • 答案:MultiDex解决方法数65535的限制问题,即方法数不能超过65535个;方法id是short类型4个字节来存储的,所以数目范围应在0-2^32即0-65535;MultiDex工作原理分析和优化方案; 主dex中:应用启动就必须加载的类,有一个keep文件来控制;其他dex文件都是通过主dex加载进来的;odex优化点:预加载;
  • Dalvik和Art虚拟机区别?
  • 多渠道打包如何实现(Flavor、Dimension应用)?从母包生出渠道包实现方法?渠道标识替换原理?
  • Android打包哪些类型文件不能混淆?
a. 四大组件
  • Retrofit主要实现机制? Retrofit的作用、原理
  • 动态代理静态代理区别?
  1. 架构
  • 模块化怎么做?怎么设计?接口发现暴漏怎么做?基于什么基本思想?
  • MVC、MVP、MVVM应用和彼此本质区别?

二面

  1. Glide缓存特点
  2. 问了擅长哪个方向?回答UI动画,所以就问UI相关的
  • launcher应用抽屉,之前有个毛玻璃效果背景,从系统ROM角度说下怎么做?
  • 实时的睡眠水面倒影效果怎么做? 实时更新的UI性能如何保证?
  • UI基础:Measure、Layout、draw大流程、绘制顺序,FlowLayout怎么实现?flowlayout实现
  1. 算法题
  • 两个线程分别持续打印奇数和偶数,实现两个线程的交替打印(从小到大)
public static void main(String[] args){Counter counter=new Counter();new Thread(new PrintOdd(counter)).start();new Thread(new PrintEven(counter)).start();}static class PrintOdd implements Runnable {public Counter counter;public PrintOdd(Counter counter) {this.counter = counter;}@Overridepublic void run() {while (counter.value<=100){synchronized (counter){if(counter.odd){System.out.println(Thread.currentThread().getName()+":"+counter.value);counter.value++;counter.odd=!counter.odd;counter.notify();}try {counter.wait();} catch (InterruptedException e) {e.printStackTrace();}}}}}static class PrintEven implements Runnable {public Counter counter;public PrintEven(Counter counter) {this.counter = counter;}@Overridepublic void run() {while (counter.value<=100){synchronized (counter){if(!counter.odd){System.out.println(Thread.currentThread().getName()+":"+counter.value);counter.value++;counter.odd = !counter.odd;counter.notify();}try {counter.wait();} catch (InterruptedException e) {e.printStackTrace();}}}}}static class Counter{public int value = 1;public boolean odd = true;}
  1. 模块化、工程化架构思想

三面

  1. 设计个IM客户端以及数据库架构,类似微信,偏上层业务部分的会话、联系人、通知、
    公众号如何存、分几张表,架构每一层都是什么,互相怎么交互工作?

四面-HR

  1. 一般都会过

参考

  1. 面试字节跳动社招,我工资涨了60%,附带面经

android面试之今日头条/字节跳动 android社招面试(附答案)相关推荐

  1. 今日头条 字节跳动 Flutter架构实践

    今日头条 字节跳动 Flutter架构实践 1 移动跨平台技术探究 ◆ 为什么需要跨平台? 今日头条 字节跳动 Flutter架构实践 ◆ 跨平台技术是如何发展起来的? 今日头条 字节跳动 Flutt ...

  2. 【面经】字节跳动C++社招5轮面试题分享

    字节跳动C++社招5轮面试题分享 [一面] 1.自我介绍,聊项目, 这边挺常规的,从项目入手. 2.你感觉比本科阶段自己进步了多少,有哪些进步 3.研究生期间最大的进步是什么 4.你觉得你适合从事哪个 ...

  3. 今日头条/字节跳动 后台开发岗(应届生)三轮技术面试

    字节跳动特重视算法,不怎么关注编程语言啊,开发框架啊什么的,比较注重考察思维能力,也会问一些基础的操作系统网络通信什么的 感觉头条的面试思路跟微软谷歌差不多 就靠算法题看编程能力 然后也问了问我读研期 ...

  4. Android 底层知识拾零,字节跳动Android高级工程师

    NotoSansTeluguUI-Bold.ttf 泰卢固语(印度) NotoSansTeluguUI-Regular.ttf ------------------------------------ ...

  5. 【数据分析面试】字节跳动数据分析面试题(附答案解析)

    更多优质干货内容可以look共粽号:[数据分析星球],get海量数据分析资料! 01写在前面 数据分析SQL面试笔试题系列第6篇来啦! 数据分析面试会重点考查候选人两方面的能力,一个是基础的数据工具能 ...

  6. android内录音频,字节跳动Android架构师学习笔记

    缘起 随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑.快速迭代的目的越来越难,还有应用之间的互相调用等等问题,插件化技术应用而生.如果没有插件化技术,美团. ...

  7. 今日头条字节跳动抖音小程序上线前后的搜索优化配置

    总的来说,有以下四点 1.设置三个小程序的别名,方便别人搜索的时候,可以搜索到本小程序, 2.设置20个标签词,别人搜索的时候可以搜到. 3.提交sitemap,将小程序中的每个内容页中关键词,标题, ...

  8. 2018 美团、腾讯、头条、蔚来 社招面试随谈

    2018,工作快两年了,趁着春招的尾巴,面了几个大厂,现记录下这次的面试路程. 美团 去美团面试时,在路上问路正好问到美团的同学,美女人很友好,直接带我上去了,哈哈. 一面 首先让讲解了下自己所做的一 ...

  9. 网易 java社招面试_一个妹子网易Java岗社招面试经历分享

    博客群发软件--用 Windows Live Writer完美发布新浪网易blogcnbl 博客群发软件--用 Windows Live Writer完美发布新浪.网易.blogcn.blogbus. ...

最新文章

  1. PXE自动化装机(4)
  2. matplotlib 横坐标只显示整数_matplotlib初学:这样画折线图和添加标注、箭头
  3. ITK:VTK图像到ITK图像
  4. qt linux 串口eventdriven,详解 Qt 串口通信程序全程图文 (1)
  5. 使用结构化的标头字段改善HTTP
  6. asp.net怎么生成json数据_mysql数据库配置文件不知道怎么配置?用这个工具一键生成...
  7. excel打开csv错误换行_「乱吐槽·乱学习」excel高手捷径:一招鲜,吃遍天③
  8. SQL解析在美团的应用
  9. php写按条件查询代码,php如何实现按条件查询
  10. java 内存指针_java内存模型详解
  11. java.sql.SQLException: Access denied for user ‘root‘@‘hadoop001‘ (using password: YES)
  12. 手机重装android系统,手机系统重装
  13. ambari 2.7 下安装httpfs
  14. Android APK反编译技巧全讲解
  15. 中国手机电视国家标准终于确定:T-MMB !, 但CMMB能答应吗?
  16. Cousera 无法播放视频 解决办法 widows 和 linux
  17. 科目二 领线30cm的方法 LTS
  18. android monkey 工具,Maxim-高速 Android Monkey 工具使用记录
  19. python人民币和美元转换
  20. 损失次数模型-负二项分布

热门文章

  1. Android 音视频开发相关知识
  2. CSDN上代码块背景颜色的设置
  3. Android 手机红外遥控器实现
  4. BJDCTF 2nd writeup(二)
  5. win7计算机文件夹显示布局,使用Windows7巧妙管理文件夹的图文介绍
  6. 怎么在alert里加图片_鹅蛋怎么挑选?教你2招,一看一摇听声音
  7. 少儿学编程系列---如何使用turtle画鸡蛋
  8. 国际贸易中,FOB CFR CIF的区别是什么?
  9. 银河麒麟中的录屏软件
  10. CCF 201903-2 二十四点 用栈模拟简单计算器