<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[吧啦吧啦F]]></title><description><![CDATA[人的一生，要有所坚持！我渴望的成功，是希望能够依靠自己的努力去改变些什么！]]></description><link>https://blog.csdn.net/Rflyee</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Rflyee]]></copyright><item><title><![CDATA[Android Studio检测不到新版本问题解决]]></title><link>https://blog.csdn.net/Rflyee/article/details/81538116</link><guid>https://blog.csdn.net/Rflyee/article/details/81538116</guid><author>Rflyee</author><pubDate>Thu, 09 Aug 2018 15:48:18 +0800</pubDate><description><![CDATA[Android Studio无法检测新版本问题解决

大家都知道Android Studio可以直接在“Menu - Check for Updates…”自动检测并更新版本，还可以在弹出的检查框中点击”Updates”dialog设置更新的配置，如图：



问题：

但是今天发现个奇怪的现象：我目前的as版本为3.0.1，但是官方稳定版已经更新到3.1.4，点击Check for Update...]]></description><category></category></item><item><title><![CDATA[App UI自动化测试之Mac环境安装appium]]></title><link>https://blog.csdn.net/Rflyee/article/details/81036545</link><guid>https://blog.csdn.net/Rflyee/article/details/81036545</guid><author>Rflyee</author><pubDate>Fri, 13 Jul 2018 19:14:19 +0800</pubDate><description><![CDATA[依赖环境：


java


✗ java -version
java version &amp;quot;1.8.0_111&amp;quot;
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)


python




$python --ve...]]></description><category></category></item><item><title><![CDATA[python3解决pip升级到10.0.1之后会遇到的错误：module 'pip' has no attribute 'main']]></title><link>https://blog.csdn.net/Rflyee/article/details/81005432</link><guid>https://blog.csdn.net/Rflyee/article/details/81005432</guid><author>Rflyee</author><pubDate>Wed, 11 Jul 2018 19:01:04 +0800</pubDate><description><![CDATA[错误：module ‘pip’ has no attribute ‘main’

pip升级到10.0.1之后可能会出现这个错误。



环境：
pip version : 10.0.1
python version : 3.6.4
mac os : 10.12.6 

错误出现路径还原：



升级pip
$python -m pip install pip --upgrade
Requirem...]]></description><category></category></item><item><title><![CDATA[git merge和git rebase区别笔记]]></title><link>https://blog.csdn.net/Rflyee/article/details/79362381</link><guid>https://blog.csdn.net/Rflyee/article/details/79362381</guid><author>Rflyee</author><pubDate>Sat, 24 Feb 2018 15:38:07 +0800</pubDate><description><![CDATA[初始场景： 
基于正常的开发分支修改几个小bug，然后在合并到开发分支上。 




git merge



git checkout feature
git merge hotfix
或者
git merge hotfix feature

合并后的节点会按照commit时间顺序排列。 
git merge操作会在当前分支上生成一个新的commit节点，并保留所有的操作历史节点，对问题的追溯很...]]></description><category></category></item><item><title><![CDATA[Widows下TortoiseGit登录密码错误]]></title><link>https://blog.csdn.net/Rflyee/article/details/79356320</link><guid>https://blog.csdn.net/Rflyee/article/details/79356320</guid><author>Rflyee</author><pubDate>Fri, 23 Feb 2018 19:00:00 +0800</pubDate><description><![CDATA[整理之前的一个笔记，记录。TortoiseGit 2.3.0.0TortoiseGit登录密码错误，如下图，输入git的密码无法成功登录。原因是：TortoiseGit的登录密码和git是不一样的，TortoiseGit使用的是putty，因此需要使用git生成的秘钥进行转换。（1）生成ppk文件打开“puttygen.exe”（TortoiseGit\bin）  -- Load -- 选择git...]]></description><category></category></item><item><title><![CDATA[Android开发常用的gradle配置总结]]></title><link>https://blog.csdn.net/Rflyee/article/details/75235183</link><guid>https://blog.csdn.net/Rflyee/article/details/75235183</guid><author>Rflyee</author><pubDate>Mon, 17 Jul 2017 15:25:41 +0800</pubDate><description><![CDATA[如官网所说，Android Studio使用Gradle来自动化执行和管理构建流程，允许各种灵活配置参数。每个构建配置均可自行定义一组代码和资源，同时对所有应用版本共有的部分加以重复利用。
Gradle独立于Android Studio运作，也就是说完全可以在没有as的环境下单独使用gradle构建运行安卓应用。
一些构建运行的命令可参考官网。
关于安卓开发常用的gradle配置如下：（注：]]></description><category></category></item><item><title><![CDATA[解决Can not perform this action after onSaveInstanceState异常总结]]></title><link>https://blog.csdn.net/Rflyee/article/details/74723891</link><guid>https://blog.csdn.net/Rflyee/article/details/74723891</guid><author>Rflyee</author><pubDate>Fri, 07 Jul 2017 15:59:21 +0800</pubDate><description><![CDATA[上篇博客从源码层面分析了Can not perform this action after onSaveInstanceState异常产生的原因及流程，
接下来分析下该崩溃的设计原因以及如何避。
安卓为什么要抛出该异常呢？
都知道系统在内存吃紧时会按规则优先kill掉部分非前台activity，为了保证用户体验，系统在kill掉某个activity之前会先调用onSaveInstanceSt]]></description><category></category></item><item><title><![CDATA[Can not perform this action after onSaveInstanceState异常源码分析]]></title><link>https://blog.csdn.net/Rflyee/article/details/74719551</link><guid>https://blog.csdn.net/Rflyee/article/details/74719551</guid><author>Rflyee</author><pubDate>Fri, 07 Jul 2017 15:58:32 +0800</pubDate><description><![CDATA[Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
在使用fragment、dialogFragment等控件时可能会遇到以上异常。原因正如抛出的异常所说一样：不能在onSaveInstanceState之后执行该操作。]]></description><category></category></item><item><title><![CDATA[Gradle version 2.2 is required错误解决]]></title><link>https://blog.csdn.net/Rflyee/article/details/51067793</link><guid>https://blog.csdn.net/Rflyee/article/details/51067793</guid><author>Rflyee</author><pubDate>Tue, 05 Apr 2016 20:29:32 +0800</pubDate><description><![CDATA[A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'com.android.application']
   > Gradle version 2.2 is required. Current version is 2.10.]]></description><category></category></item><item><title><![CDATA[java final方法与java内联函数]]></title><link>https://blog.csdn.net/Rflyee/article/details/51067301</link><guid>https://blog.csdn.net/Rflyee/article/details/51067301</guid><author>Rflyee</author><pubDate>Tue, 05 Apr 2016 19:28:16 +0800</pubDate><description><![CDATA[《java编程思想》中讲到final方法时提到，使用final方法原因有两个， 
一、锁定方法。防止任何继承类修改、覆盖 
二、效率。在java早期实现中，如果将一个方法指明为final，就是同意编译器将针对该方法的调用都转化为内嵌调用。…..大概就是，如果是内嵌调用，虚拟机不再执,在最新java设计中,,,,,
如果是内嵌调用，虚拟机不再执行正常的方法调用（参数压栈，跳转到方法处执行，再调回，处理栈参数，处理]]></description><category></category></item><item><title><![CDATA[activity中onSaveInstanceState方法调用时机详解]]></title><link>https://blog.csdn.net/Rflyee/article/details/50949683</link><guid>https://blog.csdn.net/Rflyee/article/details/50949683</guid><author>Rflyee</author><pubDate>Mon, 21 Mar 2016 20:31:02 +0800</pubDate><description><![CDATA[onSaveInstanceState什么时候调用？onSaveInstanceState()的调用时机:

在activity的一个生命周期中，onSaveInstanceState()并非一定调用。


正如官网对该方法的解释所说：“This method is called before an activity may
 be killed so that when it com]]></description><category></category></item><item><title><![CDATA[edittext常用总结；界面中有多个edittext，如何让默认第二个获取焦点]]></title><link>https://blog.csdn.net/Rflyee/article/details/50810025</link><guid>https://blog.csdn.net/Rflyee/article/details/50810025</guid><author>Rflyee</author><pubDate>Sat, 05 Mar 2016 18:32:31 +0800</pubDate><description><![CDATA[一个界面中多个edittext，默认第二个获取焦点（第三个、第四个同理）
（1）默认第一个获取键盘焦点，因此需要将第一个edittext设置为focusableInTouchMode = false。这样第一个就不会默认获取焦点

android:focusableInTouchMode="false"

（2）触摸第一个edittext时，再将其focusableInTouchMode]]></description><category></category></item><item><title><![CDATA[Activity之间使用intent传递大量数据带来问题总结]]></title><link>https://blog.csdn.net/Rflyee/article/details/47441405</link><guid>https://blog.csdn.net/Rflyee/article/details/47441405</guid><author>Rflyee</author><pubDate>Wed, 12 Aug 2015 11:40:34 +0800</pubDate><description><![CDATA[转载请注明：大飞 http://blog.csdn.net/rflyee/article/details/47441405Activity之间使用Parcel传递大量数据产生的问题。Activity之间通过intent传递大量数据，导致新Activity无法启动。Activity之间数据传递方式总结参考 这 里。比较常用的是直接利用intent传递，比如使用bundle，如下：Intent int...]]></description><category></category></item><item><title><![CDATA[Activity之间传递数据的方式及常见问题总结]]></title><link>https://blog.csdn.net/Rflyee/article/details/47431633</link><guid>https://blog.csdn.net/Rflyee/article/details/47431633</guid><author>Rflyee</author><pubDate>Wed, 12 Aug 2015 11:39:04 +0800</pubDate><description><![CDATA[转载请注明：大飞 http://blog.csdn.net/rflyee/article/details/47431633Activity之间传递数据一般通过以下几种方式实现：1. 通过intent传递数据2. 通过Application3. 使用单例4. 静态成员变量。（可以考虑 WeakReferences）5. 持久化（sqlite、share preference、file等）一、通过in...]]></description><category></category></item><item><title><![CDATA[动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言]]></title><link>https://blog.csdn.net/Rflyee/article/details/44736133</link><guid>https://blog.csdn.net/Rflyee/article/details/44736133</guid><author>Rflyee</author><pubDate>Mon, 30 Mar 2015 00:06:37 +0800</pubDate><description><![CDATA[关于如题这几个概念，大部分人应该比较熟悉，但是我昏了好久，所以写下来加深印象。


