首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
1
订阅
soooul
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
万字长文 - 史上最全ConstraintLayout(约束布局)使用详解
ConstraintLayout 是一个使用“相对定位”灵活地确定微件的位置和大小的一个布局,在 2016 年 Google I/O 中面世,它的出现是为了解决开发中过于复杂的页面层级嵌套过多的问题
温故而知新—从原理解释单例模式
单例模式,应该是使用频率比较高的一种设计模式了。 这里先回顾下类的初始化。 在类实例化之前,JVM会执行类加载。 类加载的最后一步就是进行类的初始化,在这个阶段,会执行类构造器<clinit>方法,其主要工作就是初始化类中静态的变量,代码块。 而<clini…
【Android FrameWork】⑤线程通信相关
1. 线程的消息队列是怎么创建的 2. 说说android线程间消息传递机制 3. handler的消息延时是怎么实现的? 4. 说说IdleHandler的原理 比如打开App,收到了很多条推送,现在要处理这些推送消息并刷新页面,如果刷新界面是一个繁重的任务,那么来一条推送刷…
Android Binder原理
binder驱动和通信库是binder的核心,驱动是用c语言编写的,通信库是c++写的,应用程序通过jni和底层的库产生联系,建议研究binder的读者先读完<Linux内核设计与实现>和<Unix环境高级编程>这两本书做好研究准备,有时间的也可以学学&#x…
面试官:Glide 是如何加载 GIF 动图的?
最近在一个群里看到有人说面试遇到一个问题是 “Glide 是如何加载 GIF 动图的?”,他说没看过源码回答不出来... 好家伙!现在面试都问的这么细了?我相信很多人即使看过源码也很难回答出来,包括我自己。比如之前自己虽然写了两篇 Glide 源码的文章,但是只分析了整个加载流…
Java线程池以及资源同步
当线程池中线程数量大于corePoolSize(核心线程数量)或设置了allowCoreThreadTimeOut(是否允许空闲核心线程超时)时,线程会根据keepAliveTime的值进行活性检查,一旦超时便销毁线程。 是一个特殊的BlockingQueue,它没有容量,每执…
三思系列:Android的消息机制,一文吃透
作为Android中 至关重要 的机制之一,十多年来,分析它的文章不断,大量的内容已经被挖掘过了。所以: 已经对这一机制比较 熟稔 的读者,在这篇文章中,看不到 新东西 了。 还不太熟悉消息机制的读者,可以在文章的基础上,继续挖一挖。 展开的。单纯的从这些角度学习的话,并不能 …
Android 嵌套滑动总结
嵌套滑动是 android 开发中常见的一种 UI 效果。当一个布局中包含多个可以滑动的 View,并且这些 View 互相嵌套的时候,就需要做嵌套滑动的处理来让 UI 交互有更流畅的效果,比如吸顶效果。常见的效果如下: 如上所示,最外层的父布局可以滑动,内层的 Recycle…
RecyclerView 性能优化 | 把加载表项耗时减半 (一)
RecyclerView 出场率很高。它的加载性能影响着用户体检。本篇分享一次完整的 RecyclerView 性能优化过程:从用工具定位问题,再不断尝试各种优化方案,最终达成 50% 的性能优化。
Android包体优化总结
应用安装包大小的重要性已经不需要多说,安装包大小直接影响用户的下载,留存,甚至部分运营商上线要求必须小于一定的值。但是随着业务的迭代开发,应用会越来越大,安装包体积不断增长。而随着安装包体积的增大,还会导致应用的安装时间,运行内存和 rom 空间也因此增大,因此 APK 的瘦身…