- 博客(20)
- 收藏
- 关注
原创 Android 设计一个长链接消息分发机制
那么,多个业务在对长链接的使用时间就存在三种可能,相离、相交和包含,所以我们需要当存在业务使用长链接时开启,没有业务使用的时候关闭。在中间层,通过观察者模式,给业务发送消息,并且判断有多少个业务正在使用长链接,然后在他们都使用完成后,通知 Service 客户端解除注册。之前,项目里有条业务线单独实现了长链接,只负责自己业务的消息收发。那么,这个框架基本模型就出来了,最底层 Service 负责控制长链接的开关、消息收发还有心跳,中间层客户端负责管理消息的分发,最顶层就是实际业务层负责处理业务消息。
2024-01-21 16:34:55
378
原创 Android 以圆形进度条为例讲怎么实现自定义View
关键词:自定义View,圆形进度条,新手教学向开篇想先问下,Android 这个行业还有新人进来学习吗∠( ᐛ 」∠)_以图为例,看到下图你第一个想到的实现方案是什么?是不是想写三个 ProgressBar?然后产品经理说,这个地方需要有两点需要注意这时候还考虑叠 ProgressBar 吗?仔细分析一下,这个控件其实并不复杂,会画弧线,会画圈就行。那么,再把这个控件再拆分一下,由Drawable绘制圆形进度条,View负责控制Drawable数量和颜色,这样就OK了。设计完成,开始实现。
2024-01-17 20:45:52
644
原创 Android 仿飞书日历做的行程看板组件
记得那年冬天,产品拿着手机开开心心的过来甩了一个需求,要求仿飞书来一个日历看板,咱们拿到手里体验了下,就感觉到他们产品对研发那满满的恶意了。
2024-01-11 04:01:36
1076
原创 记一次handler removeCallback问题
A、B两个handler在new出来的时候传入同一个looper,能否在A handler去add一个Runnable,然后在B中remove?
2023-12-31 15:40:29
424
2
原创 【歪门邪道】懒得麻烦UI同学切图所以用AndroidStudio生成icon
Android Studio 的 Vector Asset 功能你了解吗,不了解还不进来看下
2022-03-31 01:15:56
3176
原创 【歪门邪道】Android中如何快速回到主页
最近有个需求,长链接接收到某个特定消息后,需要先关闭其他页面,然后跳转到指定页面。这需求不难,清Activity栈而已,对Android有点点了解都能做。不过直接操作Activity栈的权限android.permission.GET_TASKS ,目前已经被废弃了,所以只能用其他办法实现这个需求。正经方案:App内自己创建一个 Stack,然后在application的生命周期回掉中记录,或者在BaseActivity中记录,然后进行操作。歪门邪道:反射获取ActivityStack,然后fi
2022-01-24 16:56:53
1236
原创 NestedScrollView嵌套RecyclerView导致无法复用问题
前段时间,在和同事合作的时候看到了一段代码,scrollview 嵌套 recyclerview,然后adapter中没有处理view的复用,然后我就开始好奇这里不会出现bug吗?不过之前写代码的时候一直没注意过这种嵌套,那么,先实验一下。activity_main.xml <androidx.core.widget.NestedScrollView android:layout_width="match_parent" android:layout
2021-08-28 23:31:31
3571
原创 从代理模式开始学习动态代理
开篇复习一下代理模式,什么是代理模式?菜鸟教程上写的是,在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。举个最简单的例子,写个静态代理的demo// 抽象角色:开发者public interface ICoder { void code();}// 代理角色public class Person implements ICoder { // 名称 private String name; public
2021-05-31 00:19:40
148
原创 关于GitHub上8k-Star的一个项目的问题修复
问题不大,是个很小的问题,两三个月前就写好了文章,但是现在才想起来发布。这段时间在搞沉浸式状态栏,虽然时间上已经很out了,但是比不上项目的老旧,唉。第一步,先扒拉扒拉项目呗,没想到还真让我看到项目中已经引入过一个状态栏工具类,引入的人还把git链接放上去了,好人~!沉浸式状态栏Github直通车看看这个项目,8k的Star,1.6k的Fork,真的感觉到柠檬树上柠檬果,柠檬树下你和我。这让我想起中午的柠檬鸡排,又酸,又菜鸡。下个demo,只能感觉一个流畅,除了正常的 Activity, Drawe
2020-07-27 00:31:39
210
原创 leetcode 剑指 Offer 07. 重建二叉树の解题思路
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7解题思路对二叉树缺少了解,导致拿到题后一脸懵逼,于是现在本子上画了一个三层的二叉树,然后用Root、Root.left、Root.left.left这种方式
2020-07-24 15:53:33
305
原创 简单一招解决首页弹窗逻辑复杂问题--责任链模式
开头,上 Demo-ActionChain by gitee我想讲一个19年重构首页弹窗逻辑的故事,不过故事冗长,放最后了。直接上干货责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。From baike.baidu.com如果看百度百科上对于责任链模式的描述有点迷茫,
2020-06-15 15:03:52
825
1
原创 Git-多ssh文件配置
操作步骤通过命令创建sshkeyssh-keygen -t rsa -C email注意:输入文件名时需要区分文件。(Enter file in which to save the key: id_rsa_[自定义])上传ssh到官网公钥上创建 config文件(1. 在.ssh文件夹下 2. 没有后缀),文件内容如下# 配置github.com Host github.co...
2019-03-05 19:12:17
437
原创 AndroidStudio自定义注释模板笔记
当review代码的时候,没注释就会十分痛苦,有注释就感觉easy很多,扣逻辑的时候代码跳着看都没问题了,所以注释是特别特别重要的。/**此段剩下文字为废话可跳过**/而且现在工作一年了,感觉成长最快的时候是自己开始独立负责项目的时候,其次就是开发Android的同事们一起review代码的时候。不过公司为了管理或者组织架构什么问题,把每个开发分配到不同的业务部门,虽然刚开始独立负责一个端成长很快...
2018-08-24 16:33:39
259
原创 Android本地图片加载展示而不容易OOM的办法
一、读取图片时进行压缩话不多说先上代码:public static Bitmap getBitmapByFile(String path, int width, int height) { BitmapFactory.Options option = new BitmapFactory.Options(); option.inJustDecodeBounds = true;...
2018-08-23 15:33:36
1051
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人