<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zhoufeng的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/androidzf</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; androidzf]]></copyright><item><title><![CDATA[adb无线连接手机调试配置]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/105700983</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/105700983</guid><author>androidzf</author><pubDate>Thu, 23 Apr 2020 10:15:22 +0800</pubDate><description><![CDATA[1、手机和电脑连入同一个wifi
2、手机处于开发者模式，手机连接电脑，在命令行输入：
adb tcpip 5555

3、断开手机和电脑的连接，命令行输入：
adb connect &lt;手机ip地址&gt;

4、取消连接：
adb disconnect &lt;手机ip地址&gt;

4、查询电脑连接了多少设备：
adb devices

5、指定某设备：
adb -s &lt;devic...]]></description><category></category></item><item><title><![CDATA[Handler源码解析]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/105657854</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/105657854</guid><author>androidzf</author><pubDate>Tue, 21 Apr 2020 14:42:52 +0800</pubDate><description><![CDATA[一、Looper
属性
static final ThreadLocal&lt;Looper&gt; sThreadLocal = new ThreadLocal&lt;Looper&gt;();
private static Looper sMainLooper;  // guarded by Looper.class

final MessageQueue mQueue;
final Thre...]]></description><category></category></item><item><title><![CDATA[RecyclerView源码分析 — LayoutManager]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/104952977</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/104952977</guid><author>androidzf</author><pubDate>Wed, 18 Mar 2020 20:37:36 +0800</pubDate><description><![CDATA[类名
功能




RecyclerView.LayoutManager
负责Item视图的布局的显示


RecyclerView.ItemDecoration
绘制Item的分割样式


RecyclerView.ItemAnimator
负责处理数据添加删除时的动画效果


RecyclerView.Adapter
创建每一项Item视图


RecyclerView.ViewHol...]]></description><category></category></item><item><title><![CDATA[类加载器 ClassLoader]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/104687940</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/104687940</guid><author>androidzf</author><pubDate>Fri, 06 Mar 2020 12:03:35 +0800</pubDate><description><![CDATA[一、类加载流程
graph LR
A[加载]--&gt;B[验证]
B--&gt;C[准备]
C--&gt;D[解析]
D--&gt;E[初始化]

类加载过程，虚拟机主要完成三件事：

通过类的完全限定名（包名+类名）来获取类的二进制字节流。
将这个字节流所代表静态存储结构转化为方法区域的运行时数据结构。
在堆内存中生成类的Class对象作为方法区的数据访问入口。

二、ClassLoader ...]]></description><category></category></item><item><title><![CDATA[Android启动页图片适配]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/103489184</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/103489184</guid><author>androidzf</author><pubDate>Wed, 11 Dec 2019 11:16:30 +0800</pubDate><description><![CDATA[一、在 drawable 中创建一个 xml 文件：splah.xml
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/app_welcom_bg1"
    an...]]></description><category></category></item><item><title><![CDATA[SharedElement]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/100535151</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/100535151</guid><author>androidzf</author><pubDate>Wed, 04 Sep 2019 11:11:02 +0800</pubDate><description><![CDATA[一、共享元素简单使用（Activity -&gt; Activity）
1、在第一个Activity的控件中添加属性：
android:transitionName="0_image"

添加的方式还有：
ViewCompat.setTransitionName(imageView,"0_image");
imageView.setTransitionName("0_image");

2、在第二...]]></description><category></category></item><item><title><![CDATA[IoC的简单使用]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/89314582</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/89314582</guid><author>androidzf</author><pubDate>Mon, 15 Apr 2019 16:27:16 +0800</pubDate><description><![CDATA[一、反射的相关api




API
描述




getClass()
获取类


getName()
获得类的完整名字。


getAnnotation(xxx.class)
获取注解


getMethod()
获所有（包括父类）public方法


getFields()
获所有（包括父类）public属性


invoke(xx,yy)
执行方法


getDeclaredMethods...]]></description><category></category></item><item><title><![CDATA[Java动态代理---Java Proxy]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/89284962</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/89284962</guid><author>androidzf</author><pubDate>Sat, 13 Apr 2019 16:44:47 +0800</pubDate><description><![CDATA[一、Proxy.newProxyInstance()
/**
     *
     * @param loader  用于定义代理类的类加载器
     * @param interfaces 要实现的代理类的接口列表
     * @param h  代理类
     * @return  具有由指定的类装入器定义并实现指定接口的代理类的指定调用处理程序的代理实例
     * @throws...]]></description><category></category></item><item><title><![CDATA[Java流系列（七）：其它]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87878977</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87878977</guid><author>androidzf</author><pubDate>Fri, 22 Feb 2019 15:11:31 +0800</pubDate><description><![CDATA[一、writer.flush()和writer.close()的区别

相同点：都会刷新缓冲区
不同点：

A：flush()只刷新缓冲区,close()先刷新缓冲区然后关闭流.
B：flush()刷新缓冲区后可以继续写入数据继续刷新缓冲区;close()关闭流后就无法继续写入数据了，否则报流已经关闭异常.



二、编码：将字符数据转换成字节数据的过程
1、如果没有指定编码表，则默认使用本地编码...]]></description><category></category></item><item><title><![CDATA[Java流系列（六）：RandomAccessFile（随机读写）]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87878964</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87878964</guid><author>androidzf</author><pubDate>Fri, 22 Feb 2019 15:10:53 +0800</pubDate><description><![CDATA[1、RandomAccessFile(随机访问文件)：
可以对文件进行随机的读取和写出，这是到目前为止，我学习的唯一一个可以同时进行读和写操作的类。因为这个类同时实现了DataOutput, DataInput这两个接口.
完成文件指针的跳跃有两种方式：

randomAccessFile.seek(绝对位置(永远从文件的开头开始计算)); 可以向前移动指针，也可以向后移动指针.
randomAc...]]></description><category></category></item><item><title><![CDATA[Java流系列（五）：打印流、转换流、字符缓冲流]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87878951</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87878951</guid><author>androidzf</author><pubDate>Fri, 22 Feb 2019 15:10:18 +0800</pubDate><description><![CDATA[一、打印流
PrintStream和PrintWriter的区别：

相同点：都是只有输出功能的流.
不同点：

A:PrintStream:默认情况下会自动刷新缓冲区；PrintWriter默认情况下不会自动刷新缓冲区.
B:PrintStream(OutputStream out, boolean autoFlush):第二个参数可以值是否要启用自动刷新缓冲区功能，如果指定则为true,否则为...]]></description><category></category></item><item><title><![CDATA[Java流系列（四）：对象流、内存流]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87878933</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87878933</guid><author>androidzf</author><pubDate>Fri, 22 Feb 2019 15:09:46 +0800</pubDate><description><![CDATA[一、对象流
（一）、使用对象输入流完成对指定文件的读取操作     （String path=“src”+File.separator+“hsj.bak”;）
1.声明对象输入流对象
ObjectInputStream objectInputStream=null;

2.实例化对象输入流对象
objectInputStream=new ObjectInputStream(new FileInpu...]]></description><category></category></item><item><title><![CDATA[Java流系列（三）：数据流、缓存流]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87878914</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87878914</guid><author>androidzf</author><pubDate>Fri, 22 Feb 2019 15:09:13 +0800</pubDate><description><![CDATA[一、数据流
注意：使用data输出流写出数据后，在使用Data输入流读取时一定要保证读取的顺序和写出的顺序一致，否则数据出现错乱。
（一）、使用数据输入流完成数据的读取操作
1.声明数据输入流对象
DataInputStream dataInputStream=null;

2.实例化数据输入流对象
dataInputStream=new DataInputStream(new FileInput...]]></description><category></category></item><item><title><![CDATA[Java流系列（二）：字节流、字符流]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87878895</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87878895</guid><author>androidzf</author><pubDate>Fri, 22 Feb 2019 15:08:36 +0800</pubDate><description><![CDATA[一、字节流
（一）、从指定路径的文件中读取数据

声明输入流对象

InputStream inputStream=null;

2.实例化文件输入流对象并指定要读取的文件路径
inputStream=new FileInputStream(path);

3.读取数据,一个字符一个字符的读(利用了循环)
int ch=0;
while((ch=inputStream.read())!=-1){
...]]></description><category></category></item><item><title><![CDATA[Java流系列（一）：流的分类]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87878865</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87878865</guid><author>androidzf</author><pubDate>Fri, 22 Feb 2019 15:07:26 +0800</pubDate><description><![CDATA[File:只能对文件本身的信息进行操作，比如：获取文件的大小等，但无法对文件中的内容进行操作.
如果想对文件中的内容进行操作，则必须借助于流的概念.
一、流：一串流动的数据，以先进先出的方式发送信息的通道.
流的分类：

1:按照流的方向(参考点永远是自己的程序)分：

输入流(InputStream):只能向其中读取数据的流.
输出流(OutputStream):只能向其中写出数据的流.



...]]></description><category></category></item><item><title><![CDATA[网络编程]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87860559</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87860559</guid><author>androidzf</author><pubDate>Thu, 21 Feb 2019 14:37:48 +0800</pubDate><description><![CDATA[一、网络编程的概念
1、什么是计算机网络？
把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统，从而使众多的计算机可以方便的互相产地消息，共享硬件、软件、数据信息等资源。
2、网络通讯协议

要使计算机连成的网络能够互通信息，需要对数据传输速率、传输代码、代码结构、传输控制步骤、出错控制等制定一组标准，这一组共同遵守的通信标准就是网络通讯协议，不同的计算机之间...]]></description><category></category></item><item><title><![CDATA[Java反射]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87860494</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87860494</guid><author>androidzf</author><pubDate>Thu, 21 Feb 2019 14:35:14 +0800</pubDate><description><![CDATA[Class类是反射的源头.
一、 获取类模板对象的方式：

A:方式一：类名.class
C

lass clz1=Person.class;


B:方式二：对象名.getClass()方法

Class clz2=p.getClass();


C:方式三：Class.forName(“包名+类名的字符串”);

Class clz3=Class.forName(&amp;quot;com.hsj.domain...]]></description><category></category></item><item><title><![CDATA[XML解析]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87860468</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87860468</guid><author>androidzf</author><pubDate>Thu, 21 Feb 2019 14:34:06 +0800</pubDate><description><![CDATA[一、了解XML

XML 指可扩展标记语言（EXtensible Markup Language）
XML 是一种标记语言，很类似 HTML
XML 的设计宗旨是传输数据，而非显示数据
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性

XML 与 HTML 的主要差异

XML 被设计为传输和存储数据，其焦点是数据的内容。
HTML 被设计用来显示数据，其焦点是数据...]]></description><category></category></item><item><title><![CDATA[（七）Android基础系列之：BroadcastReceiver]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87860328</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87860328</guid><author>androidzf</author><pubDate>Thu, 21 Feb 2019 14:28:23 +0800</pubDate><description><![CDATA[一、按广播发送的特点：默认情况下,广播接收者的接收顺序就是在功能清单文件中的注册顺序


A:正常广播:广播在同一时刻一起发送，接收者会同时收到，其中一个接收者不能终止其它接收者接收广播。
实例化意图对象并指定意图对象的action
Intent intent=new Intent(“android.intent.action.hsj”);
发送正常广播
this.sendBroadcast(in...]]></description><category></category></item><item><title><![CDATA[（六）Android基础系列之：Service]]></title><link>https://blog.youkuaiyun.com/androidzf/article/details/87860266</link><guid>https://blog.youkuaiyun.com/androidzf/article/details/87860266</guid><author>androidzf</author><pubDate>Thu, 21 Feb 2019 14:28:06 +0800</pubDate><description><![CDATA[服务：Android系统的后台服务组件，在后台长时间运行并且不提供用户界面的应用程序组件
服务的特点：

1.没有用户界面
2.不会轻易被Android系统终止
3.在系统资源恢复后Service也将自动恢复运行状态
4.可用于进程间通信

一、启动式服务
销毁服务时函数的调用：onDestroy()
多次销毁服务，不会多次调用onDestroy(),但也不会报错.
启动式服务的特点：

A:一旦...]]></description><category></category></item></channel></rss>