<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[binaryshao]]></title><description><![CDATA[学习成长，永不止步 >>>]]></description><link>https://blog.csdn.net/recordGrowth</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; recordGrowth]]></copyright><item><title><![CDATA[开源项目【WanAndroid_Flutter】玩安卓 Flutter  版]]></title><link>https://blog.csdn.net/recordGrowth/article/details/99717248</link><guid>https://blog.csdn.net/recordGrowth/article/details/99717248</guid><author>recordGrowth</author><pubDate>Mon, 19 Aug 2019 11:18:45 +0800</pubDate><description><![CDATA[WanAndroid_Flutter
项目地址
玩安卓客户端 Flutter 版，可以查看各种开发相关的知识，适配了 Android 和 iOS，内容比较完整
封装了加载中、空数据、错误、到达最底部等不同状态的视图，在错误时可以点击重新加载，具有较好的用户体验
如果觉得项目还不错，点个 star 鼓励下作者吧 o(╥﹏╥)o
也欢迎大家发起 issue 或提交 PR
业务内容
几乎对接了玩安卓的所...]]></description><category></category></item><item><title><![CDATA[开源项目【WanAndroid_RN】玩安卓 React Native 版]]></title><link>https://blog.csdn.net/recordGrowth/article/details/97874213</link><guid>https://blog.csdn.net/recordGrowth/article/details/97874213</guid><author>recordGrowth</author><pubDate>Wed, 31 Jul 2019 06:50:53 +0800</pubDate><description><![CDATA[WanAndroid_RN
玩安卓客户端 React-Native 版，可以查看各种开发相关的知识，适配了 Android 和 iOS，内容比较完整
封装了加载中、空数据、错误、到达最底部等不同状态的视图，在错误时可以点击重新加载，具有较好的用户体验
如果觉得项目还不错，点个 star 鼓励下作者吧 o(╥﹏╥)o
也欢迎大家发起 issue 或提交 PR
业务内容
几乎对接了玩安卓的所有 API...]]></description><category></category></item><item><title><![CDATA[MVVM 架构解析及 Jetpack 架构组件的使用]]></title><link>https://blog.csdn.net/recordGrowth/article/details/90377318</link><guid>https://blog.csdn.net/recordGrowth/article/details/90377318</guid><author>recordGrowth</author><pubDate>Tue, 21 May 2019 21:40:57 +0800</pubDate><description><![CDATA[谈到 MVVM 架构，不得不祭出官方的架构图，如下所示：

在实践中，根据对架构组件 paging 的使用和理解，笔者又将架构图扩展成下面这样：
.png
有背景颜色的3处是使用 paging  组件需要多用到的
MVVM 和 MVP 的区别
MVP 中 V 层和 P 层互相持有对方的引用，在V 层调用 P 层逻辑后，P 层回调V 层的相应方法更新 UI。
而在 MVVM 中，上层只依赖直接下层，...]]></description><category></category></item><item><title><![CDATA[开源项目【WanAndroid-MVVM】玩安卓 Kotlin  版 (MVVM 架构)]]></title><link>https://blog.csdn.net/recordGrowth/article/details/89676975</link><guid>https://blog.csdn.net/recordGrowth/article/details/89676975</guid><author>recordGrowth</author><pubDate>Mon, 29 Apr 2019 16:08:03 +0800</pubDate><description><![CDATA[WanAndroid-MVVM
玩 Android 客户端，采用 kotlin 语言，Material Design 风格，根据 MVVM 架构使用 Jetpack 架构组件搭建了整套框架
持续更新ing~
后续有时间再根据本项目分析 MVVM 架构，敬请关注~
Jetpack 使用情况

