<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[小笼包的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zhbinary</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zhbinary]]></copyright><item><title><![CDATA[Go继承的方法重写，继承抽象类实现]]></title><link>https://blog.youkuaiyun.com/zhbinary/article/details/89418195</link><guid>https://blog.youkuaiyun.com/zhbinary/article/details/89418195</guid><author>zhbinary</author><pubDate>Sat, 20 Apr 2019 15:55:47 +0800</pubDate><description><![CDATA[Go继承的方法重写，继承抽象类实现
go的接口和继承就没什么好说的了，基本上大家都知道怎么玩，这里说下可能会困扰大家的问题。在Java里方法的重写和抽象类是很好用的，对于抽象和尽量共用抽象出来的代码很重要，但是用go很多人又不知道该怎么写才好，所以这里说下在go里怎么实现
方法重写
func main() {
	m := &amp;Man{}
	m.Eat()
	m.Run()
	m.Sleep(...]]></description><category></category></item><item><title><![CDATA[大话消息队列-消息重试（如何保证消息的可达性，RocketMQ消息重试分析）]]></title><link>https://blog.youkuaiyun.com/zhbinary/article/details/86722853</link><guid>https://blog.youkuaiyun.com/zhbinary/article/details/86722853</guid><author>zhbinary</author><pubDate>Fri, 01 Feb 2019 08:50:59 +0800</pubDate><description><![CDATA[大话消息队列-消息重试（如何保证消息的可达性）消息可达性重试的触发点在哪里怎么重试先说结果再分析sendOneway同步send异步Send
消息可达性
现在大数据时代，很多项目都要使用消息队列，但是一直有一个问题困扰着我们，那就是怎么保证消息不丢？上网搜了一下，反正没找到讲的很清楚的文章，所以这里准备分析一个MQ的源码，然后结合自己的理解写一篇实用性比较强的文章。
那么拿什么MQ分析呢？市面上的...]]></description><category></category></item><item><title><![CDATA[图解okhttp-1-整体架构]]></title><link>https://blog.youkuaiyun.com/zhbinary/article/details/78413052</link><guid>https://blog.youkuaiyun.com/zhbinary/article/details/78413052</guid><author>zhbinary</author><pubDate>Wed, 01 Nov 2017 13:25:51 +0800</pubDate><description><![CDATA[Http库一定是两个核心，一个是IO核心，一个是http协议的封装，okhttp基于okio库封装了http协议并整合了分发器和线程池模型，是一个用起来很简单，api接口很容易理解的高效库。
首先看一段最简单的也是最常用的甚至是你可能仅仅只会用到这个的一段代码：OkHttpClient client = new OkHttpClient();
Request request = new Reques]]></description><category></category></item><item><title><![CDATA[使用LeakCanary分析并解决Android内存泄露]]></title><link>https://blog.youkuaiyun.com/zhbinary/article/details/77320339</link><guid>https://blog.youkuaiyun.com/zhbinary/article/details/77320339</guid><author>zhbinary</author><pubDate>Thu, 17 Aug 2017 17:57:26 +0800</pubDate><description><![CDATA[使用LeakCanary分析并解决Android内存溢出
  LeakCanary是一款内存溢出分析工具，至于什么是内存溢出网上有很多帖子，这里就不废话了，改工具是在app里植入一个新进程的和一个新入口的工具组件，也就是说使用了leakcanary的app安装后会在桌面看到两个app入口，卸载其中一个另外一个也会被卸载，并且两个入口运行在不同的进程。而在leakcanary入口里可以看到主app里内]]></description><category></category></item><item><title><![CDATA[Android view的移动和画布的移动原理 适用于制作各种效果]]></title><link>https://blog.youkuaiyun.com/zhbinary/article/details/7432059</link><guid>https://blog.youkuaiyun.com/zhbinary/article/details/7432059</guid><author>zhbinary</author><pubDate>Fri, 06 Apr 2012 14:08:23 +0800</pubDate><description><![CDATA[android view中有layout(int l, int t, int r, int b) 和offsetTopAndBottom(int offset)和offsetLeftAndRight(int offset) 3个方法，可以用来操作view的位置，下面我们来移动一个view



<LinearLayout xmlns:android="http://schemas.andro]]></description><category></category></item><item><title><![CDATA[Android APK应用安装原理(2)-查找APK并自动安装]]></title><link>https://blog.youkuaiyun.com/zhbinary/article/details/7410577</link><guid>https://blog.youkuaiyun.com/zhbinary/article/details/7410577</guid><author>zhbinary</author><pubDate>Sat, 31 Mar 2012 17:31:42 +0800</pubDate><description><![CDATA[Android每次启动的时候会自动安装位于特定目录下的APK，这个过程会在packageManagerService这个类的构造方法中进行，这里会创建多个目录用于预查找：


