In Coding


唯妹子和写作不可辜负!

如何产生一个随机的[0, n)范围内的Short值

背景 最近在做一个Java的随机对象生成器。需要随机产生一些在[0, n)范围内的short值。 坑 很多人可能会说,这有什么难的,我刚学编程的时候就会了。然后给出下面代码。 short value = (short) (new Random().nextInt(n)); 看起...

浅析ReactiveX的多播——实现安卓双击检测遇到的坑

背景 今天需要实现一个双击检测功能,以前的实现方式是自己记录上次点击时间与本次比对,如果小于门槛值,则发出双击事件。不过自从入了Rx的坑之后,凡事都喜欢用Rx的思想思考问题。于是上Github找找代码,还真找到一段,虽然是Kotlin的一段错误的代码,翻译成Java如下:(注:这段代码是有问题...

Android路由框架设计与实现

背景 我们知道传统的网站开发框架一般支持用户设置路由表,如Django。而在Android开发中,我们打开页面的方式主要是startActivity()。使用startActivity()的缺点是需要打开的那个Activity的类已经存在,否则无法通过编译,但是在协同开发中,这往往是无法得到满...

Android实现多次闪退清除数据

背景 很多时候由于后台返回的数据异常,可能会导致App闪退。而如果这些异常数据被App本地缓存下来,那么即使杀掉进程重新进入还是会发生闪退。唯一的解决方法就是清除App数据,但是用户可能没有这个意识或者嫌麻烦就直接不再使用了,这是我们无法接受的。在使用淘宝、追书神器等App时我发现有时候它们也...

Android单元测试详解(1)——— AndroidJunitTest

背景 最近稍等空闲,考虑到我们项目测试覆盖率几乎等于0,因此痛下决心决定研究下Android单元测试。 单元测试的类型 首先我们需要明确安卓的单元测试主要分为两种类型: 在开发主机Java虚拟机上运行的Junit Test 在Android真机或者虚拟机上运行的Instrumen...

Fulid Browser测评,Mac上的一心二用神器

背景 今天闲来无事,逛逛Mac的app store,发现首页有款应用名叫Fulid Browser感觉很不错,单价18RMB,感觉还行,于是就果断购买。 功能 浏览器功能 Fulid Browser其实就是一款浏览器,你可以像普通的浏览器一样使用它。而它不同于其它浏览器的是它永远悬浮于界面...

浅谈Android开发中多进程共享数据

# 背景 最近在工作中遇到一个需求,需要在接收到推送的时候将推送获得的数据存起来,以供app启动时使用。我们会认为这不是So easy吗?只要把数据存到SharedPreferences中,然后让app打开同一个SharedPreferences读取数据就可以了。但是在实际的测试中,我们发...

如何在网页端和移动端播放rtmp和hls视频流

背景 我们已经在视频直播解决方案讨论了如何实现自己的直播平台以及如何实现从安卓设备上推流到服务器。那么我们还剩下最后一波,就是如何将精彩的视频内容展现出来,在本文中将会介绍如何在网页端和安卓设备上实现直播的播放。 安卓设备上的播放——Vitamio 安卓设备3.0以上原生支持hls,但...