Java使用Protocol Buffer与服务端交互 最近和三方对接时,对方给出的接口文档是使用protol buffer进行交互的,并非是我们常见的json、xml这种格式,了解了一下这种格式或者说交协议的特点。首先,Protocol Buffer序列化之后是二进制流,不进行反序列化基本不可读。其次,序列化之后的体积很小,适合网络传输或者设备之间传输最后,可以跨平台、跨语言使用不过这些特点既是优点也是缺点:序列化之后的数据不可读,还原序列化之后的数 2023年05月09日 #Java
flutter_Key 官方视频在这里,有条件的可以看下https://www.youtube.com/watch?v=kn0EOS-ZiIc也可以看下这个对diff算法的详解https://juejin.cn/post/6935422635194974244主要代码如下 2023年01月23日 #Flutter
flutter_StatefulWidget createState()是何时被调用的?断点查看调用栈,发现是在StatefulElement的构造方法中创建的,而element的创建则是在父元素调用inflateWidget时触发子元素的createElement方法创建的 123456StatefulElement(StatefulWidget widget) : _state = widget.createState(), 2023年01月18日 #Flutter
flutter_runApp到挂载根节点 入口flutter应用的入口点在main方法中调用的runApp(Widget app)方法中 widgets.binding.runApp12345void runApp(Widget app) { WidgetsFlutterBinding.ensureInitialized() ..scheduleAttachRootWidget(app) ..scheduleWar 2023年01月18日 #Flutter
写在2023年初--2022总结 2022年,新冠三年,新冠诊疗方案第十版将其更名为新型冠状病毒感染;这一年中断了每月学习计划,博客也停更了一年,也不是忙,只是懒散,毕竟再忙也不会忙到写点东西的时间都挤不出来的地步。工作中也只是加强了之前学过的东西,熟练度提高了而已。翻遍了过去一年,也只是刷了几道题,学完了极客时间几个课程而已。新的一年有新的计划。不仅要提高自己的技术硬实力,也需要提高软技能。 2023还是围绕大前端进行 flu 2023年01月07日 #乱七八糟
riverpod1.0+简介 Flutter更新到2.8了,最近打算重拾一下flutter,写点东西练练手。大家都清楚在flutter中状态管理确实挺麻烦的,从一开始的BLoC到provide、Provider,还有getX、Riverpod等等各式各样的状态管理库,我个人倾向于使用riverpod,它更像一个状态管理库;而getX更像一个开发的框架,实在是太大了:当你使用getX的时候,你是在用getX而不是flutter写 2022年01月04日 #Flutter #riverpod
写在2022年初--2021总结 2021年,娃娃出生了,嘿嘿嘿今年似乎也没有学啥,但又不知道时间都花在哪里了。浅尝辄止的学习了一些技术 vue react 小程序 鸿蒙 翻了一丢丢源码 okhttp retrofit gson 了解了一下Android系统启动流程、应用启动流程。然后就是准备重拾flutter,学习一下跨平台技术 2022年01月01日 #乱七八糟
Android慢网络及页面监控 最近在搞Android应用大盘监控,目前需要监控的是慢网络请求及页面的打开和关闭。由于应用中使用的OkHttp进行网络请求,着重看了一下OkHttp源码,还有别人写的一些总结。对于页面的打开关闭行为,我们可以搞个BaseActivity或者在Application中注册生命周期回调就好了。问题在于慢网络监控需要实时上报,而用户行为监控则需要本地落盘保存,在需要的时候再上报,所以如何落盘保存则是一个 2021年06月19日 #Android
Sentry搭建及Android接入 因为sentry可以私有化部署,相比起bugly,我们可以做跟多的单独定制功能,所以决定将需要即时上报的日志放在sentry上。 搭建环境: Ubuntu18.04 64位 sentry版本21.5.1 环境要求: Docker 19.03.6+ Compose 1.24.1+ 4 CPU Cores 8 GB RAM 20 GB Free Disk Space 由于sentry需要使用r 2021年05月22日 #Android #运维 #linux
Android中的单元测试 纯java代码的单元测试这里的纯java代码指的是不包含Android包中的代码,我们使用Junit写单元测试即可。 比如我们有一个方法是用来格式化数字,返回保留两位小数后的字符串,方法如下 123public static String numberFormat(double number){ return String.format(Locale.getDefault(),&quo 2021年04月25日 #Android