在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
相信很多小伙伴在准备面试复习的时候,都会因为没有建立自己系统的知识结构,而常常翻开书本马冬梅,合上书本马什么梅。出现这样的情况并不是个例,因此大家应该努力建立自己的Android知识体系,这样多复习几遍,一些重难点就能了熟于胸了。本文为大家整理了一套全面的Android基础知识点,有面试复习需要的小伙伴赶紧收藏起来吧~
一、Activity
1、Activity的四大启动模式和应用场景
(1)standard
标准模式,每次都会在活动栈中生成一个新的Activity实例。通常我们使用的活动都是标准模式。
(2)singleTop
栈顶复用,如果Activity实例已经存在栈顶,那么就不会在活动栈中创建新的实例。比较常见的场景就是给通知跳转的Activity设置,因为你肯定不想前台Activity已经是该Activity的情况下,点击通知,又给你再创建一个同样的Activity。
(3)singleTask
栈内复用,如果Activity实例在当前栈中已经存在,就会将当前Activity实例上面的其他Activity实例都移除栈。常见于跳转到主界面。
(4)singleInstance
单实例模式,创建一个新的任务栈,这个活动实例独自处在这个活动栈中。
二、屏幕适配
1、屏幕适配原理
设备像素px和设备独立像素dp之间的关系px = dp * density
三、Android消息机制
1、Android消息机制的四大概念
ThreadLocal、MessageQueue、Looper、Handler
2、过程
(1)准备工作
创建Handler,如果是在子线程中创建,还需要调用Looper#prepare(),在Handler的构造函数中,会绑定其中的Looper和MessageQueue。
(2)发送消息
创建消息,使用Handler发送。
(3)进入MessageQueue
因为Handler中绑定着消息队列,所以Message很自然的被放进消息队列。
(4)Looper轮询消息队列
Looper是一个死循环,一直观察有没有新的消息到来,之后从Message取出绑定的Handler,最后调用Handler中的处理逻辑,这一切都发生在Looper循环的线程,这也是Handler能够在指定线程处理任务的原因。
3、Looper在主线程中死循环没有卡死界面的原因
导致卡死的是在Ui线程中执行耗时操作导致界面出现掉帧,甚至ANR,Looper.loop()这个操作本身不会导致这个情况;Looper会在没有消息的时候阻塞当前线程,释放CPU资源,等到有消息到来的时候,再唤醒主线程;App进程中是需要死循环的,如果循环结束的话,App进程就结束了。
4、介绍IdleHandler
IdleHandler是在Hanlder空闲时处理空闲任务的一种机制。它的执行场景:MessageQueue没有消息,队列为空的时候;MessageQueue属于延迟消息,当前没有消息执行的时候。
四、Bitmap
1、Bitmap的内存计算方式
在已知图片的长和宽的像素的情况下,影响内存大小的因素会有资源文件位置和像素点大小。
2、Bitmap的高效加载
Bitmap的高效加载在Glide中也用到了,思路是获取需要的长和宽,一般获取控件的长和宽;设置BitmapFactory.Options中的inJustDecodeBounds为true,可以帮助我们在不加载进内存的方式获得Bitmap的长和宽;对需要的长和宽和Bitmap的长和宽进行对比,从而获得压缩比例,放入BitmapFactory.Options中的inSampleSize属性;设置BitmapFactory.Options中的inJustDecodeBounds为false,将图片加载进内存,进而设置到控件中。
以上就是Android基础知识点面试复习的整理,希望本文可以让大家充分完成面试前技术上的储备工作,并帮助大家顺利通过面试拿到offer。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
2019年11月IT编程语言排行榜 年底C语言将逆袭Java?
2019年11月IT编程语言排行榜年底C语言将逆袭Java?,热门的5种编程语言依然是Java、C、Python、C++、C#。C、Java、C++在近20年的时间里一直位居前三,直到C++被后起之秀Python在今年1月份顶出Top3。TIOBE官方作出预测,最快在今年年底前C语言或将成功逆袭Java,成为最热编程语言。
6142
2019-11-14 10:27:44
程序员接私活赚钱的平台推荐
相信现在许多程序员都有接私活赚钱的想法,那么哪里有比较靠谱的平台呢?本文就来为大家推荐目前国内外程序员接私活的平台,分别是快码众包、我要外包网、Coding码市、码易、我爱方案网、人人开发和oschina众包。不过大家在这些平台上接私活的时候,还是要先判断项目是否靠谱,以及薪资如何交付等问题。
7609
2020-01-15 19:43:49
网上总说IT行业饱和了是真的吗?
每天我们总能在网上看到有人说:“IT行业早就饱和了,根本找不到工作”。IT行业真的饱和了吗?打开手机里面的招聘软件,搜索IT行业的技术岗位,我们可以看到大量的高薪职位正在招聘。那为什么总有IT行业饱和的言论在肆意流传呢?今天我们就来分析一下:那些年,网上总说IT行业饱和了是真的吗?
5415
2020-07-17 11:51:47
如何阅读源代码?四大指导原则
大家知道为什么程序员要阅读源代码吗?一方面是由于在开发工作中,肯定会碰到接手别人项目的情况,不懂得阅读源码连工作都做不好;另一方面,阅读源代码是学习和提升技能的重要方法。既然阅读源代码如此重要,那么我们应该如何阅读源代码呢?今天跟大家聊聊阅读源码的四大指导原则。
4628
2020-07-17 12:28:06
程序员的终极目标就是高级程序员吗?非也!
程序员的终极目标就是高级程序员吗?非也!提起雷军这个名字,很多人都知道他是小米手机的创始人,但却鲜有人知道其实他曾经是一名程序员,且是大佬级别。他作为程序员的一些经历、初衷以及思考,看完之后感触颇深,觉得对刚入行或是已经入行的程序员而言都是宝贵的经验,希望大家看完之后也能有所感触。
2790
2022-05-04 10:48:03