- 博客(11)
- 收藏
- 关注
原创 从几段简短的代码探讨WeakReference和SoftReference
看过很多讲java里引用的文章,但大多都是告诉你,弱引用是当java gc发生的时候,就会进行回收,软引用是内存不足的时候进行回收等等。但这样总感觉有点抽象。前几天看到一篇文章,里面的代码引起了我的兴趣。我在原文代码的基础上做了一些改动,这样或许可以对软引用和弱引用有更好的理解。文章原文可以点击这里查看弱引用的相关概念这里就不过多探讨了,网上有很多,我们直接上代码public class W...
2020-01-26 15:50:12
200
原创 【翻译】okhttp的缓存是如何工作的
在网上看到一篇国外的讲okhttp缓存的文章,感觉写的很好,简明扼要。国内虽然也有很多讲okhttp缓存的文章,有的写的很好,有的则写的比较繁琐。所以我还是把这篇文章大致翻译一下,并结合使用过程中的一些情况以及自己的理解,来谈一下okhttp缓存。原来的文章在这里先放一张图,这是不考虑离线情况下的okhttp缓存工作流程图:okhttp的缓存是基于http协议的,也就是,假如服务器返回的h...
2019-11-01 22:44:36
401
原创 在Android Studio上编译自己的Telegram
在国内的人可能对Telegram了解的不多,因为用的多的还是微信QQ。所以,在开始这篇文章之前,我先引用维基百科上的内容介绍一下telegram。历史它在2013年由杜洛夫兄弟正式激活,也就是尼古拉·杜洛夫与保罗·杜洛夫,俄罗斯最大的社交网络服务VKontakte的创始者。Telegram Messenger LLP是独立的非营利公司,设立在柏林,而且与VKontakte毫无关系。尼古拉...
2019-10-20 19:54:30
1401
6
原创 OkHttp 4.X使用小结
OkHttp 4.x出来已经有一段时间了,根据JCenter的上传记录,早在今年五月份,square就上传了4.X的第一个版本,4.0.0-alpha01。主要的区别在于之前是基于JAVA,而4.X往后,都将会是用kotlin来写。可以看得出来,kotlin将会是大势所趋。Google了一下,发现还没人写关于OkHttp4的教程。其实我个人也感觉没什么必要。这次的升级还是很平滑,甚至为了和3.X...
2019-10-20 19:47:30
17110
3
原创 OkSimple :基于okhttp5的更好用的网络请求框架
项目介绍一个对okhttp进行二次封装的网络请求库,简单易用,扩展性强,基于okhttp4.1和kotlin。目前的大部分网络请求框架都是用java写的,而且对okhttp的支持也只支持到okhttp3.x。但oksimple基于okhttp4.1和谷歌官方钦定android开发语言kotlin。所以说面向未来也没什么不对 XD目前实现的功能get,post,postjson等常规请求文...
2019-10-20 19:45:13
1952
1
原创 Android Mqtt重连的一个小问题
MQTT服务器端有很多开源库,但android端大部分用的都是eclipse的paho。paho是很好用的一个mqtt框架,但在重连上有需要注意的地方。假如你在初始化的时候,设置了如下的代码: MqttAndroidClient mqttAndroidClient = new MqttAndroidClient(getApplicationContext(), 服务器地址, 设备ID); Mq...
2019-10-20 19:35:21
2109
1
原创 在Android Studio上编译自己的Telegram
在国内的人可能对Telegram了解的不多,因为用的多的还是微信QQ。所以,在开始这篇文章之前,我先引用维基百科上的内容介绍一下telegram。历史它在2013年由杜洛夫兄弟正式激活,也就是尼古拉·杜洛夫与保罗·杜洛夫,俄罗斯最大的社交网络服务VKontakte的创始者。Telegram Messenger LLP是独立的非营利公司,设立在柏林,而且与VKontakte毫无关系。尼古拉...
2019-10-20 19:31:55
1863
3
原创 从最简单的Android MVP讲起
mvp是一个老生常谈的话题了,网上太多讲MVP的文章了。但有的文章不是结合了rxjva,retrofit等开源项目,就是讲的太过复杂。所以我会写一个最简单的mvp demo。来帮助大家理解mvp的本质。大多数时候,问题都可以拆解为,WHTA,WHY,HOW;什么是MVP,为什么使用MVP,如何使用MVP。WHAT:先说什么是MVP,上面这张图是网上找的,其实这张图已经很明显了,MVP和MV...
2019-10-20 19:30:15
255
1
原创 使用双栈解析小数负数算术表达式的一些想法
最近因为一些原因,我需要写一个简易的计算器,需要支持加减乘除,小数和负数运算。其实思路很简单,无非就是使用双栈解析一串算术表达式的文本。《算法》一书中也有一个简单的demo。但如何快速高效的解析,便成了一个问题。百度了一圈,发现很多文章要先把表达式转成后缀表达式,再实现求值。例如java实现算术表达式求值,但这么做真的有必要吗?只是解析加减乘除需要这么多代码吗?我对此抱有疑问。我的疑问在于,转...
2019-10-20 19:29:01
266
1
原创 一个简单的圆形TextView
一个简单的工具类。主要是为了方便当你需要一个带圆形边框的textview的时候,可以不用写一大堆的drawable。下面是代码public class CircleTextView extends AppCompatTextView { private Paint circlePaint; private Paint backPaint; private Paint t...
2019-10-20 19:25:49
242
原创 80行代码完成自动换行layout
####网上有很多的自动换行的layout了,但看了一圈,感觉很多人都把问题想复杂了,这也就导致了代码的复杂。有些时候你想要的只是一个可以自动换行的layout,可以设置横竖间距,不需要其他一些奇奇怪怪的功能和设置一些奇奇怪怪的属性。那么你可以考虑我写的这个public class AutoLineLayout extends ViewGroup { private int horizon...
2019-10-20 19:20:27
278
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人