<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ding3106的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ding3106</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ding3106]]></copyright><item><title><![CDATA[wifi 连接 Android设备 使用adb 指令]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/90812236</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/90812236</guid><author>ding3106</author><pubDate>Tue, 04 Jun 2019 20:14:48 +0800</pubDate><description><![CDATA[参考链接：https://www.cnblogs.com/joekk01/p/9925440.html



step1：手机 usb 连接PC

adb devices查看设备是否正常连接



step2: 查看IP (PC和手机连接同一个wifi热点)

adb shell ifconfig wlan0；或者直接在“手机-设置”里面查看







step3：重启tcpip，并...]]></description><category></category></item><item><title><![CDATA[Java中的内部类]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/84255719</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/84255719</guid><author>ding3106</author><pubDate>Mon, 19 Nov 2018 20:30:05 +0800</pubDate><description><![CDATA[本文的内容参考了：https://blog.youkuaiyun.com/Hacker_ZhiDian/article/details/82193100

并在此基础上给出总结。

AOSP的代码中，大量使用了内部类。要准确阅读代码，有必要深刻理解java内部类的使用。

1, java中4种内部类的介绍

1.1 普通内部类


public class InnerClassTest {

    publ...]]></description><category></category></item><item><title><![CDATA[AIDL实现进程间通信]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/83506819</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/83506819</guid><author>ding3106</author><pubDate>Fri, 02 Nov 2018 18:52:04 +0800</pubDate><description><![CDATA[本文将以一个简单的 AS 工程实例，使用 AIDL 实现进程间通信（Inter-Process Communication，IPC），中间穿插介绍必要的技术理论和 AS 操作步骤。

 

第一部分  Parcelable 的理解与实现

（1） IPC 中对数据进行序列化的原因：

Java 中，除了基本数据类型，包括 byte，char，short，int，long，float，double，...]]></description><category></category></item><item><title><![CDATA[数据结构与算法系列课程之五：链表（上）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/83117824</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/83117824</guid><author>ding3106</author><pubDate>Wed, 17 Oct 2018 22:17:56 +0800</pubDate><description><![CDATA[介绍链表之前，先说下三种缓存策略：

1，先进先出策略 FIFO（First In, First Out）

2，最少使用策略 LFU（Least Frequently Used）

3，最近最少使用策略 LRU（Least Recently Used）

个人理解，第三种LRU是前两种策略：FIFO 和 LFU 的结合体。

数组和链表的区别：

数组在内存中是连续存储，初始化时即确定了所占空间...]]></description><category></category></item><item><title><![CDATA[Android中AlarmManager的使用]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/83000693</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/83000693</guid><author>ding3106</author><pubDate>Wed, 10 Oct 2018 21:17:45 +0800</pubDate><description><![CDATA[本篇博客的部分内容参考了：https://www.cnblogs.com/ProtectedDream/p/6351447.html

 

最近在写一个 “抢订羽毛球场地” 的 app，有个开抢时间的设定，抢订时需要唤醒手机，并开启目标 app 进行预订操作。

因此需要用到可以摆脱 Android Dozen 模式的 AlarmManager。

在介绍 AlarmManager 之前，先简单...]]></description><category></category></item><item><title><![CDATA[数据结构与算法系列课程之二：复杂度分析（下）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/82937821</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/82937821</guid><author>ding3106</author><pubDate>Thu, 04 Oct 2018 16:46:12 +0800</pubDate><description><![CDATA[最好、最坏、平均、均摊时间复杂度

实例代码：


//全局变量，大小为10的数组 array，长度 len，下标 i。
int array[] = new int[10];
int len = 10;
int i = 0;

//往数组中添加一个元素
void add(int element){
    if(i &amp;gt; len){//数组空间不够了
        //重新申请一个2倍大小的...]]></description><category></category></item><item><title><![CDATA[数据结构与算法系列课程之二：复杂度分析（上）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/82926661</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/82926661</guid><author>ding3106</author><pubDate>Tue, 02 Oct 2018 21:45:26 +0800</pubDate><description><![CDATA[数据结构和算法，本身就是要解决 “快” 和 “省” 的问题。考量的指标分别就是 “时间复杂度” 和 “空间复杂度”。

时间复杂度表示代码执行时间随着数据规模增长的变化趋势，也叫渐进时间复杂度。

空间复杂度，全称渐进空间复杂度，表示算法的存储空间和数据规模之间的增长关系。

进行复杂度分析的原因：

事后统计法：简单来说，就是让代码在实际的平台跑一遍。

事后统计法有以下局限性：

1，测试结果...]]></description><category></category></item><item><title><![CDATA[数据结构与算法系列课程之一：学习计划]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/82924228</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/82924228</guid><author>ding3106</author><pubDate>Tue, 02 Oct 2018 09:40:16 +0800</pubDate><description><![CDATA[一，学习内容

1，复杂度分析：

空间复杂度与时间复杂度

2，10个数据结构：

数组，链表，栈，队列，散列表，二叉树，堆，跳表，图，Trie树

3，10个算法：

递归，排序，二分查找，搜索，哈希算法，贪心算法，分治算法，回溯算法，动态规划，字符串匹配算法

 

二，学习方法

1，边学边练，适度刷题

每周话1到2小时时间，集中吧每周三节课内容涉及到的数据结构和算法，全部自己写出来，代...]]></description><category></category></item><item><title><![CDATA[设计模式10——外观模式（结构型模式）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/82888324</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/82888324</guid><author>ding3106</author><pubDate>Fri, 28 Sep 2018 21:56:03 +0800</pubDate><description><![CDATA[本篇文章主要参考《大话设计模式》相关章节

 

外观模式

外观模式为子系统中的接口提供了一个一致的界面，此模式定义了一个高层接口，这个接口使得这一子系统更加容易使用。

UML


外观模式

 

●　　外观(Facade) ：客户端可以调用Facade中提供的方法。Facade了解子系统群中可实现的功能。外观的名称我个人觉得是代表整个子系统群向Client端展示一个总接口，Facade接口...]]></description><category></category></item><item><title><![CDATA[Effective Java 读书笔记（第2章 创建和销毁对象）——持续更新中]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/82848862</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/82848862</guid><author>ding3106</author><pubDate>Fri, 28 Sep 2018 17:31:54 +0800</pubDate><description><![CDATA[第一条： 考虑用 “静态工厂方法” 代替 “构造器”

此处的 “静态工厂方法” 不直接对应设计模式中的工厂方法。

“静态工厂方法” 相对于 “构造器”有以下4点优势：

第一大优势：有名称。

名字可用于描述被返回的对象，易于阅读和字面理解。类似 bigApple()、smallApple()可以很形象表述要返回对象的特征。

 

第二大优势：不必每次调用都创建一个新对象。

比如 “单例模...]]></description><category></category></item><item><title><![CDATA[设计模式9——装饰模式（结构型模式）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/82858136</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/82858136</guid><author>ding3106</author><pubDate>Wed, 26 Sep 2018 20:22:26 +0800</pubDate><description><![CDATA[本文的内容参考了以下博客和《大话设计模式》：

https://www.cnblogs.com/jzb-blog/p/6717349.html

装饰模式

是一种常见的设计模式，个人理解装饰就是锦上添花之意，即在原有功能基础上增加新功能。

这个模式的设计思想和实现方式比较简单，直接上图。

UML


标题

Component 为统一接口，也是装饰类和被装饰类的基本类型。
	Concrete...]]></description><category></category></item><item><title><![CDATA[设计模式8——组合模式（结构型模式）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/82843336</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/82843336</guid><author>ding3106</author><pubDate>Tue, 25 Sep 2018 19:57:18 +0800</pubDate><description><![CDATA[本文在书写过程中参考了以下文章及《大话设计模式》：

https://www.cnblogs.com/snaildev/p/7647190.html

https://www.cnblogs.com/lfxiao/p/6816026.html

https://blog.youkuaiyun.com/CYL926/article/details/79134640

组合模式的概念

组合模式（Composit...]]></description><category></category></item><item><title><![CDATA[设计模式7——桥接模式（结构型模式）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/82749340</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/82749340</guid><author>ding3106</author><pubDate>Tue, 18 Sep 2018 22:06:27 +0800</pubDate><description><![CDATA[本文在准备时，参考了以下博客和《大话设计模式》

https://www.cnblogs.com/lfxiao/p/6815760.html

http://www.cnblogs.com/chenssy/p/3317866.html

1. 使用桥接模式的时机：

当我们需要多角度去分类实现对象，一昧的继承会造成大量类的增加，不能满足开放-封闭原则（增加开放，修改封闭）时，就应该要考虑用桥接模式...]]></description><category></category></item><item><title><![CDATA[设计模式6——适配器模式（结构型模式）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/82154135</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/82154135</guid><author>ding3106</author><pubDate>Tue, 28 Aug 2018 21:46:14 +0800</pubDate><description><![CDATA[所谓的适配器模式，实现了 “ 目标接口 ” 到 “ 现有接口 ” 的转换，即：将一个现有类的接口转换成客户希望的另一个接口，使得那些原本由于接口不兼容而不能一起工作的类可以一起工作。

当用户所需要的 “目标接口” 和 “现有接口” 出现不一致的情况，在不改变两种接口前提下，需要使用 “适配器模式”，实现对现有接口的充分利用。

一，适配器模式的结构图

适配器模式分为两种类型，分别是 “类适配器...]]></description><category></category></item><item><title><![CDATA[设计模式5——原型模式（创建型模式）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/81951590</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/81951590</guid><author>ding3106</author><pubDate>Fri, 24 Aug 2018 20:59:38 +0800</pubDate><description><![CDATA[原型模式，根据现有的实例变量（ A ），复制（克隆）出相同类型的实例变量 ( B )。

要理解原型模式的实质，核心的要点是搞清楚 “ 深复制 ” 和 “ 浅复制 ”。

一，“ 深复制 ” 和 “ 浅复制 ” 的概念和区别

浅复制：使用一个已知实例 ( A ) 对新创建实例 ( B ) 的成员变量逐个赋值，这个方式也被称为浅拷贝

深复制：不仅要复制对象的所有非引用类型成员（即基本数据类型变量...]]></description><category></category></item><item><title><![CDATA[设计模式4——建造者模式（创建型模式）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/81366907</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/81366907</guid><author>ding3106</author><pubDate>Mon, 06 Aug 2018 21:07:20 +0800</pubDate><description><![CDATA[今天突击一个新的创建型设计模式：建造者模式

 

1、建造者模式的应用场景：

工作中经常遇到构建过程很复杂的对象，这些对象内部构建间的建造顺序通常是稳定的，但对象内部的构建通常面临着复杂的变化。

此时可以将这类对象的建造和组装分别抽象出来，分别用建造类和组装类表示，实现对象部件的建造和组装的分离，达到简化构建过程的目的。

2、一种场景应用



上面的 UML 图取自《大话设计模式》，用于...]]></description><category></category></item><item><title><![CDATA[设计模式3——抽象工厂模式（创建型模式）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/81142685</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/81142685</guid><author>ding3106</author><pubDate>Sat, 21 Jul 2018 13:38:01 +0800</pubDate><description><![CDATA[抽象工厂模式是工厂模式的升级。相对而言，抽象工厂模式并不像工厂模式那么好理解，看了不少网上博客的描述，感觉都说说的云里雾里，个人觉得还是把抽象问题具体化更好。推崇《大话设计模式》中的讲解模式。本文讲以更通俗的语言，结合《大话设计模式》中使用的实例，把抽象工厂模式理清楚。

1. 对工厂模式的回顾

先总结下个人对工厂模式的理解：

工厂模式中的类主要分两大类群，一是产品类群，而是工厂类群。



...]]></description><category></category></item><item><title><![CDATA[设计模式2——工厂模式（创建型模式）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/81059049</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/81059049</guid><author>ding3106</author><pubDate>Tue, 17 Jul 2018 18:50:16 +0800</pubDate><description><![CDATA[今天折腾第二种设计模式：工厂模式。

和单例模式一样，工厂模式也是一种创建型模式。

通俗一点的话来讲，工厂模式的出现是为了让开发人员使用统一的接口函数（工厂类）实现相关类的实例化，这些待实例化的类有彼此类似的结构或者功能，这样开发人员就不用挨个去执行 new 操作，将具体的实例化 new 操作交给封装好的工厂类。

 

《大话设计模式》一书中介绍了三种工厂模式，分别是：简单工厂模式，工厂模式，...]]></description><category></category></item><item><title><![CDATA[设计模式1——单例模式（创建性模式）]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/81047332</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/81047332</guid><author>ding3106</author><pubDate>Sun, 15 Jul 2018 01:57:37 +0800</pubDate><description><![CDATA[今天一觉醒来受了点刺激，博客写起来确实很花费精力，最近博客写的有点慢、有点少。总体来说，缺少计划，今天就来点计划，之前研究过一段时间的设计模式，但是没有输出，看过的、标记过的东西都在书里，总结起来会比较快，近期的博客计划就拿设计模式开刀了，一周写个5/6篇，日更。今天第一篇，就先从最简单的“单例模式”开始。Android系统源码中使用了大量的设计模式，但是，对于初学者来说，直接到源码里翻设计模式还...]]></description><category></category></item><item><title><![CDATA[Android App通过OkHttp访问本地PC的Apache服务器时抛SocketTimeoutException的一种原因]]></title><link>https://blog.youkuaiyun.com/ding3106/article/details/81034675</link><guid>https://blog.youkuaiyun.com/ding3106/article/details/81034675</guid><author>ding3106</author><pubDate>Fri, 13 Jul 2018 17:50:55 +0800</pubDate><description><![CDATA[本文算是对处理自己在coding过程中遇到问题过程的总结，参考了很多网上的博客，最终原因也是从一位大神处得到。东西和内容肯定不新，写下来一是加深自己的印象，二是希望更多遇到一样问题的小伙伴及时找到原因问题出现时的预置情况：1，本地PC安装了Apache服务器具体服务器的安装参照网上的各种博客。2，安装好Apache后，到安装目录下，打开conf/httpd.conf2.1 重置安装路径，参考一下：...]]></description><category></category></item></channel></rss>