二、客戶端技術(shù)
1.安卓應(yīng)用的“續(xù)命大法”:應(yīng)用停止運(yùn)行會(huì)自動(dòng)復(fù)活,一式:監(jiān)聽(tīng)系統(tǒng)事件;二式:守護(hù)進(jìn)程不斷檢查喚醒、三式:關(guān)聯(lián)應(yīng)用互相喚醒。
2.移動(dòng)應(yīng)用粗分為三種:原生應(yīng)用(native app), 網(wǎng)頁(yè)應(yīng)用(web app,或HTML5 app),混合模式移動(dòng)應(yīng)用(hybrid app)。
在Android系統(tǒng)的“開(kāi)發(fā)者選項(xiàng)”>“顯示布局邊界”的功能,可參考用哪種。
3. 手機(jī)傳感器
1)磁場(chǎng)傳感器:測(cè)定出手機(jī)在x、y、z三個(gè)方向上的磁場(chǎng)強(qiáng)度,用戶旋轉(zhuǎn)手機(jī),直到只有一個(gè)方向上的值不為零時(shí),手機(jī)就指向了正南方。適用場(chǎng)景:指南針。
2)加速度傳感器:返回的是當(dāng)前手機(jī)在x、y、z三個(gè)方向上的加速度值。適用場(chǎng)景:當(dāng)用戶拿著手機(jī)運(yùn)動(dòng)時(shí),手機(jī)會(huì)隨著身體上下擺動(dòng),加速度傳感器就會(huì)檢測(cè)出加速度在某個(gè)方向上來(lái)回改變,通過(guò)計(jì)算來(lái)回改變的次數(shù),可以得出步數(shù)。
3)三軸陀螺儀:可以測(cè)定出當(dāng)前手機(jī)在x、y、z三個(gè)方向上的角加速度,主要用來(lái)檢測(cè)手機(jī)的旋轉(zhuǎn)方向。適用場(chǎng)景:翻轉(zhuǎn)手機(jī)就可以接聽(tīng)電話的功能。
4)指紋傳感器:按技術(shù)可以分為光學(xué)式、電容式及射頻式3種。手機(jī)上普遍采用的是電容式指紋傳感器。
5)近距離傳感器:能夠檢測(cè)手機(jī)附近物體距手機(jī)正面的距離,它依靠一個(gè)小型雷達(dá)實(shí)現(xiàn),通過(guò)發(fā)射一些脈沖信號(hào)并檢測(cè)返回時(shí)間計(jì)算距離。
6)光線傳感器:檢測(cè)手機(jī)正面接收的光照強(qiáng)度,從而對(duì)應(yīng)地改變手機(jī)屏幕的亮度。
7)氣壓傳感器:可以檢測(cè)當(dāng)前的大氣壓強(qiáng),從而推測(cè)出用戶所在位置的海拔高度。
8)溫度傳感器:可以獲取當(dāng)前環(huán)境的溫度。
4. 定位終端設(shè)備位置:通過(guò)系統(tǒng)接口獲取當(dāng)前手機(jī)的經(jīng)緯度,上傳給服務(wù)器。
獲取經(jīng)緯度3種方式:GPS 定位靠的是衛(wèi)星、Wi-Fi定位的參照物是無(wú)線路由器、基站定位的參照物就是基站。
5. 客戶端推送實(shí)現(xiàn)方式:服務(wù)器主動(dòng)連接所有 APP,要求客戶端再發(fā)起一次請(qǐng)求,于是收到推送的 APP(即使此時(shí)已經(jīng)被用戶關(guān)閉)又去服務(wù)器請(qǐng)求最新的新聞。
6. 美顏原理:利用了圖像處理中的幾個(gè)濾鏡算法。如今,視頻直播也用上了美顏,其原理是實(shí)時(shí)地對(duì)攝像頭里采集到的視頻畫(huà)面應(yīng)用濾鏡。需要注意的是,千萬(wàn)不要用CPU做濾鏡算法的運(yùn)算,而要用OpenGL充分發(fā)揮GPU的能力,因?yàn)镚PU的設(shè)計(jì)原理最適合這種工作量大又沒(méi)有難度的重復(fù)計(jì)算任務(wù)。
7. 聽(tīng)歌識(shí)曲的實(shí)現(xiàn)方式:是對(duì)數(shù)據(jù)庫(kù)里的所有音樂(lè)提取樂(lè)紋。對(duì)每一首音樂(lè),先算出它的頻譜圖,然后把它分成幾個(gè)片段,每一段都在頻譜圖上找?guī)讉€(gè)點(diǎn)作為特征點(diǎn),從而生成這一片段的樂(lè)紋。一首歌通常有很多樂(lè)紋,都以倒排索引的形式存儲(chǔ)在數(shù)據(jù)庫(kù)里。對(duì)于上傳的錄音,也是先提取它的樂(lè)紋,然后在數(shù)據(jù)庫(kù)里進(jìn)行檢索,最后考慮樂(lè)紋的排列、時(shí)間間隔等因素,找到最相似的音樂(lè)。
8. 緩存系統(tǒng):通常分兩級(jí),稱為一級(jí)緩存和二級(jí)緩存。一級(jí)緩存也叫內(nèi)存緩存,二級(jí)緩存也叫磁盤(pán)緩存(在硬盤(pán)或者SD卡上的緩存)。顯然,一級(jí)緩存存取速度最快,會(huì)多占一些內(nèi)存,這是非常合理的一種以空間換取時(shí)間的程序設(shè)計(jì),數(shù)據(jù)隨著程序退出而消失。二級(jí)緩存容量更大,存取速度要慢一些,程序下次啟動(dòng)時(shí),依然可以使用緩存內(nèi)容。