<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[和小胖]]></title><description><![CDATA[越努力，越幸运。]]></description><link>https://blog.youkuaiyun.com/submit66</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; submit66]]></copyright><item><title><![CDATA[Jetpack 里面的 WorkManager]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/104206858</link><guid>https://blog.youkuaiyun.com/submit66/article/details/104206858</guid><author>submit66</author><pubDate>Fri, 07 Feb 2020 10:47:23 +0800</pubDate><description><![CDATA[前面已经说了很多 jetpack 中的架构组件，每一种的出现都是为了更好的解决现在存在的问题，或许这些问题也有解决方案，可是千人前面，也没有一个规范而言。同样 WorkManager 也是为了解决一些问题，在做开发的时候总避免不了做些后台任务，好比我们的业务埋点的上传，正常我们起定时器也可以实现，但是一旦用户退出了应用，我们的应用到了后台，一旦遇到系统内存吃紧的情况，应用进程就会被杀掉了，遇到这种...]]></description><category></category></item><item><title><![CDATA[Jetpack 里面的 Paging 和 Room]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/104206818</link><guid>https://blog.youkuaiyun.com/submit66/article/details/104206818</guid><author>submit66</author><pubDate>Fri, 07 Feb 2020 10:44:35 +0800</pubDate><description><![CDATA[paging 主要作用就是用来加载列表数据以及加载更多也就是分页加载的，展示还是人家 recyclerview 的事儿，只不过 paging 可以把这个过程变得更加的高效。想想咱们以前加载更多怎么做的，我们需要关注到 recyclerview 或者 listview 通过他们知道用户是不是滑动到页面底部了，是不是该加载更多了，并且还需要我们自己维护加载到第几页，下次该加载哪一页，而现在呢？这一切几...]]></description><category></category></item><item><title><![CDATA[LiveData 里面 Transformations 的 map 以及 switchMap]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/104206732</link><guid>https://blog.youkuaiyun.com/submit66/article/details/104206732</guid><author>submit66</author><pubDate>Fri, 07 Feb 2020 10:41:36 +0800</pubDate><description><![CDATA[假设在一个实现了 viewmodel 的类里面有如下代码：


