<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[授人以鱼不如授人以渔]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a49681109</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a49681109]]></copyright><item><title><![CDATA[Android面试总结]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/80014947</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/80014947</guid><author>a49681109</author><pubDate>Sat, 21 Apr 2018 10:11:20 +0800</pubDate><description><![CDATA[写在前面：先介绍一下博主的情况，16年软件工程毕业，非985、211毕业，算来也就一年半的工作经验，坐标杭州。在这里也感谢一下我之前公司的 leader，在我找工作的期间给了我不少了帮助，也在我拿到 offer 之后给我的指点。好了，下面说正题。我个人认为面试的过程就是一个印证你简历是否真实的过程，所以，在我们投递简历的时候，一定要保证我们简历的真实性，不要把你不了解或者不熟悉的东西体现在简历上面...]]></description><category></category></item><item><title><![CDATA[ThreadLocal、Atomic、synchronized、Volatile]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/79722951</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/79722951</guid><author>a49681109</author><pubDate>Wed, 28 Mar 2018 09:47:55 +0800</pubDate><description><![CDATA[一、前提首先我们要知道这四个关键词都是干什么，都是用来解决多线程处理数据造成不同的什么是原子操作：原子操作就是不被多线程影响的操作，是不能中断的操作，例如对域进行赋值和返回都属于原子操作，但是在 java 中 i++ 和 i+=2 这种操作不属于原子操作(c++是属于的)，所以我们就引入了我们的 Aotmic 类。二、Atomic基于 Lock-free 算法，限制多线程对同一个资源进行处理的，它...]]></description><category></category></item><item><title><![CDATA[TCP 拥塞控制]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/79701491</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/79701491</guid><author>a49681109</author><pubDate>Mon, 26 Mar 2018 17:49:18 +0800</pubDate><description><![CDATA[前提：我们都知道 TCP 是传输层的协议，网络请求经过传输层到达网络层之后是通过 ip 包进行传输的。如果我们发送方大量的 ip 包的时候，有可能我们的链路资源有限，那么我们的 ip 包就有可能丢失或者被丢弃，这样我们的请求就不是绝对安全的，那接下来我们就说一下，TCP是如何处理前面的情况的。 一、什么是网络拥塞是指在分组交换网络中传送分组的数目太多时，由于存储转发节点的资源有限而造成网络传输性能...]]></description><category></category></item><item><title><![CDATA[HTTP缓存]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/79672013</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/79672013</guid><author>a49681109</author><pubDate>Fri, 23 Mar 2018 20:03:06 +0800</pubDate><description><![CDATA[HTTP 缓存在HTTP 整个体系结构中是非常重要的一部分，当我们访问一个资源的时候，如果本地有“已缓存的副本”，就可以直接从本地提取这个资源。使用缓存有以下优点：1、缓存减少了冗余数据的传输，节省了网络费用2、缓存可以缓解网络瓶颈的问题3、缓存降低了对原始服务器的要求。服务器可以更快地相应，避免过载的出现 冗余数据的传输：当我们访问服务器界面时，服务器会多次传输同一份文档，每次传送给一个客户端。...]]></description><category></category></item><item><title><![CDATA[JDK中的动态代理]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/78896436</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/78896436</guid><author>a49681109</author><pubDate>Mon, 25 Dec 2017 20:22:33 +0800</pubDate><description><![CDATA[一、概述我们都知道实现代理的两种方式，一种是静态代理，一种是动态代理，我们都知道静态代理有一个很大的缺点扩展性不好，当需求发生变化的时候，我们就需要写很多的代理类，也就是因为这个原因，动态代理就应运而生了。动态代理的的使用还是非常广泛的，比如 spring 框架中，移动端的 Retrofit 框架，都运用了动态代理，就是因为运用了动态代理，使我们的代码简洁了很多。那么怎样去实现动态代理，其实实现动...]]></description><category></category></item><item><title><![CDATA[Android 绘图那些事]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/78233332</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/78233332</guid><author>a49681109</author><pubDate>Sat, 14 Oct 2017 12:07:30 +0800</pubDate><description><![CDATA[一、概述




本周学习计划就顺利的进行到了我们的画图阶段，在本周的学习过程中主要是对画图中的三个比较重要的 API 进行了学习，这三个 API 分别是 Canvas 、Paint 和 Path，其实学习这些内容的原因都是为了之后的自定义 view 做准备的，我们都知道我们的自定义 view 里面的东西都是需要通过我们自己去绘制的，所以下面我们简单介绍一下我们常用的 API 和我在学习]]></description><category></category></item><item><title><![CDATA[Retrofit 源码解析]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/78068961</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/78068961</guid><author>a49681109</author><pubDate>Sat, 23 Sep 2017 10:00:45 +0800</pubDate><description><![CDATA[一、概述








作为 Android 开发者的我们都知道，当我们写一个网络请求的时候，需要写很多代码，很不方便，在这样的背景下，Retrofit 就应运而生了，Retrofit 是当下比较热门的一个框架，如果你不了解 Retrofit 的用法，请点击这里，那本文主要讲解的就是我们的 Retrofit 的原理，在了解他的原理之前，你首先要了解的就是动态代理，Retrofi]]></description><category></category></item><item><title><![CDATA[okhttp 流程和优化的实现]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/78002719</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/78002719</guid><author>a49681109</author><pubDate>Sat, 16 Sep 2017 14:34:40 +0800</pubDate><description><![CDATA[一、概述


  
最近一直在忙着研究 okhttp，看了两周了，感觉东西实在是太多了，如果让我细致的写，我感觉能写 10 篇都写不完，那东西虽然是很多，但是主要的流程我们还是需要了解的，这篇文章我主要介绍以下 okhttp 中的流程，还有一些做的好的东西，之后再去将一些细节上的东西，这篇文章主要说了一个大概的内容，就是帮助你大致了解一下 okhttp 的实现，废话不多说了下面进入正题。 ]]></description><category></category></item><item><title><![CDATA[https我所知道的一切]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/77752249</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/77752249</guid><author>a49681109</author><pubDate>Thu, 31 Aug 2017 21:23:21 +0800</pubDate><description><![CDATA[一、概述


  


   
这几天闲暇的时候没什么事情做，突然对 https 的加密算法有了很浓厚的兴趣，学着学着就把一些知识都学了一下，那这篇文章主要讲了以下几个方面，首先说了一下 http 存在的不足，然后说一下我们 http 中用到的加密算法，最后说一下一个请求在我们的 https 中执行的流程，好了话不多说我们赶紧进入我们的正题。

二、http 中存在的不足]]></description><category></category></item><item><title><![CDATA[Rxjava2从入门到源码（二）]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/77542249</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/77542249</guid><author>a49681109</author><pubDate>Fri, 25 Aug 2017 19:40:12 +0800</pubDate><description><![CDATA[一、本期要点
  
    
写博客就应该和鞋小说一样，时常更新，那今天主要讲的是 rxjava 的另一部分内容，线程切换，之前的文章讲的是一些基础的用法，那今天就讲一下 rxjava 中的另一个强大的功能，线程切换，当我们需要在 rxjava 中执行耗时代码的时候，线程切换就很重要了，那今天我们就领略一下线程切换的魅力
   
    
二、subscribeOn 
我们可以看到这]]></description><category></category></item><item><title><![CDATA[Rxjava2从入门到源码（一）]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/77511660</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/77511660</guid><author>a49681109</author><pubDate>Wed, 23 Aug 2017 23:26:31 +0800</pubDate><description><![CDATA[一、概述




二、响应式编程






三、最常用的 API：Observable 和 Observer




四、数据流的控制


主要就是 map 和 flagmap]]></description><category></category></item><item><title><![CDATA[Android SharedPreferences]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/76727570</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/76727570</guid><author>a49681109</author><pubDate>Thu, 10 Aug 2017 22:29:57 +0800</pubDate><description><![CDATA[一、概述


二、相关 API 和使用方法


三、使用中遇到的坑


四、源码分析




总结]]></description><category></category></item><item><title><![CDATA[Android BroadcastReceiver]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/75264567</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/75264567</guid><author>a49681109</author><pubDate>Mon, 17 Jul 2017 21:10:50 +0800</pubDate><description><![CDATA[前面四大组件已经介绍三个了，那就差 BroadcastReceiver 了，本来打算周末去写的，但是代码在公司了，所以就今天给大家介绍以下四大组件的最后一课，BroadcastReceiver 。


一、概述
BroadcastReceiver 意思就是广播的意思，那在我们的平时生活中，如果有人发送广播的时候，当我们听到广播的时候会进行一些列的动作，那 Android 中的广播和我们生活]]></description><category></category></item><item><title><![CDATA[Android ContentProvider理解与实践]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/74613124</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/74613124</guid><author>a49681109</author><pubDate>Tue, 11 Jul 2017 23:39:55 +0800</pubDate><description><![CDATA[一、概述]]></description><category></category></item><item><title><![CDATA[Android Activity生命周期和启动模式]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/74936047</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/74936047</guid><author>a49681109</author><pubDate>Mon, 10 Jul 2017 22:20:20 +0800</pubDate><description><![CDATA[假如编程易懂得，那么程序员就不会热情地写出注释，也不会有得到编程的快乐。


这周六周日是在是太忙了，导致博客没有及时更新，在这里深表惭愧，所以这才加班加点完成一篇博客来弥补我的过失，好了不说那么多了，进入正题，今天主要讲的是 Activity 的声明周期和启动模式，其实这两个地方的基础知识本篇不会介绍很多，本篇主要介绍的是我们在使用中遇到的问题，和我们在使用中正确的使用规则。


一]]></description><category></category></item><item><title><![CDATA[Android Service个人理解]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/74490438</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/74490438</guid><author>a49681109</author><pubDate>Wed, 05 Jul 2017 21:34:03 +0800</pubDate><description><![CDATA[代码是最为耐心、最能忍耐和最令人愉快的伙伴，在任何艰难困苦的时刻，它都不会抛弃你。



一、概述
         这段时间欠的东西太多了，四大组件之前都没有整理过，这次有时间统一整理一下，知识都整理的差不多了，知识差把它们分享出来，那今天就来分享一篇关于 Service 的文章，Service 的意思为服务，那这个服务也是由 ContextWrapper 派生出来的，那么他也会有 C]]></description><category></category></item><item><title><![CDATA[Android 资源文件]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/74355388</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/74355388</guid><author>a49681109</author><pubDate>Tue, 04 Jul 2017 21:31:36 +0800</pubDate><description><![CDATA[当你还不能写出自己满意的程序时，你就不要去睡觉


好久没写博客了，最近项目实在太紧了，所以在博客这里花的时间就少了很多。不过以后的每周末都会更新一篇文章，不管时间多么
紧张，都会去找时间学习一些知识拿出来分享。以后的每次博客都会写上一句话来激励这个不怎么优秀的自己。下面进入正文。


今天主要讲的是我们 Android 中的资源文件，其实主要是我们的自定义的一些 Drawable ]]></description><category></category></item><item><title><![CDATA[Android bitmap讲解与实践]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/73188903</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/73188903</guid><author>a49681109</author><pubDate>Tue, 13 Jun 2017 20:00:05 +0800</pubDate><description><![CDATA[一、概述

bit


二、Bitmap 的创建


三、BitmapFactory 创建 Bitmap


四、使用中的注意



总结：]]></description><category></category></item><item><title><![CDATA[Android Intent 和 Intentfilter]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/73019607</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/73019607</guid><author>a49681109</author><pubDate>Sun, 11 Jun 2017 13:01:42 +0800</pubDate><description><![CDATA[一、概述
在我们的 android 开发中如果你需要从一个 Activity 到另一个 Activity 那么就需要用到这个 Intent，android 中有
四大
组件，在我看来 Intent 也应该归入四大组件中成为 android 第五大组件，这也标志着 Intent 在 android 开发中的重要
性。那么下面就让我们进入 Intent 的世界。




二、Inte]]></description><category></category></item><item><title><![CDATA[Android handler讲解与实践]]></title><link>https://blog.youkuaiyun.com/a49681109/article/details/72860955</link><guid>https://blog.youkuaiyun.com/a49681109/article/details/72860955</guid><author>a49681109</author><pubDate>Sun, 04 Jun 2017 23:33:17 +0800</pubDate><description><![CDATA[一、概述
   在我们的平常的开发中，我们通常是用 Handler 去在线程中更新 UI ，单其实 Handler 的主要用途是消息处理机制。

其实 handler 在我们 framework 中也很多地方用到了，比如，Activity 生命周期的回调，还有很多实践的传递机制，

都用到了 handler，那么现在我们就进入 handler 的世界吧。

为什么谷歌只允许我们在主线]]></description><category></category></item></channel></rss>