999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

移動智能終端溫度的檢測方法

2017-05-02 15:06:37解謙張睿徐永太張沛
移動通信 2017年7期

解謙++張睿++徐永太++張沛

【摘 要】移動智能終端發展迅速,在配置與處理速度不斷加快的同時,發熱問題也越來越嚴重,因此針對基于Android智能操作系統的智能終端,提出了一種利用移動智能終端內置傳感器檢測終端工作時溫度表現的測試方法,并闡述了該方法的總體構架、溫度獲取方法、結果分析以及溫度預警等內容。

【關鍵詞】移動智能終端 溫度檢測 內置傳感器

1 引言

移動智能終端發展迅速,從早期的單核處理到現在的多核處理器,移動智能終端擁有了更高的主頻、更快的處理速度、更薄的機身等,與此同時其發熱問題也越來越被人們所關注。

在電子元件行業有著名的10℃法則,電子元件工作溫度每升高10℃,其使用壽命約減少一半,且故障發生率相應提高約一倍[1]。造成移動智能終端溫度過高的原因多種多樣,除了為追求更小的機身體積造成PCB板面積過小,無更高效的散熱手段外,在終端上執行過多的應用造成各部件長時間高負荷的運行也是主要原因。目前智能終端可以安裝和運行不同應用(APP),這些應用在使用智能終端硬件資源的使用,以及執行效率等方面各有不同,所以在運行過程中的發熱情況也有較大差異。

當移動智能終端發熱過高時,首先會嚴重影響到用戶攜帶和持握終端時的感受,尤其在夏季,當終端溫度到達40℃或更高的時候,用戶會感覺終端燙手,難以長時間使用。其次移動智能終端的溫度能從側面反映終端的工作情況,由于移動智能終端在設計時會重點考慮其便攜性,在現有技術的限制下,電池容量有限,過高的溫度代表過高的電量損耗,將急劇縮短移動終端的續航時間。最后當溫度過高時,還可能引發電池等部件的爆炸事故。因此檢測智能終端在工作時的升溫情況是十分必要的。

移動智能終端工作時的溫度檢測可以在終端處于不同的工作狀態下進行檢測,檢測的方式可以通過兩種不同的途徑實現。第一種可以通過終端內置傳感器對溫度進行檢測,第二種通過外部設備對終端溫度進行檢測。本文重點給出以通過終端內置傳感器方式檢測移動智能終端溫度的方案,主要針對基于Android智能操作系統的智能終端。

2 移動智能終端溫度檢測方法

2.1 總體構架

移動智能終端內置有多種溫度傳感器,這些傳感器都可以通過終端軟件內置接口獲取溫度信息,從而通過軟件方式實現移動智能終端工作時的溫度檢測。

測量移動智能終端的溫度,首先需要使終端進入工作狀態,在終端工作的同時測量溫度、監控升溫情況,測試結束后需要對結果進行分析處理,并將結果存入數據庫。移動智能終端溫度檢測總體架構主要包括啟動模塊、溫度檢測服務模塊、負載模塊、結果反饋模塊等,如圖1所示:

2.2 啟動模塊

啟動模塊用于控制整個溫度測試的啟動邏輯,主要作用是同步負載和溫度檢測服務,還可以對檢測模式進行選擇。

因為智能終端在不同的工作模式下,其溫度變化會有差異,所以溫度檢測方式可以分為不同情況:

(1)待機狀態:可以在移動智能終端待機時進行測試,檢測待機時溫度變化情況。待機狀態下,僅需要啟動溫度檢測服務,測量移動智能終端的溫度變化情況。

(2)普通工作狀態:測量在用戶正常使用時移動智能終端的溫度變化情況。普通工作狀態和待機狀態一樣,僅需要啟動溫度檢測服務,測量移動智能終端溫度變化情況。

(3)高負載工作狀態:測量移動智能終端在特定狀態下的溫度變化情況,通常情況下通過對移動智能終端施加高負載,使其處在高負荷工作狀態下測量溫度變化情況。在高負載工作狀態下測量溫度,需要同時啟動溫度檢測服務和測試負載。

2.3 負載模塊

負載測試指移動智能終端通過運行一段(一組)程序或者操作,來評測終端相關性能的活動。比較早期的基準測試程序是著名的Whetstone,是在20世紀60年代由英國國家物理實驗室(NPL)的科學家詹姆斯·威爾金森(James Hardy Wilkins)組織開發的一個用以測試系統浮點運算能力的基準測試工具。發展到現在,測試使用的負載已經多種多樣,測試內容可以基于終端硬件,如CPU、GPU、儲存器等;也可以基于應用,如多媒體處理、游戲、功耗等。

