<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MengLee]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/iteye_13407</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; iteye_13407]]></copyright><item><title><![CDATA[Kotlin可见性修饰符]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/110362126</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/110362126</guid><author>iteye_13407</author><pubDate>Mon, 30 Nov 2020 05:10:52 +0800</pubDate><description><![CDATA[Java为我们提供了public、protected、private以及default四个可见性修饰符，用来指定类、方法及属性的可见性。Kotlin中的可见性修饰符与Java中的很类似，但也有不一样的地方，主要有以下几点：

Kotlin与Java的默认修饰符不同，Kotlin中是public，而Java中是default；
Kotlin中有一个独特的修饰符internal；
Kotlin可以在一个文件内单独声明方法及常量，同样支持可见性修饰符；
Java中除了内部类可以用private修饰以外，其他类都不]]></description><category></category></item><item><title><![CDATA[深入浅出Kotlin流程]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/109616758</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/109616758</guid><author>iteye_13407</author><pubDate>Mon, 16 Nov 2020 13:52:59 +0800</pubDate><description><![CDATA[Kotlin流程（Flow）是由JetBrains公司开发的一种全新的流处理API。JetBrains同时也是Kotlin这门语言的发明者。Kotlin流程是基于反应流规范（Reactive Stream specification）的一个实现，这个规范的目标是为异步流处理提供一个统一的标准。Kotlin流程构建于Kotlin协程的基础之上。关于Kotlin协程的介绍，请参阅我之前的博文《五分钟说清楚Kotlin协程和Android的那点事》。
通过使用Kotlin流程来处理数据流，我们只需要编写少量的代码]]></description><category></category></item><item><title><![CDATA[秒懂MVVM模式在Android中的应用]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/109419670</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/109419670</guid><author>iteye_13407</author><pubDate>Mon, 02 Nov 2020 10:15:05 +0800</pubDate><description><![CDATA[什么是MVVM模式
上世纪90年代，软件设计模式的超级大神Martin Fowler在MVC模式的基础上提出了MVP模式。经过若干年的发展，MVP模式又衍生出了MVVM模式。MVVM（Model-View-ViewModel）模式有助于将业务逻辑与UI完全分开，这为单元测试和后期代码维护提供了极大的便利。
MVC、MVP和MVVM之间的关系
搞清楚MVC、MVP和MVVM之间的关系，对于我们理解和应用MVVM模式有非常大的帮助。
MVC和MVP的关系
MVP模式是从经典的MVC模式演变而来的。因此，它们的基]]></description><category></category></item><item><title><![CDATA[如何安全地使用Kotlin协程]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/109272092</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/109272092</guid><author>iteye_13407</author><pubDate>Mon, 26 Oct 2020 10:39:26 +0800</pubDate><description><![CDATA[在《五分钟说清楚Kotlin协程和Android的那点事》一文中，我们对Kotlin协程可以解决什么问题进行了深入的分析。在本文中，我们将探讨如何如何安全地使用Kotlin协程。
跟踪协程
协程可以很好地解决两个常见的编程问题：

处理长时间运行的任务；
确保主线程不被阻塞。

协程通过添加suspend和resume操作来实现上述功能。当特定线程上的所有协程都挂起时，该线程就可以执行其他的任务。
但是，协程本身并不能跟踪正在的工作。拥有大量的协同程序（数百甚至数千个）并同时将其全部暂停是非常好的。而且，尽]]></description><category></category></item><item><title><![CDATA[五分钟说清楚Kotlin协程和Android的那点事]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/109007416</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/109007416</guid><author>iteye_13407</author><pubDate>Mon, 12 Oct 2020 04:22:45 +0800</pubDate><description><![CDATA[协程可以解决什么问题？
Kotlin协程引入了一种全新的并发编程模式。它可以被用在Android应用开发上，并达到简化异步代码的目的。虽然协程是从Kotlin 1.3才开始被引入的，但协程的概念自编程语言问世以来就已经存在了。第一种支持协程的编程语言是1967年推出的Simula。
在过去的几年中，协程变得越来越流行。现在，许多流行的编程语言，如Javascript、C#、Python、Ruby和Go等，都已经支持协程。
在Android平台上，协程可以很好地解决以下两个问题：

长时间运行的任务是需要很长]]></description><category></category></item><item><title><![CDATA[解密Android图形显示系统]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/108689360</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/108689360</guid><author>iteye_13407</author><pubDate>Mon, 21 Sep 2020 08:26:54 +0800</pubDate><description><![CDATA[作为Android应用的开发，要想确保用户拥有比较顺滑的体验，就一定要从原理上深入理解Android UI的渲染流程。只有真正理解了UI的渲染流程，才能在Android应用的开发过程中尽量避免影响UI性能的设计和实现，并且能够在UI性能的优化上有的放矢。
问题背景
人眼在接收到光信号后，会在视网膜上形成视觉影像。光信号的作用结束后，视觉影像并不会从视网膜上立即消失，这种现像被称为视觉暂留。正是由于视觉暂留的存在，使得我们可以通过播放独立帧的方法，形成大脑可以感知的动画。
每秒24帧的播放速度是电影的最佳选择]]></description><category></category></item><item><title><![CDATA[你所不知道的Kotlin数组与数据类（data class）]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/108427109</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/108427109</guid><author>iteye_13407</author><pubDate>Sun, 06 Sep 2020 01:30:14 +0800</pubDate><description><![CDATA[自从Google于2017年正式宣布Kotlin是Android开发的首选语言以来，越来越多的开发者开始使用Kotlin。而数据类（data class）是Kotlin的一大特色。 他们省去了手动编写大量模板代码的工作，例如equals()，hash()和toString()的覆写都不是必须的了。数据类会自动提供正确的覆写。但是，在实际应用中，也会出现例外的情况。让我们看下面这段代码：
data class NumArray(val name: String, val values: IntArray)

]]></description><category></category></item><item><title><![CDATA[一文详解AndroidX，再也不会傻傻分不清了]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/108192061</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/108192061</guid><author>iteye_13407</author><pubDate>Mon, 24 Aug 2020 06:03:08 +0800</pubDate><description><![CDATA[概览
AndroidX是Google用来组织安卓支持库（support libraries）的最新方法。在AndroidX出现之前，安卓开发框架提供了许多不同的支持库（support libraries）。遗憾的是很多支持库存在着兼容性的问题。总体而言，安卓支持库（support libraries）的设计是非常混乱的。
几乎每个Android项目都使用了如下一些常见的支持库：
com.android.support:appcompat-v7
com.android.support:recyclerview]]></description><category></category></item><item><title><![CDATA[从源码剖析Dagger2：Scope和Subcomponent]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/107909570</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/107909570</guid><author>iteye_13407</author><pubDate>Sat, 15 Aug 2020 13:52:33 +0800</pubDate><description><![CDATA[前言
我们接着上一篇博客《从源码剖析Dagger2：Component和Module入门》，继续从源代码级别来深入分析Dagger。本篇博客我们将重点介绍Scope和Subcomponent。
Scope
在任何编程语言中，对象都是定义在一定的作用域中的。一旦程序离开对应的作用域，该对象就要被销毁。在移动设备上，作用域的功能愈发显得重要。因为移动设备上的内存是有限的，只保留需要用到的对象，可以提高内存的使用效率，保证程序的运行流畅度。
MainViewModel只有在MainActivity中被用到，因此它]]></description><category></category></item><item><title><![CDATA[从源码剖析Dagger2：Component和Module入门]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/107830564</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/107830564</guid><author>iteye_13407</author><pubDate>Sun, 09 Aug 2020 07:08:29 +0800</pubDate><description><![CDATA[前言
Dagger
导航（Navigation ）指的是用户在应用中的前进和后退操作。导航很大程度上和业务逻辑相关。但是，在传统的Android应用开发中，导航需要开发者自己处理，对应的backstack也需要开发者自行维护，与业务相关的导航逻辑也要硬编码在Java代码中。而同时期的iOS应用开发框架早就提出了导航图的概念，并对导航进行了框架级别的抽象和支持。
为了解决类似问题，简化Android应用开发，Google在2018年推出了Jetpack。Jetpack是一套库、工具和指南，可帮助开发者更轻松地]]></description><category></category></item><item><title><![CDATA[[Android官方] Jetpack导航组件：实战与分析]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/107742253</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/107742253</guid><author>iteye_13407</author><pubDate>Mon, 03 Aug 2020 07:06:01 +0800</pubDate><description><![CDATA[前言
在Google 2018 I/O大会上，Android Jetpack横空出世。Jetpack是一套库、工具和指南，可帮助开发者更轻松地编写优质应用。这些组件可帮助开发者遵循最佳做法、让开发者摆脱编写样板代码的工作并简化复杂任务，以便开发者将精力集中放在所需的代码上。
Jetpack包含与Android平台API解除捆绑的androidx.*软件包库。这意味着，它可以提供向后兼容性，且比 Android平台的更新频率更高，以此确保开发者始终可以获取最新且最好的Jetpack组件版本。本文将着重介Jet]]></description><category></category></item><item><title><![CDATA[关于新浪微博开放平台API和Java客户端的吐槽]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/82100409</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/82100409</guid><author>iteye_13407</author><pubDate>Sun, 31 Jul 2011 20:45:41 +0800</pubDate><description><![CDATA[
周末用了下新浪微博开放平台API和官方发布的Java客户端，感觉可以用两个字形容：坑爹！
先说说遇到的几个极其弱智的bug吧：
1）分页
官方API文档里面对数据分页获取的说明是使用cursor和count这两个参数。其中，cursor指明了起始记录的位置，而count指明了当前每页的记录条数，请求第一页的时候cursor为-1。返回结果会给出next_cursor，指明下一页的起始位置...]]></description><category></category></item><item><title><![CDATA[Memcached Java客户端2.6.1发布]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/82087579</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/82087579</guid><author>iteye_13407</author><pubDate>Sat, 25 Jun 2011 18:11:24 +0800</pubDate><description><![CDATA[Memcached是被广泛使用的分布式缓存技术。不同的语言有不同的Memcached客户端程序，对于Java客户端来说，首推Memcached Java Client（http://github.com/gwhalin/Memcached-Java-Client
）。
这次，Memcached Java Client推出的2.6.1发布版是基于全新的performance分支，具有如下重大改进...]]></description><category></category></item><item><title><![CDATA[Linux 0.11内核编译和bochs上的实验环境的搭建]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/82086579</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/82086579</guid><author>iteye_13407</author><pubDate>Wed, 22 Jun 2011 14:38:07 +0800</pubDate><description><![CDATA[
    最近决定开始阅读Linux 0.11的源代码。    学习Linux操作系统的核心概念最好的方法莫过于阅读源代码。而Linux当前最新的源代码包已经有70MB左右，代码十分庞大，要想深入阅读十分困难。而Linux早期的0.11版本虽然有诸多局限，但是具备了现代操作系统的完备功能，一些基本概念沿用到了当前版本，并且代码只有300KB，非常适合阅读。    阅读源代码之前首先需要搭建实验环...]]></description><category></category></item><item><title><![CDATA[Memcached Java Client 推出全新分支啦]]></title><link>https://blog.youkuaiyun.com/iteye_13407/article/details/81822626</link><guid>https://blog.youkuaiyun.com/iteye_13407/article/details/81822626</guid><author>iteye_13407</author><pubDate>Mon, 01 Feb 2010 16:23:57 +0800</pubDate><description><![CDATA[这次，Memcached Java Client推出名为performance的全新分支，具有如下特点：

较之老版本，在性能上有300%左右的提升
兼容老版本，用户无须修改自己的源代码
支持多个memcached协议，包括text，udp和binary协议
支持自定义的对象序列化方法

这个分支由Schooner Information Technology贡献。
源代码在githu...]]></description><category></category></item></channel></rss>