Android
文章平均质量分 90
AI老潘信息差
心之所向, 为终为始.
攀岩不止,永强不息.
展开
-
IM即时通讯-7-如何设计通知提醒
作为及时通讯产品, 如何设计和实现通知提醒的功能,本文通过前台通知提醒和后台通知提醒的端到端的设计, 提供了一种借鉴思路。原创 2023-04-11 08:38:52 · 12552 阅读 · 0 评论 -
IM即时通讯-5-衡量指标有哪些
即时通讯系统有那些衡量指标呢?本文从端到端, 以及客户端的维度做总结和分析, 并且以有趣的故事,说明衡量指标的重要性。原创 2023-03-25 11:10:40 · 750 阅读 · 1 评论 -
Android MVVM 解读 3. Android MVVM 介绍(2) -LiveData
2.3 LiveData官方介绍LiveData Overview包含LiveData的设计理念LiveData的优点如何使用LiveData如何创建LiveData对象监听LiveData对象更新LiveData对象转换LiveData合并LiveData数据源额外资源 demos+blogs+videos入额添加lifecycle到工程中...原创 2021-09-12 19:31:19 · 322 阅读 · 2 评论 -
IM即时通讯-4-写扩散下的同步协议方案
即时通讯的解决方案中, 同步协议的方案设计, 是重中之重, 本文从同步协议的整体方案设计再到同步协议设计中的关键点进行了介绍和分析原创 2023-02-11 07:53:13 · 11300 阅读 · 0 评论 -
IM即时通讯-1-项目需求说明书
即时通讯是现代交流的重要技术,它可以更方便快捷的进行群聊、聊天等功能,以便满足用户之间的沟通要求。即时通讯是一种基于网络的实时通信工具,它能够使各种跨设备的用户在网络中实现实时信息交换,形成紧密的讯息网络,实现系统即时通信。本项目基于这个背景,构建一个多设备即时通讯的轻量级软件,能够实现跨操作系统、跨设备实时交流,依靠移动设备的灵活性,系统可以实现用户间的便捷交流。原创 2023-01-10 08:57:04 · 1564 阅读 · 0 评论 -
IM即时通讯-3-如何设计消息协议层方案
及时通讯系统如何设计协议层, 端到端的协议层如何设计, 端内的协议层如何设计原创 2023-02-02 09:20:14 · 13117 阅读 · 3 评论 -
IM即时通讯-2-如何做技术方案设计
IM的技术方案如何设计, 本文提供了思路, 从功能列表到核心case的方案出发, 最终到整体的方案设计原创 2023-01-28 08:36:52 · 694 阅读 · 0 评论 -
Android MVVM 解读 3. Android MVVM 介绍(1)
Android MVVM 解读 3. Android MVVM 介绍(1)包含的信息Android MVVM 架构设计源码解析 - Lifecycle部分1. 架构设计1.1 [Guide to app architechture](Guide to app architecture)在上面的链接, 查看安卓推荐的架构设计以及包含的简单的Demo介绍1.2. 案例GithubB...原创 2020-02-19 04:25:27 · 713 阅读 · 1 评论 -
Android MVVM 解读 2.MVC, MVP, MVVM
#Android MVVM background info包含的信息MVC, MVP, MVVM的介绍MVC, MVP, MVVM的区别1. MVC, MVP, MVVM的介绍MVC, MVP和MVVM的区别和联系,是一个老生常谈的问题, 这里也不过多的进行描述可以先查看下以下的两个链接:MVC,MVP 和 MVVM 模式如何选择?你真的理解了MVC, MVP, MVVM吗?...原创 2020-02-18 20:18:19 · 524 阅读 · 0 评论 -
Android MVVM 解读 1. 大纲
0. Background infoAndroid MVVM Design PatternGuide to app architectureBetter Android Apps Using MVVM with Clean Architecture1. LifeCycle1.1. Handling Lifecycles with Lifecycle-Aware Components...原创 2020-02-14 21:18:15 · 225 阅读 · 0 评论 -
Android随笔随想-GUI-Fragment相关学习
类图源文件地址:https://github.com/yqpan1991/DevBooks/tree/master/android/android%20%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90 学习相关资源的汇总https://github.com/yqpan1991/DevBooks/blob/master/android/android%20%E6%BA%90%E原创 2017-04-16 11:37:49 · 530 阅读 · 0 评论 -
SharePreference的坑
apply方法埋下的坑http://m.blog.chinaunix.net/uid-29506893-id-5761774.htmlhttp://www.cloudchou.com/android/post-988.htmlhttp://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1原创 2017-10-18 12:14:51 · 648 阅读 · 0 评论 -
Binder相关学习资料汇总
Android进程间通信(IPC)机制Binder简要介绍和学习计划 Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析原创 2017-05-25 08:10:03 · 469 阅读 · 0 评论 -
Android随笔随想-GUI-触摸事件分发
Android随笔随想-GUI-触摸事件分发 基于Android2.3的随笔分析1. 随笔1.1 触摸事件的产生触摸事件的产生等背景资料以及android底层的处理,可以参照本随笔的最后部分中的资料1.2 触摸事件与ViewRoot的关联在上篇中,提到了ViewRoot在setView时的几个操作,现在我们稍微回顾一下:ViewRoot.setView()/** * We have one原创 2017-04-05 09:00:31 · 883 阅读 · 0 评论 -
通用 loading,empty,error,正常结果页面的设计实现与竞品分析
通用 loading,empty,error,正常结果页面的设计实现与竞品分析1. 背景在一般我们的App开发时,不可避免的是页面要进行loading,loading结束后,会有三个状态, 空页面, error页面,显示正常的结果页.而在我们的普通开发时,一般是在xml中,添加一个layout,然后内部,添加 loading, empty, error, 和普通的结果页面,但是像这样的模板代...原创 2018-10-28 22:08:23 · 927 阅读 · 0 评论 -
Android随笔随想-GUI-事件分发先导篇2 - 找到事件分发的相关类
Android随笔随想-GUI-事件分发先导篇2 - 找到事件分发的相关类 Android 2.3.7 源码随笔在分析android的事件分发之前,还需要了解一些内容,那就是Ams与Wms的关联,这里目前指的是client端的关联目前的分析流程根据ActivityThread的过程即可上篇中已经提到了大体的流程,现在这几个流程细化一些: 同一个应用中,Actiivty activityA正原创 2017-04-04 12:22:28 · 842 阅读 · 0 评论 -
Android View问题排查汇总
View问题排查汇总1. 本应展示的view没有显示1.1 分析解决问题之前,避免依靠直觉去解决问题,我们应该先分析下view显示的几个因素view能够显示有几个因素依赖的内容都展示了,一般来讲是父view都在展示view自身设置为了visibleview没有被覆盖view的大小不是0知道了这么几个条件,我们做对应的排查即可1.2 问题排查上方面分析了展示的几个提交,一个条件没有达到,vi原创 2017-11-16 09:31:32 · 514 阅读 · 0 评论 -
AppCompat中的坑
http://blog.csdn.net/liuxu0703/article/details/70145168在使用类似textView等View时, 5.0以下的版本中,android会做一个兼容性的处理,生成AppCompatTextView,这样的view的getContext()是TineContextWrapper,如果要强制转为activity或者instanceOfActivity的判原创 2017-10-19 17:43:16 · 2959 阅读 · 0 评论 -
基于Android的MediaPlayer的音乐播放器的封装
基于Android的MediaPlayer的音乐播放器的封装使用过android原生的mediaplayer来做音频播放的同学们,肯定是经历过一些痛苦的,因为android提供了一个状态机,确实这个状态机是需要的,不过这个状态不对,就要往外抛出异常,并且如果在程序中,不能得知mediaplayr的状态,这个是着实让人头疼,个人之前写过mediaplayer的一个封装,将这些状态的获取以及操作进行了简原创 2017-02-18 23:20:21 · 3821 阅读 · 0 评论 -
git相关资源
git官网: https://git-scm.com/docgit入门: http://www.liaoxuefeng.com/wikigit回滚: http://blog.csdn.net/fuchaosz/article/details/52170105git删除分支[http://zengrong.net/post/1746.htm]原创 2016-11-02 23:52:35 · 534 阅读 · 0 评论 -
[OAuth2.0三方登录系列文章-3]如何设计一个与微信相同的分享sdk
如何设计一个与微信相同的分享sdk这几天在做公司内部的分享sdk要添加一个新功能,在自己阅读代码时,发现了很多问题,另外之前也有用户反馈了一些问题,自己只是做了一个维护,这次在做新功能调研时,发现了微信的很多细节做的挺好,整体在这里分享下. 这里我们假如说接到公司的一个业务需求,要我们实现一个分享的sdk,提供给第三方,让他们可以更加方便快捷的接入到我们的平台,公司要让你做,直接就让你什么时...原创 2018-03-25 23:16:35 · 727 阅读 · 0 评论 -
2018-09-20~2018-09-21 Google Developers Days Android 总结
xmind地址: https://github.com/yqpan1991/DevBooks/blob/master/android/gdd/2018-09-20~21 GDD .xmind图片预览:原创 2018-09-23 14:05:17 · 354 阅读 · 0 评论 -
Fresco 源码分析(二) Fresco客户端与服务端交互(1) 解决遗留的Q1问题
4.2 Fresco客户端与服务端的交互(一) 解决Q1问题从这篇博客开始,我们开始讨论客户端与服务端是如何交互的,这个交互的入口,我们从Q1问题入手(博客按照这样的问题入手,是因为当时我也是从这里好奇,才开始分析如何交互的,这样避免了思维的跳跃性) 既然我们想从这里入手,那么还是以controller的请求入手,因为请求是从这里发出去的,那么肯定入口就存在于AbstractDraweeContr原创 2015-09-06 21:44:18 · 1363 阅读 · 0 评论 -
Android随笔随想-GUI-起源
Android随笔随想-GUI-起源可滑动的View的嵌套问题View有时候点击不灵项目中,看TextView在处理Action_Down时,没有返回true,为什么后续的事件还会接收到Dialog在Activity的onCreate时,显示出来,为什么有的时候,后台停了很久,结果再次点击回来时,crash了Android的context的实现,看起来好多,到底是什么结构?android原创 2017-03-26 18:27:36 · 584 阅读 · 0 评论 -
Android随笔随想 起源
Android随笔随想 起源1. 杂序1.1 不求甚解做了几年的Android,从开始的只是会用四大组件,到慢慢的自己开始写一些稍微通用的一些东西,却总是感觉这样不是长久之计,因为很多情况下,遇到一些问题时,其实挺简单的问题,关于android开发中比较奇怪的问题,会google一下,然后一般会在stackoverflow或者google code中得到对应的答案,对着答案,直接按照对应的解法来解原创 2017-03-26 17:52:21 · 676 阅读 · 0 评论 -
Fresco 源码分析(三) Fresco服务端处理(3) DataSource到Producer的适配器逻辑以及BitmapMemoryCacheProducer处理的逻辑
4.3.1.2.1 Producer和DataSource之间适配器处理的逻辑还是从程序的入口开始说吧CloseableProducerToDataSourceAdapter.create() 源码此处看到无非是创建了一个新的数据适配器而已CloseableProducerToDataSourceAdapter public static <T> DataSource<CloseableRefer原创 2015-09-06 21:51:13 · 991 阅读 · 0 评论 -
Fresco 源码分析(二) Fresco客户端与服务端交互(3) 前后台打通
4.2.1.2.4 PipelineDraweeControllerBuilder.obtainController()源码分析 续上节中我们提到两个核心的步骤 1. obtainDataSourceSupplier()获取到了一个DataSourceSupplier 2. 然后mPipelineDraweeControllerFactory类new了一个controller还是先从广度分析,然原创 2015-09-08 08:52:45 · 782 阅读 · 0 评论 -
Fresco 源码分析(二) Fresco客户端与服务端交互(2) Fresco.initializeDrawee()分析 续
4.2.1.2 Fresco.initializeDrawee()的过程 续继续上篇博客的分析Fresco.initializeDrawee() sDraweeControllerBuilderSupplier = new PipelineDraweeControllerBuilderSupplier(context); SimpleDraweeView.initialize(sDra原创 2015-09-06 21:45:48 · 1050 阅读 · 0 评论 -
Fresco 源码分析(三) Fresco服务端处理(2) Producer具体实现的内容
我们以mProducerFactory.newNetworkFetchProducer()为例,因为这些创建新的producer的方式类似,区别在于是否有包装的处理器,即如果当前处理器中没有正在处理的数据或者等待处理的数据,便交给包装的处理器来处理在查看NetworkFetchProducer的源码之前,先来看看producer的接口Producer的源码这个接口的功能其实看看类和方法的注释就知道了原创 2015-09-07 07:26:37 · 682 阅读 · 0 评论 -
Fresco 源码分析(三) Fresco服务端处理(2) Producer具体实现的内容
我们以mProducerFactory.newNetworkFetchProducer()为例,因为这些创建新的producer的方式类似,区别在于是否有包装的处理器,即如果当前处理器中没有正在处理的数据或者等待处理的数据,便交给包装的处理器来处理在查看NetworkFetchProducer的源码之前,先来看看producer的接口Producer的源码这个接口的功能其实看看类和方法的注释就知道了原创 2015-09-06 21:49:54 · 768 阅读 · 0 评论 -
Fresco 源码分析(一) DraweeView-DraweeHierarchy-DraweeController(MVC) DraweeHierachy+DraweeController的分析
4.1.5.2 模型层DraweeHierachy继承体系以及各个类的作用DraweeHierachy (I) –| SettableDraweeHierarchy (I) ——| GenericDraweeHierarchyDraweeHierachy: 1. 用于获取顶层的drawable SettableDraweeHierachy: 1. 图像可以被重置 2. 图像可原创 2015-09-06 21:41:58 · 1208 阅读 · 0 评论 -
Fresco 源码分析(三) Fresco服务端处理(1) ImagePipeline为何物
4.3 服务端的处理备注: 因为是分析,而不是设计,所以很多知识我们类似于插叙的方式叙述,就是用到了哪个知识点,我们再提及相关的知识点,如果分析到了最后,我想想是不是应该将这个架构按照设计的方式,重新梳理一下(套用一句话,现在安卓的应用其实很多都像是快餐,至今面试了应该有40多位的安卓程序员,知道框架的很多,会用的也很多,会总结和整理的却没有几个,想到安卓程序员薪资超过20K的并不多,个人感觉因为很原创 2015-09-06 21:48:55 · 1262 阅读 · 1 评论 -
Fresco 源码分析(一) DraweeView-DraweeHierarchy-DraweeController(MVC) DraweeView的分析
4. Fresco的内容为了方便学习,我们先从使用结合官方的文档来分析4.1 Fresco客户端的使用在使用Fresco的使用,我们直接使用的是SimpleDraweeView这个类,然后在Activity或者Fragment中使用findViewById,然后便调用SimpleDraweeView.setImageUri(),这个方法,便直接可以加载图片,那么在这之间到底是怎么做的呢?结果打开Si原创 2015-09-06 21:35:10 · 1539 阅读 · 1 评论 -
Fresco 源码分析(三) Fresco服务端处理(4) Producer处理体系的总结
NetworkFetchProducer.produceResults() 相关源码在中间的producer处理过程中都没有自己适合的处理的时候,最终还是会调用到网络获取的produceResults方法,这便是真正的网络数据获取以及处理的producer.网络数据获取的细节,这个我们便不关注了,这里可以简单的提一点: 在fresco的对比的demo中,我们发现不仅仅可以使用fresco原创 2015-09-07 08:51:20 · 1264 阅读 · 3 评论 -
360 Android 插件开发 DroidPlugin 代码分析 -随笔
360的插件DroidPlugin原创 2015-09-29 14:09:13 · 3492 阅读 · 2 评论 -
Fresco 源码分析(四) 后台数据返回到前台的处理 - Drawable体系的介绍(3) 遗留任务预览
内容较多,本人精力有限,drawable中的分析剩余的任务还比较多,先留下此任务,待有时间继续书写,先回归到Fresco的主题3.6 自定义drawable的范例3.6.1 圆形drawable的范例3.6.2 水波纹drawable的范例3.6.2 GifDrawable实现Gif动画3.6.3 Fresco中的Drawable子类这部分内容我们需要单独拿出来分析,因为涉及到的类比较多,再加上是和原创 2015-10-05 16:21:14 · 1373 阅读 · 9 评论 -
Android随笔随想-GUI-事件分发先导篇
Android随笔随想-GUI-事件分发先导篇为了了解Android的事件分发,我们先需要了解一下GUI的上下文涉及的内容,这篇只是做简单的介绍,在分析完事件后,会详细的分析总结这些内容 基于Android 2.3源码的分析总结1. GUI系统结构图GUI其实是为了做了几件事情:将Android进行绘制对于用户的按键操作,触摸操作进行响应,并且交给对应的内容进行处理是否还有其他???涉及原创 2017-03-27 23:43:49 · 674 阅读 · 0 评论 -
Telegram中语音
class: MediaController录音recordQueue 中做初始化写入文件打开录音异常处理:如果正常开始的处理recordQueue中处理内容 runnablebuffer内存缓存中中获取处理的buffer将buffer给于FileEncodingQueue中来处理,buffer和fileBuffer进行拼接和处理,对于需要处理的内容,直接处理处理结束后,交给reco原创 2017-02-28 09:07:07 · 4155 阅读 · 0 评论 -
android多媒体篇-音频-1 音频相关基础知识
1.序毕业了三年,虽说技术方面有了一些的成长,但是总感觉现在做东西的速度,提高不上去,可能更多的只是知道了如何去面对一些问题,前段时间出去玩了一次,然后突然对生活和工作的感悟很大,应该也算是成长吧,之前的工作接触的比较多的是,android socket+文件上传,下载相关的内容,现在做的也是和即时通讯有关,如果只是将自己的知识积累限制在这块,也确实就将自己限制了.最近的开发,与android的多媒原创 2016-10-23 16:22:07 · 1490 阅读 · 1 评论 -
adb相关资源
adb 的命令:adb命令网址: http://adbshell.com/commands获取top activityLinux:adb shell dumpsys activity | grep "mFocusedActivity"windows:adb shell dumpsys activity | findstr "mFocusedActivity"adb log 相关log输出到文原创 2016-11-02 23:37:15 · 649 阅读 · 0 评论