19-9-25一次面试记录
2019-10-08 本文已影响0人
竹语9527
1、点击桌面图标系统如何运行至打开第一个界面的?
Android Activity启动过程-从桌面点击图标到调用Activity的OnCreate - 简书
主要过程:launcher进程 startActivity() -> ActivityThread main() -> AMS(Binder) startActivity() -> ApplicationThread scheduleLaunchActivity() -> Handler H发送message ->获取待启动Activity组件信息并创建Activity对象 -> Activity attach(创建Window对象PhoneWindow并关联DocorView) -> 执行Activity生命周期方法
2、Activity启动模式
3、Handler机制
4、内存泄漏和内存优化相关
5、View绘制原理(onMesure父布局和子View如何确定子View的尺寸)
6、事件分发机制(如何确定ViewGroup的事件子View和滑动冲突解决方案)
7、属性动画相关
Android 属性动画(Property Animation) 使用详解 - 简书
8、View绘制完毕监听相关(view.post()和ViewTreeObserver)
9、设计模式(动态代理和静态代理)
静态代理类:由程序员创建或由特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。
动态代理类:在程序运行时,运用反射机制动态创建而成。
10、OkHttp源码相关(六种拦截器的作用)
11、ArrayLsit、LinkedList、HashMap、LinkedHashMap、ConcurrentHashMap的原理和存储
https://blog.csdn.net/baidu_28068985/article/details/78529246
12、java的5个内存区域及其内部原理
13、synchronize和volatile
14、垃圾回收机制
15、Android Studio 按下编译按钮后发生了什么?
(1)打包资源文件,生成R.java文件(使用工具AAPT)
(2)处理AIDL文件,生成java代码(没有AIDL则忽略)
(3)编译 java 文件,生成对应.class文件(java compiler)
(4).class 文件转换成dex文件(dex)
(5)打包成没有签名的apk(使用工具apkbuilder)
(6)使用签名工具给apk签名(使用工具Jarsigner)
(7)对签名后的.apk文件进行对齐处理,不进行对齐处理不能发布到Google Market(使用工具zipalign)