DataBinding
Navigation
LiveData
ViewModel
Paging
Room ...]]></description><category></category></item><item><title><![CDATA[算法的复杂度分析到底是什么?]]></title><link>https://blog.csdn.net/recordGrowth/article/details/86139407</link><guid>https://blog.csdn.net/recordGrowth/article/details/86139407</guid><author>recordGrowth</author><pubDate>Tue, 19 Mar 2019 17:55:21 +0800</pubDate><description><![CDATA[数组
它可以说是最基础、最简单的数据结构了
数组用一块连续的内存空间，来存储相同类型的一组数据
最大的特点就是支持随机访问，时间复杂度为 O(1)
但插入、删除操作也因此变得比较低效，平均情况时间复杂度为 O(n)
在平时的业务开发中，我们可以直接使用编程语言提供的容器类，
但是，如果是特别底层的开发，直接使用数组可能会更合适，因为容器类无法存储基本类型，对包装类的装箱拆箱会有一定的性能损耗
为什...]]></description><category></category></item><item><title><![CDATA[使用 AIDL 进行 IPC 的流程解析和其他要点]]></title><link>https://blog.csdn.net/recordGrowth/article/details/86542080</link><guid>https://blog.csdn.net/recordGrowth/article/details/86542080</guid><author>recordGrowth</author><pubDate>Tue, 12 Feb 2019 23:59:10 +0800</pubDate><description><![CDATA[AIDL 文件并不是必需的，只是有了这个文件，系统会帮助我们自动生成 IRemoteService.java 这个类
AIDL 的包结构在服务端和客户端要保持一致，否则反序列化将会失败！
IRemoteService
Stub
抽象内部类，继承了 Binder，实现了 IRemoteService
static abstract

Proxy
static

内部类代理，实现了 IRemoteSe...]]></description><category></category></item><item><title><![CDATA[序列化接口 Serializable 和 Parcelable]]></title><link>https://blog.csdn.net/recordGrowth/article/details/86520500</link><guid>https://blog.csdn.net/recordGrowth/article/details/86520500</guid><author>recordGrowth</author><pubDate>Thu, 17 Jan 2019 15:17:04 +0800</pubDate><description><![CDATA[Serializable
反射？
serialVersionUID
确保反序列化成功的关键
 ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;

 * It is also strongly advised that explicit
 * serialVersionUID declarations use the &amp;amp;amp;amp;lt;...]]></description><category></category></item><item><title><![CDATA[Gradle 在 Android 中的应用]]></title><link>https://blog.csdn.net/recordGrowth/article/details/85701450</link><guid>https://blog.csdn.net/recordGrowth/article/details/85701450</guid><author>recordGrowth</author><pubDate>Sat, 05 Jan 2019 23:14:58 +0800</pubDate><description><![CDATA[Gradle 是什么
Gradle 是 Android 项目的默认构建系统，它以领域特定语言 (DSL) —— Groovy 语言描述和操作构建逻辑。
Groovy 是一种适用于 Java 虚拟机 (JVM) 的动态语言，它的语法和Java非常相似，并且完全兼容Java。
Android APK 的构建流程如下所示，Gradle 就是帮助我们自动实现这一流程的工具。

需要注意的是，Gradle ...]]></description><category></category></item><item><title><![CDATA[Flask 个人网站重构上线]]></title><link>https://blog.csdn.net/recordGrowth/article/details/85265926</link><guid>https://blog.csdn.net/recordGrowth/article/details/85265926</guid><author>recordGrowth</author><pubDate>Wed, 26 Dec 2018 17:33:52 +0800</pubDate><description><![CDATA[之前在服务器上部署了几个 Python 项目，个人网站也已经运行一年多了
最近抽空整理了几个项目，重新写了网站项目，又部署上线了
网站地址点这个
说实话，是个相对单调的网站：自我介绍 + 一个博客项目
值此重构上线之际，记录点心得
系统架构
nginx
反向代理 、静态文件、负载均衡
当有n个项目运行在同一服务器的不同端口时，通过配置 nginx，能以下列两种方式进入这些不同的项目：

