Android开发
文章平均质量分 86
字节小站
这个作者很懒,什么都没留下…
展开
-
ConcatAdapter使用教程
1.前言2021年4月7日Android团队正式发布了RecyclerView 1.2.0版本。相对于1.1.0版本,它有两个主要的变化:增加了ConcatAdapter:这个Adapter方便地让我们在一个RecyclerView中连接多个Adapters。支持延迟恢复状态:RecyclerView现在支持当内容加载出来后恢复状态。本文将结合ConcatAdapter的简单使用,由浅入深地讲解ConcatAdapter的高级使用。2.简单使用实现上面是文本列表,下面是按钮列表的效果,如图:原创 2021-05-15 19:31:47 · 4044 阅读 · 7 评论 -
干货|详解位图算法在Android RecyclerView中的应用
1. 前言1.1 关于算法金庸武侠小说中的主人公在成为绝世高手之前,都会学习一门玄门内功。郭靖有了全真派的内功才能修炼九阴真经、虚竹得到了无崖子的毕生功力后,武学造诣日渐精进、张无忌苦练五年九阳神功,日后才能融合乾坤大挪移。对于程序员,算法就是小说中的内功,编程语言就是不同门派的武功。张无忌因为有九阳神功加持仅用一天就学会了阳顶天几十年都学不成的乾坤大挪移。一名优秀的程序员需要不断的修炼算法内功,才能取得更高的编程造诣。1.2 Algorithm&Android系列“算法在实际编程中应用很少原创 2021-03-22 09:36:29 · 243 阅读 · 0 评论 -
TouchDelegate的这些盲区你知道吗?
1. 前言早些时候我发了一篇关于对话框动画的文章全网独一份的对话框弹出样式。用户阅读量,分享量,阅读后关注量等数据比较好。与之前偏重Android源码解析的文章不同,那是一篇更偏实战的文章。美中不足的是,代码注释量很少,有读者反馈阅读体验不佳。如果这个问题也曾困扰过你,借此向您真诚道歉,由于行文仓促,没有投入更多精力,今后在文章润色上投入更多时间,争取为读者带来更好的阅读体验。如果您觉得我的文章写的还行,欢迎关注"字节小站"微信公众号。更多好文等着你。2. 关于TouchDelegate本文内容不仅原创 2021-03-18 21:32:15 · 237 阅读 · 0 评论 -
从点击处弹出的对话框你想要吗?
最近实现了一个从点击处弹出的对话框,最终效果如下:1. 接招实现对话框功能可选择的技术有 Dialog、PopupWindow、Activity。它们都支持自定义弹出和消失动画。它们都能实现自定义动画。WindowAnimationTransitionShareElement TransitionDialog支持不支持不支持PopupWindow支持支持不支持Activity支持支持支持WindowAnimation动画必须要在style原创 2021-03-15 17:56:27 · 254 阅读 · 0 评论 -
面试官:RecyclerView布局动画原理了解吗?
前言温馨提示:文章有点长,建议关注微信公众号“字节小站”收藏阅读本文主要通过以下几个方面来讲解RecyclerView的布局和动画原理:布局放置:RecyclerView#dispatchLayout()预布局阶段:RecyclerView#dispatchLayoutStep1()布局阶段:RecyclerView#dispatchLayoutStep2()开启动画阶段:RecyclerView#dispatchLayoutStep3()背景知识RecyclerView的Adapte原创 2021-02-22 09:37:22 · 432 阅读 · 0 评论 -
聊聊写作那些事
我已经连续半年在字节小站公众号发表了13篇原创Android技术文章,经过这段时间的历练,我已经度过了畏首畏尾的新手阶段,变得淡定自若,驾轻就熟。我刚开始萌发写文章的念想时,产生过这些顾虑:我的写作水平并不好,写出来的文章会不会贻笑大方?我没有粉丝,写出来的文章会有人看吗?没有美术功底,怎么能让文章排版好看?如果工作比较忙,没有时间继续写作怎么办?写作的过程中,会碰到一些自己之前根本没有接触过但是一时半会又学不来的技能,该怎么办?这些都是我前进路上的绊脚石,还没开始做,就已经想好了各种困难的情况,这就是所谓原创 2021-02-16 22:29:59 · 140 阅读 · 0 评论 -
ViewCompat.offsetTopAndBottom翻车现场
引言去年我开源了一个RecyclerView吸顶库,关于它的介绍请大家移步“我开源了一个RecyclerView吸顶库”一文。别看这个库大量使用了泛型,对象池、链表等技术,但是吸顶的功能真正倚仗的只有ViewCompat.offsetTopAndBottom(View view,int offset)这一个方法。它能够帮我们实现将View上下平移。它的姐妹方法offsetLeftAndRight(View view, int offset)可以实现将View左右平移,一般情况使用它们实现平移效果非常简单,原创 2021-02-16 16:46:30 · 1399 阅读 · 0 评论 -
史上最好的Android事件分发文章
Android事件分发是一个老生常谈的知识点。日常开发和求职过程中,都会碰到Android事件分发的问题。Android的控件分为两类,ViewGoup和View。ViewGroup是控件的容器,可以包含多个子控件。View是控件的最小单位,它不能包裹其它的View。Android的ViewGroup对应的数据结构是树。网上的事件分发的文章大多数是用线性的思维去分析控件树的事件遍历,我深以为不妥,经常让读者云里雾里,只见树木不见森林。本文我将从树的深度遍历来讲解DOWN事件的分发流程,从单链表的线性.原创 2020-11-23 20:34:27 · 2378 阅读 · 0 评论 -
Android嵌套滑动机制分析
温馨提示:Android事件分发机制是Android嵌套滑动机制的基石,阅读本文前请务必保证熟练掌握Android事件分发机制。传送门->Android事件分发机制本文大纲1. 嵌套ScrollView同向滑动2. 传统事件分发和嵌套滑动事件分发3. NestedScrollingChild和NestedScrollingParent4. NestedScrollingChildHelper和NestedScrollingParentHelper5. 结合案例讲解嵌套滑动事件分发顺序1.原创 2020-11-23 18:06:56 · 898 阅读 · 0 评论 -
ThreadLocal实现原理分析
大概有一年多的时间没有更新过文章了,要想输出一篇优质的文章需要耗费很多精力。可能是之前太过于懒惰了吧,经过一段精力的消耗,渐渐地失去了一些动力。但是写文章虽然耗时,但是有个好处就是在复习一些知识点的时候,只需要查看之前写的博客,在很短的时间内就能把知识点回想起来。曾经的初中老师总是唠叨说好记性不如烂笔头。看来是“诚不欺我呀!”。希望之后还是能保持一定的更新节奏,把对技术的思考都记录下来。跟大家一起...原创 2019-06-26 12:06:27 · 1234 阅读 · 0 评论 -
手把手教你使用Android Paging Library
当我们用RecyclerView来展示服务器返回的大量数据时,通常我们都需要实现分页的效果。以前我们都是通过监听RecyclerView的滚动事件,当RecyclerView滑动到底部的时候再次请求网络,把数据展示到RecyclerView上。现在Google提供了一个分页库来帮助开发者更轻松的实现在RecyclerView中逐步而且优雅地加载数据本文我将以Google官方提供的PagingWi...原创 2018-10-13 10:33:30 · 2770 阅读 · 2 评论 -
Java并发系列之一 Lock源码解析
1. Lock接口简介 Lock接口是Java concurrent包中比较重要的接口。Lock的实现类有ReentrantLock、WriteLock、ReadLock。Lock类中定义了六个方法void lock();void lockInterruptibly() throws InterruptedException;boolean tryLock();boole...原创 2018-06-05 09:33:17 · 1049 阅读 · 1 评论 -
Java并发系列之二 一道好玩有趣的多线程面试题
1. 一道好玩有趣的面试题Java求职中往往会碰到这样的面试题。请实现多线程交替打印0和1的程序。看到这道题目,凭着程序员的第六感,我们很容易联想到消费者和生产者模式。他们之间有很大的相似之处啊。生产者线程负责往仓库生产物资,当仓库的物资物满为患的时候,阻塞线程停止生产,等待消费者线程消费物资后唤醒生产者线程。消费者线程负责从仓库拿出物资,当仓库没有物资的时候阻塞线程停止消费,等待生产者线...原创 2018-06-05 09:34:08 · 332 阅读 · 0 评论 -
Android Context ContextWrapper ContextImpl Activity Service关系
初识Context对于Android开发者来说,Activity应该是接触到最早的四大组件之一。Activity可以渲染layout生成控件,可以获取图片资源、文本资源、动画资源等等,还可以启动另一个Activity,启动一个后台的Service。每个Activity都有一个Context,通过这个Context我们几乎可以做任何我们想做的事情。比如通过context.getSystemSer...原创 2018-07-03 18:12:07 · 3060 阅读 · 2 评论 -
FileProvider使用以及源码浅析
1. FileProvider的使用1.1 AndroidManifest.xml中定义 <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.peter.jiangbin.fileprovider" ...原创 2018-07-26 09:34:44 · 833 阅读 · 0 评论 -
Android系统服务启动顺序
系统服务启动分为三类 1. startBootstrapServices() 2. startCoreServices() 3. startOtherServices()startBootstrapServices 1. 启动Installer服务 2. 启动ActivityManagerService,Installer服务赋值给AMS 3. 启动Powe...原创 2018-07-21 15:45:15 · 1846 阅读 · 0 评论 -
从头到尾给你讲明白Android View实现原理
Activity是Android开发者写第一行代码起就开始接触到的。而在onCreate方法中调用setContentView(R.layout.main_activity),恐怕也是绝大多数开发者的头等任务。然后我们可以调用findViewById(R.id.xxx)来获取布局中的某一个View。通过给View设置点击事件的监听来响应用户的操作。就这么简单我们和Android的View过了一段幸...原创 2018-07-22 23:12:17 · 4132 阅读 · 0 评论 -
Android Studio 开启Annotation Processor断点调试
往gradle.properties文件中添加如下两行(本教程中是在~/.gradle/gradle.properties文件中添加)org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005org.gradle.daemon=trueAndroid Studio Edi...原创 2018-09-19 15:37:42 · 1265 阅读 · 0 评论 -
如何打开小米,oppo,华为等手机的系统应用的指定页面
如题,拿Oppo 手机做个示例,小米 华为也是如此。在编写Android应用的时候,我们经常会有这样的需求,我们想直接打开系统应用的某个页面。比如在Oppo R9 手机上我们想打开某个应用的通知管理界面如下图点击QQ图标,跳转到如下界面同时我们在terminal中 通过 adb logcat |grep “ActivityManager” 我们可以看到Activity的相关信息 I/Activi原创 2016-12-03 11:51:13 · 3921 阅读 · 3 评论