public PackageManagerService(Context context, boolean factoryTest) {

...

mFrameworkDir = new File(Environme]]></description><category></category></item><item><title><![CDATA[Android APK应用安装原理(1)-解析AndroidManifest原理-PackageParser.parserPackage]]></title><link>https://blog.youkuaiyun.com/zhbinary/article/details/7353739</link><guid>https://blog.youkuaiyun.com/zhbinary/article/details/7353739</guid><author>zhbinary</author><pubDate>Wed, 14 Mar 2012 17:21:09 +0800</pubDate><description><![CDATA[Android 安装一个APK的时候首先会解析APK，这里要做很多事情，其中一个事情就是解析Manifest.xml文件，并将所有APK的Manifest封装到各种对象中并保存在内存当中
解析Manifest的类是非常重要的，该类就是frameworks\base\core\java\android\content\pm\PackageParser
PackageManagerService会]]></description><category></category></item><item><title><![CDATA[Android 修改framework实现 全局唯一launcher]]></title><link>https://blog.youkuaiyun.com/zhbinary/article/details/7353300</link><guid>https://blog.youkuaiyun.com/zhbinary/article/details/7353300</guid><author>zhbinary</author><pubDate>Wed, 14 Mar 2012 16:08:32 +0800</pubDate><description><![CDATA[在网上找了好久唯一launcher的实现方式，发现都是一同一个人写的，而且并没有实现这个功能，因为按照这个方式去做的话，当你按下HOME键还是出现了选择launcher的对话框，然后自己研究了一天，找到了最直接有效的而且是最简单的方法实现全局唯一launcher的功能：

        
        修改frameworks\base\core\java\android\content]]></description><category></category></item><item><title><![CDATA[Android测试(1)-普通类的测试]]></title><link>https://blog.youkuaiyun.com/zhbinary/article/details/7348903</link><guid>https://blog.youkuaiyun.com/zhbinary/article/details/7348903</guid><author>zhbinary</author><pubDate>Tue, 13 Mar 2012 15:09:58 +0800</pubDate><description><![CDATA[对于Android开发来说，调试和测试都非常重要，现在十分流行的是TDD开发，测试驱动开发，再分析完需求之后，做出功能表和业务逻辑的概要设计，就可以通过需求和设计开发测试用例了，再围绕着符合实际需求的测试用例开发项目。当然测试用例和项目开发的顺序并不是非要那么绝对，再完成了测试用例后开始开发项目的过程中也可以反过来继续完善测试用例，要做到十分灵活的运用测试，相辅相成，以测试结果为驱动，小步伐的一步]]></description><category></category></item><item><title><![CDATA[Android 焦点滑动的 自定义 ListView]]></title><link>https://blog.youkuaiyun.com/zhbinary/article/details/7306136</link><guid>https://blog.youkuaiyun.com/zhbinary/article/details/7306136</guid><author>zhbinary</author><pubDate>Wed, 29 Feb 2012 15:28:03 +0800</pubDate><description><![CDATA[最近研究android的最常用的控件ListView，感觉挺有趣的，包括Listview的循环机制，item重用机制，上下滑动刷新机制，然后做了一个焦点可滑动的ListView，不知道大家看过或者用过Apple TV没有，Apple TV里面的焦点都是可滑动的, 大家可以搜索一下Apple TV 的视频， 可以看到焦点滑动的效果。

OK~！  先上图，不知道怎么贴视频或者是可以动的组件，只有]]></description><category></category></item><item><title><![CDATA[java 多线程  同步 synchronized 的个人理解和用法]]></title><link>https://blog.youkuaiyun.com/zhbinary/article/details/7302364</link><guid>https://blog.youkuaiyun.com/zhbinary/article/details/7302364</guid><author>zhbinary</author><pubDate>Tue, 28 Feb 2012 16:08:29 +0800</pubDate><description><![CDATA[1.当 synchronized A方法被一个线程调用的时候（运行过程中）， 另外一个线程调用A方法会block住，而并不是请求失败，如果此时在block住的线程实例上调用interrupt方法就会触发InterruptedException，然后请求的序列会被cache在请求队列中，在队列中的顺序并不一定是你代码从上到下的运行顺序，而是未知的，这个队列可以cache住的任务数量可以很大，
 直]]></description><category></category></item></channel></rss>