3月份的字节跳动面经

在这里插入图片描述

本人2本毕业,目前工作四年,一直是Android。

做的都是些二线公司,没做过一线。四年跳了三家公司。在家休息了几个月,

今年3月份开始面试。

由于跳槽过多而且已经是现在Android市场的原因。内推的我的字节哥们儿,推了不知道多少个部门,才把我推进去。

这里还是奉劝大家跳槽不要像我这么频繁,唉。而且想进大厂,建议找人内推。这是我第一次面字节,也是今年第一场面试,各种意义都算是初体验了。

这里分享此次的面试题

整理 Android 中高级面试展开的完整面试题

img

一. Android面试相关

1.Activity

​ ● 说下Activity生命周期

​ ● Activity A 启动另一个Activity B 会调用哪些方法?如果B是透明主题的又或则是个DialogActivity呢

​ ● 说下onSaveInstanceState()方法的作用 ? 何时会被调用?

​ ● Activity的启动流程

​ ● onSaveInstanceState(),onRestoreInstanceState的掉用时机

​ ● activity的启动模式和使用场景

​ ● Activity A跳转Activity B,再按返回键,生命周期执行的顺序

​ ● 横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转透明Activity界面,启动一个 Theme 为 Dialog 的 Activity,弹出Dialog时Activity的生命周期

​ ● onStart 和 onResume、onPause 和 onStop 的区别

​ ● Activity之间传递数据的方式Intent是否有大小限制,如果传递的数据量偏大,有哪些方案

​ ● Activity的onNewIntent()方法什么时候会执行

​ ● 显示启动和隐式启动

​ ● scheme使用场景,协议格式,如何使用

​ ● ANR 的四种场景

​ ● onCreate和onRestoreInstance方法中恢复数据时的区别

​ ● activty间传递数据的方式

​ ● 跨App启动Activity的方式,注意事项

​ ● Activity任务栈是什么

​ ● 有哪些Activity常用的标记位Flags

​ ● Activity的数据是怎么保存的,进程被Kill后,保存的数据怎么恢复的

img

2.Service

​ ● service 的生命周期,两种启动方式的区别

​ ● Service的两种启动方式?区别在哪

​ ● 如何保证Service不被杀死 ?

​ ● Service与Activity怎么实现通信

​ ● IntentService是什么,IntentService原理,应用场景及其与Service的区别

​ ● Service 的 onStartCommand 方法有几种返回值?各代表什么意思?

​ ● bindService和startService混合使用的生命周期以及怎么关闭

​ ● 用过哪些系统Service ?

​ ● 了解ActivityManagerService吗?发挥什么作用

img

3.BroadcastReceiver

​ ● 广播的分类和使用场景

​ ● 广播的两种注册方式的区别

​ ● 广播发送和接收的原理

​ ● 本地广播和全局广播的区别

img

4.ContentProvider

​ ● 什么是ContentProvider及其使用

​ ● ContentProvider的权限管理

​ ● ContentProvider,ContentResolver,ContentObserver之间的关系

​ ● ContentProvider的实现原理

​ ● ContentProvider的优点

​ ● Uri 是什么

5.Handler

​ ● Handler的实现原理

​ ● 子线程中能不能直接new一个Handler,为什么主线程可以主线程的Looper第一次调用loop方法,什么时候,哪个类

​ ● Handler导致的内存泄露原因及其解决方案

​ ● 一个线程可以有几个Handler,几个Looper,几个MessageQueue对象

​ ● Message对象创建的方式有哪些 & 区别?

​ ● Message.obtain()怎么维护消息池的Handler 有哪些发送消息的方法

​ ● Handler的post与sendMessage的区别和应用场景

​ ● handler postDealy后消息队列有什么变化,假设先 postDelay 10s, 再postDelay 1s, 怎么处理这2条消息

​ ● MessageQueue是什么数据结构

​ ● Handler怎么做到的一个线程对应一个Looper,如何保证只有一个MessageQueue ThreadLocal在Handler机制中的作用

​ ● HandlerThread是什么 & 好处 &原理 & 使用场景

​ ● IdleHandler及其使用场景

​ ● 消息屏障,同步屏障机制

​ ● 子线程能不能更新UI

​ ● 为什么Android系统不建议子线程访问UI

​ ● Android中为什么主线程不会因为Looper.loop()里的死循环卡死

​ ● MessageQueue#next 在没有消息的时候会阻塞,如何恢复?

​ ● Handler消息机制中,一个looper是如何区分多个Handler的

​ ● 当Activity有多个Handler的时候,怎么样区分当前消息由哪个Handler处理

​ ● 处理message的时候怎么知道是去哪个callback处理的

​ ● Looper.quit/quitSafely的区别

​ ● 通过Handler如何实现线程的切换

​ ● Handler 如何与 Looper 关联的

​ ● Looper 如何与 Thread 关联的

​ ● Looper.loop()源码

​ ● MessageQueue的enqueueMessage()方法如何进行线程同步的

​ ● MessageQueue的next()方法内部原理

​ ● 子线程中是否可以用MainLooper去创建Handler,Looper和Handler是否一定处于一个线程

​ ● ANR和Handler的联系

由于文章内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要 Android中高级面试必知必会 完整文档的可以加微信 即可免费领取!(承诺:100%免费)

猜你喜欢

转载自blog.csdn.net/Android_XG/article/details/130720606
今日推荐