<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kimi985566的博客]]></title><description><![CDATA[YESTERDAY YOU SAID TOMORROW.]]></description><link>https://blog.youkuaiyun.com/kimi985566</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kimi985566]]></copyright><item><title><![CDATA[Appium在Dialog/DialogFragment关闭后找不到布局元素的解决方法]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/88225669</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/88225669</guid><author>kimi985566</author><pubDate>Wed, 06 Mar 2019 11:23:10 +0800</pubDate><description><![CDATA[Appium在Dialog/DialogFragment关闭后找不到布局元素的解决方法
Appium在进行自动化测试时，当Dialog/DialogFragment关闭后找不到布局元素。
该问题属于一个Known Issue(点击这里)，主要出现在Android 6.0以上。
解决问题主要有两种方法：

手写方法使程序先进入后台再显示：public void minimize() {
    dr...]]></description><category></category></item><item><title><![CDATA[Android中的矢量动画]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/86773318</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/86773318</guid><author>kimi985566</author><pubDate>Thu, 07 Feb 2019 22:26:19 +0800</pubDate><description><![CDATA[Android中的矢量动画
在Android中，对于矢量动画我们可以使用的是AnimatedVectorDrawableCompat，其能够兼容更多的版本（Android 4.0 (API level 14) 及以上）。
对于API 24及更高版本，此类会自动委托给AnimatedVectorDrawable。 对于API 24之下的版本，此类相当是带有ObjectAnimator和Animato...]]></description><category></category></item><item><title><![CDATA[React Native 列表的总结]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/85088889</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/85088889</guid><author>kimi985566</author><pubDate>Wed, 19 Dec 2018 09:38:31 +0800</pubDate><description><![CDATA[React Native 列表的总结
FlatList和SectionList都是React Native中高性能的列表组件。他们有着共同的特点：

完全跨平台。
行组件显示或隐藏时可配置回调事件。
支持单独的头部组件。
支持单独的尾部组件。
支持自定义行间分隔线。
支持下拉刷新。
支持上拉加载。

实质两者都是基于VirtualizedList组件的封装，因此需要注意：

当某行滑出渲染区域之外...]]></description><category></category></item><item><title><![CDATA[Kotlin中的@JvmOverloads]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/85069278</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/85069278</guid><author>kimi985566</author><pubDate>Tue, 18 Dec 2018 16:45:24 +0800</pubDate><description><![CDATA[
Normally, if you write a Kotlin function with default parameter values, it will be visible in Java only as a full signature, with all parameters present. If you wish to expose multiple overloads to J...]]></description><category></category></item><item><title><![CDATA[React Native与Android原生之间的通讯]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/84990165</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/84990165</guid><author>kimi985566</author><pubDate>Thu, 13 Dec 2018 16:02:42 +0800</pubDate><description><![CDATA[React Native与Android原生之间的通讯
在React Native中可以通过在java层自定义@ReactMethod方式给JavaScript调用，这样在JavaScript层就可以直接调用Android中的Native方法。但是很多场景下需要我们去回调获取结果。这时候就需要实现RN与原生之间的通讯。
对于RN与Android原生之间的通讯，主要有以下几种方式帮助我们来实现：...]]></description><category></category></item><item><title><![CDATA[MobX的一些总结]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/84988189</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/84988189</guid><author>kimi985566</author><pubDate>Thu, 13 Dec 2018 14:35:45 +0800</pubDate><description><![CDATA[MobX
MobX通过透明的函数响应式编程，使得其成为一种简单、可扩展的状态管理工具。使用MobX可以将应用编程响应式的编程方式。
其背后的原理是：任何源自应用状态的东⻄都应该自动地获得。
React和MobX是一对强力组合。React通过提高机制把应用状态转换为可渲染组件树并对其进行渲染；MobX提供机制来存储和更新应用状态供React使用。
1. 概念

MobX主要区分了概念：

Stat...]]></description><category></category></item><item><title><![CDATA[React Native接入现有Android原生工程并实现简单的RN与Android通信]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/84950954</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/84950954</guid><author>kimi985566</author><pubDate>Tue, 11 Dec 2018 10:25:54 +0800</pubDate><description><![CDATA[对于一个新的工程，可以直接使用React Native进行开发，但是对于现有的项目如果全面改造将会是一项巨大的工程。好在RN提供了方式为我们接入现有工程。同时，对于Android中的一些组件，RN不一定有已经继承的实现方式，我们可以通过实现ReactMethod的方式实现RN使用Android原生组件。
1. 接入React Native
1. RN开发环境准备及Android原生项目
这里不再赘...]]></description><category></category></item><item><title><![CDATA[Kotlin的let、with、run、apply、also]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/84862001</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/84862001</guid><author>kimi985566</author><pubDate>Thu, 06 Dec 2018 17:36:51 +0800</pubDate><description><![CDATA[作用域函数
Kotlin中提供了一系列的作用域函数，这些函数写起来很简单，但是提供的功能很强大。他们是带接受者的Lambda。不过对于Lambda有一点需要注意：在lambda表达式，只支持单抽象方法模型，也就是说设计的接口里面只有一个抽象的方法，才符合lambda表达式的规则，多个回调方法不支持。
let
let扩展函数的实际上是一个作用域函数，当你需要去定义一个变量在一个特定的作用域范围内，l...]]></description><category></category></item><item><title><![CDATA[Git的一些总结]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/81001534</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/81001534</guid><author>kimi985566</author><pubDate>Wed, 11 Jul 2018 15:33:41 +0800</pubDate><description><![CDATA[Git


  版本控制是一种记录一个或若干文件内容变化，以便将来查阅特定版本修订情况的系统。 而对于Git这样的分布式版本控制系统 ，客户端并不只提取最新版本的文件快照，而是把代码仓库完整地镜像下来。这么一来，任何一处协同工作用的服务器发生故障，事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作，实际上都是一次对代码仓库的完整备份 。




1. 初次运行 Git 前的配置

G...]]></description><category></category></item><item><title><![CDATA[排序算法的实现（Java）]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/80166928</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/80166928</guid><author>kimi985566</author><pubDate>Wed, 02 May 2018 15:14:42 +0800</pubDate><description><![CDATA[1. 冒泡排序



/**
 * Title: 交换排序中的冒泡排序 ，一般情形下指的是优化后的冒泡排序，最多进行n-1次比较，依赖于初始序列
 * Description:因为越大的元素会经由交换慢慢&quot;浮&quot;到数列的顶端(最后位置)，最大的数最后才确定下来，所以称为冒泡排序
 * 时间复杂度：最好情形O(n)，平均情形O(n^2)，最差情形O(n^2)
 * 空间复杂度：O(1)
 * 稳 定 ...]]></description><category></category></item><item><title><![CDATA[Android Apk打包的流程]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/80064578</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/80064578</guid><author>kimi985566</author><pubDate>Tue, 24 Apr 2018 14:53:31 +0800</pubDate><description><![CDATA[
  APK是Android Package的缩写，即Android安装包(apk)。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。APK文件基于 zip 文件格式，它与 jar 文件的构造方式相似。




1. APK包中有些什么




  文件名称
  文件类型
  文件作用



  classes.dex
  文件
  java源文件经过编译和转换后生...]]></description><category></category></item><item><title><![CDATA[Https]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/79991636</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/79991636</guid><author>kimi985566</author><pubDate>Wed, 18 Apr 2018 16:26:52 +0800</pubDate><description><![CDATA[
  HTTPS（Hypertext Transfer Protocol Secure）是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信，但利用TLS来加密数据包。HTTPS开发的主要目的，是提供对网站服务器的身份认证，保护交换数据的隐私与完整性。简单讲是HTTP的安全版，即HTTP下加入SSL层，HTTPS的安全基础是SSL，因此加密的详细内容就需要SSL。




1...]]></description><category></category></item><item><title><![CDATA[Android TabLayout 的一些小问题]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/79928920</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/79928920</guid><author>kimi985566</author><pubDate>Fri, 13 Apr 2018 14:56:34 +0800</pubDate><description><![CDATA[在做项目时，遇到一个问题，有时候在tabLayout.setupWithViewPager(viewPager)前设置标题到后来可能就变成空白的，不显示Tab的title，解决了很久都不行。

结果研究，有两种方法来解决问题：


在tabLayout.setupWithViewPager(viewPager)手动重新添加标题，这里不再赘述；
重写adapter中的getPageTitle


a...]]></description><category></category></item><item><title><![CDATA[Android ViewStub, Gone & Invisible]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/79923280</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/79923280</guid><author>kimi985566</author><pubDate>Fri, 13 Apr 2018 09:18:39 +0800</pubDate><description><![CDATA[1. invisible

view设置为invisible时，view在layout布局文件中会占用位置，但是view为不可见，该view还是会创建对象，会被初始化，会占用资源。



2. gone

view设置gone时，view在layout布局文件中不占用位置，但是该view还是会创建对象，会被初始化，会占用内存等资源。



3. ViewStub

ViewStub是一个轻量级的V...]]></description><category></category></item><item><title><![CDATA[Android Handler]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/79868277</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/79868277</guid><author>kimi985566</author><pubDate>Mon, 09 Apr 2018 16:19:25 +0800</pubDate><description><![CDATA[1. 概念

handler通过发送和处理Message和Runnable对象来关联向对应线程的MessageQueue。


可以让对应的Message和Runnable在未来的某个时间点进行相应的操作；
让自己想要处理的耗时操作放在子线程，让更新UI的操作放在主线程。


2. 作用

当我们需要在子线程处理耗时的操作（例如访问网络，数据库的操作），而当耗时的操作完成后，需要更新UI，这就需要...]]></description><category></category></item><item><title><![CDATA[Android 责任链模式]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/79851137</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/79851137</guid><author>kimi985566</author><pubDate>Sun, 08 Apr 2018 14:10:29 +0800</pubDate><description><![CDATA[1. 概念

是一个请求有多个对象来处理，这些对象是一条链，但具体由哪个对象来处理，根据条件判断来确定，如果不能处理会传递给链中的下一个对象，直到有对象处理它为止。



2. 使用场景


有多个对象可以处理同一个请求，具体哪个对象处理该请求待运行时刻再确定；
在不明确指定接受者的情况下，向多个对象中的一个提交一个请求；
可动态指定一组对象处理请求，客户端可以动态创建责任链来处理请求。




...]]></description><category></category></item><item><title><![CDATA[神经网络的直观解释]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/79848497</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/79848497</guid><author>kimi985566</author><pubDate>Sun, 08 Apr 2018 10:50:15 +0800</pubDate><description><![CDATA[转载自:  
http://www.hackcv.com/index.php/archives/104/?hmsr=toutiao.io&amp;amp;utm_medium=toutiao.io&amp;amp;utm_source=toutiao.io


  卷积神经网络（ConvNets 或者 CNNs）属于神经网络的范畴，已经在诸如图像识别和分类的领域证明了其高效的能力。卷积神经网络可以成功识别人脸、物...]]></description><category></category></item><item><title><![CDATA[Android RecyclerView和ListView的异同]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/79839692</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/79839692</guid><author>kimi985566</author><pubDate>Sat, 07 Apr 2018 11:03:34 +0800</pubDate><description><![CDATA[1. ViewHolder

ViewHolder是用来保存视图引用的类，无论是ListView亦或是RecyclerView。


在ListView中，ViewHolder需要自己来定义，且这只是一种推荐的使用方式，不使用当然也可以，这不是必须的。只不过不使用ViewHolder的话，ListView每次getView的时候都会调用findViewById(int)，这将导致ListView性...]]></description><category></category></item><item><title><![CDATA[Android 观察者模式]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/79839425</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/79839425</guid><author>kimi985566</author><pubDate>Sat, 07 Apr 2018 10:35:14 +0800</pubDate><description><![CDATA[1. 概念

定义对象之间一对多的依赖关系，使得每当一个对象状态发生改变时，其相关依赖对象皆得到通知并被自动更新。

2. 使用场景


一个抽象模型有两个方面，其中一个方面依赖于另一个方面；
一个对象的改变将导致一个或多个其他对象也发送改变；
需要在系统中创建一个触发链。


3. UML




抽象主题（Subject）：它把所有观察者对象的引用保存到一个聚集里，每个主题都可以有任何数量的观...]]></description><category></category></item><item><title><![CDATA[Android 模板模式]]></title><link>https://blog.youkuaiyun.com/kimi985566/article/details/79838814</link><guid>https://blog.youkuaiyun.com/kimi985566/article/details/79838814</guid><author>kimi985566</author><pubDate>Sat, 07 Apr 2018 08:59:45 +0800</pubDate><description><![CDATA[1. 概念

模板方法是通过定义一个算法骨架，而将算法中的步骤延迟到子类，这样子类就可以复写这些步骤来实现特定的算法。

2. 使用场景


多个子类有公有的方法，并且逻辑基本相同时；
重要、复杂的算法，可以把核心算法设计为模板方法；
重构时，模板模式是一个经常使用的模式。


抽象模板&amp;amp;具体模板：定义的数量和类型/模板的方法



3. 在Android中的实际应用


activity...]]></description><category></category></item></channel></rss>