private val queryLiveData = MutableLiveData&lt;String&gt;()    
    private val repoResult: LiveData&lt;RepoSearchResult&gt; = Transformations.map(queryLiveData) {
    ...]]></description><category></category></item><item><title><![CDATA[关于 Lifecycle，LiveData，ViewModel]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/104206638</link><guid>https://blog.youkuaiyun.com/submit66/article/details/104206638</guid><author>submit66</author><pubDate>Fri, 07 Feb 2020 10:33:09 +0800</pubDate><description><![CDATA[1、Android Jetpack 为何出现

服务端以及前端都有一些为人熟知的开发框架，比如服务端的以前的 Spring MVC 以及现在的 SpringBoot，还有前端的 Vue 等等，但是 Android 却很少出现一个广泛被大家使用的开发框架，如果非得说一个被大家用的最多的框架，那可能还就是 MVC 了，而 MVC 或许是最不是框架的框架了，因为即使用了它，代码依旧是臃肿不堪，耦合严重，...]]></description><category></category></item><item><title><![CDATA[EventBus源码解析，看这篇就够了]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/90268462</link><guid>https://blog.youkuaiyun.com/submit66/article/details/90268462</guid><author>submit66</author><pubDate>Thu, 16 May 2019 18:44:30 +0800</pubDate><description><![CDATA[先说下大家熟悉的EventBus

EventBus使用起来特别方便简单，如果一个类需要被通知，然后做一些事情，那么只需要在这个类里面调用EventBus.getDefault().register(this);方法进行注册，其次是使用@Subscribe注解方法，那么只需要在需要发送事件的地方，调用post或者postSticky方法（参数就是被注解函数的参数类型）就可以在这个被注解的方法这里收...]]></description><category></category></item><item><title><![CDATA[Android自定义view绘制顺序漫谈]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/80112287</link><guid>https://blog.youkuaiyun.com/submit66/article/details/80112287</guid><author>submit66</author><pubDate>Sat, 28 Apr 2018 12:02:11 +0800</pubDate><description><![CDATA[  今天就跟大家说说自定义view里面的绘制顺序问题，因为有时候避免不了在同一个地方绘制不同的view，那么就避免不了遮盖问题，这个时候就就必须考虑绘制顺序的问题了。 
  说到绘制顺序就不得不提onDraw和dispatchDraw这两个方法，下面我们一一来看这两个方法。


  onDraw
  
  之前我们自定义view一般都继承了View这个类，其实Android里面所有的控件也都继承自...]]></description><category></category></item><item><title><![CDATA[Android自定义view之clip裁切以及几何变换]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/80091589</link><guid>https://blog.youkuaiyun.com/submit66/article/details/80091589</guid><author>submit66</author><pubDate>Fri, 27 Apr 2018 16:25:13 +0800</pubDate><description><![CDATA[  今天我们来实践下Android部分的裁切就是clip打头的方法以及一些几何矩阵变换，所谓的裁切，顾名思义就是裁剪啊，就是把一个图形按照另外一个图形切成我们想要的样子，例如我们想把一张图片裁剪为圆形或者矩形或者五角星等等我们想要的形状。而矩阵变换是怎么回事呢？矩阵变换就是进行图形的平移啊、缩放啊、旋转啊，或者在某个方向上拉伸形状啊，这类的操作。


  裁切部分
  
  
  clipRect...]]></description><category></category></item><item><title><![CDATA[Android自定义view之自己真正意义上的自定义view]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/80016736</link><guid>https://blog.youkuaiyun.com/submit66/article/details/80016736</guid><author>submit66</author><pubDate>Mon, 23 Apr 2018 11:29:53 +0800</pubDate><description><![CDATA[      之前的自定义view文章也写了几篇了，但是也一直是局限于搞懂系统API如何使用等，还是没有真正的实践过，今天这篇文章算是自己真正意义上的第一次自定义view，就是做了一个常见的尺子效果的半成品（不要打我），毕竟有些东西还是不那么会，以后肯定会完善的，由于手势触摸部分还不是那么会，所以我就直接用了动画来做尺子的滑动效果了，请见谅。      下面先看效果图：上面的绿线所在位置，就是当前刻...]]></description><category></category></item><item><title><![CDATA[Android自定义view之PathEffect实践]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/79813886</link><guid>https://blog.youkuaiyun.com/submit66/article/details/79813886</guid><author>submit66</author><pubDate>Wed, 04 Apr 2018 14:40:24 +0800</pubDate><description><![CDATA[       今天我们来看看paint里面的PathEffect，还是先来看看PathEffect是什么：“PathEffect is the base class for objects in the Paint that affect the geometry of a drawing primitive before it is transformed by the canvas' matr...]]></description><category></category></item><item><title><![CDATA[Android自定义view之paint.setShader()方法]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/79754365</link><guid>https://blog.youkuaiyun.com/submit66/article/details/79754365</guid><author>submit66</author><pubDate>Fri, 30 Mar 2018 16:43:48 +0800</pubDate><description><![CDATA[      前面两篇我们讲了canvas的一些方法，今天我们来看下paint的setShader方法。      那么shader是什么呢？听听android怎么说：“Shader is the based class for objects that return horizontal spans of colors during drawing. A subclass of Shader is...]]></description><category></category></item><item><title><![CDATA[Android自定义view之基础canvas.drawPath方法]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/79746710</link><guid>https://blog.youkuaiyun.com/submit66/article/details/79746710</guid><author>submit66</author><pubDate>Thu, 29 Mar 2018 20:24:40 +0800</pubDate><description><![CDATA[       之前一篇我们主要了解实践了canvas的drawXXX方法，都是绘制一些很规矩的图形，例如圆形、矩形、直线、画点、画椭圆、绘制圆角矩形、绘制扇形、绘制弧线这些，大家也肯定发现了这些都是规规矩矩图形，那么如果要画一条折线，画一个三角形之类的自定义图形，该怎么办呢？这时候就改path出场了，对于canvas就是drawPath了。       那么path是什么呢？听听Android怎么...]]></description><category></category></item><item><title><![CDATA[Android自定义view之基础canvas.drawXXX方法]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/79710505</link><guid>https://blog.youkuaiyun.com/submit66/article/details/79710505</guid><author>submit66</author><pubDate>Tue, 27 Mar 2018 15:25:26 +0800</pubDate><description><![CDATA[        做Android不知不觉也有些年头了，但是对于自定义view却没有真正的好好研究或者实践过，可能是好用的库太多，自己就不想去想着自己去实现一些效果，不过别人的终究是别人的，毕竟“纸上得来终觉浅，绝知此事要躬行”，所以最近就花了些时间从最基础的开始实践，以此博客做一些记录。        说起自定义view大家肯定首先想到的就是canvas和paint，canvas大家一般都直译为“...]]></description><category></category></item><item><title><![CDATA[python中的推导式]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/79680684</link><guid>https://blog.youkuaiyun.com/submit66/article/details/79680684</guid><author>submit66</author><pubDate>Sat, 24 Mar 2018 20:27:49 +0800</pubDate><description><![CDATA[      python这门语言给我的感觉之一就是高效，往往能够用几行代码就实现别的语言要写好多行代码才能够实现的功能，那么推导式就是我见过的很简便的一种方式，且在别的语言中没有见到过（也主要是因为自己学习的语言没有辣么多，哈哈）。      python中常用的推导式有列表推导式以及字典推导式，接下来我们一一来看推导式神奇的地方。      首先我们来看列表推导式，好比我们现在有一个这样子的需求...]]></description><category></category></item><item><title><![CDATA[python中高阶函数之filter(),reduce(),map()的使用]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/79652980</link><guid>https://blog.youkuaiyun.com/submit66/article/details/79652980</guid><author>submit66</author><pubDate>Thu, 22 Mar 2018 14:29:30 +0800</pubDate><description><![CDATA[        学习python大家都知道，python有形形色色的库能给我们的开发工作带来很大的方便，同样也有一些函数如果用起来也能够大大的提高我们的效率，这次我们就来认识一下python的几个高阶函数。filter(function_or_none, sequence)函数 ：顾名思义就是起到一个过滤作用，它的作用就是会对你传入其中的数组的元素按照特定的函数处理后再返回一个数组，这个处理的函数...]]></description><category></category></item><item><title><![CDATA[依赖库版本不一致导致的问题的解决思路]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/79600558</link><guid>https://blog.youkuaiyun.com/submit66/article/details/79600558</guid><author>submit66</author><pubDate>Sun, 18 Mar 2018 15:16:55 +0800</pubDate><description><![CDATA[       我们在写代码时候总会借鉴一些第三方库，有的是别人写的比较优秀的，有的则是google官方提供的，但是我们在依赖之后编译运行时候总会出各种各样的问题，究竟是怎么回事呢？      前两天自己遇到了这么一个问题，编译时候报错如下：“Error:Execution failed for task ':app:preDebugBuild'.&amp;gt; Android dependency 'c...]]></description><category></category></item><item><title><![CDATA[自己实现floatactionbutton展开折叠功能]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/78887906</link><guid>https://blog.youkuaiyun.com/submit66/article/details/78887906</guid><author>submit66</author><pubDate>Sun, 24 Dec 2017 22:14:54 +0800</pubDate><description><![CDATA[之前总会见到那种功能，好比屏幕右下角有个按钮，点击之后向上弹出一个菜单按钮，然后点击菜单按钮会实现自己的业务同时这些菜单会收起到左下角。github上面有个关于这个功能实现的库，但是最近自己想要实现这样的功能，其实实现这个功能最主要的就是动画的应用了。
         我们看到那种效果都是点击一个按钮之后，别的菜单按钮从其底部依次弹出，但是又不是绝对的一个接着一个的弹出，而是有一定的时差的，然]]></description><category></category></item><item><title><![CDATA[用python学习抓取借鉴取豆瓣电影top250]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/78631342</link><guid>https://blog.youkuaiyun.com/submit66/article/details/78631342</guid><author>submit66</author><pubDate>Sat, 25 Nov 2017 14:40:13 +0800</pubDate><description><![CDATA[今天给大家带来的是用最近学习的python抓取豆瓣上面的top250电影，具体是将电影的title、电影描述(就是导演呀之类的是谁)、电影封面图片、电影的星级、电影评价数目以及电影的一句影评抓取下来，然后再控制台有格式的打印出来。
          已经明确了要做的事情，接下来就考虑怎么来做这件事情了，第一步是打开豆瓣电影top250 这个页面，第二步骤是分析网页源代码，找到我们需要爬取的信息]]></description><category></category></item><item><title><![CDATA[android 8.0 应用启动崩溃？]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/78569120</link><guid>https://blog.youkuaiyun.com/submit66/article/details/78569120</guid><author>submit66</author><pubDate>Sat, 18 Nov 2017 16:16:57 +0800</pubDate><description><![CDATA[android8.0正式版已经出了几个月了，当然国内手机如果要升级到8.0可能还需要些时日。但是我们有模拟器呀，所以就想让自己的应用在8.0的系统上面跑一下，前提是得将应用的targetSdkVersion改为27了，否则的话一些8.0的要求不会对app起作用。
          然后就下载了一个android 8.0 系统的模拟器，像往常一样子开始运行了，但是已启动就crash了,oh my]]></description><category></category></item><item><title><![CDATA[python之折线图绘制体验]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/78452800</link><guid>https://blog.youkuaiyun.com/submit66/article/details/78452800</guid><author>submit66</author><pubDate>Sun, 05 Nov 2017 21:46:08 +0800</pubDate><description><![CDATA[上一篇“python之初体验”中我们主要是实现了抓取csdn本人人博客列表页面的每一篇博客的阅读数量和标题功能，后来就像我们是有了数量和title，可是我还想知道我的每篇阅读数量和日期之间的关系就好了，以及每篇博客的阅读趋势，说到关系和趋势可能再多的语言都显得苍白无力了，所以图表可能是最好的一种方式，今天要实现的功能就是在python中通过绘制折线图来表名日期和阅读数量的关系。]]></description><category></category></item><item><title><![CDATA[android studio升级到3.0之后的一些配置变化]]></title><link>https://blog.youkuaiyun.com/submit66/article/details/78386715</link><guid>https://blog.youkuaiyun.com/submit66/article/details/78386715</guid><author>submit66</author><pubDate>Sun, 29 Oct 2017 17:47:40 +0800</pubDate><description><![CDATA[上周android 3.0稳定版终于面世，自己也是更新了一波。但是这次的版本算是一个大版本了，直接从2.3.3到了3.0。所以跟之前升级相比也有很多配置方面的变化，现在记录如下。
        1、升级完成之后首先是会提示升级gradle插件到3.0.0，而gradle版本升级到4.1，如下图所示：

 直接点击update就好了，其实这里修改的是两个地方，一个是project目录下的gr]]></description><category></category></item></channel></rss>