andriod各个知识点.pdf

preview
需积分: 0 0 下载量 54 浏览量 更新于2023-02-07 收藏 4.68MB PDF 举报
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开发的基础知识,并更好地应对面试中的难题。
猪猪上
  • 粉丝: 10
  • 资源: 10
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜

最新资源