<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Hubert的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Hubert_bing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Hubert_bing]]></copyright><item><title><![CDATA[Android面试准备（中高级）]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/81700166</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/81700166</guid><author>Hubert_bing</author><pubDate>Wed, 15 Aug 2018 10:46:23 +0800</pubDate><description><![CDATA[Android



Activity生命周期





onStart()与onResume()有什么区别？

onStart()是activity界面被显示出来的时候执行的，但不能与它交互；&amp;nbsp; 
onResume()是当该activity与用户能进行交互时被执行，用户可以获得activity的焦点，能够与用户交互。&amp;nbsp;



Activity启动流程

startActivi...]]></description><category></category></item><item><title><![CDATA[Android自定义View之区块选择器]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/80509761</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/80509761</guid><author>Hubert_bing</author><pubDate>Wed, 30 May 2018 14:36:39 +0800</pubDate><description><![CDATA[最近撸了一个自定义view，还是比较复杂的，感觉有必要分享下实现的过程。



效果

先来看下效果吧：



我们来分析这个view需要实现哪些效果。 
+ 首先它有一个刻度尺代表了时间段（也可以是别的什么），并且可以看到完整的刻度尺是比屏幕宽度大的，因此肯定需要可以左右滑动。 
+ 其次，可以有不可选的区域（gif中灰色块）和选中的区域（gif中蓝色块），点击刻度的空白位置出现或者移动选中区域...]]></description><category></category></item><item><title><![CDATA[可能是最详细的ARouter源码分析]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/80226333</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/80226333</guid><author>Hubert_bing</author><pubDate>Mon, 07 May 2018 15:22:09 +0800</pubDate><description><![CDATA[组件化被越来越多的Android项目采用，而作为组件化的基础——路由也是重中之重。本篇文章将详细的分析阿里巴巴开源的路由框架ARouter。从源码的角度解释为什么这样使用，以及避免做什么，让你使用地更加顺滑。



项目地址

ARouter



项目结构

我们把项目clone到本地，打开ARouter项目，可以看到分为如下几个Module：



其中app、module-java、modu...]]></description><category></category></item><item><title><![CDATA[Kotlin教程（九）泛型]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/80059813</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/80059813</guid><author>Hubert_bing</author><pubDate>Tue, 24 Apr 2018 09:34:21 +0800</pubDate><description><![CDATA[写在开头：本人打算开始写一个Kotlin系列的教程，一是使自己记忆和理解的更加深刻，二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写，在将书中知识点展示出来同时，我也会添加对应的Java代码用于对比学习和更好的理解。 

Kotlin教程（一）基础 
Kotlin教程（二）函数 
Kotlin教程（三）类、对象和接口 
Kotlin教程（四）可空...]]></description><category></category></item><item><title><![CDATA[Kotlin教程（八）高阶函数]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/80059800</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/80059800</guid><author>Hubert_bing</author><pubDate>Tue, 24 Apr 2018 09:33:35 +0800</pubDate><description><![CDATA[写在开头：本人打算开始写一个Kotlin系列的教程，一是使自己记忆和理解的更加深刻，二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写，在将书中知识点展示出来同时，我也会添加对应的Java代码用于对比学习和更好的理解。 

Kotlin教程（一）基础 
Kotlin教程（二）函数 
Kotlin教程（三）类、对象和接口 
Kotlin教程（四）可空...]]></description><category></category></item><item><title><![CDATA[Kotlin教程（七）运算符重载及其他约定]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/80059781</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/80059781</guid><author>Hubert_bing</author><pubDate>Tue, 24 Apr 2018 09:32:11 +0800</pubDate><description><![CDATA[写在开头：本人打算开始写一个Kotlin系列的教程，一是使自己记忆和理解的更加深刻，二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写，在将书中知识点展示出来同时，我也会添加对应的Java代码用于对比学习和更好的理解。 

Kotlin教程（一）基础 
Kotlin教程（二）函数 
Kotlin教程（三）类、对象和接口 
Kotlin教程（四）可空...]]></description><category></category></item><item><title><![CDATA[Kotlin教程（六）Lambda编程]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/80059766</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/80059766</guid><author>Hubert_bing</author><pubDate>Tue, 24 Apr 2018 09:31:29 +0800</pubDate><description><![CDATA[写在开头：本人打算开始写一个Kotlin系列的教程，一是使自己记忆和理解的更加深刻，二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写，在将书中知识点展示出来同时，我也会添加对应的Java代码用于对比学习和更好的理解。 

Kotlin教程（一）基础 
Kotlin教程（二）函数 
Kotlin教程（三）类、对象和接口 
Kotlin教程（四）可空...]]></description><category></category></item><item><title><![CDATA[Kotlin教程（五）类型]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/79743285</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/79743285</guid><author>Hubert_bing</author><pubDate>Thu, 29 Mar 2018 15:18:16 +0800</pubDate><description><![CDATA[基本数据类型

Java把基本数据类型和引用类型做了区分。一个基本数据类型（如int）的变量直接存储了它的值，而一个引用类型（如String）的变量存储的是指向包含该对象的内存地址的引用。 
基本数据类型的值能够更高效地存储和传递，但是你不能对这些值调用方法，或是把他们存放在集合中。Java提供了特殊的包装类型（如Integer）在你需要对象的时候对基本数据类型进行封装。因此，你不能用Collec...]]></description><category></category></item><item><title><![CDATA[Kotlin教程（四）可空性]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/79724123</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/79724123</guid><author>Hubert_bing</author><pubDate>Wed, 28 Mar 2018 10:45:32 +0800</pubDate><description><![CDATA[系列文章的知识点会以《Kotlin实战》这本书中顺序编写，在将书中知识点展示出来同时，我也会添加对应的Java代码用于对比学习和更好的理解。 

Kotlin教程（一）基础

Kotlin教程（二）函数

Kotlin教程（三）类、对象和接口

Kotlin教程（四）可空性

[Kotlin教程（五）类型]

[Kotlin教程（六）Lambda]

这一章实际上在《Kotlin实战》中是第六章，...]]></description><category></category></item><item><title><![CDATA[Kotlin教程（三）类、对象和接口]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/79670623</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/79670623</guid><author>Hubert_bing</author><pubDate>Fri, 23 Mar 2018 17:36:21 +0800</pubDate><description><![CDATA[系列文章的知识点会以《Kotlin实战》这本书中顺序编写，在将书中知识点展示出来同时，我也会添加对应的Java代码用于对比学习和更好的理解。 

Kotlin教程（一）基础

Kotlin教程（二）函数

Kotlin教程（三）类、对象和接口

Kotlin教程（四）可空性

[Kotlin教程（五）类型]

[Kotlin教程（六）Lambda]

定义类继承结构



Kotlin中的接口

...]]></description><category></category></item><item><title><![CDATA[Kotlin教程（二）函数]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/79640713</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/79640713</guid><author>Hubert_bing</author><pubDate>Wed, 21 Mar 2018 15:23:54 +0800</pubDate><description><![CDATA[写在开头：本人打算开始写一个Kotlin系列的教程，一是使自己记忆和理解的更加深刻，二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写，在将书中知识点展示出来同时，我也会添加对应的Java代码用于对比学习和更好的理解。 

Kotlin教程（一）基础

Kotlin教程（二）函数

Kotlin教程（三）类、对象和接口

[Kotlin教程（四）L...]]></description><category></category></item><item><title><![CDATA[Kotlin教程（一）基础]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/79611972</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/79611972</guid><author>Hubert_bing</author><pubDate>Mon, 19 Mar 2018 15:09:03 +0800</pubDate><description><![CDATA[写在开头：本人打算开始写一个Kotlin系列的教程，一是使自己记忆和理解的更加深刻，二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写，在将书中知识点展示出来同时，我也会添加对应的Java代码用于对比学习和更好的理解。 

Kotlin教程（一）基础

Kotlin教程（二）函数

Kotlin教程（三）类、对象和接口

[Kotlin教程（四）L...]]></description><category></category></item><item><title><![CDATA[Android拖拽详解]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/79499654</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/79499654</guid><author>Hubert_bing</author><pubDate>Fri, 09 Mar 2018 16:44:21 +0800</pubDate><description><![CDATA[Android中实现拖拽其实很简单，系统早已经提供了api让我使用，主要用到了View的startDrag（startDragAndDrop API24+） 方法以及OnDragListener。



startDrag

先来看下方法介绍：



/**
     * Starts a drag and drop operation. When your application calls t...]]></description><category></category></item><item><title><![CDATA[java web入门——概念理解、名词解释]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/79474686</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/79474686</guid><author>Hubert_bing</author><pubDate>Thu, 08 Mar 2018 14:12:05 +0800</pubDate><description><![CDATA[
  引言：当你想入门java web后，一定会查阅到很多相关的名词：Servlet，HTML，Spring…等等之类的，但是对于他们之间的关系总是比较混乱的，这篇文章就是理清这些名词的关系。


什么是web应用？

web应用是一种可以通过Web访问的应用程序。在J2EE领域下，web应用就是遵守基于JAVA技术的一系列标准的应用程序。

最简单的web应用什么样？

2个文件夹、1个xml文...]]></description><category></category></item><item><title><![CDATA[apt(Annotation Processor Tool) 注解处理知识汇总]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/79310962</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/79310962</guid><author>Hubert_bing</author><pubDate>Sun, 11 Feb 2018 15:18:23 +0800</pubDate><description><![CDATA[【Annotation】Processing-Tool详解



注解（Annotation）

是java 1.5的新特性，是一种能够添加到 Java 源代码的语法元数据。类、方法、变量、参数、包都可以被注解，可用来将信息元数据与程序元素进行关联。



元注解

元注解就是用来描述注解的注解，在java中有以下几个元注解：



@Documented

作用是告诉JavaDoc工具，当前注解...]]></description><category></category></item><item><title><![CDATA[Android使用责任链模式处理二维码扫描结果]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/79238342</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/79238342</guid><author>Hubert_bing</author><pubDate>Fri, 02 Feb 2018 13:58:31 +0800</pubDate><description><![CDATA[众所周知，二维码的扫描结果其实就是一个字符串，我们拿到一个结果需要对内容进行校验，是否是我们需要的信息，然后做一些特殊的处理。比如先判断是不是一个url链接，是则打开这个链接，不是的话进行下一种判断，比如是否是项目中的约定的跳转某个功能的信息…依次下去。

普通的做法是使用if-else或者switch-case，但是当有很多种情况需要处理，则会出现很多的if-else，并且每增加一种处理，就需要]]></description><category></category></item><item><title><![CDATA[Architecture Components源码分析之ViewModel]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/78899545</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/78899545</guid><author>Hubert_bing</author><pubDate>Tue, 26 Dec 2017 10:28:06 +0800</pubDate><description><![CDATA[如果还不清楚什么是ViewModel，可以看下[译] Architecture Components 之 ViewModel 这个系列的文章，翻译自Android Developer的官方文章。ViewModel 类是被设计用来存储和管理 UI 相关的数据，主要实现了两个功能： 
1. 在配置更改（如：屏幕旋转）时数据可以保留下来。 
2. 在 Fragment 之间共享数据。接下来会通过分析源码的]]></description><category></category></item><item><title><![CDATA[Architecture Components之LiveData的扩展]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/78771770</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/78771770</guid><author>Hubert_bing</author><pubDate>Mon, 11 Dec 2017 13:32:10 +0800</pubDate><description><![CDATA[最近研究了一下Architecture Components，尝试用这个架构写了一个小demo，发现了一些问题，也有了一些心得，想分享给大家。]]></description><category></category></item><item><title><![CDATA[Kotlin 实战翻译 —— 仿微信图片选择开源库ImagePicker]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/78332286</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/78332286</guid><author>Hubert_bing</author><pubDate>Tue, 24 Oct 2017 17:41:34 +0800</pubDate><description><![CDATA[自看了Kotlin的教程后，总感觉简短的示例代码并不能熟练掌握Kotlin，而直接从公司项目练手又又太过风险了。 
正巧项目中用到的一个仿微信图片选择库ImagePicker出现了进图片预览界面crash的bug（android.os.TransactionTooLargeException），查找github发现作者已经声明不维护这个库了，issues中也有人提出类似的问题，但并没有解决。于是只能]]></description><category></category></item><item><title><![CDATA[推荐一个好用小巧的Android引导蒙版（浮层）库]]></title><link>https://blog.youkuaiyun.com/Hubert_bing/article/details/76381501</link><guid>https://blog.youkuaiyun.com/Hubert_bing/article/details/76381501</guid><author>Hubert_bing</author><pubDate>Sun, 30 Jul 2017 14:07:26 +0800</pubDate><description><![CDATA[前言每当一个项目开发一个新功能，总会想办法及时让用户得知有这样一个新功能，这时通常会采用引导页或者蒙版（浮层）的方式提心用户，这里有需要关注的新内容。 
遇到这种需求，最简单的想法就是将引导的布局直接写在对应的页面中，在首次打开时显示，之后隐藏。但是用这种做法来显示只会出现一次的布局，显然有些浪费资源。而且很low，完全体现不出OOP的编程思想。我们的项目中原来使用的是：http://www.jia]]></description><category></category></item></channel></rss>