最好的基準測試程序是真實的、應用的綜合基準測試程序,這是為了模擬實際應用的特征和行為而編寫的應用[2]。對于溫度測試,需要使移動智能終端處于高負荷工作狀態,可以使用3D游戲負載或高清視頻負載充分調動終端的CPU、GPU和儲存系統等部件。3D游戲負載可以基于OPENGL ES技術,搭建模擬3D場景,通過大量貼圖、高質量的渲染及陰影效果進行測試。高清視頻負載則可以選擇分辨率達到或超過終端屏幕分辨率的視頻源進行測試。

2.4 溫度檢測服務模塊

移動智能終端內置有多種傳感器,主要包括用于監測CPU溫度的熱敏傳感器,以及內置于電池組的溫度傳感器。下文以Android系統為例,說明終端溫度的獲取方法。

(1)CPU溫度獲取方法

在Android系統中,可以通過Thermal管理獲得CPU溫度信息。Thermal管理是在Android平臺上的一套溫度管理構架,能夠為終端提供傳感器管理、溫控管理等一系列功能。Thermal管理構架如圖2所示。

其中Thermal管理可以通過CPU內置sensor檢控和上報溫度信息。

在Linux系統中任何設備的操作都被抽象成文件讀寫,所以可以通過讀取/sys/class/thermal/thermal_zone0/temp獲得CPU溫度信息[3],其溫度獲取方法如圖3所示。

1)獲取溫度信息,通過FileInputeStream類從/sys/class/thermal/thermal_zone0/temp位置中獲取包含CPU溫度信息的字節流。

2)轉換溫度信息,將獲取的溫度信息字節流通過InputStreamReader類轉換成字符流。

3)構建一個BufferedReader實例,通過ReadLine() 方法將CPU溫度信息讀出[4]。

(2)電池溫度

在Android系統中,電池溫度信息由系統廣播發布。BatteryManager類通過一個粘性的Intent向系統廣播電池和充電方面的所有信息,主要包含信息如表1所示[5]。

獲取EXTRA_TEMPERATURE當前電池溫度的方法:

1)首先需要在系統中注冊一個廣播接收器,接收系統中的Intent.ACTION_BATTERY_CHANGED。

2)在截獲Intent.ACTION_BATTERY_CHANGED廣播后,系統會將電池全部信息放入廣播接收器的Intent中,可以通過getIntExtra方法指定EXTRA_TEMPERATURE參數獲取電池溫度。

(3)后臺服務

溫度檢測服務可以通過啟動模塊進行啟動。因為它需要在移動智能終端運行測試負載時、或者執行其他操作時同步進行溫度檢測,所以需要使用后臺服務方式實現。

后臺服務允許程序在后臺執行一些耗時較長的操作,并且不提供用戶界面。服務能被其他應用程序的組件啟動,即使用戶切換到其他的應用時還能保持后臺運行。以安卓系統為例,服務分為Started和Bound兩種[6]:

1)Started服務通過startService()命令來啟動。一旦被啟動,服務就能在后臺一直運行下去,即使啟動它的組件已經被銷毀。通常Started的服務是單一操作,并且不會向調用者返會結果。

2)Bound服務通過調用bindService()命令將一個應用程序組件綁定到服務上。Bound服務提供了一個客戶端/服務器接口,允許組件與服務進行交互、發送請求、獲取結果,甚至可以利用進程間通信(IPC)跨進程執行這些操作。綁定服務的生存期和被綁定的應用程序組件一致。多個組件可以同時與一個服務綁定,不過所有的組件解除綁定后,服務也就會被銷毀。

對于移動終端溫度檢測,Started服務即可實現后臺啟動溫度檢測服務。溫度檢測服務可以每隔一段時間間隔Δt來讀取一次CPU和電池溫度,并將結果按對應的時間節點,以及此時各進程對CPU的占用情況進行記錄。記錄進程對CPU的占用情況對終端的溫度檢測是十分有必要的。

啟動溫度檢測服務時還需要注意以下幾點:

1)當執行高負載工作狀態測試時,為獲取到完成的溫度信息,需要在啟動負載前先通過startService()命令啟動溫度檢測服務。

2)溫度檢測服務需要創建一個單獨的線程進行工作,以避免阻塞主線程。

3)溫度檢測服務能實時讀取移動智能終端CPU和電池溫度信息,在工作同時也消耗系統資源,而且移動智能終端溫度的改變相對來說是一個相對平緩的過程,所以需要慢速讀取,如500 ms。

