蘇 燕,梁 武
(北海職業學院電子信息工程系,廣西 北海 536000)
作為首個真正完全開發的手機移動平臺,Android以其開源性及強勁的功能被稱為目前世界上最為流行的手機操作系統之一。 Android 系統最初由安迪魯賓等人開發研制,最初的目的是為數碼照相機提供一個先進時尚的操作系統,經過發展后發現市場需求根本不大,然而智能手機市場又剛好適應社會需求快速成長,于是Android 系統被他們改造成一款專門適合智能手機的操作系統。 Android 一詞英文本意為“人形機器人”。 2007 年11 月5 日,Google 公司正式對外宣布,并展示了基于Linux 內核系統的開放源代碼移動設備操作系統并宣布將其命名為Android。 自此Android 便以最具開放性的手機開發系統在操作系統中嶄露頭角。為了更好地開發與推廣Android 手機操作系統,2007 年11 月,Google 公司與34 家手機企業攜手建立了開發手機聯盟。 隨著Android 操作系統的不斷完善和快速發展,Android 操作系統慢慢逐漸替代并拓展到平板電腦及其他領域[1-3]。
(1)可自由隨時在無線網絡間切換,大大地節省上網費用。
(2)系統操作界面更加簡單方便,操作也更加便利。
(3)網絡鏈接簡單快速,是移動終端的最佳搭檔。
(4)支持多項任務同時進行,任務之間切換簡單。
(5)與微軟的Exchange 可以同步,使工作娛樂可同時進行。
(6)系統發展前景更加廣闊,軟件卸載安裝更便捷。
(7)Linux 內核非常強大,幾乎不死機。
由于Android 系統需要支持Java 代碼的運行,最底層 LinuxKernel (Linux 內核)的所有程序幾乎都是用C語言來編寫的,因此最底層是整個系統的核心支持庫。HAL 層,硬件抽象層,Android 體系結構沒有HAL 層、硬件抽象層。 個性定制無法改變其源碼。 幾乎都是驅動代碼封裝起來。 Lib 庫層,為了方便程序員的學習,封裝起來的一個層,這樣就更加簡單方便了,全部都是C 語言編寫的封裝方法,不需要操作底層。 應用框架層與應用層都是用Java 代碼寫,在編寫過程中為了讓程序員方便用Java 直接調用C 語言,封裝了新的層,通過這樣的方式直接用Java 調用方法就可以了。
Android 系統中,每個Android 應用都將運行在自己的Linux 進程當中。 當一個程序或其某些部分被請求時,它的進程就被創建了;當這個程序沒有必要再進行下去且系統需要回收這個進程的內存用于其他程序時,這個進程就“死亡”了。 Android 系統主動管理資源,為了保證高優級程序正常運行或者為了減輕系統內存負載,Android 系統會主動終止低優先級的程序,因此程序的生命周期是由Android 系統獨立控制的。Android 系統中的進程優先級,如圖1 所示,由優先級從低級到高級的順序進行[3]。
圖1 進程優先級
Android 系統是一個面向應用程序開發的平臺,它擁有具有吸引力的用戶界面元素、數據管理和網絡應用等優秀的功能。 Android 還提供了許多頗具特殊的接口,如傳感器。 傳感器是讓Android 設備區別于其他計算機的重要功能。 如果沒有傳感器,Android 設備只是一個動力不足、屏幕太小的Web 瀏覽器,同時其輸入機制也很笨拙。 只要手機設備自帶的硬件可以提供這些監控傳感器,Android 系統應用就可以從外界條件通過傳感器來獲取,其中包括手機設備的運行狀態、溫度和壓力、目前的擺放方向、外界的磁場等。 該系統可以保障提供驅動程序去管理這些傳感器,然而當這些傳感器迅速感到外部環境發送改變時,這些傳感器數據由Android 系統負責管理[4-6]。
視頻監控實現應用開發的必備條件就是對傳感器的靈活運用,傳感器不僅僅是一種檢測裝置,同時也能檢測到被測量的信息,并能將被檢測到的信息,通過一定的規律轉換成其他所需形式或電信號的信息輸出,以此來滿足達到所需信息的傳輸、處理、存儲、顯示、記錄和控制等要求,它也是實現自動控制以及自動檢測的首要環節。 Android 系統中內置了很多類型的傳感器,這些傳感器被封裝在Sensor 類中。 Sensor 類是管理各種傳感器共同屬性(名字、供應商、類型、版本)的類。SensorManager 類就是全部傳感器的一個綜合管理類,也同樣包括傳感器的種分類、采樣率、精確度等,是Android 為應用提供傳感器硬件訪問能力的系統服務。和其他系統服務一樣,它允許用戶注冊或注銷傳感器相關事件。 一旦注冊成功,應用將會接收到從硬件傳來的傳感器數據。
Android 中的傳感器大致可以分為六大類。
光線傳感器主要是用來檢測手機周圍光的強度,位于一個小的黑色玻璃開口下面。 它只是一個光敏二極管,工作方式和LED 的物理原理相同,但是發光條件卻正好相反。 不是在施加電壓時發光,而是在光入射時產生電壓。 與其他傳感器區別之處就是,該傳感器只能讀取一個數值,也就是手機周圍光的強度,單位為勒克斯(LX)。
接近傳感器包含一個在光電探測器邊上的弱紅外LED。 當有物體離傳感器足夠近時,光敏傳感器會檢測到反射的紅外光。 接近傳感器分為兩類:一類是用來檢測物體與手機的距離,單位是CM,另一類則是現在大多數智能手機中的接近傳感器用法——測量物體是否在一個閾值距離內,其有價值的閾值距離一般為2~4 CM。 其中一些接近傳感器往往只能返回遠和近兩種狀態。 接近傳感器可以將最大距離返回狀態,而小于最大距離就是返回近狀態。 接近傳感器可用于在接聽電話時自動關閉LCD 屏幕以達到節省電量的目的。 而另外一些芯片集成了接近傳感器和光線傳感器的共同功能。
環境溫度傳感器提供室內溫度,這種傳感器是為了取代已逐步淘汰的用于檢測CPU 溫度。 環境溫度傳感器感應后會返回一個數據,收到的該數據表明了手機設備周圍的溫度。
方向傳感器主要用來感應手機設備的狀態擺放,并且方向傳感器可以返回3 個角度,而這3 個角度就可確定手機的擺放狀態,分別為:方向角、傾斜角以及旋轉角。
加速度傳感器或許是目前為止最成熟的一種微機電傳感器,現如今市面上看到的加速度傳感器種類繁多。 而我們的手機中常用的加速度傳感器有BOSCH的BMA 系列、AMK 系列、ST 系列。
磁場傳感器主要工作用來獲取手機設備外部的磁場強硬度。 哪怕周圍沒有任何的直接磁場感應,手機設備也都會始終處于地球磁場中。
視頻的開始和停止是由晃動手機來實現的,其主要思路是:當手機晃動時,加速度的變化幅度超過設定界定,視為決定播放和停止。 與獲取傳感器值類似,首先通過gessystemService 方法得到SensorManager 對象,然后通過RegisterListener 方法來對其進行注冊,并在onSensorChanged()方法中設置監聽器以實現該功能,最后注銷傳感器。 視頻監控系統實現代碼如下:
遠程視頻監控已經成為社會發展的潮流,基于Android 系統的遠程視頻監控更是極其方便用戶隨時隨地查看,保障安全性和及時性,Android 系統的遠程視頻監控作為一項新流行的科學技術,雖然目前還在不斷研究和探索中,但隨著社會的不斷發展,設備及系統的不斷完善,計算機網絡的飛快進步,Android 系統的遠程視頻監控將會運用到各個領域。