以不同的域...]]></description><category></category></item><item><title><![CDATA[Fragment返回栈的手动管理]]></title><link>https://blog.csdn.net/recordGrowth/article/details/83349653</link><guid>https://blog.csdn.net/recordGrowth/article/details/83349653</guid><author>recordGrowth</author><pubDate>Thu, 25 Oct 2018 17:47:13 +0800</pubDate><description><![CDATA[如何回到上一个Fragment
项目开中需要经常在不同的Fragment之间跳转，随时可能从一个Fragment页面跳到另一个Fragment页面。
这些页面的切换还是比较简单的，根据业务需求，相应地调用FragmentTransaction的show()、add()、hide()、replace()等方法，再提交事务就可以了。
当页面不是很多时，这种方法足以应付了。
但“返回上一页”这种需求随着...]]></description><category></category></item><item><title><![CDATA[RoundingMode——Java中小数的舍位]]></title><link>https://blog.csdn.net/recordGrowth/article/details/82799214</link><guid>https://blog.csdn.net/recordGrowth/article/details/82799214</guid><author>recordGrowth</author><pubDate>Fri, 21 Sep 2018 16:36:02 +0800</pubDate><description><![CDATA[RoundingMode 在 Java 中是一个枚举类，用来指定小数的舍位方式，共有8种
对于这些舍位方式，之前用过却理解地很模糊
最近一研究，又顿悟了！
那一瞬间，我知道该把这些理解封印在这篇博客里了
先来看一下常用的两种舍位写法，直接上代码
两种舍位写法
DecimalFormat
DecimalFormat myformat = new DecimalFormat();
myformat.s...]]></description><category></category></item><item><title><![CDATA[HTTP / HTTPS 的一些相关理解]]></title><link>https://blog.csdn.net/recordGrowth/article/details/82688976</link><guid>https://blog.csdn.net/recordGrowth/article/details/82688976</guid><author>recordGrowth</author><pubDate>Wed, 19 Sep 2018 16:41:14 +0800</pubDate><description><![CDATA[7层模型



应用层

HTTP、FTP、SMTP、POP3、DNS、DHCP 等




表示层

加密解密、转换翻译、压缩解压缩等




会话层

SSL（安全套接字层协议）、TLS（传输层安全协议）、RPC（远程过程调用协议）




传输层

端口到端口、端口（16位二进制，0到1023被系统占用）、TCP (传输控制协议)、UDP（用户数据报协议）




网络层

主机到主机、IP...]]></description><category></category></item><item><title><![CDATA[Python项目模块命名问题]]></title><link>https://blog.csdn.net/recordGrowth/article/details/81485221</link><guid>https://blog.csdn.net/recordGrowth/article/details/81485221</guid><author>recordGrowth</author><pubDate>Tue, 07 Aug 2018 17:25:15 +0800</pubDate><description><![CDATA[Python项目中模块名不要和别的库名相同，以免想导入别的库时却导入了自己项目中的模块，表面上还看不出问题所在！！！]]></description><category></category></item><item><title><![CDATA[常用查找算法总结]]></title><link>https://blog.csdn.net/recordGrowth/article/details/80857143</link><guid>https://blog.csdn.net/recordGrowth/article/details/80857143</guid><author>recordGrowth</author><pubDate>Mon, 06 Aug 2018 15:44:56 +0800</pubDate><description><![CDATA[静态查找和动态查找

这是针对查找表而言的
动态表指查找表中有删除和插入操作的表




无序查找和有序查找

无序查找：被查找数列有序无序均可
有序查找：被查找数列必须为有序数列




平均查找长度（Average Search Length，ASL）



顺序查找

适用于存储结构为顺序存储或链接存储、数据量大不的线性表
时间复杂度：O(n)




二分查找

也称为折半查找，这是一种有...]]></description><category></category></item><item><title><![CDATA[常用排序算法总结]]></title><link>https://blog.csdn.net/recordGrowth/article/details/80696501</link><guid>https://blog.csdn.net/recordGrowth/article/details/80696501</guid><author>recordGrowth</author><pubDate>Tue, 03 Jul 2018 06:25:55 +0800</pubDate><description><![CDATA[排序算法的稳定性

