React Native之Android原生模块反向通知JS

前边介绍了从JS调用Android原生模块的方法,现在再介绍一下,如何从Native反向通知JS。

一、目录结构

reactevent
├── ReactEvent.kt
├── ReactEventPkg.kt // ← here
└── ReactEventR.kt   // ← here

PS: ReactEventR中的R表示是反向的意思。

……

阅读全文

GO语言一种按秒聚合消息队列的实现方法

Linux内核大概只有100万次每秒的收发网络数据包的能力,如果需要突破这个限制,那么在客户端发送消息的时候,需要将消息按一定的时间进行聚合再上报,那么如何实现一个像以下需求的消息队列呢?

  • 没有消息时一直阻塞,避免CPU消耗
  • 一旦有消息的时候,只从消息队列里边取最多1秒的数据
  • 或者,一旦有足够消息数量的时候,立即返回
……

阅读全文

gomobile: Hook logrus日志输出至android logcat

实际开发过程中,很多项目使用的日志输出是logrus,为了保持统一,同时又能把日志输出到Android Logcat,同时还带上Android的日志级别。

默认的log.Println,也能输出,但默认的Tag是GoLog,日志级别是info,显然不能满足要求。

……

阅读全文

GO语言解析那些乱七八糟JSON字符串的方法

一些脚本语言对Json格式的要求比较松散,导致他们所提供了接口输出的数据也是一样的,可能存在以下这样子的情况:

  • 相同的字段,类型是不固定的
  • 将数据包裹在一个数组时,数组元素的类型也是不固定的

而Go语言本身是强类型的,这给解析这样子的数据造成了麻烦,你当然可以使用interface{}挨个去解析,但随着数据量大了之后,嵌套格式越深,这是一个无底洞。。。

这里将介绍一些go语言json解析的奇技淫巧,让你免遭痛楚。

……

阅读全文

JS读取cpio文件内的一个文件

开发前端Vue组件涉及OTA文件上传的时候,想优先通过读取OTA升级包(cpio)文件的一个描述文件description.json来获取一些参数的信息,这样子不需要跑到后台去解析cpio文件内容了。

……

阅读全文

JS读取zip文件内的一个文件

开发前端Vue组件涉及OTA文件上传的时候,想优先通过读取OTA升级包(zip)文件的一个描述文件description.json来获取一些参数的信息,这样子不需要跑到后台去解析zip文件内容了。

……

阅读全文