<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[EugeneYoung的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/EugeneYoung</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; EugeneYoung]]></copyright><item><title><![CDATA[mvvm架构的利与弊]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/94553509</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/94553509</guid><author>EugeneYoung</author><pubDate>Wed, 03 Jul 2019 11:48:14 +0800</pubDate><description><![CDATA[引言

  mvvm架构是继mvc架构后衍生出的一个新的架构思想，在平时工作过程中很多同学都是把mvvm和dataBinding混为一团，只要被问到什么是mvvm就回答：“mvvm就是dataBinding”。其实这种理解是错的。本文就针对mvvm阐述下个人的理解，有不足支出多多谅解。

一、什么是mvvm

   mvvm即 model-viewModel-view 的缩写，vie...]]></description><category></category></item><item><title><![CDATA[浅谈架构的基础MVC]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/92766215</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/92766215</guid><author>EugeneYoung</author><pubDate>Tue, 18 Jun 2019 11:07:02 +0800</pubDate><description><![CDATA[前言：

在实际项目开发过程中，为了降低代码的耦合度，我们会选用一个架构去达到这个目的，但是我们再使用这些架构的过程中一定要明白我们所使用的架构的核心思想，本文主要针对我们最基础的mvc架构做下讨论，后来出现的mvp，mvvm都是在mvc的基础上演变过来的；如果有不严谨的地方，请多包涵

一 ：首先来看mvc：

   mvc的分层是 ：Model-View-Control

  ...]]></description><category></category></item><item><title><![CDATA[Intent 与 IntentFilter 匹配规则]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/89714833</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/89714833</guid><author>EugeneYoung</author><pubDate>Tue, 30 Apr 2019 19:27:05 +0800</pubDate><description><![CDATA[本片博客原文路径：https://blog.youkuaiyun.com/u011240877/article/details/71305797

读完本文你将了解：

Intent
Intent 携带的信息
Intent 的类型
隐式 Intent
Intent 过滤器 IntentFilter
IntentFilter 的匹配规则
action 的匹配规则
category 的匹配规则
data 的匹配规...]]></description><category></category></item><item><title><![CDATA[Gradle for Android 系列：初识 Gradle 文件]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/89714804</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/89714804</guid><author>EugeneYoung</author><pubDate>Tue, 30 Apr 2019 19:24:02 +0800</pubDate><description><![CDATA[本片文章出处https://blog.youkuaiyun.com/u011240877/article/details/53798052





读完本文你将了解到：

settinggradle
主目录下的 buildgradle
模块下的 buildgradle
备注
注意 applicationId 和 package name 其实不是一个东西
总结


我们用 Android Studi...]]></description><category></category></item><item><title><![CDATA[Gloading-master 加载等待框神器]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/89681102</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/89681102</guid><author>EugeneYoung</author><pubDate>Mon, 29 Apr 2019 21:09:24 +0800</pubDate><description><![CDATA[平时我们在app的开发中肯定或多或少都会使用到加载等待框，来提升用户体验。相信我们绝大多数开发者在开发过程中都是使用在需要加载等待框的布局文件中加一个带动画效果的view，然后通过代码逻辑控制view的显示和隐藏，但是这样造成的后果就是view和我们的代码耦合度非常高，并且也会造成很多冗余的代码。可能在使用加载框的过程中会有一部分人通过构建utils工具类来进行view的统一管理，然后让需要使用的...]]></description><category></category></item><item><title><![CDATA[vlayout原理剖析]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/89633159</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/89633159</guid><author>EugeneYoung</author><pubDate>Mon, 29 Apr 2019 11:40:35 +0800</pubDate><description><![CDATA[vlayout是阿里的一个开源ui框架，是一个实现多样的item的列表的神器，相信大多数开发者对于vlayout内部的实现原理不太了解。本篇文章就和大家一起探讨下valyout的内部原理：

 用过vlayout的同学都知道他的主要几个关键类，首先是各种layoutHelper的实现类，VirtualLayoutManager，DelegateAdapter

阅读过RecycleView源码...]]></description><category></category></item><item><title><![CDATA[6.0以上权限运行时框架Easypermissions使用详解]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/89576478</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/89576478</guid><author>EugeneYoung</author><pubDate>Fri, 26 Apr 2019 21:05:27 +0800</pubDate><description><![CDATA[目录

Android6.0以上的需要进行动态申请权限，由于原生的请求方法使用过于复杂，所以后来涌现出大量的权限检查框架，有基于apt技术的，有基于rxjava技术的，有基于ioc技术的，这里我给大家推荐的是google官方推荐的easypermissions，我自己在项目中也多次使用过，感觉很方便，符合各种应用场景，此库是谷歌推荐的权限申请库,放心大胆的使用吧



导入easypermis...]]></description><category></category></item><item><title><![CDATA[关于PathMeasure分析path测量的问题]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/89431569</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/89431569</guid><author>EugeneYoung</author><pubDate>Sun, 21 Apr 2019 13:10:22 +0800</pubDate><description><![CDATA[说起PathMeasure这Api可能对于大多数刚入门Android不久的开发者来说有点陌生，但是PathMeasure在我们的view中也是有着很重要的地位，他对于贝塞尔曲线(path)的测量有至关重要的作用，下面我们就来讲解下PathMeasure常用的api以及它在path中的作用：

 PathMeasure类中持有Path对象的引用，在利用pathMesure对path进行相...]]></description><category></category></item><item><title><![CDATA[Android中的事件分发剖析]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/89424780</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/89424780</guid><author>EugeneYoung</author><pubDate>Sat, 20 Apr 2019 22:58:04 +0800</pubDate><description><![CDATA[事件分发在Android开发中无处不在，只要是控件都离不开事件的分发，事件就是控件的灵魂，本文剖析下的ACTIONDOWN事件分发原理；

从用户点击屏幕那一刻开始，在java层首先接触到事件的是Activity我们看下Activity中接收事件并分发的代码


    public boolean dispatchTouchEvent(MotionEvent ev) {
        if (...]]></description><category></category></item><item><title><![CDATA[Andorid开发中的paint常用属性解析]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/89416097</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/89416097</guid><author>EugeneYoung</author><pubDate>Sat, 20 Apr 2019 13:21:39 +0800</pubDate><description><![CDATA[paint在Android自定义控件中有着举足轻重的地位，基本上我们所有的自绘控件都离不开它，原生的各种炫酷的效果，比如刮刮乐，滤镜等等都运用到了paint，下面我们就针对paint的常用api做个解析；

PaintmPaint = new Paint(); //初始化
 mPaint.setColor(Color.RED);// 设置颜色
  mPaint.setARGB(25...]]></description><category></category></item><item><title><![CDATA[CardView全面解析]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/89415834</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/89415834</guid><author>EugeneYoung</author><pubDate>Sat, 20 Apr 2019 13:04:44 +0800</pubDate><description><![CDATA[CardView相信大家都并不陌生，但是我们开发过程中大多数只关心如何使用是远远不够的，需要我们去了解google开发人员设计这个控件的原因；

通过原码我们不难发现CardView是继承至FrameLayout，位于 android.support.v7.widget包下；

通过静态块初始化了成员变量CardViewImpl（是一个接口）


static {
    if (VERSION....]]></description><category></category></item><item><title><![CDATA[Android屏幕适配方案详解]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/89386976</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/89386976</guid><author>EugeneYoung</author><pubDate>Thu, 18 Apr 2019 20:49:29 +0800</pubDate><description><![CDATA[Android手机的百花齐放的态势下，种类繁多的手机屏幕，也是给开发者带来了很大的工作量，屏幕适配是众多开发者老生长谈的话题，我曾经也是被屏幕适配工作弄的头大，所以今天把自己在工作中的使用的一些方法做个小小的总结;

 什么是屏幕是适配？说白了就是屏幕分辨率的适配，其核心就在于两个字“缩放”

 有哪些地方需要做适配呢？

 1、布局适配

 比如使用 wrap_co...]]></description><category></category></item><item><title><![CDATA[Android各版本沉浸式状态栏的适配]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/89381160</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/89381160</guid><author>EugeneYoung</author><pubDate>Thu, 18 Apr 2019 16:29:32 +0800</pubDate><description><![CDATA[Android的沉浸式状态栏是在4.4以后推出的，以5.0为界限设置状态栏的方式就有所变化，下面就针对5.0前后沉浸式状态栏的实现方式做个总结：

 1、在5.0以前状态栏的设置方式:

  先获取window对象

    Window window = getWindow();

 添加FLAG_TRANSLUCENT_STATUS的标志（为窗口...]]></description><category></category></item><item><title><![CDATA[Android开发中apk打包优化的几个关键步骤]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/88974449</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/88974449</guid><author>EugeneYoung</author><pubDate>Tue, 02 Apr 2019 16:18:04 +0800</pubDate><description><![CDATA[实际项目开发过程到当中随着开发周期的延伸和版本迭代，会产生很多冗余的代码和资源文件，这就直接导致apk的体积变大，下面就针对实际开发过程中apk体积的优化总结如下几个关键步骤：

1、通过SVG矢量图来解决套图的问题：

  SVG矢量图很适合做一些简单的小图标的适配,在切图的时候只需要给定一套就可以，无需每个分辨率下给定一个套图

 SVG的使用临界版本是Andro...]]></description><category></category></item><item><title><![CDATA[Android开发中的Service的两种启动方式的坑]]></title><link>https://blog.youkuaiyun.com/EugeneYoung/article/details/81460367</link><guid>https://blog.youkuaiyun.com/EugeneYoung/article/details/81460367</guid><author>EugeneYoung</author><pubDate>Mon, 06 Aug 2018 20:52:10 +0800</pubDate><description><![CDATA[和大家熟悉的Activity组件一样，service也是Android应用开程序发中常用的组件，它和acitivy一样也有自己的生命周期，不同的是service是运行在后台的，没有同用户直接交互的界面。

 service的是有两种启动方式：

第一种是通过startservice方式来启动，通过此方式来启动的service会一直运行在后台，除非调用者主动停止服务或者是系统异常杀死。 此过程对应的...]]></description><category></category></item></channel></rss>