当待排序记录的关键字均不相同时，排序结果是惟一的，否则排序结果不唯一
在待排序记录中，若存在多个关键字相同的记录，若排序前后这些具有相同关键字的记录之间的相对次序保持不变，则该排序方法是稳定的；否则就是不稳定的




算法的就地性

在运行过程中临时占用的存储空间随算法的不同而异，有的算法只需要占用少量的临时工作单元，而且不随问题规模的大小而改变，这是节省存储的算法




...]]></description><category></category></item><item><title><![CDATA[Java集合框架(JCF)归纳总结]]></title><link>https://blog.csdn.net/recordGrowth/article/details/80471881</link><guid>https://blog.csdn.net/recordGrowth/article/details/80471881</guid><author>recordGrowth</author><pubDate>Thu, 21 Jun 2018 07:08:44 +0800</pubDate><description><![CDATA[HashSet

底层用`HashMap`实现
允许`null`值
不重复原理：HashMap.keySet()，`HashSet`的值用作`HashMap`的键




TreeSet

TreeMap排序，插入时比较次序，红黑树

为了实现排序，须满足以下1条：
TreeSet中的元素须实现Comparable接口
或者
构造TreeSet时须传入实现Comparable接口的类的对象



...]]></description><category></category></item><item><title><![CDATA[“数据结构”的个人理解]]></title><link>https://blog.csdn.net/recordGrowth/article/details/80471864</link><guid>https://blog.csdn.net/recordGrowth/article/details/80471864</guid><author>recordGrowth</author><pubDate>Tue, 12 Jun 2018 18:10:03 +0800</pubDate><description><![CDATA[数据结构的实现可以分为3个层次： 
1. 抽象出某种结构中数据的组织方式和该结构操作数据的方式， 
    可使用图形表示，但不涉及具体如何实现


具体到某种编程语言中（比如java），根据某种数据结构抽象出接口， 
以展现出该结构操作数据的方式，比如java集合框架中的Collection、LIST等接口 
此时的抽象可以再将某种数据结构抽象出几种不同特性的结构，比如SET和LIST接口
编写...]]></description><category></category></item><item><title><![CDATA[从源码看ThreadLocal的底层结构]]></title><link>https://blog.csdn.net/recordGrowth/article/details/79945433</link><guid>https://blog.csdn.net/recordGrowth/article/details/79945433</guid><author>recordGrowth</author><pubDate>Sun, 27 May 2018 19:34:01 +0800</pubDate><description><![CDATA[引言

set()

get()

总结]]></description><category></category></item><item><title><![CDATA[MySQL——查]]></title><link>https://blog.csdn.net/recordGrowth/article/details/79433811</link><guid>https://blog.csdn.net/recordGrowth/article/details/79433811</guid><author>recordGrowth</author><pubDate>Sat, 14 Apr 2018 18:18:17 +0800</pubDate><description><![CDATA[子句总结





组合查询

组合查询是指利用UNION，将多条SELECT查询语句组合在一起，并将结果作为单个结果集返回。

它可以简化复杂的WHERE子句、多表查询工作，有以下要求或特性：


每个查询必须包含相同的列、表达式或聚集函数（各个列的列出次序可以不同）
返回结果为每个查询的WHERE子句过滤后的或集，并且和单条SELECT语句一样，去除了重复的行
ORDER BY排序子句只能放在...]]></description><category></category></item><item><title><![CDATA[MySQL——增改删]]></title><link>https://blog.csdn.net/recordGrowth/article/details/79433816</link><guid>https://blog.csdn.net/recordGrowth/article/details/79433816</guid><author>recordGrowth</author><pubDate>Sat, 14 Apr 2018 18:17:32 +0800</pubDate><description><![CDATA[MySQL——增


可以省略表定义中允许NULL值（无值或空值）或给出默认值的列，其他列不能省略，否则插入将失败并报错。




INSERT [LOW_PRIORITY] INTO table_name(c1, c2, c3, c4, c5)
VALUES('a', 'b', 'c', 'd', 'e'),('1', '2', '3', '4', '5');

LOW_PRIORITY 表示降...]]></description><category></category></item></channel></rss>