<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[asdgbc的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/asdgbc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; asdgbc]]></copyright><item><title><![CDATA[基于OkHttp的一种防抓包方案]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/80095177</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/80095177</guid><author>asdgbc</author><pubDate>Thu, 26 Apr 2018 16:02:49 +0800</pubDate><description><![CDATA[基于OkHttp的一种防抓包方案

最近在读OkHttp3.9.0的源码，在了解了其代理机制之后发现了一种绕过代理，避免被抓包的方法。 
在介绍这种防抓包方法之前，需要先了解一下OkHttp中socket连接建立的过程。

由于这个过程比较复杂，我简述一下，在建立socket连接之前，OkHttp会获取系统的代理信息，如果设置代理，那么通过DNS解析其IP然后使用代理IP来建立socket连接。如...]]></description><category></category></item><item><title><![CDATA[Handler之同步屏障机制(sync barrier)]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/79148180</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/79148180</guid><author>asdgbc</author><pubDate>Wed, 24 Jan 2018 10:54:29 +0800</pubDate><description><![CDATA[0 引言

Handler中的Message可以分为两类：同步消息、异步消息。消息类型可以通过以下函数得知



//Message.java
public boolean isAsynchronous() {
    return (flags & FLAG_ASYNCHRONOUS) != 0;
}

一般情况下这两种消息的处理方式没什么区别，只有在设置了同步屏障时才会出现差异。



1 什]]></description><category></category></item><item><title><![CDATA[Handler之工作原理源码解析]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/79148099</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/79148099</guid><author>asdgbc</author><pubDate>Wed, 24 Jan 2018 10:49:43 +0800</pubDate><description><![CDATA[0 引言

Android消息机制的核心类为Handler、Looper、Message、MessageQueue


Handler：名为Handler，它的主要功能就是处理消息，同时它还具有创建消息(Message)，发送消息等功能
Looper：内部维护一个消息队列(MessageQueue)，同时提供了进入/退出消息循环的功能。同时内部还有一个静态ThreadLocal对象，为每个线程都维]]></description><category></category></item><item><title><![CDATA[@Retention注解]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/70196749</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/70196749</guid><author>asdgbc</author><pubDate>Sun, 16 Apr 2017 17:52:36 +0800</pubDate><description><![CDATA[@Retention注解日常开发中经常用到注解，所以也会经常使用到@Retention注解，写下这篇文章做个记。 
Reteniton的作用是定义被它所注解的注解保留多久，一共有三种策略，定义在RetentionPolicy枚举中public enum RetentionPolicy {
    SOURCE,
    CLASS,
    RUNTIME
}
SOURCE 
被编译器忽略
CLAS]]></description><category></category></item><item><title><![CDATA[AIDL文件简析]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/51656339</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/51656339</guid><author>asdgbc</author><pubDate>Mon, 13 Jun 2016 11:18:07 +0800</pubDate><description><![CDATA[AIDL文件简析]]></description><category></category></item><item><title><![CDATA[setContentView究竟干了什么？(API21)]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/51655142</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/51655142</guid><author>asdgbc</author><pubDate>Mon, 13 Jun 2016 09:48:41 +0800</pubDate><description><![CDATA[setContentView源码解析]]></description><category></category></item><item><title><![CDATA[AdapterView类mBlockLayoutRequests、mInLayout变量简介]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/49074091</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/49074091</guid><author>asdgbc</author><pubDate>Mon, 12 Oct 2015 15:08:19 +0800</pubDate><description><![CDATA[AdapterView类mBlockLayoutRequests、mInLayout变量简介]]></description><category></category></item><item><title><![CDATA[ListView.setSelection(int)方法执行流程源码解析(API 21)]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/49002047</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/49002047</guid><author>asdgbc</author><pubDate>Fri, 09 Oct 2015 16:38:07 +0800</pubDate><description><![CDATA[ListView.setSelection(int)方法源码解析]]></description><category></category></item><item><title><![CDATA[AbsListView$RecycleBin简析]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/48972673</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/48972673</guid><author>asdgbc</author><pubDate>Thu, 08 Oct 2015 15:03:14 +0800</pubDate><description><![CDATA[AbsListView$RecycleBin简析]]></description><category></category></item><item><title><![CDATA[Spinner类OnItemSelected回调流程]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/48656535</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/48656535</guid><author>asdgbc</author><pubDate>Tue, 22 Sep 2015 17:10:39 +0800</pubDate><description><![CDATA[Spinner的OnItemSelected回调]]></description><category></category></item><item><title><![CDATA[Spinner类setSelection执行流程源码解析]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/48650119</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/48650119</guid><author>asdgbc</author><pubDate>Tue, 22 Sep 2015 09:56:04 +0800</pubDate><description><![CDATA[Spinner.setSelection(int)方法执行流程源码解析]]></description><category></category></item><item><title><![CDATA[EventBus使用简介]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/48207441</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/48207441</guid><author>asdgbc</author><pubDate>Fri, 04 Sep 2015 10:46:07 +0800</pubDate><description><![CDATA[EventBus使用简介]]></description><category></category></item><item><title><![CDATA[FrameLayout布局绘制流程解析]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/48139233</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/48139233</guid><author>asdgbc</author><pubDate>Mon, 31 Aug 2015 20:11:46 +0800</pubDate><description><![CDATA[FrameLayout绘制流程]]></description><category></category></item><item><title><![CDATA[Fragment生命周期表现]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/48086119</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/48086119</guid><author>asdgbc</author><pubDate>Sat, 29 Aug 2015 11:36:00 +0800</pubDate><description><![CDATA[多种不同添加方式下，fragment的生命周期表现
1、在xml文件中引入fragment
2、使用FragmentManager添加fragment
3、在ViewPager中使用Fragment]]></description><category></category></item><item><title><![CDATA[Selection使用简介]]></title><link>https://blog.youkuaiyun.com/asdgbc/article/details/47858457</link><guid>https://blog.youkuaiyun.com/asdgbc/article/details/47858457</guid><author>asdgbc</author><pubDate>Sat, 22 Aug 2015 12:16:09 +0800</pubDate><description><![CDATA[Utility class for manipulating cursors and selections in CharSequences.  A cursor is a selection where the start and end are at the same offset.
引用一段安卓源码中Selection类的注释，Selection是一个在 CharSequences中操纵游标和]]></description><category></category></item></channel></rss>