2020年度 Android面试知识点总结(持续更新)

编程入门 行业动态 更新时间:2024-10-08 13:39:09

2020年度 Android面试<a href=https://www.elefans.com/category/jswz/34/1770093.html style=知识点总结(持续更新)"/>

2020年度 Android面试知识点总结(持续更新)

博主是一个渣渣末流二本,非科班出身,半路出家的学渣,专业成绩一般,2020年4月末才开始投简历,相继投了一百多份简历,愿意给面试机会的寥寥无几,连十几家国企都没有给俺一个机会,怀疑被列入黑名单了(开玩笑),面试也吃了很多亏,众多大厂中,只有多益给了面试的机会,最后拿到了offer,然而......它的风评实在是让我望而止步。

深刻地意识到自己是个five,所以决定写一篇博客来记录面试可能遇到的问题和知识点,还不是很全面,但是会持续更新,觉得有帮助的话就点赞 收藏吧,共勉!

 

准备:

  • 刷题:牛客网,LeetCode
  • 简历(牛客有模板)
  • 招聘平台:智联,拉勾,Boss直聘,前程无忧,脉脉、招聘公众号 等等(疫情期间变成了失联招聘、拉钩上吊、Boss直拒,前程堪忧,20年春招深有体会o(╥﹏╥)o)
  • 查公司:职友集、职Q、看准(推荐用手机App)、知乎、天眼查、百度信用 等等(看准App是个避坑神器)

 

Android:

四大组件

  • Activity

面试问题:

/Android%E9%83%A8%E5%88%86-1%20Activity%E7%AD%94%E6%A1%88.md

  • Service

面试问题:

/Android%E9%83%A8%E5%88%86-4%20Service.md

  • BroadcastReceiver

    .html

使用详解:

  • ContentProvider

 

IntentService:

Service保活:

.html

后台应用保活,消息推送:

第五大组件Fragment

 

Activity和Fragment各种情况下的生命周期

Android各版本的改动和不同:

 

ListView

 

RecycleView

 

自定义View

Gson

.html

为什么尽量不用全局静态变量作为数据载体在Activity之间传输

 

Activity通信数据量大应该使用什么方案(避免Itent传大量数据

 

弹出对话框或者浮层为何使用DialogFragment,而非Dialog/AlertDialog(便于生命周期的管理

 

不要在Application中存储数据(如Activity被杀死再重构会导致数据丢失

 

getExternalCacheDir与getCacheDir的区别

 

Android的多进程的问题

1)不能实现完全退出所有Activity的功能;

2)首次进入新启动进程的页面时会有延时的现象(有可能黑屏、白屏几秒);

3)应用内多进程时,Application实例化多次,需要考虑各个模块是否都需要在所有进程中初始化;

4)多进程间通过SharedPreferences共享数据时不稳定。

 

多进程下的SharedPreferences

 

为什么尽量不要用AnimationDrawable

初始化的时候就将所有图片加载到内存中,特别占内存并且还不能释放,释放之后下次进入再次加载时会报错。

 

Glide的缓存机制

 

PendingIntent

 

在不怎么降低视觉效果的前提下减少内存占用

 

同时播放多个gif需要注意什么,单个gif图片大小有什么限制

 

刷新某一区域的组件,如何避免引发全局layout的刷新

1)设置固定的view大小的高宽,如倒计时组件等;

2)调用view的layout方式修改位置,如弹幕组件等;

3)通过修改canvas位置并且调用invalidate(int l, int t, int r, int b)等方式限定刷新 区域;

4)通过设置一个是否允许requestLayout的变量,然后重写控件的requestlayout、onSizeChanged方法,判断控件的大小没有改变的情况下,当进入requestLayout的时候,直接返回而不调用super的requestLayout方法。

 

ARGB_565和ARGB_888

 

 

 

 

UI布局

为什么ViewGroup多重嵌套时,使用RelativeLayout比LinearLayout更好?(有效降低嵌套数

 

dp、dx、dip等等的布局参数单位区别

 

各种手机屏幕的适配

 

设计布局时多次设置子view和父view中为同样的背景有什么问题(造成页面过度绘制

 

为什么不能使用ScrollView包裹ListView/GridView/ExpandableListVIew

因为这样会把ListView的所有Item都加载到内存中,要消耗巨大的内存和cpu去绘制图面。说明:ScrollView中嵌套List或RecyclerView的做法官方明确禁止。除了开发过程中遇到的各种视觉和交互问题,这种做法对性能也有较大损耗。ListView等UI组件自身有垂直滚动功能,也没有必要在嵌套一层ScrollView。目前为了较好的UI体验,更贴近Material Design的设计,推荐使用NestedScrollView。

 

 

Java:

Java的优缺点:

百度即可

面向对象的三大特征:封装、继承、多态

List、Map和Set的区别,以及它们的使用场景

操作系统是什么?

百度即可

什么是进程?什么是线程?二者的区别

Java各种变量的不同,各种数据类型的默认值

哈希冲突

 

HashMap的时间复杂度

/

泛型

对象和类的生命周期

GC的原理

.html

音频

 

视频

 

 

 

设计模式:

单例模式

饿汉模式和懒汉模式

 


数据结构:

链表与数组的主要区别

.html

堆和栈的区别

 

如何判断链表有环

各种数据类型存储在栈内还是堆内

 

 

 

算法:

  • 剑指offer:

  • LeetCode:

/

 

时间复杂度和空间复杂度的计算和判断

 

堆排序算法

二叉树第K层节点的遍历

栈的最大值

反转链表

2维平面n个点,一条直线最多通过多少个点

比较两个版本号大小

1到n的所有排列

排序算法的稳定性和意义

递归的缺点

 

 

 

计算机网络基础:

HTTP和HTTPS有什么不同

传输层tcp协议如何保证可靠传输

 

 

更多推荐

2020年度 Android面试知识点总结(持续更新)

本文发布于:2024-02-28 08:30:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768778.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:知识点   年度   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!