<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[程晨的博客]]></title><description><![CDATA[welcome to Chendroid‘s blog]]></description><link>https://blog.youkuaiyun.com/friendlychen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; friendlychen]]></copyright><item><title><![CDATA[Java集合系列——LinkedList源码详解]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/79997002</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/79997002</guid><author>friendlychen</author><pubDate>Sat, 08 Sep 2018 22:13:24 +0800</pubDate><description><![CDATA[1、LinkedList概述

LinkedList类是双向列表,列表中的每个节点Node都包含了对前一个和后一个元素的引用.



public class LinkedList&amp;amp;amp;lt;E&amp;amp;amp;gt;
    extends AbstractSequentialList&amp;amp;amp;lt;E&amp;amp;amp;gt;
    implements List&amp;amp;amp;lt;E&amp;amp;amp;gt;, Deque&amp;]]></description><category></category></item><item><title><![CDATA[Java集合系列——ArrayList源码详解]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/79996862</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/79996862</guid><author>friendlychen</author><pubDate>Sat, 02 Jun 2018 15:46:00 +0800</pubDate><description><![CDATA[1、ArrayList概述

ArrayList作为Java集合的一个成员，是List接口的一个具体实现，底层是由数组的形式实现的，接下来从ArrayList源码角度分析下，JDK中每个版本对ArrayList都做了不同的优化，比如一个初始化的集合，在1.8之后，默认是空的，在add的时候，会自动填充到10。这里主要讨论1.8中的源码。 
ArrayList是List的实现类。包含了添加，删除，替...]]></description><category></category></item><item><title><![CDATA[Java集合系列——总序]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/79965762</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/79965762</guid><author>friendlychen</author><pubDate>Wed, 18 Apr 2018 21:05:54 +0800</pubDate><description><![CDATA[一、概要

Java集合是Java语言最基础也很重要的一部分知识，很多公司的面试官面试Java开发的时候都会专门考察Java集合方面的知识。网上已经有很多Java集合系列的文章，这里我也对Java集合大家族各个主要成员做个详细系统的介绍。本篇是总序，介绍集合大家族的主要成员，后面会介绍一些具体的集合实现类。

二、Java集合大家庭

Java集合类存放在java.util包中，工具包中其实包含了...]]></description><category></category></item><item><title><![CDATA[Eclipse项目导入到Android Studio的过程和一些问题的解决]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/78428110</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/78428110</guid><author>friendlychen</author><pubDate>Thu, 02 Nov 2017 18:48:43 +0800</pubDate><description><![CDATA[没想到这么晚入坑Android的我，现在还会遇到类似的问题，就问现在还有多少Android项目还是在Eclipse上的，我基本都是在玩as毕竟谷歌亲儿子呀，ec很少接触，哎！废话不多说，进入正题，本篇文章记录了我转项目的过程和遇到的一些问题的解决方法和思路。其实可以最笨的方法就是重新用as创建一个项目，包名一样，然后一个个复制过来，只要对as结构和ec结构很清楚，复制肯定没什么问题。 
步骤主要以图]]></description><category></category></item><item><title><![CDATA[Genymotion的安装与使用（附百度云盘下载地址，全套都有，无需注册Genymotion即可使用）]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/78112667</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/78112667</guid><author>friendlychen</author><pubDate>Wed, 27 Sep 2017 14:42:05 +0800</pubDate><description><![CDATA[1.Genymotion的安装包。 
Genymotion的所有文件都放在了AndroidPhone文件下。你会看到两个.exe的可执行文件。首先安装VirtualBox-4.3.10-93012-Win.exe，直接都点下一步即可，安装路径可自选；然后安装genymotion-2.6.0.exe，同上操作]]></description><category></category></item><item><title><![CDATA[Java设计模式之单例模式]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/77678168</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/77678168</guid><author>friendlychen</author><pubDate>Tue, 29 Aug 2017 14:58:58 +0800</pubDate><description><![CDATA[单例模式应该是Java中最常见的一种设计模式。单例，顾名思义就是创建单一的实例，保证系统中一个类只创建一个实例。单例的写法有很多种，这里介绍常用的两种，懒汉式单例和饿汉式单例。 
单例模式的特点： 
    1、这个类只能有一个实例， 
    2、必须自行创建这个实例。 
    3、必须自行向整个系统提供这个唯一的实例。]]></description><category></category></item><item><title><![CDATA[Android Studio Gradle配置详解]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/76944662</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/76944662</guid><author>friendlychen</author><pubDate>Tue, 08 Aug 2017 22:12:22 +0800</pubDate><description><![CDATA[gradle是一种自动化构建工具。就是把元代码生成可执行应用程序的自动化程序。主要有key配置，线上测试环境配置，版本号配置，apk输出路径等 
1.下载依赖 
2.源代码转化成二进制代码 
3.打包生成二进制代码 
4.单元测试 
5.部署到生产系统]]></description><category></category></item><item><title><![CDATA[使用StaggeredGridLayoutManager实现交错式网格布局]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/76636794</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/76636794</guid><author>friendlychen</author><pubDate>Thu, 03 Aug 2017 16:43:15 +0800</pubDate><description><![CDATA[一直在想着怎么描述这样的布局，毕竟用的是瀑布流的布局管理器，但是呢效果基本就是个网格布局，只是每列之间是上下错开的，还是觉得叫交错式网格布局吧。先看个效果。 
 
效果看起来应该很好实现的。这里仅仅是记录下自己实现的思路，然后贴出一些重要的代码。]]></description><category></category></item><item><title><![CDATA[用Glide加载图片到Recyclerview中有时候只显示占位图的问题]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/76436806</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/76436806</guid><author>friendlychen</author><pubDate>Mon, 31 Jul 2017 14:36:05 +0800</pubDate><description><![CDATA[这是使用Glide加载图片经常遇到的问题，这个问题在我的《Android解决bug的思路：追本溯源》http://blog.youkuaiyun.com/friendlychen/article/details/73299095一文中做了深入分析，当时的分析用Glide加载图
用Glide加载图片显示在Recyclerview中结果有时候只显示占位图]]></description><category></category></item><item><title><![CDATA[Android Hawk的源码解析，一款基于SharedPreferences的存储框架]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/76218033</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/76218033</guid><author>friendlychen</author><pubDate>Thu, 27 Jul 2017 19:44:08 +0800</pubDate><description><![CDATA[一、概念SharedPreferences的使用大家应该非常熟悉啦。这是一种轻量级的存储简单配置信息的存储机制，以key-value的形式保存数据。这里介绍一款基于SharedPreferences的的存储框架，是由Android开发大神Orhan Obut开源维护的，有名的日志框架logger就是出自他之手。使用非常简单，看看它在github上的介绍：Secure，simple key-value]]></description><category></category></item><item><title><![CDATA[Java设计模式之观察者模式]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/74990139</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/74990139</guid><author>friendlychen</author><pubDate>Tue, 11 Jul 2017 17:38:11 +0800</pubDate><description><![CDATA[概念：
观察者模式又被称为发布/订阅模式，观察者模式定义了一种一对多的依赖关系。让多个观察者对象同时监听某一个对象。这个对象在发生状态变化时，会通知所有观察者对象，让他们能够自动更新自己。 
举个最简单的例子：老师讲课，学生听课。老师说画个圆，各个学生都跟着画圆。。。]]></description><category></category></item><item><title><![CDATA[HTTP学习之《图解HTTP》总结]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/73924568</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/73924568</guid><author>friendlychen</author><pubDate>Thu, 29 Jun 2017 18:46:40 +0800</pubDate><description><![CDATA[初学网络方面的知识，肯定与TCP/IP，HTTP等协议的学习分不开，毕竟这些协议是网络组成最重要的基础，相当于交通里面的各种红绿灯，交通标志图标，交通标记线等，规范着行车规则。网络协议就是网络通信的这种规范。对于初学HTTP协议，我推荐《图解HTTP》，虽然我个人不喜欢日本，但是技术是无国界的，相对于西方作者字典式的教科书，每本书都像字典一样，厚的不行，内容还枯燥，啃下来的难度非常大。而这本日本人的]]></description><category></category></item><item><title><![CDATA[Android Context简单用法]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/73472419</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/73472419</guid><author>friendlychen</author><pubDate>Mon, 19 Jun 2017 19:06:52 +0800</pubDate><description><![CDATA[Android程序员开发时都离不开这个重要的Android知识点，Context。之前也是经常遇到相关问题，然后又回头查相关资料，觉得很是浪费时间，好记性不如烂笔头，于是总结了这篇关于Context的文章。当然其中如有错误，烦请各位大佬批评指正，我也非常乐意接受各位看官的意见和建议的。一、Context基本概念Context字面上的意思是上下文，也就是我们使用的场景，这里上一段官方对Context的]]></description><category></category></item><item><title><![CDATA[Minimum supported Gradle version is 3.3. Current version is 2.14.1]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/73381841</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/73381841</guid><author>friendlychen</author><pubDate>Sat, 17 Jun 2017 17:19:13 +0800</pubDate><description><![CDATA[我们导入别人的项目如果想成功编译运行的话，必须保证两个版本号一致，一个是项目中gradle版本号和Android Studio一致，另一个是项目中gradle插件版本号和Android Studio中gradle插件版本号一致。]]></description><category></category></item><item><title><![CDATA[Android解决bug的思路：追本溯源]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/73299095</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/73299095</guid><author>friendlychen</author><pubDate>Thu, 15 Jun 2017 18:49:11 +0800</pubDate><description><![CDATA[Android开发中经常会遇到各种异常，如果在开发阶段还好，直接在log控制平台上捕获。万一要是遇到线上的问题，有的还真不好处理。不过呢，现在有好多第三方平台来供我们捕获线上的bug，比如友盟等。友盟的错误统计功能使用起来也非常方便，使用官方文档，相信大家都会集成。这个错误统计功能也非常强大，可以实时统计线上的各种bug，出现这种问题的机型，问题时间，APP版本号，次数等等，还有最重要的log日志了]]></description><category></category></item><item><title><![CDATA[ButterKnife绑定失败？android-apt没用？尝试用一下annotationProcessor]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/71476001</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/71476001</guid><author>friendlychen</author><pubDate>Tue, 09 May 2017 15:18:20 +0800</pubDate><description><![CDATA[最近在使用Butterknife时遇到了一个问题，明明gradle依赖已经添加了，也绑定了，但是却绑定失败了。原来是android-apt的作者表示不再维护了，也就是说butterknife的失败跟这个有关系了.ButterKnife绑定失败]]></description><category></category></item><item><title><![CDATA[Android Studio怎么设置Tab键为4行缩进]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/61413887</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/61413887</guid><author>friendlychen</author><pubDate>Sat, 11 Mar 2017 10:23:58 +0800</pubDate><description><![CDATA[一般tab键等于多少行是有编辑环境决定的，Android开发环境Android Studio一般默认是四行缩进，那如果要改变tab键缩进行数怎么做的？
    很简单，在Android studio中进入setting界面编辑，具体做法是进去File中的Setting（Mac版是Other Settings中的Default Settings），然后是Editor—Code Style—Ja]]></description><category></category></item><item><title><![CDATA[更新android studio打开原来的项目一直显示Refresh 该项目]]></title><link>https://blog.youkuaiyun.com/friendlychen/article/details/52892705</link><guid>https://blog.youkuaiyun.com/friendlychen/article/details/52892705</guid><author>friendlychen</author><pubDate>Sat, 22 Oct 2016 15:49:13 +0800</pubDate><description><![CDATA[最近android studio更新比较频繁，在更新时，会遇到不同的问题，比如android studio更新后打开某个原来做的项目时，一直显示Refresh 某项目，而不能打开该项目。这里就该问题的解决方法做个总结，其实也非常简单。
每次更新android studio时，其中的gradle也会更新，而我们之前做的项目里的gradle版本跟更新后的gralde版本号不一致，导致出现该问题。现在只需]]></description><category></category></item></channel></rss>