本文出自:https://blog.csdn.net/DT235201314/article/details/79669044
一丶概述
去年8月下载的面试视频,现在才想起来看,金三银四刷起来
本文为视频笔记和加深链接,希望对你有所帮助
一丶课程介绍
BAT大咖助力 全面升级Android面试二丶面试建议
三丶面试内容
1.Activity
四大组件之一,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
推荐加深博文
2.Fragment
1)
- 使用频率,作用,生命周期(view没有)
- 节省内存,相比Activity
- UI切换更加舒适
2)
- 依附Activity
- 静态加载(添加Fragment到Activity的布局文件中)
- 动态加载,添加Fragment到Activity
FragmentPagerAapter适用于页面较少的情况
detach方法就是把ActivityUI和FragmentUI分离
FragmentStatePagerAdapter适用于页面较多的情况(节省内存,切换页面,回收内存)
viewpager -> 内存消耗
Fragment的生命周期
Fragment从启动到销毁生命周期的全过程
流程图说明,在方法一要在fragment方法的OnActivityCreated方法里,Activity-onCreate之后
fragment相关方法:
- replace 替换Activity最上层的Fragment
- add
- remove
加深学习:
3.Service
- service 和 广播broadcast都是运行在主线程,都不能做长时间耗时操作
- 安卓四大组件之一
- ANR(application not responding)程序未响应
- 耗时网络,文件数据查询,阻塞UI
- service使用子线程进行后台操作
- 线程:程序执行流的最小单元,分配CPU的最小单位
- 功能(工作)线程:可以执行在线程执行一些耗时操作
- 主线程:主要负责一些UI线程的绘制
- service和Thread的关系不是很大 (后台≠服务≠子线程)
1.Startservice
- StartCommand返回值:START_STICKY意味着当整个Service因为内存不足而被系统杀掉之后,一段时间内存再次充足的时候,会尝试重新创建Service(intent为空)
2.Bindservice
加深学习:
4.BroadcastReceiver
加深学习:
Android四大组件:BroadcastReceiver史上最全面解析
5.WebView
6.Binder
7.handler
8.AsyncTask
9.handleThread
Android多线程:HandlerThread详细使用手册
Android多线程:一步步带你源码解析HandlerThread
10.InterService
Android多线程:IntentService用法&源码分析
视频下载链接(目前审核中):https://download.csdn.net/download/dt235201314/10309622
相关文章: