<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[muranfei的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/muranfei</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; muranfei]]></copyright><item><title><![CDATA[android LiveEventBus 混淆规则]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/146714660</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/146714660</guid><author>muranfei</author><pubDate>Sat, 29 Mar 2025 22:04:52 +0800</pubDate><description><![CDATA[liveeventbus混淆规则。]]></description><category></category></item><item><title><![CDATA[Android应用内悬浮按钮 可自由拖拽 自动靠边]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/128676629</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/128676629</guid><author>muranfei</author><pubDate>Fri, 13 Jan 2023 20:25:44 +0800</pubDate><description><![CDATA[应用内悬浮按钮]]></description><category></category></item><item><title><![CDATA[动态代理详解]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/128618033</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/128618033</guid><author>muranfei</author><pubDate>Tue, 10 Jan 2023 09:41:53 +0800</pubDate><description><![CDATA[动态代理详解]]></description><category></category></item><item><title><![CDATA[java反射详解]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/128615261</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/128615261</guid><author>muranfei</author><pubDate>Mon, 09 Jan 2023 15:46:00 +0800</pubDate><description><![CDATA[java 反射详解]]></description><category></category></item><item><title><![CDATA[获取View显示区域的百分比]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/127264524</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/127264524</guid><author>muranfei</author><pubDate>Tue, 11 Oct 2022 15:27:22 +0800</pubDate><description><![CDATA[这里只是对view的top和bottom做了处理，并且没有考虑view的width。如果你在项目中需要处理view的left,right时需要做一定的调整。]]></description><category></category></item><item><title><![CDATA[Kotlin 知识点记录]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/127071057</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/127071057</guid><author>muranfei</author><pubDate>Fri, 30 Sep 2022 14:02:50 +0800</pubDate><description><![CDATA[kotlin基础点整理]]></description><category></category></item><item><title><![CDATA[android 动画中插值器Interpolator详解]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/125521420</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/125521420</guid><author>muranfei</author><pubDate>Wed, 29 Jun 2022 14:48:49 +0800</pubDate><description><![CDATA[android  插值器]]></description><category></category></item><item><title><![CDATA[android 创建桌面快捷方式 ShortCut]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/125446629</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/125446629</guid><author>muranfei</author><pubDate>Fri, 24 Jun 2022 16:03:53 +0800</pubDate><description><![CDATA[android 创建桌面快捷方式 ShortCut ]]></description><category></category></item><item><title><![CDATA[Android Scrapped or attached views may not be recycled.]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/125408427</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/125408427</guid><author>muranfei</author><pubDate>Wed, 22 Jun 2022 14:28:08 +0800</pubDate><description><![CDATA[recyclerview刷新清空数据，未调用notifyDataSetChanged()，或者是在请求数据之前就先clear数据了，然后请求之后才notifyDataSetChanged()；在删除数据后需要刷新一下adapter，即：myRecycleAdapter.notifyDataSetChanged();崩溃日志：...]]></description><category></category></item><item><title><![CDATA[android 中kotlin使用相关知识]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/123281359</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/123281359</guid><author>muranfei</author><pubDate>Fri, 04 Mar 2022 17:28:55 +0800</pubDate><description><![CDATA[Android Lifecycle、ViewModel和LiveData
Android Jetpack 组件之 ViewModel（Kotlin）
Android Jetpack 架构组件最佳实践
Kotlin Coroutines(协程) 完全解析（二），深入理解协程的挂起、恢复与调度
开发者指南


]]></description><category></category></item><item><title><![CDATA[Kotlin-Android-Extensions：不仅仅是替代findViewById]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/123183264</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/123183264</guid><author>muranfei</author><pubDate>Wed, 02 Mar 2022 13:58:20 +0800</pubDate><description><![CDATA[kotlin-android-extensions是kotlin为Android专门提供的扩展插件，虽然现在其提供的功能不多，但是光是替代findViewById功能，就已经值得使用了。至于以后官方是否会提供更多的功能，让Android开发更快速便捷，就只能拭目以待了

module:app -&gt; build.gradle 添加以下代码
apply plugin: ‘kotlin-android-extensions’

Activity示例代码
import kotlinx.android.synt]]></description><category></category></item><item><title><![CDATA[Android 图片压缩最常用的几种方法]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/123084377</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/123084377</guid><author>muranfei</author><pubDate>Wed, 23 Feb 2022 10:58:51 +0800</pubDate><description><![CDATA[在android开发中图片是非常容易造成OOM异常的，大部分情况下，都需要对图片进行压缩展示，本文主要是记录下在开发中常见的几种图片压缩方法
一、质量压缩
保持像素的前提下改变图片的位深及透明度（即：通过算法抹掉(同化)图片中的一些某点附近 相近的像素）达到降低质量压缩文件的目的。 使用场景：将图片压缩后将图片上传到服务器，或者保存到本地，根据实际需求
    /**
     * 质量压缩
     * 设置bitmap options属性，降低图片的质量，像素不会减少
     * 第一个参数为需要压缩]]></description><category></category></item><item><title><![CDATA[Android断点续传原理及实现]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/122964770</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/122964770</guid><author>muranfei</author><pubDate>Wed, 16 Feb 2022 17:01:48 +0800</pubDate><description><![CDATA[常见两种网络请求方式
一、 HttpURLConnection
HttpURLConnection的setRequestProperty()方法，对我们要读取的字节部分进行控制，比如:
···
1.Range=0-100代表只读取前100个字节。
2.Range=100-500代表读取从第100个字节开始，读到第500个字节为止。
3.Range=100-则代表从第100个字节开始读取，一直读取到文件末尾结束。
···
断点续传过程
1、在暂停时记录一下已经读取到的位置，在重新开始的时候利用setReque]]></description><category></category></item><item><title><![CDATA[java 使用Try-with-resources 自动关闭资源]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/122964298</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/122964298</guid><author>muranfei</author><pubDate>Wed, 16 Feb 2022 15:23:22 +0800</pubDate><description><![CDATA[介绍：Try-with-resources是Java7中一个新的异常处理机制，它能够很容易地关闭在try-catch语句块中使用的资源。
利用Try-Catch-Finally管理资源（旧的代码风格）
下面的方法读取文件，然后用System.out打印：
private static void printFile() throws IOException {
    InputStream input = null;
    try {
        input = new FileInputStream]]></description><category></category></item><item><title><![CDATA[Java IO操作详解]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/122962167</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/122962167</guid><author>muranfei</author><pubDate>Wed, 16 Feb 2022 14:13:49 +0800</pubDate><description><![CDATA[在Java编程中，IO（输入输出）是重要的组成部分，Java应用常常需要从外界输入数据或者把数据输出到外界。
Java IO的核心用一句话概括：抽象类或接口之中的抽象方法会根据实例化子类的不同，会完成不同的功能。所有的IO操作都在java.io包之中进行定义，而且整个java.io包实际上就是五个类和一个接口：
（1）五个类：File、InputStream、OutputStream、Reader、Wirter；
（2）一个接口：Serializable。
一、文件操作类File
在整个java.io包之中]]></description><category></category></item><item><title><![CDATA[Java常见的8种数据结构]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/122685218</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/122685218</guid><author>muranfei</author><pubDate>Sun, 30 Jan 2022 11:14:21 +0800</pubDate><description><![CDATA[数据结构是指数据在计算机内存空间中或磁盘中的组织形式
算法是完成特定任务的过程
二分法查找
r=2^s    s：查找步数   r查找范围    幂函数
s=log2®   已知范围获取需要的次数  对数
算法复杂度使用O(N)函数进行标示  主要是去除常数 看运行时间受数据项个数的影响

常见排序
参考地址 https://blog.youkuaiyun.com/muranfei/article/details/80923996
栈 对列 优先级对列
栈按照“后进先出”、“先进后出”的原则来存储数据，先插入的数...]]></description><category></category></item><item><title><![CDATA[Java中 DecimalFormat 用法详解]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/122669121</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/122669121</guid><author>muranfei</author><pubDate>Mon, 24 Jan 2022 16:09:41 +0800</pubDate><description><![CDATA[对Java中 DecimalFormat 的所有基础用法进行了一个汇总。DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充，# 表示只要有可能就把数字拉上这个位置。

小数部分  #代表最多有几位，0代表必须有且只能有几位
.00 表示最终结果得有两位小数，没有，我给你加上；多了，就四舍五入第三个小数
.## 标示最终结果最多有两位小数 一位或者没有都可以 多了同样四舍五入第三位
整数部分 0 和 #
当整数部分为0时 比如 0.1 #此时认为整]]></description><category></category></item><item><title><![CDATA[自定义View实现 android圆形统计图 带动画可以点击]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/119540674</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/119540674</guid><author>muranfei</author><pubDate>Mon, 09 Aug 2021 17:21:28 +0800</pubDate><description><![CDATA[通常app中可能的数据展示控件有柱状图，折线图，饼状图等，如果需要一个包含多种View控件的库，那么 MPAndroidChart 是不错的选择，如果只是需要一个简单的独立的饼状图控件，希望RingView满足你的要求。
控件介绍
效果图如下

控件功能
展示一组数据 绘制圆环，展示对应模块文本信息， 点击对应模块进行放大处理
实现过程
绘制圆环
圆环的基本绘制
圆环的绘制实际就是通过先后绘制两个半径不同的圆实现，圆就是360度的扇形，canvas.drawArc提供了这个功能：
public void d]]></description><category></category></item><item><title><![CDATA[Mac中adb使用]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/118576244</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/118576244</guid><author>muranfei</author><pubDate>Thu, 08 Jul 2021 16:27:05 +0800</pubDate><description><![CDATA[Mac中adb使用
使用mac进行开发的时候，有时候需要使用adb指令来进行一些操作，但是如果没有配置过Android环境变量，可能会出现adb: command not found的问题，查了一些资料，这里记录一下mac上配置Android环境变量的方法：
一、配置adb环境变量

打开mac的terminal终端，输入 cd ~/ 【进入当前用户的home目录】
输入 touch .bash_profile 【如果没有.bash_profile这个文件，则创建一个这个文件】
输入 open .bash_]]></description><category></category></item><item><title><![CDATA[Android Studio 打包卡在 app:transformClassesAndResourcesWithR8ForRelease]]></title><link>https://blog.youkuaiyun.com/muranfei/article/details/102794066</link><guid>https://blog.youkuaiyun.com/muranfei/article/details/102794066</guid><author>muranfei</author><pubDate>Wed, 30 Oct 2019 15:52:09 +0800</pubDate><description><![CDATA[今天升级Android Studio 到最新的3.4正式版，之前是3.2.1的版本，在编译打包的时候,debug没有问题,
但是release时却卡在 app:transformClassesAndResourcesWithR8ForRelease 很长时间,一直不能生成包，有时候产生 java.lang.OutOfMemoryError: GC overhead limit exceeded 这...]]></description><category></category></item></channel></rss>