<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fisher_2005的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fisher_2005</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fisher_2005]]></copyright><item><title><![CDATA[Volley Introduction]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/83213920</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/83213920</guid><author>fisher_2005</author><pubDate>Wed, 24 Oct 2018 10:55:20 +0800</pubDate><description><![CDATA[Overview
As a Java lib for handling the http request, volley supports some useful features.

Http features are well supported and the APIs for the user are well constructed.
Parallelly sending request...]]></description><category></category></item><item><title><![CDATA[AOSP单个模块编译命令mm]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/83213782</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/83213782</guid><author>fisher_2005</author><pubDate>Tue, 23 Oct 2018 09:34:10 +0800</pubDate><description><![CDATA[mm命令在envsetup.sh中定义
以编译adb为例，例如在adb目录下执行mm, 我的代码根目录为/media/wy/0BF4162F0BF4162F/44
相当于实际调用：
ONE_SHOT_MAKEFILE=$M make -C $T -f build/core/main.mk $MODULES $ARGS
ONE_SHOT_MAKEFILE=system/core/adb/Androi...]]></description><category></category></item><item><title><![CDATA[使用_Unwind_Backtrace函数抓取C/C++堆栈的backtrace]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/83213808</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/83213808</guid><author>fisher_2005</author><pubDate>Tue, 23 Oct 2018 09:33:30 +0800</pubDate><description><![CDATA[代码示例
#include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;
#include &amp;amp;amp;lt;unwind.h&amp;amp;amp;gt;
#include &amp;amp;amp;lt;stdint.h&amp;amp;amp;gt;

#include &amp;amp;amp;lt;signal.h&amp;amp;amp;gt;

struct sigaction act_old;


static _Unwi]]></description><category></category></item><item><title><![CDATA[使用LeakCanary输出Leak Trace到本地文件]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/79374739</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/79374739</guid><author>fisher_2005</author><pubDate>Mon, 12 Mar 2018 09:46:02 +0800</pubDate><description><![CDATA[修改LeakCanary

正常情况下LeakCanary是显示Leak Trace到一个Activity的界面上，这样有时候并不方便开发人员对问题的追踪和分析，简单修改后，可以使之输入信息到本地文件.

修改后的LeakCanary及Demo源码下载

下载 
提取码 wkmBfRk5



LeakCanary基本原理

关于LeakCanary网上资料很多，这里也简单总结一下吧.

主要类如...]]></description><category></category></item><item><title><![CDATA[Android系统MotionEvent处理InputReader线程基本原理总结]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/79291252</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/79291252</guid><author>fisher_2005</author><pubDate>Thu, 08 Mar 2018 16:18:47 +0800</pubDate><description><![CDATA[基本原理

触摸事件数据的传递基本流程大致应该分为如下几个阶段 
首先，当然是硬件感应 - - &amp;gt;  
固件软件 - - &amp;gt; 
Kernel驱动, 驱动将数据写入设备文件 - - &amp;gt; 
用户空间进程, android中对应的当然是system进程, 首先input reader线程从设备文件读取数据  - - &amp;gt; 
system进程input dispatcher线程拿到i...]]></description><category></category></item><item><title><![CDATA[Android C++智能指针]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/78800161</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/78800161</guid><author>fisher_2005</author><pubDate>Thu, 14 Dec 2017 13:47:30 +0800</pubDate><description><![CDATA[android]]></description><category></category></item><item><title><![CDATA[Android在Native层输出Log到本地文件]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/78801722</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/78801722</guid><author>fisher_2005</author><pubDate>Thu, 14 Dec 2017 13:46:50 +0800</pubDate><description><![CDATA[android]]></description><category></category></item><item><title><![CDATA[Android Framework层添加一个HAL模块]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/78417242</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/78417242</guid><author>fisher_2005</author><pubDate>Wed, 01 Nov 2017 18:51:30 +0800</pubDate><description><![CDATA[android]]></description><category></category></item><item><title><![CDATA[简单搭建Git Server]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/78311995</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/78311995</guid><author>fisher_2005</author><pubDate>Sun, 22 Oct 2017 18:51:23 +0800</pubDate><description><![CDATA[git]]></description><category></category></item><item><title><![CDATA[Android系统MotionEvent处理Receiver端基本原理总结]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/76423409</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/76423409</guid><author>fisher_2005</author><pubDate>Mon, 31 Jul 2017 11:48:29 +0800</pubDate><description><![CDATA[android]]></description><category></category></item><item><title><![CDATA[Tab随ViewPager的滑动上下滚动]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/76422692</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/76422692</guid><author>fisher_2005</author><pubDate>Mon, 31 Jul 2017 10:59:48 +0800</pubDate><description><![CDATA[android]]></description><category></category></item><item><title><![CDATA[简单的评价打分控件]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/75613226</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/75613226</guid><author>fisher_2005</author><pubDate>Fri, 21 Jul 2017 10:16:11 +0800</pubDate><description><![CDATA[android]]></description><category></category></item><item><title><![CDATA[非UI线程的线程池的封装]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/71908993</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/71908993</guid><author>fisher_2005</author><pubDate>Sat, 13 May 2017 22:31:26 +0800</pubDate><description><![CDATA[非UI线程的线程池的封装Android中很多操作都不能在Ui线程中进行，数据库读写，访问网络等等。AsyncTask正是为了解决这个问题，但是，AsyncTask有一个问题是所有的AsyncTask的操作只能顺序执行， 
AsyncTaskB必须要等到AsyncTaskA执行完毕后，才能执行。貌似是从Sdk的某个版本之后才开始这样，没有具体考证。 
AsyncTask内部维护一个Runnable的队]]></description><category></category></item><item><title><![CDATA[对时效性要求不高的进程保活的实现]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/71792919</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/71792919</guid><author>fisher_2005</author><pubDate>Sat, 13 May 2017 11:50:48 +0800</pubDate><description><![CDATA[对时效性要求不高的进程保活的实现]]></description><category></category></item><item><title><![CDATA[swwd]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/69486119</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/69486119</guid><author>fisher_2005</author><pubDate>Thu, 06 Apr 2017 21:26:54 +0800</pubDate><description><![CDATA[Android SWWD 机制总结]]></description><category></category></item><item><title><![CDATA[线程间同步工具]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/68948055</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/68948055</guid><author>fisher_2005</author><pubDate>Sat, 01 Apr 2017 21:28:32 +0800</pubDate><description><![CDATA[线程间同步工具

当一个任务被分解成多个任务并行执行完成时，各个任务间难免有相互依赖关系，比如，任务A为界面创建并更新的工作，任务B为网络获取数据，当任务A执行时，B可以同时去获取数据，A进行页面刷新时，可能会依赖B获取到的数据进行界面显示，这时，A需要等待B的完成，才能进行后续工作。 
基于类似场景的解决方案很多，本文编写的工具类，个人感觉使用上可能稍微便捷一些。当然有得必有失，同仁们取长补短吧]]></description><category></category></item><item><title><![CDATA[AOSP代码下载编译及开发]]></title><link>https://blog.youkuaiyun.com/fisher_2005/article/details/55252849</link><guid>https://blog.youkuaiyun.com/fisher_2005/article/details/55252849</guid><author>fisher_2005</author><pubDate>Thu, 16 Feb 2017 10:49:58 +0800</pubDate><description><![CDATA[代码下载]]></description><category></category></item></channel></rss>