亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

        【關(guān)鍵詞】移動智能終端 溫度檢測 內(nèi)置傳感器

        1 引言

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

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

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

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

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

        2.1 總體構(gòu)架

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

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

        2.2 啟動模塊

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

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

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

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

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

        2.3 負(fù)載模塊

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

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

        2.4 溫度檢測服務(wù)模塊

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

        (1)CPU溫度獲取方法

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

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

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

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

        2)轉(zhuǎn)換溫度信息,將獲取的溫度信息字節(jié)流通過InputStreamReader類轉(zhuǎn)換成字符流。

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

        (2)電池溫度

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

        獲取EXTRA_TEMPERATURE當(dāng)前電池溫度的方法:

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

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

        (3)后臺服務(wù)

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

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

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

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

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

        啟動溫度檢測服務(wù)時還需要注意以下幾點(diǎn):

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

        2)溫度檢測服務(wù)需要創(chuàng)建一個單獨(dú)的線程進(jìn)行工作,以避免阻塞主線程。

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

        4)在待機(jī)和普通工作狀態(tài)下,可以設(shè)置專門的按鈕結(jié)束測試并終止溫度檢測服務(wù),并將結(jié)果回傳給溫度檢測應(yīng)用程序。如果在高負(fù)載工作狀態(tài)下,則可以在負(fù)載工作完成時終止測試并終止溫度檢測服務(wù)。

        2.5 溫度檢測結(jié)果

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

        2.6 溫升預(yù)測及預(yù)警

        在獲取溫度信息后,不僅能夠?qū)σ苿又悄芙K端的溫度情況進(jìn)行監(jiān)控,還能做出報警和預(yù)警處理。

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

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

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

        (2)在每一個預(yù)警處理時間點(diǎn)tn獲取當(dāng)前使用CPU的各個應(yīng)用(進(jìn)程)的升溫表現(xiàn)情況Kn,如公式(1)所示:

        = (1)

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

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

        每個進(jìn)程單獨(dú)統(tǒng)計自身進(jìn)程的,在當(dāng)前時間節(jié)點(diǎn)該進(jìn)程工作時,將Ki納入該進(jìn)程的計算。

        (3)在時間節(jié)點(diǎn)tn在獲取當(dāng)前溫度并計算每個當(dāng)前工作進(jìn)程的升溫表現(xiàn)后,進(jìn)行下一個時間節(jié)點(diǎn)tn-1整個終端的溫度的預(yù)測,下一個時間節(jié)點(diǎn)的終端溫度為當(dāng)前終端溫度與當(dāng)前所有進(jìn)程產(chǎn)生的溫升之和,如公式(3)所示:

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

        其中Pn為當(dāng)前運(yùn)行的第n個進(jìn)程的溫升,如公式(4)所示:

        per (4)

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

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

        圖4 檢測工具原型

        3 結(jié)束語

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

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

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

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

        參考文獻(xiàn):

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

        [2] John L Hennesy, David A Patterson. 計算機(jī)系統(tǒng)結(jié)構(gòu)-量化研究方法[M]. 4版. 北京: 電子工業(yè)出版社, 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 應(yīng)用的性能監(jiān)控系統(tǒng)的研究與實現(xiàn)[D]. 廣州: 華南理工大學(xué), 2015.

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

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

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

        亚洲蜜臀av一区二区三区| 丝袜美腿一区二区三区| 国产精品186在线观看在线播放| 丁香美女社区| 精品免费看国产一区二区| 亚洲精品毛片一区二区三区| 日本熟妇hd8ex视频| 一区二区三区四区国产亚洲| 少妇真人直播免费视频| 秋霞午夜无码鲁丝片午夜精品| 伊人婷婷色香五月综合缴激情| 亚洲国产高清一区av| 脱了老师内裤猛烈进入| 风韵多水的老熟妇| 精品国产av 无码一区二区三区| 91伊人久久| 一区二区日本影院在线观看| 青青青爽在线视频免费播放 | 亚洲国产成人无码电影| 一本色道久久88加勒比综合| 久久国内精品自在自线| 亚洲香蕉成人av网站在线观看| 亚洲综合久久成人a片| 国产午夜亚洲精品不卡免下载| 久久精品久99精品免费| 中文无码人妻有码人妻中文字幕| 97夜夜澡人人爽人人喊中国片| 国产av一区二区三区丝袜| 女主播啪啪大秀免费观看| 国产综合精品久久99之一| 亚洲av一二三四区四色婷婷| 欧美尺寸又黑又粗又长| 亚洲精品第一国产麻豆| 日本精品久久性大片日本| 精品一区二区三区牛牛| 音影先锋中文字幕在线| 中国丰满人妻videoshd| 亚洲的天堂av无码| 日本精品人妻在线观看| 亚洲人成在久久综合网站| 日韩精品一区二区午夜成人版|