1. 动态语言
又叫动态编程语言，是指程序在运行时可以改变其结构：新的函数可以被引进，已有的函数可以被删除等在结构上的变化。比如众所周知的ECMAScript(JavaScript)便是一个动态语言。除此之外如Ruby、Python等也都属于动态语言，而C、C++等语言则不属于动态语言。
而其实我们平时说]]></description><category></category></item><item><title><![CDATA[Android性能优化之LINT使用总结]]></title><link>https://blog.csdn.net/Rflyee/article/details/43164589</link><guid>https://blog.csdn.net/Rflyee/article/details/43164589</guid><author>Rflyee</author><pubDate>Mon, 26 Jan 2015 22:21:35 +0800</pubDate><description><![CDATA[实话啊，lint工具对于android应用开发中内存优化、性能优化、代码规范等有灰常灰常大的帮助作用。每个模块开发完成后，lint一下，有意想不到的收获。




介绍：
静态代码分析工具，无需运行，无需测试用例

扫描整个项目，分析以下潜在的问题，分类指出问题描述、问题位置，并提供合理的修改建议（这是才是关键啊，不管有木有大问题，看看这些问题及描述，也能过把瘾啊）：


=]]></description><category></category></item><item><title><![CDATA[华为部分真机调试无法显示log问题解决]]></title><link>https://blog.csdn.net/Rflyee/article/details/40714161</link><guid>https://blog.csdn.net/Rflyee/article/details/40714161</guid><author>Rflyee</author><pubDate>Sun, 02 Nov 2014 20:50:09 +0800</pubDate><description><![CDATA[真机测试时，部分华为手机无法获取全部的log信息。或者说无法获取Error以下级别的log信息。比如P7
这是因为部分华为机出厂默认log设置为关闭状态，因此只能获取Error以上级别的log信息。蛋疼
解决方案：
1. 拨号界面输入：*#*#2846579#*#*   进入测试菜单选择界面。（一般手机都有，但不是全部，比如联想部分机型等）
2. ProjectMenu – 后台设置 –]]></description><category></category></item><item><title><![CDATA[Android EditText输入字数限制总结（包括中文输入内存溢出的解决方法）]]></title><link>https://blog.csdn.net/Rflyee/article/details/38856539</link><guid>https://blog.csdn.net/Rflyee/article/details/38856539</guid><author>Rflyee</author><pubDate>Tue, 26 Aug 2014 23:37:46 +0800</pubDate><description><![CDATA[限定EditText输入个数的解决方案很多，但是一般主要考虑两点，也就是处理两件事：
（1）不同语言字符（英文、中文等）处理方式
（2）输入字符达到数目后，是否仍然允许用户输入

第一点，涉及的东东其实蛮多，不同语言在不同编码中占据字节数等，不同语言在U8等编码的表示范围等，这一整块知识很丰富，
              自己暂时没有理的特别顺，稍后整理再说吧。
第二点，目前主流ap]]></description><category></category></item><item><title><![CDATA[eclipse.ini配置详情]]></title><link>https://blog.csdn.net/Rflyee/article/details/21005667</link><guid>https://blog.csdn.net/Rflyee/article/details/21005667</guid><author>Rflyee</author><pubDate>Tue, 11 Mar 2014 12:40:53 +0800</pubDate><description><![CDATA[Eclipse的启动由$ECLIPSE_HOME/eclipse.ini控制，如果$ECLIPSE_HOME 没有被定义，则Eclipse安装目录下的默认eclipse.ini会生效。

eclipse.ini是一个文本文件，其内容相当于在Eclipse运行时添加到 Eclipse.exe之后的命令行参数。

其格式要求：

1：所有的选项及其相关的参数必须在单独的一行之内

2：]]></description><category></category></item><item><title><![CDATA[android shape的使用详解以及常用效果（渐变色、分割线、边框、半透明阴影效果等）]]></title><link>https://blog.csdn.net/Rflyee/article/details/20785495</link><guid>https://blog.csdn.net/Rflyee/article/details/20785495</guid><author>Rflyee</author><pubDate>Sat, 08 Mar 2014 16:43:16 +0800</pubDate><description><![CDATA[shape使用、渐变色、分割线、边框、半透明、半透明阴影效果。
首先简单了解一下shape中常见的属性。（详细介绍参看 api文档）

xml version="1.0" encoding="utf-8"?>shape    xmlns:android="http://schemas.android.com/apk/res/android"    android:shape=["rectan]]></description><category></category></item></channel></rss>