本文介绍了“安卓的基本知识点有哪些”的相关知识。很多人在实际案例的操作中会遇到这样的困难。让边肖带领你学习如何处理这些情况。希望大家认真阅读,学点东西!
一、活动。
1.Activity的四种启动模式和应用场景。
(1)标准
标准,每次都会在活动堆栈中生成一个新的活动实例。通常,我们使用的活动是标准模式。
(2)单线图
栈顶重用。如果堆栈顶部已经存在活动实例,则不会在活动堆栈中创建新实例。更常见的情况是将“活动”设置为通知跳转,因为当前台的“活动”已经是“活动”时,您肯定不想单击通知,然后为您创建另一个相同的“活动”。
(3)单项任务
堆栈内重用,如果活动实例已经存在于当前堆栈中,则当前活动实例之上的所有其他活动实例都将从堆栈中移除。跳转到主界面很常见。
(4)单一实例
在单实例模式下,会创建一个新的任务堆栈,并且该活动实例在该活动堆栈中是单独的。
第二,屏幕适配。
1.屏幕适配原理。
设备像素px和设备独立像素dp px之间的关系=dp *密度。
第三,安卓消息机制。
1.Android消息机制的四个概念。
线程本地、消息队列、循环程序、处理程序
2.流程。
(1)前期准备工作。
要创建一个处理程序,如果它是在一个子线程中创建的,您还需要调用Looper#prepare()。在处理程序的构造函数中,循环程序和消息队列将被绑定。
(2)发送消息。
创建一条消息,并使用处理程序发送它。
(3)进入消息队列。
消息自然被放入消息队列,因为消息队列被绑定在处理程序中。
(4)Looper轮询消息队列。
Looper是一个无限循环,它总是观察新消息是否到达,然后从消息中取出绑定的Handler,最后调用Handler中的处理逻辑。所有这些都发生在Looper循环的线程中,这就是为什么Handler可以在指定的线程中处理任务。
3.Looper没有阻塞主线程中接口的原因。
造成卡顿的原因是Ui线程中耗时的操作导致接口掉帧,甚至操作ANR、Looper.loop()本身都不会造成这种情况;Looper会在没有消息时阻塞当前线程,释放CPU资源,然后在有消息时唤醒主线程;App流程需要一个无止境的循环,如果循环结束,App流程也就结束了。
4.引入IdleHandler。
IdleHandler是一种在Handler空闲时处理空闲任务的机制。其执行场景:当MessageQueue没有消息,队列为空时;MessageQueue是一个延迟的消息,目前没有执行消息的时间。
四.位图
1.位图的内存计算方法。
给定图片的长像素和宽像素,影响内存大小的因素是资源文件的位置和像素的大小。
2.位图的有效加载。
在Glide中也使用了位图的有效加载。想法是获得所需的长度和宽度,一般是获得控件的长度和宽度。在BitmapFactory中设置inJustDecodeBounds。选项为true可以帮助我们获得位图的长度和宽度,而无需将其加载到内存中;将所需的长度和宽度与位图的长度和宽度进行比较,得到压缩比,并将其放入位图工厂中的inSampleSize属性中。选项;在BitmapFactory中设置inJustDecodeBounds。选项设置为false,将图片加载到内存中,然后在控件中设置它。
这里介绍一下“安卓的基本知识点有哪些”的内容。感谢阅读。如果你想了解更多行业,关注网站,边肖将为大家输出更多高质量的实用文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/66413.html