除了Bug,最让你头疼的问题是什么?单身?秃头?996?面试造火箭,工作拧螺丝?
作为安卓开发者,除了Bug,经常会碰到下面这些问题:
应用卡顿,丢帧,屏幕画面撕裂,操作界面刷新缓慢,UI不美观,布局混乱…这些问题频发的话,年后可能就不用来了。
开发App的时候,你是否会觉得界面卡顿?尤其是自定义View的时候。
Android 应用的卡顿、丢帧等,这些影响用户体验的因素绝大部分都与 16ms 这个值有关。Android 设备的刷新率也是 60Hz,Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果超过了16ms,我们则认为发生了卡顿。
一.字节跳动
-
讲讲面向过程、面向对象、面向切面。
-
指针和数组的关系和区别。
-
讲讲Android handler。
-
队列和栈的区别和用途。
-
两个栈实现队列。
-
输入Url到浏览器显示过程。
-
http请求方法。
-
get和post区别。
-
surficeView和view的区别。
-
app从点击图标开始的启动全过程。
-
什么是线程安全。
-
线程安全有哪些机制。
-
如何保证 int加加(加号打不出来)线程安全。
-
Android线程间通信有哪些机制。
-
cpu调度方式有哪些。
-
空间局部性和时间局部性。
-
数据库乐观锁和悲观锁。
-
数据库索引作用,优缺点。
-
TCP拥塞控制。
-
https加密传输过程。
-
java内存模型。
-
java垃圾回收算法有哪些。
-
讲讲标记清除算法。
-
java四中引用。
-
谈谈线程池原理
二.百度
- jvm内存模型,类里面各种数据都存在哪个区域
- 类加载机制,过程,双亲委派
- 类的结构, 对象头
- gc算法和回收器
- OOM
- 怎么防止内存泄露
- volatile,synchronized,读写锁,可重入锁,互斥锁,自旋锁
- ThreadLocal
- wait,notify,notifyall
- 操作系统中虚拟内存是怎么实现的?
- 用socket实现一个TCP连接
- 树的遍历方式
- 深度优先遍历的几种方式
- 用栈实现先序遍历
- 二分查找的时间复杂度,对数据有什么要求?
- 你对数据结构这门课是怎么理解的?
- HTTPS,CA
- FTP协议
- 浏览器输入网址到页面显示的过程
- TCP的包装结构
- 7层网络模型
- 信息储存的方式,应用场景
- 进程间通信的方式,aidl
- Bundler原理
- Handler机制
- HandlerThread,IntentService,AsyncTask
- 点击事件分发机制
- 滑动冲突解决
- 广播注册方式,区别
- 有序无序广播,本地广播
- 服务的启动方式,区别,用途
- 数据提供者怎么用?原理?
- 布局是怎样加载的?有哪些方式
- 绘制优化方式
- 看过哪些第三方库的源码?
####三.其他 - 算法相关面试
- 屏幕适配
- 自定义View
- 事件传递机制的认识
- Opengl
- OpenCV
最后
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
最后针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!
需要资料的朋友可以点击我的腾讯文档免费领取
希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!