![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓
文章平均质量分 94
让开,我要吃人了
这个作者很懒,什么都没留下…
展开
-
Android无障碍代理的那些事
作者:Petterp本篇将聊一聊什么是无障碍代理,及结合实际场景,分享一下我们对于无障碍代理的使用,并且如何让其更加易用。什么是无障碍代理?当用户在无障碍模式下时,用户在界面上与 View 的所有操作,都会触发相应的无障碍事件,这些事件最终由 无障碍服务处理 ,其会利用这些事件中的信息生成反馈和提示。自Android1.6(Api-4)开始,Android提供了相应的无障碍事件的代理扩展,我们可以通过实现相应的无障碍代理类(AccessibilityDelegate 或 Accessibility.转载 2022-03-28 14:04:01 · 5716 阅读 · 0 评论 -
Android中Bitmap的加载和Cache
作者:PanicLin简介由于Bitmap的特殊性以及Android对单个应用所施加的内存限制,比如16MB,导致加载Bitmap时很容会议出现内存溢出。如何高效加载Bitmap是一个很重要也容易被开发者忽视的问题。Android中缓存策略是一个通用的思想,实际开发中经常需要用到Bitmap做缓存。通过缓存策略我么不需要每次都从网络上请求图片或者从存储设备中加载图片。目前比较常用的缓存策略时LruCache和DiskLruCache,其中LruCache常被用作内存缓存,而DiskLruCache.转载 2022-03-27 20:47:13 · 200 阅读 · 0 评论 -
哪怕不学Gradle,这些常见操作,你也值得掌握
作者:Petterp引言Gradle 是每个 Android 同学都逃不开的一个话题。你是否看到别人的 Gradle 文件干净又卫生?而自己的又是一团乱麻不用怕,本篇将结合我的开发日常,将一些常用的操作分享出来,希望可以帮到像我一样不怎么会[玩]Gradle 的同学,相信会对大家有所帮助。模板代码提取这是最基础的操作了,对于一个普通 model.gradle ,默认的配置如下:如果我们每个 model 都这样写,那岂不是很麻烦,那么让我们提取通用代码:优化步骤新建一个 gradle .转载 2022-03-23 14:53:43 · 114 阅读 · 0 评论 -
面试官问:Handler内存泄露的场景,别就只知道静态内部类&弱引用……
我们在编码的过程中,如果出现疏忽或错误,造成程序未能释放已经不再使用的内存,就会导致内存泄露,随着泄露内存的增长,最终一定会导致 OOM。在 JVM 中,对对象的回收 GC 是基于可达性分析。简单来说,就是从 GC Root 出发,被引用的对象均被标记为存活,而没有被引用的对象,则被标记为垃圾,即可以被 GC 回收。那么如果出现内存泄露,可以理解为就是一个长生命周期的对象,引用了短生命周期的对象,导致短生命周期的对象,在生命周期结束后,仍然得不到回收,最终导致内存泄露。而 Handler 若是使用不当原创 2022-03-22 20:50:27 · 184 阅读 · 0 评论 -
关于ViewModel的这几个问题,你都知道吗?
前言作为一名Android开发者,如果你熟悉MVVM架构,熟悉Jetpack组件,那么相信你肯定使用过ViewModel。正如它的名字一样,它是Google推出的一个类,方便我们实现MVVM架构中的ViewModel层。我们在其中处理View层所需的数据,然后在特定条件下通知View层进行UI更新。正如官方所介绍:ViewModel 类以注重生命周期的方式存储和管理界面相关的数据。ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。我们抓一下这句话的重点:注重生命周期的方式:原创 2022-03-21 18:00:13 · 2910 阅读 · 0 评论 -
细数SharedPreferences的5大缺陷及ANR原因
我们经常使用的SharedPreferences其实是存在很多缺陷的,主要表现在占用内存getValue时可能导致ANR不支持多进程不支持全量更新commit或apply都可能导致ANR以下参考安卓源码的基础上,使用大白话和部分代码片段和大家一起探讨分享。占用内存final class SharedPreferencesImpl implements SharedPreferences { ...... //构造方法 SharedPreferenc转载 2022-03-19 20:53:32 · 562 阅读 · 0 评论