关闭
当前搜索:

第三方开源库 RxJava - 基本使用和源码分析

RxJava 历史有点悠久,目前最新版是 2.x 的版本,网络上有很多关于 RxJava 的文章, 随便搜搜一大堆。为什么还要来写一些文章,毕竟那是别人的东西,并没有变成我的知识,其次课程具体的内容有安排,所以我们还是自己动手写写吧。还是老套路从源码的角度出发,当然 RxJava 用了这么久,我们应该也有自己的一些理解,其实就是三个字:事件流很多人一开始就从观察者设计模式入手去分析,这个也不说行不通...
阅读(21) 评论(0)

第三方开源库 OKHttp - 上传进度监听和自定义缓存

最近这段时间的确有点忙,要处理的事情比较多,发现好久没有更新文章了,以后尽量一周更新一篇,这周要视频的人也特多,希望我们看了要多花点时间消化,最好我们自己能写一下总结,千万别又还给我了。那位替我打广告的哥们,虽然我不知道你是谁,但是打心底里说声谢谢。OkHttp 我们总共花了四次去分析源码,花那么多时间去看源码到底是为了啥?其实每个人想的都不一样,有人觉得会用就很不错了,对于我来说我就是喜欢琢磨琢磨...
阅读(4) 评论(0)

第三方开源库 OKHttp - Java网络编程基础

OKHttp 系列的分析我们打算从 6 个地方下手,我们先从网络的基础知识开始,因为 OKHttp 涉及 Http 协议,所以对于 Http 的基础知识,做一个简单的认识,还是非常有必要的。这里推荐三本书《图解 Http》《Http 权威指南》《Java 网络编程基础》1.OSI 的七层模型2.TCP的三次握手和四次挥手3.Http 报文简介HTTP 协议采用 HTTP 报文的形式传递数据,客户端的...
阅读(0) 评论(0)

第三方开源库 EventBus - 源码分析和手写

EventBus官方介绍为一个为Android系统优化的事件订阅总线,它不仅可以很方便的在同线程中传递事件或者对象,还可以在不同线程中实现事件或对象的传递,用法比较简单,可以很好地完成一些在原生系统中的Intent,Handler等可以完成的工作,在Android开发过程中用途及其广泛。当然这里不介绍它的具体用法,只走源码,然后自己动手写一下加深映象。很多人都说用了观察者设计模式,如果非得要往上靠,...
阅读(18) 评论(0)

代理设计模式 - 实现 Retrofit 的 create

相信大家都很熟悉 Retrofit 了,这篇文章不会讲使用,如果不是特别熟悉 Retrofit 的使用,可以去看看其他的一些文章。如果实在不想看那也没关系,因为今天的主要内容并不是 Retrofit ,而是代理设计模式。只是在讲解的过程中顺便讲一下代理设计模式的运用。先来看看开发中哪些地方可以用到: Android 插件化架构之绕过 AndroidManifest 检测(动态代理) Android...
阅读(237) 评论(0)

装饰设计模式 - RecyclerView添加头部和底部

1.问题思考RecyclerView 我们都知道有一个比较麻烦的事,那就是没有提供可以直接添加底部和头部的功能。而在开发的过程中一定有这方面的需求,怎么解决这个问题?我们干脆不要用 RecyclerView 了,直接用 ListView 就好了,因为 ListView 直接提供了 addHeaderView 和 addFooterView 方法。既然 ListView 可以直接可以添加头部和底部,那...
阅读(200) 评论(0)

工厂设计模式 - 数据存储的特有方式

任何设计模式都是为了解决某些特定场景下所遇到的问题,要知道设计模式其实是可以有一些变动的,说白了设计模式是一种思想而并非一种代码,不要为了使用某种模式生搬硬套。当我们理解一种设计模式的思想时,不要去钻牛角尖。我们在开发中遇到一些问题的时候,就可以在脑海中翻一翻我们所积攒的知识,是不是可以用某一些设计模式来解决这个问题,又或者是用其他方式来解决。当然我们也需要去看一些文章和书籍,很多都写得非常不错,但...
阅读(199) 评论(1)

Handler通信 - 源码分析和手写Handler框架

记得第一次接触 handler 是用来更新 UI,在线程中用 handler.sendMessage(message),只知道这么做就能在线程中更新 UI 了。第二次接触是为了面试,当时反正也看不懂源码,就在网上找各种资料背它一背,笔试还好,当着面试官说的时候往往不知道怎么说。第三次接触是因为公司要引入人才,发现大家功夫还不错,经常就问问 MessageQueue 为什么要采用链表的方式,Threa...
阅读(214) 评论(0)

编译时注解 - ButterKnife源码分析和手写

大学刚出来实习那会,自己写了一个运行时的 ViewById 和 OnClick 注解,用来解决 findViewById 和 setOnClickListener 。其实也是参考 xUtils 的源码,后来加了很多的功能扩展,如网络检测等等。关键是那时 xUtils 并没有插件,自己学着写了插件。这个在外包公司能省不少事,技术总监开会说谁谁怎么怎么样,大家要像他学习啊。工资一下涨了不少,装 B 的技...
阅读(178) 评论(0)

面向对象六大基本原则 - 网络引擎切换

仍记得前年的这个时候我去一个新的公司报道,公司总共就十来个人做开发,刚好做 android 的那哥们离职,就丢了一个项目给我。后面的日子我算是饱受煎熬,今天我们以一个访问网络的部分,来给大家做一下讲解。里面每次获取接口数据是这样的: 当时我看到这个的时候觉得没什么,只是我想换一下网络请求的框架,想把它换成 OKHttp ,我一直不喜欢用 xUtils。但后来想想还是算了,好几十个地方那我不都得...
阅读(214) 评论(0)

