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启动模式

Activity启动模式

3、Handler机制

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)

上一篇下一篇

猜你喜欢

热点阅读