計步算法服務(wù)的分析與簡述

歡迎Follow我的GitHub, 關(guān)于計步算法庫的算法原理使用方法.

頁面

本文的合集已經(jīng)編著成書握巢,高級Android開發(fā)強化實戰(zhàn),歡迎各位讀友的建議和指導(dǎo)汁雷。在京東即可購買:https://item.jd.com/12385680.html

Android

計步器作為算法功能模塊, 與業(yè)務(wù)模塊分離, 解耦合. 這樣也可以更加專注于算法的升級. 最新功能, 具體參考線上產(chǎn)品: 春雨醫(yī)生, 春雨計步器. 我來簡述一下計步器算法的實現(xiàn)原理, 給大家一些啟發(fā).

1. 算法

對于所有計步器而言, 早期必然是使用加速度傳感器(Accelerometer Sensor)測量步數(shù), 隨后谷歌推出計步傳感器(Step Counter Sensor), 由硬件或系統(tǒng)計算步數(shù)的變化, 使得算法簡化. 有些手機, 未提供計步傳感器; 有些手機, 在待機過程中關(guān)閉計步傳感器.

簡單介紹一下算法原理:

  1. 加速度傳感器(Accelerometer Sensor):
    算法根據(jù)加速度傳感器空間位置(XYZ軸)的變化, 繪制空間曲線, 根據(jù)兩次波峰波谷之間的時間間隔, 判斷步行或其他狀態(tài). 在短時間內(nèi)出現(xiàn)連續(xù)波峰, 即為步行; 波峰出現(xiàn)的時間間隔較長, 則認(rèn)為停止行走. 同時, 屏蔽輕微與初始擾動, 提升準(zhǔn)確性; 通過調(diào)整參數(shù), 適配不同手機的傳感器差異, 提升魯棒性.
  2. 計步傳感器(Step Counter Sensor):
    算法讀取計步傳感器的數(shù)值, 與本地緩存數(shù)值匹配, 判斷步數(shù)的增加與否. 在屏幕關(guān)閉時, 啟動BatchMode模式, 配合協(xié)處理器, 延遲獲取數(shù)值, 節(jié)約電量. 當(dāng)計步傳感器停止時(有些手機在屏幕關(guān)閉時會停止部分傳感器), 自適應(yīng)切換加速度傳感器, 啟動時, 再次切換計步傳感器.
  3. 自適應(yīng)性(Self-Adaption):
    根據(jù)系統(tǒng)狀態(tài), 優(yōu)先選擇計步傳感器, 當(dāng)計步傳感器無法使用時, 選擇加速度傳感器.

關(guān)于服務(wù)弊罱活:

  1. 計步服務(wù)單獨使用一個進(jìn)程, 保證內(nèi)存較少, 低優(yōu)先級被殺死.
  2. 設(shè)置AlarmManager定時器, 定時檢測服務(wù)狀態(tài), 啟動服務(wù).
  3. 接收常規(guī)系統(tǒng)廣播, 如網(wǎng)絡(luò), 電量, 充電等, 檢查并啟動服務(wù).
  4. 將服務(wù)設(shè)置為前臺服務(wù), 提高進(jìn)程優(yōu)先級, 避免殺死.

關(guān)于反作弊:
已經(jīng)根據(jù)手機狀態(tài), 添加反作弊功能, 防止惡意刷步.

關(guān)于省電:
在服務(wù)中已經(jīng)使用多種電量優(yōu)化措施, 內(nèi)部測試, 電量消耗遠(yuǎn)低于競品.
提供開關(guān), 自行控制喚醒鎖, 默認(rèn)不使用喚醒鎖.

2. 示例

計步算法與服務(wù)已經(jīng)集成至獨立Maven庫或AAR庫, 使用Intent發(fā)送計算后的數(shù)據(jù)(步數(shù)與運動時間), 供主App使用和展示.

動畫

3. 模塊

算法庫使用模塊化開發(fā).

Modules

4. 合作

本算法目前僅在公司內(nèi)部使用, 如需合作, 直接站內(nèi)私信我.

OK, That's all. Enjoy it!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市每聪,隨后出現(xiàn)的幾起案子旦棉,更是在濱河造成了極大的恐慌齿风,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绑洛,死亡現(xiàn)場離奇詭異救斑,居然都是意外死亡,警方通過查閱死者的電腦和手機真屯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門脸候,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绑蔫,你說我怎么就攤上這事运沦。” “怎么了配深?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵携添,是天一觀的道長。 經(jīng)常有香客問我篓叶,道長烈掠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任缸托,我火速辦了婚禮左敌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘俐镐。我一直安慰自己矫限,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布佩抹。 她就那樣靜靜地躺著叼风,像睡著了一般。 火紅的嫁衣襯著肌膚如雪匹摇。 梳的紋絲不亂的頭發(fā)上咬扇,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音廊勃,去河邊找鬼懈贺。 笑死经窖,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的梭灿。 我是一名探鬼主播画侣,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼堡妒!你這毒婦竟也來了配乱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤皮迟,失蹤者是張志新(化名)和其女友劉穎搬泥,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伏尼,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡忿檩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了爆阶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片燥透。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖辨图,靈堂內(nèi)的尸體忽然破棺而出班套,到底是詐尸還是另有隱情,我是刑警寧澤故河,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布吱韭,位于F島的核電站,受9級特大地震影響忧勿,放射性物質(zhì)發(fā)生泄漏杉女。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一鸳吸、第九天 我趴在偏房一處隱蔽的房頂上張望熏挎。 院中可真熱鬧,春花似錦晌砾、人聲如沸坎拐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哼勇。三九已至,卻和暖如春呕乎,著一層夾襖步出監(jiān)牢的瞬間积担,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工猬仁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留帝璧,地道東北人先誉。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像的烁,于是被迫代替她去往敵國和親褐耳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容