去年8月下载的面试视频,现在才想起来看,金三银四刷起来
本文为视频笔记和加深链接,希望对你有所帮助
四大组件之一,Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。
1)Ativity生命周期
activity的四种状态
running 活动状态,用户点击屏幕,屏幕做出相应
paused 失去焦点时(被一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶),操作屏幕无反应,activity(成员变量,状态信息)存在;内存紧张,activity回收
stopped 该activity被另一个activity完全覆盖的时候,activity(成员变量,状态信息)存在;内存紧张,activity回收
killed activity被回收
activity生命周期分析
onCreate() 设置一些布局的资源,数据加载,图片预加载
onStart() 正在加载,可见,不可操作
onResume() 可操作,课可交互
onRestart() 由不可见到可见状态
onDestroy() 销毁,资源释放
android进程优先级
前台>可见(不可操作)>服务>后台(前台隐藏)>空>
2)android任务栈(后进先出)
任务栈不唯一
一个activity可以独享一个任务栈
3)activity启动模式
standard 系统的默认模式,一次跳转即会生成一个新的实例并加入任务栈。比较消耗资源。
(不同页面跳转就是多个activity跳转(复用)
singletop 站顶复用模式。如果新activity在栈顶存在,就复用
如果activity处于站点第二个位置的话,还是会重新创建activity
singlettask 站内复用模式(单例) 如果新activity在整个栈中存在,就将activity置于栈顶,并将该activity以上的所有销毁
singleinstance 该activity 将独占一个task(task可以理解为进程)
4)schema跳转协议
这里写图片描述
- 服务端下发url路径,客户端根据其跳转
- 从H5页面跳转到相应APP的activity
- APP根据url跳转到另一个APP
推荐加深博文
扣丁学堂——Activity(一)
扣丁学堂——Activity(二)
1)
- 使用频率,作用,生命周期(view没有)
- 节省内存,相比Activity
- UI切换更加舒适
2)
- 依附Activity
- 静态加载(添加Fragment到Activity的布局文件中)
- 动态加载,添加Fragment到Activity
FragmentPagerAapter适用于页面较少的情况
detach方法就是把ActivityUI和FragmentUI分离
FragmentStatePagerAdapter适用于页面较多的情况(节省内存,切换页面,回收内存)
viewpager -> 内存消耗
Fragment的生命周期
Fragment从启动到销毁生命周期的全过程
流程图说明,在方法一要在fragment方法的OnActivityCreated方法里,Activity-onCreate之后
fragment相关方法:
加深学习:
扣丁学堂——Fragments
3.Service
1.Startservice
2.Bindservice
加深学习:
扣丁学堂——Service
4.BroadcastReceiver
加深学习:
扣丁学堂——BroadcastReceiver(广播)
Android四大组件:BroadcastReceiver史上最全面解析
十分钟解析LocalBroadcastManager
5.WebView
Android:最全面的 Webview 详解
6.Binder
Android:图文详解 Binder跨进程通信 原理
7.handler
扣丁学堂——handler(已加强延伸)
8.AsyncTask
扣丁学堂——AsyncTask(已加强延伸)
9.handleThread
Android多线程:HandlerThread详细使用手册
Android多线程:一步步带你源码解析HandlerThread
10.InterService
Android多线程:IntentService用法&源码分析
Android 多进程编程 15问15答!
视频下载链接(目前审核中):https://download.csdn.net/download/dt235201314/10309622
相关文章:
BAT大牛面试之谈解密Android上(含百度云连接)
BAT大牛面试之谈解密Android中(含百度云连接)
BAT大牛面试之谈解密Android下(含百度云连接)