4)在待機和普通工作狀態下,可以設置專門的按鈕結束測試并終止溫度檢測服務,并將結果回傳給溫度檢測應用程序。如果在高負載工作狀態下,則可以在負載工作完成時終止測試并終止溫度檢測服務。

2.5 溫度檢測結果

在終端運行溫度檢測服務一段時間后,可以得到該時間段終端的溫度表現,包括CPU溫度和電池溫度等。對于溫度結果信息可以進行數據分析工作,如測量溫度檢測過程中終端的最高溫度和最低溫度,計算溫度檢測過程中終端的平均溫度表現。將溫度檢測結果繪制成曲線圖方式也能夠很好地判斷終端溫度變化趨勢[7]。

2.6 溫升預測及預警

在獲取溫度信息后,不僅能夠對移動智能終端的溫度情況進行監控,還能做出報警和預警處理。

報警處理是提前設置移動智能終端允許達到的最高溫度,當移動智能終端當前監測到的溫度超過設置的最高門限值時,通過一定的方式告知終端用戶移動智能終端溫度過高。為保護手機和電池性能,由中國質量技術監督局發布的GB/T 18287-2013《蜂窩電話用鋰離子電池總規范》中規定手機電池最高工作溫度為5℃[8]。

預警處理是通過歷史溫度信息分析每個應用(進程)的溫度表現情況,預測在移動智能終端當前工作條件下未來可能達到的溫度。這樣可以通過預警處理,在終端溫度未達到報警門限值前,提前告知用戶潛在的溫升風險,用戶可以提前進行相應的處理。由于移動智能終端是工作在一個復雜的條件下,所以對溫度的預警處理應當是一個動態的過程,實時通過終端的溫度信息進行調整。溫度預警處理可以通過以下方式進行:

(1)相對于溫度檢測的服務,溫度預警的處理在時間要求上更為寬松,可以設置Δt為10 s或更高的時間間隔進行數據采集和預警計算,這是因為:1)溫度預警的目的是為了提前通知用戶潛在的升溫風險,讓用戶能提前對智能終端的工作情況進行干預,相對高的提前量能讓用戶有充裕時間進行操作;2)相比溫度檢測服務,溫度預警在計算處理上更為復雜,拉長處理間隔、降低處理頻率也有利于降低系統負載,不產生多余熱量。

(2)在每一個預警處理時間點tn獲取當前使用CPU的各個應用(進程)的升溫表現情況Kn,如公式(1)所示:

= (1)

其中,Ki為終端在時間ti到時間ti-1時終端的溫升的1%,如公式(2)所示:

Ki=(Tempi-Tempi-1)×1% (2)

每個進程單獨統計自身進程的,在當前時間節點該進程工作時,將Ki納入該進程的計算。

(3)在時間節點tn在獲取當前溫度并計算每個當前工作進程的升溫表現后,進行下一個時間節點tn-1整個終端的溫度的預測,下一個時間節點的終端溫度為當前終端溫度與當前所有進程產生的溫升之和,如公式(3)所示:

Tempi+1=Tempi+(P1+P2P3+…Pn) (3)

其中Pn為當前運行的第n個進程的溫升,如公式(4)所示:

per (4)

per為當前進程對CPU的使用率,在獲取終端溫度信息同時,可以通過進程的PID獲取[9],如adb的top命令。

(4)當Tempi+1超過設定的報警閾值后,終端可以向用戶進行報警。告知方式可以是UI的界面提醒,也可以通過響鈴或震動等方式提示用戶。檢測工具原型如圖4所示。

圖4 檢測工具原型

3 結束語

除了本文提到的可以通過終端內置傳感器方式檢測終端溫度外,還可以通過外部設備對終端溫度進行檢測。

外部設備對終端溫度檢測方法通常為:在溫箱環境或外部環境中,通過支架固定智能終端,并采用紅外成像儀、熱偶等外置溫度檢測工具[10],在固定的距離上對智能終端的發熱情況進行檢測和記錄。測試過程中需要人工開啟并設置溫箱溫度、開啟溫度檢測工具,并對智能終端特定的操作進行檢測。在較為復雜的測試條件下,可能還會添加機器人手臂、攝像儀器等設備對智能終端進行操作。測試結束后,通過讀取外置溫度檢測工具的讀數,生成終端溫度檢測結果或報告。

相對于外部設備檢測方法,通過內置傳感器檢測方式不需要昂貴的專業檢測設備和場地,也不需要具備相關技術背景的專門技術人員進行檢測。它通過軟件方式實現,成本低廉、操作簡單,一般用戶就可以自行對終端溫度進行檢測。但同時由于溫度檢測服務需要運行在終端內部,本身也產生一定的熱量,這對檢測結果會產生一定影響。

