<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[自由奔跑的风]]></title><description><![CDATA[学习。]]></description><link>https://blog.youkuaiyun.com/vicwudi</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; vicwudi]]></copyright><item><title><![CDATA[python学习05——元组和集合]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/125862696</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/125862696</guid><author>vicwudi</author><pubDate>Mon, 18 Jul 2022 23:41:44 +0800</pubDate><description><![CDATA[python学习05——元组和集合
]]></description><category></category></item><item><title><![CDATA[python学习04——字典]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/125862689</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/125862689</guid><author>vicwudi</author><pubDate>Mon, 18 Jul 2022 23:40:56 +0800</pubDate><description><![CDATA[python学习04——字典
]]></description><category></category></item><item><title><![CDATA[python学习03——列表]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/125862674</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/125862674</guid><author>vicwudi</author><pubDate>Mon, 18 Jul 2022 23:39:11 +0800</pubDate><description><![CDATA[python学习03——列表
]]></description><category></category></item><item><title><![CDATA[Python学习02——分支语句和循环语句]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/125862670</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/125862670</guid><author>vicwudi</author><pubDate>Mon, 18 Jul 2022 23:38:37 +0800</pubDate><description><![CDATA[Python学习02——分支语句和循环语句]]></description><category></category></item><item><title><![CDATA[python学习01——基础、数据类型、运算符]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/125862643</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/125862643</guid><author>vicwudi</author><pubDate>Mon, 18 Jul 2022 23:37:39 +0800</pubDate><description><![CDATA[python学习01——基础、数据类型、运算符]]></description><category></category></item><item><title><![CDATA[我理解的MVVM架构及实战Demo]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/100574303</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/100574303</guid><author>vicwudi</author><pubDate>Fri, 06 Sep 2019 10:20:09 +0800</pubDate><description><![CDATA[我理解的MVVM架构及实战Demo
简介
MVVM架构模式，即Model-View-ViewModel三个层级，MVVM模式出来的时间已经很长了，网上关于MVVM模式的解析也有很多，我这里只说一下我自己的理解，基本上是和MVP模式相比较的一个差异。
先说一下MVVM中，我理解的各层的作用：


Model： 数据处理层，用来存储数据和处理数据，这一层的作用和MVP中的Model层类似；


Vie...]]></description><category></category></item><item><title><![CDATA[Google官方Android MVP架构Demo之单元测试]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/100191540</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/100191540</guid><author>vicwudi</author><pubDate>Mon, 02 Sep 2019 09:21:24 +0800</pubDate><description><![CDATA[Google官方Android MVP架构Demo之单元测试
Google在2016年推出了官方的Android MVP架构Demo，与此Demo相关的分析在网上有很多，但是关于单元测试的分析不是很多，而单元测试是我认为每一个应用开发中不可或缺的一部分，它不仅可以检测我们代码的健壮性，还能约束我们的开发习惯，让我们依循规范进行开发。
Android环境下的单元测试，与传统意义上的单元测试存在差异，...]]></description><category></category></item><item><title><![CDATA[Android性能工具——Systrace使用]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/100191529</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/100191529</guid><author>vicwudi</author><pubDate>Mon, 02 Sep 2019 09:20:42 +0800</pubDate><description><![CDATA[一、屏幕刷新机制
基础概念

在一个典型的显示系统中，一般包括CPU、GPU、display三个部分， CPU负责计算数据，把计算好数据交给GPU,GPU会对图形数据进行渲染，渲染好后放到buffer里存起来，然后display（有的文章也叫屏幕或者显示器）负责把buffer里的数据呈现到屏幕上。
显示过程，简单的说就是CPU/GPU准备好数据，存入buffer，display每隔一段时间去buf...]]></description><category></category></item><item><title><![CDATA[Android中AOP的实际运用]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/100191490</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/100191490</guid><author>vicwudi</author><pubDate>Mon, 02 Sep 2019 09:19:19 +0800</pubDate><description><![CDATA[Android中AOP的实际运用
一、AOP简介
AOP即面向切面编程，区别于OOP（面向对象编程）的功能模块化，AOP主要侧重于解决某一类的问题。曾经我也不知道面向切面到底是切的谁，直到我看到下面这个图才理解。

从上图可以看出，面向切面编程是在不影响原业务功能的情况下，将我们所需要的功能插入进原业务代码中。
通俗的讲，比如在我们的android商城应用中，点击按钮跳转到功能界面时，很多地方都判...]]></description><category></category></item><item><title><![CDATA[Kotlin语法学习之Lambda]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/89846682</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/89846682</guid><author>vicwudi</author><pubDate>Sun, 05 May 2019 15:27:01 +0800</pubDate><description><![CDATA[1.Lambda介绍
Lambda表达式可以减少代码的复杂度，使代码看上去更加清爽，另外，Kotlin中有许多高阶函数，这些函数基本都是由Lambda表达式实现的，因此，学习Lambda表达式是十分有必要的。
Kotlin中的Lambda表达式本质上底层是匿名函数实现的。
2.Lambda语法
2.1 表达式特点

Lambda总是被{}包裹；
若有参数，则在-&gt;左侧；
若有函数体，则在-&...]]></description><category></category></item><item><title><![CDATA[设计模式——状态模式]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/89711007</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/89711007</guid><author>vicwudi</author><pubDate>Tue, 30 Apr 2019 15:49:45 +0800</pubDate><description><![CDATA[设计模式——状态模式
在状态模式中，类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。
优点： 减少复杂的逻辑判断，减少了条件分支语句。
缺点： 代码量增加。
使用场景：
假设现在我要根据电梯的状态去开关电梯门，那么有哪些状态呢？

电梯门完全关闭状态，此时可以手动打开；
电梯门开启中，此时不能手动关闭也不能手动打开；
电梯门关闭中，此时不能手动关闭（无意义），但是可以手动打开；
电...]]></description><category></category></item><item><title><![CDATA[设计模式——工厂模式和抽象工厂模式]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/89710965</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/89710965</guid><author>vicwudi</author><pubDate>Tue, 30 Apr 2019 15:47:58 +0800</pubDate><description><![CDATA[#Java设计模式——工厂模式
工厂模式和抽象工厂模式都属于创建型模式。

创建型模式
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式，而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

简单工厂模式
在简单工厂模式中，我们在创建对象时不会对客户端暴露创建逻辑，并且是通过使用一个共同的接口来指向新创建的对象。
作用：


1、减少和复...]]></description><category></category></item><item><title><![CDATA[Kotlin实战练习——自定义圆形图片三种实现方式]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/89710835</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/89710835</guid><author>vicwudi</author><pubDate>Tue, 30 Apr 2019 15:42:41 +0800</pubDate><description><![CDATA[Kotlin实战练习——自定义圆形图片三种实现方式
前言

如今Kotlin越来越重要，本人也开始了Kotlin的学习。为了检测学习效果，加深学习印象，同时回顾一下以前的一些知识点，决定从写一个自定义圆形图片开始入手。圆形图片写法有很多，这里介绍最主要的三种方式，如果能掌握这三种方式，那么其他的自定义控件应该也都很好实现了。

1. XferMode方式
知识点
1. 关于XferMode
Xfe...]]></description><category></category></item><item><title><![CDATA[Android触摸滑动全解（四）——MotionEvent详解]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/82084965</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/82084965</guid><author>vicwudi</author><pubDate>Sun, 26 Aug 2018 21:42:09 +0800</pubDate><description><![CDATA[Android触摸滑动全解（四）——MotionEvent详解

在分析View和ViewGroup的触摸事件时，我们已经接触到了MotionEvent类，它是用来存储我们当前手指移动的状态的，比如按下、移动、抬起等。其实这个类非常强大，还有许多其他功能，现在我们就来详细分析一下。



一、事件坐标

前面在《View坐标体系详解》中已经介绍过，View有许多获取它的位置的方法，比如getX()...]]></description><category></category></item><item><title><![CDATA[Android触摸滑动全解（三）——View坐标体系详解]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/82084950</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/82084950</guid><author>vicwudi</author><pubDate>Sun, 26 Aug 2018 21:41:07 +0800</pubDate><description><![CDATA[Android触摸滑动全解（三）——View坐标体系详解

当我们触摸屏幕上的View时，有时候想要获取此时View的一些属性状态，比如说在屏幕的坐标，或者相对于父布局的坐标，或者View的宽高等，但是由于View有很多属性，我们很苦恼不知道应该去选择哪个方法去调用，今天，我们就梳理一下View的坐标体系。



一、屏幕区域划分

Android系统的屏幕区域划分如图： 




获取上述区域宽...]]></description><category></category></item><item><title><![CDATA[Android触摸滑动全解（二）——ViewGroup中触摸事件详解]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/82084934</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/82084934</guid><author>vicwudi</author><pubDate>Sun, 26 Aug 2018 21:40:19 +0800</pubDate><description><![CDATA[Android触摸滑动全解（二）——ViewGroup中触摸事件详解



VieGroup触摸事件概述

ViewGroup继承自View，很多方法都和View中一样，不同的是它重载了dispatchTouchEvent()方法，并且它多了一个自身的方法onInterceptTouchEvent()。



ViewGroup触摸事件调用原则


dispatchTouchEvent()中，会对...]]></description><category></category></item><item><title><![CDATA[Android触摸滑动全解（一）——View中触摸事件详解]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/82084923</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/82084923</guid><author>vicwudi</author><pubDate>Sun, 26 Aug 2018 21:39:31 +0800</pubDate><description><![CDATA[Android触摸滑动全解（一）——View中触摸事件详解



View触摸事件概述

View中的触摸事件可以分为两个部分。


dispatchTouchEvent()和onTouchEvent()这两个方法，其中，dispatchTouchEvent()是用来传递触摸事件（返回true表示消费此次触摸事件，返回false表示不消费此次触摸事件）；onTouchEvent用来处理触摸事件。
...]]></description><category></category></item><item><title><![CDATA[Android中系统触摸相关辅助类总结]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/82051725</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/82051725</guid><author>vicwudi</author><pubDate>Sat, 25 Aug 2018 15:11:31 +0800</pubDate><description><![CDATA[Android中系统触摸相关辅助类总结

Android中的触摸事件，我们可以通过重写View的OnTouchEvent()等事件，通过事件类型MotionEvent来进行我们想要实现的逻辑操作，有时候一些简单的需求很容易实现，但是有时候，一些很困难的需求，我们需要编写大量的代码来实现。好在Android官方就给我们提供了很丰富的触摸相关的辅助类，今天，我就把我知道的分享给大家。



1、Ges...]]></description><category></category></item><item><title><![CDATA[WebView与JavaScript的交互总结]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/81990473</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/81990473</guid><author>vicwudi</author><pubDate>Fri, 24 Aug 2018 01:00:17 +0800</pubDate><description><![CDATA[WebView与JavaScript的交互总结



1、交互总结

WebView与JS之间的交互总结可以概括为下面两种：


Android客户端去调用JS代码
JS端去调用Android原生代码


它们之间互相调用的桥梁是WebView。



2、交互前准备



2.1 Android客户端代码

Activity：

@Override
protected void onCreate...]]></description><category></category></item><item><title><![CDATA[WebView全面解析]]></title><link>https://blog.youkuaiyun.com/vicwudi/article/details/81990467</link><guid>https://blog.youkuaiyun.com/vicwudi/article/details/81990467</guid><author>vicwudi</author><pubDate>Fri, 24 Aug 2018 00:58:40 +0800</pubDate><description><![CDATA[WebView全面解析



简介

WebView是android中一个非常重要的控件，它的作用是用来展示一个web页面。它使用的内核是webkit引擎，4.4版本之后，直接使用Chrome作为内置网页浏览器。



作用


显示和渲染网页；
可与页面JavaScript交互，实现混合开发。




使用介绍

使用WebView之前，不要忘记在清单文件中声明访问网络权限：

&amp;amp;lt;uses...]]></description><category></category></item></channel></rss>