Android高级开发面试题及答案解析 作为一名高级Android开发工程师,我整理了 Android 相关知识点,以帮助大家更好地理解 Android 开发面试题和答案。下面是 Android 高级开发面试题及答案解析。 Activity启动流程 Activity的启动流程是 Android 开发中非常重要的一个知识点。启动流程可以分为以下几个步骤: 1. 点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求; 2. system_server进程接收到请求后,向zygote进程发送创建进程的请求; 3. Zygote进程fork出新的子进程,即App进程; 4. App进程,通过Binder IPC向system_server进程发起attachApplication请求; 5. system_server进程在收到请求后,进行一系列准备工作后,再通过binder IPC向App进程发送scheduleLaunchActivity请求; 6. App进程的binder线程(ApplicationThread)在收到请求后,通过handler向主线程发送LAUNCH_ACTIVITY消息; 7. 主线程在收到Message后,通过发射机制创建目标Activity,并回调Activity.onCreate()等方法。 onSaveInstanceState()和onRestoreInstanceState()的调用时机 onSaveInstanceState()和onRestoreInstanceState()是Activity生命周期中两个非常重要的方法。 onSaveInstanceState()会在以下情况被调用: * 从最近应用中选择运行其他的程序时。 * 当用户按下HOME键时。 * 屏幕方向切换时。 * 按下电源按键(关闭屏幕显示)时。 * 从当前activity启动一个新的activity时。 onRestoreInstanceState()会在以下情况被调用: * 屏幕方向切换时,activity生命周期如下onPause -> onSaveInstanceState -> onStop -> onDestroy -> onCreate -> onStart -> onRestoreInstanceState-> onResume。 * 在后台被回收。 * 按HOME键返回桌面, 又马上点击应用图标回到原来页面时不会被回收onStart -> onRestoreInstanceState -> onResume。 在系统会调用ActivityThread的performStopActivity方法中掉用onSaveInstanceState,将状态保存在mActivities中,mActivities维护了一个Activity的信息表,当Activity重启时候,会从mActivities中查询到对应的ActivityClientRecord。如果有信息,则调用Activity的onResoreInstanceState方法,在ActivityThread的performLaunchActivity方法中,统会调用onRestoreInstanceState方法。 通过对Activity启动流程和onSaveInstanceState()、onRestoreInstanceState()的调用时机的理解,我们可以更好地掌握Android开发的基础知识,并更好地应对面试中的难题。
剩余125页未读,继续阅读
- 粉丝: 10
- 资源: 10
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot和Vue的高性能售票系统.zip
- (源码)基于Windows API的USB设备通信系统.zip
- (源码)基于Spring Boot框架的进销存管理系统.zip
- (源码)基于Java和JavaFX的学生管理系统.zip
- (源码)基于C语言和Easyx库的内存分配模拟系统.zip
- (源码)基于WPF和EdgeTTS的桌宠插件系统.zip
- (源码)基于PonyText的文本排版与预处理系统.zip
- joi_240913_8.8.0_73327_share-2EM46K.apk
- Library-rl78g15-fpb-1.2.1.zip
- llvm-17.0.1.202406-rl78-elf.zip