- 博客(70)
- 资源 (3)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 玩转ActivityResultLauncher领略设计之美
结合Jetpack ActivityResultLauncher 以及设计设计思维实现动态申请权限框架
2022-04-28 10:34:34
2507
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 玩转RxJava3,领略设计之美
RxJava3搭建实现前后端的通用的异步框架RxTaskRxTaskRxJava真的难用吗?万物皆对象融入异步框架抽象的构建基本状态的构建状态管理的构建运算抽象的构建基于抽象结合RxJava实现多种异步
2021-10-29 11:56:46
1807
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 RxJava2极速入门——Rxjava理念与基础知识
目录RxJava入门理念函数响应式编程的概念及特点函数编程概念函数编程特性响应式编程概念响应式编程的特性RxJava的基础知识RxJava的创建RxJava的生命周期回调RxJava的五种观察者模式Observable与ObserverFlowableSingle与SingleObserverCompletableMaybe总结心得...
2019-03-16 15:23:20
1478
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 刘海屏之全面屏适配攻略
刘海屏之全面屏攻略前言由于苹果公司的“先进设计”导致各大手机厂商纷纷跟风其设计,导致Android的屏幕适配出现新的刚需——刘海屏的适配。为了简化这些适配操作以及繁琐的判断封装优化出一个工具库:BangScreenToolsMaster适配方案及原理适配流程AndroidP的适配方式:Andro...
2018-11-04 13:35:55
17384
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android中序列化的原理与机制
序列化的原理:引用Java语言程序设计-基础篇中第539页中写道:并不是所有对象都是可以序列化的(这句话说明了序列化必须要具备某种条件才可以进行序列化),因为序列化的对象是Java.Io.Serializable接口的实例。也就是说如果需要实现序列化功能必须要实现这一接口;但是序列化又能有什么用处呢?接下来我们看看源码中有什么介绍。(源码下载地址) 源码中是这样说道支持IO的操作但...
2017-03-26 12:22:14
18957
原创 AndroidJetPack中Lifecycle原理和机制
探讨Android中Jetpack框架中的Lifecycle原理,剖析Lifecycle中的各种核心实现。
2022-05-28 23:35:17
409
原创 Handler 深居简出
Handle 深居简出Handle机制做完任务数据回调传递数据update UItitle:工作机制workTaskhandlermainThread通过使用这套机制,主线程可根据工作线程的需求 更新UI,从而避免线程操作不安全的问题。Handle构造函数必不可少三大参数理解在Handle构造函数中,存在三大必不可少的参数:Looper、Callback、async[是否开启异步];L...
2019-09-12 17:33:09
232
原创 闲谈设计模式之迪米特原则
迪米特原则:俗称**LOD**,也称为最少知识原则(Least Knowledge Principie),其含义一个对象应该对其他对象了解最少,也就是说类与类之间耦合以及调用应该是极小的,类的内部实现与其调用者或者依赖者没有关系,调用者或依赖者应当知道合适且所需的调用方法即可。...
2019-05-22 16:04:37
174
原创 闲谈设计模式之接口隔离
闲谈设计模式之接口隔离接口隔离(Interface Segregation Principles)示例代码分析结合Android源码设计示例代码分对JavaIO层FileOutputStream的探讨接口隔离(Interface Segregation Principles)接口隔离:俗称ISP,其遵循原则就是,类之间的依赖建立在最小接口依赖上,减少不必要的接口,避免接口功能繁重冗余;分割成更...
2019-05-22 11:37:54
266
原创 闲谈设计模式之依赖倒置原则
依赖倒置原则:俗称**DIP**,其含义为高层和底层不能直接依赖,而是通过依赖抽象,而抽象不依赖与细节,细节依赖于抽象。通过这种方式,仅需要将抽象实例化,高层对底层调用或者通信,仅仅调用抽象的实例,通过这样的方式减少高层与底层的耦合性,达到解耦的作用。
2019-05-21 16:35:34
218
原创 闲谈设计模式之里氏替换原则
闲谈设计模式之里氏替换原则里氏替换原则(Liskov Substitution Principle)代码示例分析Android设计模式代码示例里氏替换原则(Liskov Substitution Principle)里氏替换原则:里氏替换原则俗称LSP,其含义每一个类型S的对象假设为O1,都有一个T类型的对象为O2,当业务场景需要的是O1被当作O2使用,但不会导致程序出现问题,换言之就是基类使...
2019-05-20 18:49:03
370
原创 闲谈设计模式之开闭原则
闲谈设计模式之开闭原则开闭原则(Open Close Principle)代码示例进行探讨书籍例子Android源码设计模式例子总结开闭原则(Open Close Principle)开闭原则:开闭原则俗称OCP,其含义代表内部是封闭的,对于新的需求或者新的解决方案应该通过拓展方式去实现而不是修改内部源码,避免产生致命的代码缺陷,在团队开发中除非内部封装代码出现出错或者已完全淘汰,否则很少甚至...
2019-05-20 15:13:28
260
原创 RxJava2极速入门——Rxjava操作符详解之合并操作符
RxJava2极速入门——Rxjava操作符详解之合并操作符Rxjava操作符详解合并操作符MergemergemergeWithmerge总结ZipzipzipWithzip总结combineLatestwithLatestFromjoinstartWith总结Rxjava操作符详解合并操作符最近公司事务比较繁忙,导致文章更新晚了,尽量保证在6月底的时候更新完RxJava2相关的东西。好了...
2019-05-17 18:59:05
1161
2
原创 闲谈设计模式之单一原则
闲谈设计模式之单一原则闲谈设计模式序论单一原则(Single Responsibility Principle)代码示例探讨SRP常见动物呼吸案例结合Android源码设计模式总结闲谈设计模式序论闲谈设计模式是本人通过书籍、实际开发中总结所写,闲谈设计模式会以Java、Kotlin、Android源码进行分析讲解。如果讲述不清楚或者存有争议疑问希望从大读者留言一起探讨单一原则(Single ...
2019-05-17 18:57:54
361
原创 RxJava2极速入门——Rxjava操作符详解之条件布尔操作符
RxJava2极速入门——Rxjava操作符详解之条件布尔操作符RxJava操作符——条件布尔操作符AllAmbContainsDefaultIfEmptySequenceEqual直接对比法自定义对比法SkipUntilSkipWhileTakeUntilTakeWhile总结RxJava操作符——条件布尔操作符Allall:determine whether all items emit...
2019-04-13 21:10:49
653
原创 RxJava2极速入门——Rxjava操作符详解之过滤操作符
RxJava2极速入门——Rxjava操作符详解之过滤操作符RxJava操作符——过滤操作符elementAt直接index索引直接索引并设置默认角标elementAt(long index, T defaultItem) 与 elementAt(long index) 区别fristlastRxJava操作符——过滤操作符清明时节雨纷纷,路上行人欲断魂。感慨一下,哪怕是祭奠先人,也别忘了学习...
2019-04-06 18:15:14
1599
原创 RxJava2极速入门——Rxjava操作符详解之转换操作符
Rxjava操作符详解之转换操作符RxJava操作符:详解了Map,flatMap、concatMap、buffer、window、scan、cast、groupBy以及flatMap和concatMap的对比。
2019-03-26 16:34:39
1509
原创 RxJava2极速入门——Rxjava操作符详解之创建操作符
目录RxJava操作符——创建操作符create操作符defer操作符from操作符fromArray操作符fromIterable操作符fromFuture操作符interval操作符just操作符range操作符repeat操作符repeat操作符分析repeatWhen操作符repeatUntil操作符timer操作符empty...
2019-03-22 18:57:40
876
原创 向KotlinAction中函数的进阶理解——顶层以及拓展探讨
顶层函数与属性,本质上是静态函数。而拓展函数与属性是基于顶层函数与属性的实现上,利用类型的指向为类型拓展一些功能以及属性,但有一定的局限性。
2019-02-01 17:49:34
456
原创 优雅封装Retrofit2+Rxjava2并慵懒的使用KilleTom_RetrofitClientMaster
久违一篇博客,最近进了一家比较大的公司,由于结束了自由开源所以时间会比较紧张,但是还存在一些充裕的时间去开源一些东西如:KilleTomRxMaterialDesignUtil 。最近刚刚把RetrofitClient1.0版本封装好的一个Retrofit库已经可以开源使用有兴趣的可以去了解一下;重点来了:先来看看比较传统使用封装代码:public class AppNetCli...
2018-09-27 16:30:18
10966
原创 玩转自定义View之大学问特色蛛网评分控件
在github上搜了一堆堆评分控件都没有理想中的样子所以在自己的开源项目上造了了轮子出来效果图如下:先说明下理想中需求支持任意大于等于3的评分支持具有变色效果支持分数以及图形分平均值描边支持设置描边宽度大小的设置支持显示对应的分数view添加首先任意评分项生成图形的具体算法如下:for (int position = 0; position < angleCount; position++)...
2018-07-11 18:13:22
11224
原创 Android Material Design 之CardView 属性解析及使用
Material Design UI控件的CardView属性解析及实现
2018-05-14 23:10:09
16155
原创 Android Material design 之 BottomNavigationView(底部导航栏的实现)
新建project然后导入以下support:design library,BottomNavigationView就在这个design库中。顺带导入这个V4包,因为待会要使用到ViewPager进行联动,项目地址为(https://github.com/KilleTom/MyMaterialDesignDemo)这个项目我后面会陆续更新更多的MaterialDesignDemo...
2018-05-14 16:59:49
11899
原创 Python3之3天极速入门六函数的定义与基本使用1
"""你可以定义一个由自己想要功能的函数,以下是简单的规则:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。函数内容以冒号起始,并且缩进。return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 ...
2018-04-29 17:27:06
10252
2
原创 Python3之3天极速入门五迭代器与生成器
"""Python3 迭代器与生成器迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器在 Python 中,使用了 yield 的函数被称为生成器(g...
2018-04-29 10:41:29
10928
1
原创 Kotlin算法入门求回文数数算法优化二数字生成规则
class PalindromeNumber2 { /*生成一位数字的回文数*/ private fun adigit(parentNumber: Long, tenID: Long) { val tenIDResult = Math.pow(10.0, tenID.toDouble()).toLong() for (i in 0..9) { ...
2018-04-29 08:41:46
10457
1
原创 Kotlin算法入门求回文数算法优化一
class PalindromeNumber { /** * 创建map集合存储数据然后对数据进行判断抛出 */ private val palindromeData = HashMap<Int, ArrayList<String>>() /** * 讲数字直接转为字符串然后通过字符串中间截取用两个首尾进行对比得出...
2018-04-29 08:35:04
10447
1
原创 Kotlin算法入门求完全数
/*一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。*/class CompleteNumber { private var firstFactorNumber: Int = 0 /** * 因为不管怎么计算由于非素数数都可以通过1·9中通过乘计算得出所以除了1和2只需要继续是否可以被2-9整除就可以 * 这一说法利用了提取最小公因式来计算得出 ...
2018-04-29 08:32:55
10913
2
原创 Kotlin算法入门求自由落体
/*一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高这里用BigDecimal避免精度丢失*/class FreeFallingBody { fun tradition() { //传统算法 循环10次计算这里用BigDecimal避免精度丢失 val distance = B...
2018-04-29 08:30:16
10940
1
原创 java数据生成法遍历求从个位数都n位数字的回文数算法优化
利用回文数数字特点规律生成一套数据规则大大减少遍历传统判断的冗余以此减少运行生成时间也是数据生成规则入门中一个基本算法
2018-04-28 13:58:29
10937
2
原创 java求回文数算法优化
public class PalindromeNumber { /** * 创建map集合存储数据然后对数据进行判断抛出 */ private Map<Integer, List<String>> palindromeData = new HashMap<>(); /** * 讲数字直接转为字符串然后通过...
2018-04-27 15:06:49
11903
2
原创 java求完全数算法以及优化拓展
/*一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。*/public class CompleteNumber { private int firstFactorNumber; /** * 因为不管怎么计算由于非素数数都可以通过1·9中通过乘计算得出所以除了1和2只需要继续是否可以被2-9整除就可以 * 这一说法利用了提取最小公因式来计算得出 ...
2018-04-26 01:44:25
11076
2
原创 Java求经典算法自由落体以及优化拓展
/*一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高这里用BigDecimal避免精度丢失*/public class FreeFallingBody { public void tradition(){ //传统算法 循环10次计算这里用BigDecimal避免精度丢失 Bi...
2018-04-25 20:25:58
11024
原创 Kotlin算法入门计算质因数
/*每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身*/class QualityFactor { /** * 因为不管怎么计算由于非素数数都...
2018-04-25 17:23:20
10478
原创 java求质因数算法
public class QualityFactor { /** * 因为不管怎么计算由于非素数数都可以通过1·9中通过乘计算得出所以除了1和2只需要继续是否可以被2-9整除就可以 * 这一说法利用了提取最小公因式来计算得出 * 当然要避免一个重要问题就是当它是个位数字的时候也就是1 、 2 、 3 、 5 、7的时候直接返回 * 这样计算的好处在...
2018-04-25 17:20:55
12680
原创 Kotlin算法入门计算水仙花数
/*打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方由于100 200 300 500 400 整百数都不是水仙花可以直接排除而且 101 为基数的也不是水仙花可以直接排除这样排除这两个规律的直接跳过计算*/class Narcissus { /* ...
2018-04-25 16:04:10
10649
原创 Kotlin算法入门计算素数以及优化
class GetprimeNumber { /* * 获取[1,n]区间素数*/ fun forEachNumberGetprime(number: Int): List<Int> { val integers = ArrayList<Int>() for (i in 1 until number) if (is...
2018-04-25 16:00:53
10891
原创 Kotlin算法入门兔子数量优化及拓展
/*古典问题:3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?分析:首先我们要明白题目的意思指的是每个月的兔子总对数;假设将兔子分为小中大三种,兔子从出生后三个月后每个月就会生出一对兔子,那么我们假定第一个月的兔子为小兔子,第二个月为中兔子,第三个月之后就为大兔子,那么第一个月分别有1、0、0,第二个月分别为0、1、0,第三个月...
2018-04-25 15:53:25
11543
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人