<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HHcoco的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/HHcoco</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HHcoco]]></copyright><item><title><![CDATA[（3）c  学习笔记—表达式，语句和函数]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/79661012</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/79661012</guid><author>HHcoco</author><pubDate>Thu, 22 Mar 2018 22:27:54 +0800</pubDate><description><![CDATA[表达式


解引用操作符优先级低于递增操作符。




*p++;  // 等价于*（p++)


异或运算符是有且只有一个为1才为1，否则为0；
位运算符如何处理符号位并没有明确的说明，所以最好是用在无符号类型。
移位运算符优先级低于算术运算符，但是高于比较运算符，赋值运算符和条件运算符。
强制类型转换：static_cast,const_cast,reintercept_cast;




函...]]></description><category></category></item><item><title><![CDATA[（2）c++学习笔记--字符串，向量和数组]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/79596731</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/79596731</guid><author>HHcoco</author><pubDate>Sat, 17 Mar 2018 22:50:16 +0800</pubDate><description><![CDATA[string


string.size()函数，返回值是自定义的size_type类型，它至少是unsigned，所以要注意与int用在一个表达式的时候。
字面值和string对象相加的时候，必须确保+号两侧至少有一个是string对象。




//这就是错误的，都是字面值
string str = &quot;hello ,&quot; + &quot;world!&quot;;

3 .c++版本的c标准库头文件，比如c中cty...]]></description><category></category></item><item><title><![CDATA[（1）c++学习笔记--变量和基本类型]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/79574755</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/79574755</guid><author>HHcoco</author><pubDate>Thu, 15 Mar 2018 21:55:13 +0800</pubDate><description><![CDATA[1. 基本类型

基本数据类型包括算术类型和空类型。其中算术类型包括整型和浮点型；整型包括字符和bool。

算术类型的尺寸根据平台的不同而有差异，标准尺寸为：

char： 8bit ， wchar_t: 16bit， char16_t: 16bit， char32_t: 32bit

short: 16bit，int: 16bit， long 32bit，long long 64bit

fl...]]></description><category></category></item><item><title><![CDATA[欢迎使用优快云-markdown编辑器]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/78774283</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/78774283</guid><author>HHcoco</author><pubDate>Mon, 11 Dec 2017 16:51:32 +0800</pubDate><description><![CDATA[android总结]]></description><category></category></item><item><title><![CDATA[Java动态代理]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/54585397</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/54585397</guid><author>HHcoco</author><pubDate>Tue, 17 Jan 2017 17:52:41 +0800</pubDate><description><![CDATA[代理模式：为其他对象提供一种代理来控制对该对象的访问。为了学习动态代理，我们先来学习一下静态代理。一切从实际出发，先看一个小例子。假设我们有一个Passenger类，它可以自己检查自己的姓名。public interface Check {
    void checkName();
}public class Passenger implements Check{    private Strin]]></description><category></category></item><item><title><![CDATA[上传开源库到JCenter]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/54316193</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/54316193</guid><author>HHcoco</author><pubDate>Tue, 10 Jan 2017 17:58:36 +0800</pubDate><description><![CDATA[在开发中，我们经常用到其他人写好的库，然后compile一下。那有没有想过怎样让我们自己写的库也能被别人这么方便的使用呢？别急，下面一步一步来。先说一下，弄这个东西整整耗费了2天时间，一方面是由于国外网速的问题；一方面是网上的教程有的太老，有的根本就是到处copy，自己也没有实践，误人子弟，对于这种行为，鄙视。首先，我从网上众多的博客中找到了hongyang的，毕竟大神嘛。但是这次他的教程没有帮上忙]]></description><category></category></item><item><title><![CDATA[RxBus]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/54134853</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/54134853</guid><author>HHcoco</author><pubDate>Fri, 06 Jan 2017 10:25:36 +0800</pubDate><description><![CDATA[RxBu]]></description><category></category></item><item><title><![CDATA[那些年学习注解所踩过的坑]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/53507483</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/53507483</guid><author>HHcoco</author><pubDate>Wed, 07 Dec 2016 16:08:31 +0800</pubDate><description><![CDATA[前言作为一个开发人员，看到@Override都很熟悉吧。很多主流框架也大量运用了注解，那么我们想实现自己的注解应该这么做呢？折腾了一大圈，算是掌握了注解的使用。最后发现对于自定义注解，尤其是对于初学者而言，代码怎么写不是最难的，难的是环境的搭建。先灌个鸡汤，给你点动力，注解既能解放生产力，也能装装X。本文目的
了解注解，入门。
在Android Studio上的使用。
注解是什么鬼？ 
java中A]]></description><category></category></item><item><title><![CDATA[Android适配解决方案]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/53392468</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/53392468</guid><author>HHcoco</author><pubDate>Tue, 29 Nov 2016 14:40:25 +0800</pubDate><description><![CDATA[现在电视一般都是1080p，手机大部分也是1080p,但是电视动不动就是42”，手机也就5英寸，但是电视为什么还是这么清晰呢？ 
昨天就这个问题去找答案，结果最后扯到了Android的适配上，本来吧我觉得自己开发Android这么久了，适配什么的早已不是问题，但是图样图森破啊，还是太年轻。目录（已经掌握的部分可以跳过）：基础知识（dp,px,dpi,sp,dip）Android碎片化不同碎片化问题的]]></description><category></category></item><item><title><![CDATA[一分钟学会Android--ContentProvider]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/53322154</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/53322154</guid><author>HHcoco</author><pubDate>Thu, 24 Nov 2016 16:46:21 +0800</pubDate><description><![CDATA[在开发中，我们经常会调用系统联系人，系统相册，视频等。联系人，相册这些算是一个独立的应用，那我们自己的应用怎么能调用其他应用的数据呢？ 
这其实就是ContentProvider的功劳了，ContentProvider：Android四大组件之一，其作用相当于两个不同应用之前数据交互的桥梁，通过它可以实现跨应用数据共享。实现步骤第一步：被调用方提供操作数据的接口，通过继承ContentProvide]]></description><category></category></item><item><title><![CDATA[Java----IO详解]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/53301190</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/53301190</guid><author>HHcoco</author><pubDate>Wed, 23 Nov 2016 09:50:42 +0800</pubDate><description><![CDATA[IO是java中很重要的一块，包含了对文件，文件目录，二进制流文件等各种资源的操作，同时IO操作复杂多变，用得好会提高性能，用的不好导致效率低下，所以详细了解并掌握IO相关知识是很有必要的。IO主要分为字节流和字符流，然后每一种又分为输入流和输出流，涉及到的类很多，下面一一分析。字节流—-InputStream和OutputStream先上类图，InputStream这个大家庭的：(1)文件流：Fi]]></description><category></category></item><item><title><![CDATA[Android Studio 配置NDK环境]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/53173064</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/53173064</guid><author>HHcoco</author><pubDate>Tue, 15 Nov 2016 16:44:11 +0800</pubDate><description><![CDATA[Android NDK，JNI， External Tools，环境搭建，Android NDK环境，java+c]]></description><category></category></item><item><title><![CDATA[史上最全的Java集合类解析]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/53117525</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/53117525</guid><author>HHcoco</author><pubDate>Thu, 10 Nov 2016 17:03:05 +0800</pubDate><description><![CDATA[本文仅分析部分原理和集合类的特点，不分析源码，旨在对java的集合类有一个整体的认识，理解各个不同类的关联和区别，让大家在不同的环境下学会选择不同的类来处理。Java中的集合类包含的内容很多而且很重要，很多数据的存储和处理（排序，去重，筛选等）都需要通过集合类来完成。首先java中集合类主要有两大分支：（1）Collection （2）Map先看它们的类图：(1)Collection(2)Map]]></description><category></category></item><item><title><![CDATA[Java线程详解]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/53009804</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/53009804</guid><author>HHcoco</author><pubDate>Wed, 02 Nov 2016 17:17:02 +0800</pubDate><description><![CDATA[引子：由于对线程掌握的不是很扎实，每次在使用到线程的时候都有种心惊胆战的感觉；所以这次决定系统的把线程相关的知识总结一下，一方面巩固基础，另一方面也可用把自己的理解抛出来大家一起探讨。学习提纲生命周期Thread的生命周期有5种：（1）新建（new）–通过new创建后，Thread thread = new Thread();（2）就绪（runnable）调用了start方法，进入等待池后的状态，注]]></description><category></category></item><item><title><![CDATA[跨多个RecyclerView拖动排序]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/52702350</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/52702350</guid><author>HHcoco</author><pubDate>Thu, 29 Sep 2016 15:30:55 +0800</pubDate><description><![CDATA[先介绍一下本文出现的背景，项目中有这样一个需求，拖动一个列表的某一项排序或者拖动到另外一个列表中。

其效果如下图：



拖动排序在RecyclerView有现成的解决方案，配合ItemTouchHelper即可轻松实现。但是要将一个列表中的Item拖动到另一个列表中去，就不那么容易了。

先来看看这种跨界面实现由那些难点，我们先分析，再一个一个的解决。


拖动视图的保存，ItemTouchH...]]></description><category></category></item><item><title><![CDATA[Gradle]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/52473438</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/52473438</guid><author>HHcoco</author><pubDate>Thu, 08 Sep 2016 17:17:50 +0800</pubDate><description><![CDATA[Gradle详解每次学习一个新的知识，发现最难的地方在于对这个知识的整体构建，各种概念的认识和理解。像上次学习单元测试，一大堆的框架绕来绕去，不同的博客讲解的又比较分散，不系统。学习Gradle的初衷在于想了解Android项目的构建流程，并且可以自己去控制构建流程。先提供参考博客和网址。1.http://www.infoq.com/cn/articles/android-in-depth-grad]]></description><category></category></item><item><title><![CDATA[GreenDao Encrypt]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/52384125</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/52384125</guid><author>HHcoco</author><pubDate>Wed, 31 Aug 2016 13:38:04 +0800</pubDate><description><![CDATA[GreenDao Encryption 翻译数据库加密 
greenDao支持加密的数据库来保护敏感资料。虽然新版本的Android支持文件系统加密，但是它自身不能提供额外的对数据库文件的安全支持。一旦攻击者持有了数据库文件（在一个root设备上或者通过一些安全漏洞），他就能使用所有内部文件。使用一个加密的数据库会多一层安全保护。密码能阻止攻击者容易的打开数据库文件。传统的SQLite和SQLCip]]></description><category></category></item><item><title><![CDATA[Android 单元测试]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/52315986</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/52315986</guid><author>HHcoco</author><pubDate>Thu, 25 Aug 2016 16:36:17 +0800</pubDate><description><![CDATA[先简单了解一下单元测试，对软件中的最小可测试单元进行测试，一般是函数。接下来说说它的作用，（1）能够验证程序的准确性，为开发提供保障，能放心大胆的修改和重构。 
（2）能规范我们的设计，能写单元测试的程序其耦合度更低。 
（3）通过测试case，能很好的了解一个功能点涉及到的其他隐藏功能点，从这一点上来看是很好的文档。 
好了，上面说到了这么多好处，那么开发人员有多少人写单元测试呢？嗯，大约58.6]]></description><category></category></item><item><title><![CDATA[Android可视化埋点(无埋点)的具体实现]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/52250627</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/52250627</guid><author>HHcoco</author><pubDate>Fri, 19 Aug 2016 14:28:18 +0800</pubDate><description><![CDATA[Android埋点技术深入探究上一篇文章提到的无埋点技术在实际应用中有以下几个问题需要处理。 
大纲： 
【1】控件的唯一标识问题怎么处理。 
【2】当控件处于可滑动的组件内或者整个界面就是一个可滑动的View中时位置如何确定。 
【3】Fragment中如何得到触摸点的坐标。 
【4】Activity界面留存时间。第一个问题：控件的唯一标识问题，上一篇文章也是参考了其他的博客，说用控件的路径来标识]]></description><category></category></item><item><title><![CDATA[Android埋点技术分析调研]]></title><link>https://blog.youkuaiyun.com/HHcoco/article/details/52243079</link><guid>https://blog.youkuaiyun.com/HHcoco/article/details/52243079</guid><author>HHcoco</author><pubDate>Thu, 18 Aug 2016 17:27:58 +0800</pubDate><description><![CDATA[1.现有的几种埋点技术的实现原理和优劣分析（1）代码埋点：将收集数据的代码直接写在需要的地方，当用户点击某个控件或者打开某个页面时调用到该部分代码完成数据的收集。 
优势：准确性高，收集数据和发送数据都能精确控制，同时能方便的设置自定义属性，自定义控件，自定义View等。 
劣势：埋点工作量大，更新代价大。 
（2）可视化埋点：根据配置文件收集用户行为，从而获取数据进行分析。 
优势：无须手动埋点，]]></description><category></category></item></channel></rss>