BAT大牛面试之谈解密Android上(含百度云连接)

本文出自: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

推荐加深博文

扣丁学堂——Activity(一)

扣丁学堂——Activity(二)

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

加深学习:

扣丁学堂——Fragments

3.Service

这里写图片描述 

这里写图片描述 
- service 和 广播broadcast都是运行在主线程,都不能做长时间耗时操作 
- 安卓四大组件之一 
- ANR(application not responding)程序未响应 
- 耗时网络,文件数据查询,阻塞UI 
- service使用子线程进行后台操作 
- 线程:程序执行流的最小单元,分配CPU的最小单位 
- 功能(工作)线程:可以执行在线程执行一些耗时操作 
- 主线程:主要负责一些UI线程的绘制 
- service和Thread的关系不是很大 (后台≠服务≠子线程)

1.Startservice

这里写图片描述

这里写图片描述

这里写图片描述

  • StartCommand返回值:START_STICKY意味着当整个Service因为内存不足而被系统杀掉之后,一段时间内存再次充足的时候,会尝试重新创建Service(intent为空)
  • 这里写图片描述

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下(含百度云连接)


猜你喜欢

转载自blog.csdn.net/dt235201314/article/details/79669044
今日推荐