移動終端溫度檢測方法不僅用于對終端溫度的檢測和預警,終端開發者可以基于本文闡述的方法,根據需求開發更多其他基于終端溫度的應用。

參考文獻:

[1] 張學新. 某地面電子設備的熱設計[J]. 電子機械工程, 2014,30(4): 8-11.

[2] John L Hennesy, David A Patterson. 計算機系統結構-量化研究方法[M]. 4版. 北京: 電子工業出版社, 2007.

[3] 徐凱. 獲取CPU溫度[EB/OL]. (2014-08-02). http://blog.csdn.net/xukai871105/article/details/38349209.

[4] zzzmmmkkk. Java中BufferedReader & InputStream-Reader用法[EB/OL]. (2012-04-14). http://www.51testing.com/html/85/258885-811659.html.

[5] 杰瑞教育. Android之PowerManager&BatteryManager

[EB/OL]. (2015-10-14). http://www.cnblogs.com/jerehedu/

p/4876842.html.

[6] scott2017. Android Service最全面的解析[EB/OL]. (2016-05-26). http://blog.csdn.net/scott2017/article/details/51505801.

[7] 陳鵬. 基于 Android 應用的性能監控系統的研究與實現[D]. 廣州: 華南理工大學, 2015.

[8] GB/T 18287-2013. 蜂窩電話用鋰離子電池總規范[S]. 2000.

[9] 紅黑聯盟. Android獲取應用cpu使用率[EB/OL]. (2014-03-15). http://www.2cto.com/kf/201403/285597.html.

[10] 寧培一. 手機安全測試中的溫升要求及試驗簡介[J]. 中國無線電, 2010(5): 78. ★

主站蜘蛛池模板: 99资源在线| 麻豆国产精品视频| 国产毛片基地| 91探花在线观看国产最新| 欧美日韩一区二区三区在线视频| 亚洲精品无码久久毛片波多野吉| 欧美日韩久久综合| 久久国产亚洲偷自| 日韩精品毛片人妻AV不卡| 国产国语一级毛片| 亚洲一区网站| 国产黄色视频综合| 日本高清免费不卡视频| 日本尹人综合香蕉在线观看 | 国产欧美成人不卡视频| 一级毛片在线播放免费| 秘书高跟黑色丝袜国产91在线| 久久 午夜福利 张柏芝| 日韩不卡高清视频| 国产全黄a一级毛片| 99精品国产自在现线观看| 亚洲一区免费看| 99精品国产自在现线观看| 国产成人精品日本亚洲| 精品国产成人高清在线| 国产无遮挡裸体免费视频| 看国产毛片| 高清无码一本到东京热| 国产精品对白刺激| 欧美色综合久久| 国产在线精品人成导航| 婷婷综合在线观看丁香| 91精品视频在线播放| 亚洲国产精品不卡在线| 四虎在线高清无码| 久久五月天综合| 精品国产香蕉在线播出| 伊人久久大线影院首页| 亚洲一区二区约美女探花| 日韩欧美中文| 91久久夜色精品国产网站| 97在线观看视频免费| jijzzizz老师出水喷水喷出| 免费看一级毛片波多结衣| 97se亚洲综合在线天天| 国产精品思思热在线| 亚洲va精品中文字幕| 91在线播放免费不卡无毒| 国产精品密蕾丝视频| AV无码无在线观看免费| 一区二区无码在线视频| 五月婷婷伊人网| 黄色不卡视频| 亚洲天堂久久| 国产91视频免费观看| 欧美一级高清片欧美国产欧美| 少妇高潮惨叫久久久久久| 国产精品免费久久久久影院无码| 欧美在线导航| 在线中文字幕网| 手机精品福利在线观看| 97超爽成人免费视频在线播放| 午夜视频免费试看| 欧美不卡视频一区发布| 91蜜芽尤物福利在线观看| 中文字幕免费播放| 天堂网亚洲系列亚洲系列| 波多野衣结在线精品二区| 亚洲日韩精品伊甸| 中文字幕久久波多野结衣| 欧美一级大片在线观看| 亚洲天堂网视频| 午夜激情婷婷| 91综合色区亚洲熟妇p| 国产精品香蕉| 色婷婷视频在线| 欧洲亚洲一区| 9丨情侣偷在线精品国产| 久久黄色一级片| 制服丝袜无码每日更新| 色呦呦手机在线精品| 无码高潮喷水在线观看|