Android – 计步器的实现

前言

之前对微信的计步器一直很感兴趣,当时并不知道怎么实现,今天看到简书上的一篇文章,实现了和微信计步几乎一致的效果,以此记录,并了解一下实现原理。

原文链接:http://www.jianshu.com/p/cfc2a200e46d

两种计步方式

  1. 加速度传感器 Sensor.TYPE_ACCELEROME 计步方式:这种方式是有开源的算法根据加速度传感器进行计算步数;

    优点:只要有加速度传感器的设备都可以使用,相对来说可以使用的设备较多。

    缺点:步数的准确性取决于算法且算法比较难优化;需要后台保活 Service 否则不能计步;计步算法比较耗电;部分手机锁屏不能计步;

  2. 计步传感器 Sensor.TYPE_STEP_COUNTER 计步方式:这种传感器是返回手机系统启动到当前时间的所有步数。手机系统重启传感器返回步数为0。还返回一个时间戳,表示最后一次步数的时间。这个计步传感器是一个硬件,功耗非常低。如果你想记录步数,注册该传感器不要注销,他能自动在后台计步,在app唤醒的时候返回计步总数。应用程序需要注册该传感器,否则不能不能记步。

    优点:硬件计步准确性高;功耗小;只要注册不用后台 Service 自动计步;

    缺点:Android4.4系统以上的部分手机;手机系统重启计步器清零;不能返回步数明细(步数对应时间),只是返回当前时间的总步数。

项目地址

Github 地址:https://github.com/jiahongfei/TodayStepCounter


香格里拉

我以为认真去做就能实现我的梦

以为写首好歌走路就能抬起头

以为骑摩托车旅行就能变英雄

现在的我,失去了冲动

有才华的人唾弃金光闪闪的奖座

亲爱的Cobain是否也曾爱慕虚荣

多希望有人冲破疑惑带我前走

现在的我,变得好懦弱

雨会下雨会停 这是不变的道理

夜空中北极星 迷路的人不恐惧

我唱歌你在听 一切风平又浪静

G和弦的根音 抚平脆弱的心灵

我只想牵着你 走到很远的梦里

小木屋红屋顶 地址是一个秘密

你抱着小猫咪 蓝眼睛不再忧郁

香格里拉 让我们去找寻


WebView 的那些坑

前言

最近,在用到 WebView 的时候,真的算是体会到了什么叫坑爹了。从最开始的无法跳转页面到之后无法播放视频等等,网上的一些解决办法也都尝试了,但是到最后还是无法解决播放MP4。还有一大堆的 WebSetting 搞的我很焦灼,有时候压根就不知道有没有用。被逼不得已,网上找开源库,看了一下腾讯的 TBS (腾讯浏览服务)文档,当时就惊了,原来是替换了Android SDK里面的系统内置浏览器内核,替换包和类就让我有点放弃。然后问问群里面的大佬,提到了一个开源库。那就是……

AgentWeb

不得不说,大佬就是大佬。用起来超简单,我的问题也解决了。

Github地址:https://github.com/Justson/AgentWeb

完善的文档,不用多说。

最后

放上自己写的Demo,其中包括自己利用系统的WebView(只是无法播放视频……)和使用AgentWeb写的小应用。

Github:https://github.com/Omooo/Joke

给个Star就是给我最大的鼓励,谢谢。


刺激刺激,原来动画可以这么玩?

前言

似乎一个星期有点长,帧动画和补间动画还是很简单的,也很好理解。关于属性动画,看郭大叔的三篇文章我觉得很OK,接下来就是自己实现一些小的动画效果,顺便看看一些开源库。

最后

就再加一条吧,给自己一点挑战性,开始锤绘图 (掩面痛哭

我把动画的Demo都放在了Github上了,猛戳 –> AnimationDemo

感谢

http://www.runoob.com/w3cnote/android-tutorial-animation.html

http://blog.csdn.net/guolin_blog/article/details/43536355


一个很严重的问题

前言

上个星期过的还是蛮充实的,毕竟刚开学,还是很想改变自己。每天都会码上几个小时,学到的是蛮多的。但是冷静分析,好像自己什么也没学到,为什么这样说呢?我写的 Tools 所展示的信息都是从网上拿下来了,有API很好办,解析一下Json数据就好了,没有API的就用Joup解析一下也完事了。所以,我现在的定性思维就是我需要什么内容我就从网上拿,需要什么效果就找开源库。毕竟应用层的开发做这些就差不多了,正在这种很强的可替代性,导致所谓的Android开发人员饱和的原因吧。

反思

那我要该怎么做出改变呢?

有人说读Android源码,以我的水平完全达不到。但是我可以做的就是学习GitHub上的小项目,看看别人的代码风格甚至是布局。还有就是,不能不加思考的拿来主义,比如一些下拉刷新库,自己完全可以按照自己的想法来尝试实现一下基本的功能,然后就知道自己写的多么辣鸡,之后看看别人的设计就知道人家为什么要那么做。还有什么等等设计模式,我现在也是一概不通。学习之路也很漫长。

计划

这个星期我要看看学习Android动画,不要任何开源库。造轮子?不存在的,写的基础根本无法称之为轮子,利此Flag !

参考:

有没有必要阅读Android源码?

我们一直都向往,面朝大海,春暖花开。 但是几人能做到,心中有爱,四季不败?