AOP面向切面编程 - 淘宝京东网络处理

现象描述当我们打开京东 app 进入首页,如果当前是没有网络的状态,里面的按钮点击是没有反应的。只有当我们打开网络的情况下,点击按钮才能跳转页面,按照我们一般人写代码的逻辑应该是这个样子: /** * 跳转到待收货页面 */ public void jumpWaitReceiving() { // 判断当前有没有网络 if(Chec...
阅读(604) 评论(4)

Android进阶之旅 - 系统架构篇

1.分享的简介自定义View部分已经结束,了解具体详情请移步Android进阶之旅 - 自定义View篇。按照原定的计划,决定分享Android 进阶之旅 - 系统架构篇。很多博客都有设计模式的一些理论讲解,我也曾经阅读过不少,对我个人也有很大的帮助,但整体来讲都比较零散,主要都是讲一些理论的知识。所以我决定出一整套系统架构的文章和视频,从设计模式的理论出发将Android源码与实战事例结合,来帮助...
阅读(169) 评论(0)

源码阅读分析 - Window底层原理与系统架构

做了一段的时间的 android 我们就开始听到有人说 AMS、WMS、Window、WindowManager、WindowManagerService等等这些词汇,可能了解但是脑海里未必有架构图, 这次我们就从源码的角度来了解一下。在阅读本文之前希望你可以花点时间了解下面几篇文章:1. 插件式换肤框架搭建 - setContentView源码阅读 2. Android进程间的通信 - IPC(...
阅读(155) 评论(0)

视差动画 - 雅虎新闻摘要加载

1. 效果  太多太多的评论我其实是不会回的,如果要说什么只能说抱歉。我承认很多视频链接没那么好找,但是你如果留意用心了,肯定能获取到以前所有的直播视频链接。2.分析和实现2.1 效果分析:  写了那么多次效果,这个实现起来应该是个小 case ,留意观察有三部分动画   1. 旋转动画,六个小球在不断地旋转   2. 位移动画,六个小球往中心点聚合   3. 扩散动画,当小球移动的最中心就开...
阅读(183) 评论(0)

贝塞尔曲线 - QQ消息汽包拖拽

1.概述  消息气泡拖拽资料有很多,网上也有开源代码,下载下来就可以用。为什么还要折腾呢?我想证明一下数学已经初中毕业,其次像贝塞尔这种效果还是很常见的,虽然目前我只有一个 APP 用了这个效果。我想一行代码让所有的控件都可以拖动爆炸,不是为了重复造轮子而是为了装B。 2.效果实现   * 2.1 效果分析 *  看上面的效果感觉有点麻烦,怎么做到任何控件都可以拖动爆炸,我想说网上应该仅此一家。...
阅读(229) 评论(0)

Material Design - 自定义Behavior

1.概述     自己做的项目似乎很少用到了 Material Design 的自定义 Behavior,至多就是用了一些 Material Design 的常用控件,关于 Behavior 其实都快忘记得差不多了。这几天在网上找了很多 app 发现知乎很多地方用到了这方面的知识,我们就以知乎的效果为例,效果非常简单,先上张图。2.效果实现   * 2.1 CoordinatorLayout 和...
阅读(264) 评论(0)

属性动画 - 58同城数据加载动画

1.概述  今早 5:30 起来给人回答问题,问题是 5:12 提的我吓一跳,心里在想这世界很努力的人太多了。周三下班有一个哥们一口气问了我 3 个,他说他搞了一下午实在搞不定,我很耐心的回答了,但是三分钟能解决的问题你要搞一下午,怪不得你说你天天加班到深夜。其实越是形势不好的时候越是要练习内功,我们学会思考很重要,技术也只是技术而已。话不多说看看今天的效果:2.效果实现   * 2.1 布局分析...
阅读(174) 评论(0)

做个斜杠青年

1. 我年纪比你大好几岁,技术上并没什么建树,现在学习还有用吗?   当你这么说的时候我想你的心里是拒绝的,这应该不是年龄的问题,而是什么时候可以下决心行动起来,一直这么下去以后你还是会问其他人同样的问题。在编程的道路上,总是能遇到那些很有天分并异常努力的程序员,他们很早就开始了编程。让在大二才开始学习编程的我压力非常大,时常假设如果自己在大一的时候就开始学习编程,如果在大学期间不浪费那么多时间...
阅读(257) 评论(0)

源码阅读分析 - View的Touch事件分发

其实 Android 事件分发机制在早几年一直都困扰着我,那时候处理事件分发的自定义 View 脑子都是一片白,老感觉处理不好。后来自己看了 android 源码,也阅读了很多大牛的文章才算彻底明白,总之掌握 Android 事件分发机制是必不可少的,而 Android 事件分发机制绝对不是三言两语就能说得清的。  而今天由于我们自定义 View 进阶的需要,自己也是筹备了很久。目前虽然网上相关的文...
阅读(164) 评论(0)

自定义View - 九宫格解锁

1.概述  自定义View效果越写越难,但是将这些效果一步一步分解后,其实挺简单的,早期自己项目中用到九宫格解锁,我都是从网上下的,因为心里一开始觉得自己写应该会很困难,后来发现自己闲下来写写原来这么简单。这期的自定义View效果我们用Kotlin来写2.实现   2.1. 绘制出相对于这个View的居中的九个圆,刚开始当然是默认的 2.2. 当触摸屏幕的时候判断是否点击在这九个圆上 2.3....
阅读(281) 评论(0)
85条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:371224次
    • 积分:3225
    • 等级:
    • 排名:第11846名
    • 原创:85篇
    • 转载:0篇
    • 译文:0篇
    • 评论:82条
    最新评论