TWI575372B - 行動裝置基於熱條件之動態調整 - Google Patents

行動裝置基於熱條件之動態調整 Download PDF

Info

Publication number
TWI575372B
TWI575372B TW105113128A TW105113128A TWI575372B TW I575372 B TWI575372 B TW I575372B TW 105113128 A TW105113128 A TW 105113128A TW 105113128 A TW105113128 A TW 105113128A TW I575372 B TWI575372 B TW I575372B
Authority
TW
Taiwan
Prior art keywords
mobile device
application
program
attribute
peer
Prior art date
Application number
TW105113128A
Other languages
English (en)
Other versions
TW201633131A (zh
Inventor
馬貝爾 菲利普 史坦利
葛瑞夫 卡普爾
厄梅許S 維萱帕恩
Original Assignee
蘋果公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 蘋果公司 filed Critical 蘋果公司
Publication of TW201633131A publication Critical patent/TW201633131A/zh
Application granted granted Critical
Publication of TWI575372B publication Critical patent/TWI575372B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Environmental & Geological Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)

Description

行動裝置基於熱條件之動態調整 對相關申請案之交叉參考
本申請案主張2014年5月30日申請之題為「行動裝置基於熱條件之動態調整(Dynamic Adjustment of Mobile Device Based on Thermal Conditions)」的美國臨時專利申請案第62/005,964號之優先權,該申請案之全部內容以引用之方式併入本文中。
本發明大體上係關於基於系統事件來管理系統資源。
行動運算裝置通常用電池來操作。一些行動運算裝置可經由蜂巢式資料及/或Wi-Fi網路連接無線地存取網路資源。此等行動裝置常常受電池容量及/或關於蜂巢式資料使用量之限制約束。
一些行動運算裝置允許使用者執行存取來自網路資源之資料的應用程式。使用者通常叫用應用程式且接著必須等待應用程式自網路資源擷取資料,使得該應用程式可呈現當前經更新內容。
在一些實施中,一種行動裝置可經組態以監測環境、系統及使用者事件。該行動裝置可經組態以偵測可觸發對系統設定之調整的一或多個事件之發生。
在一些實施中,該行動裝置可經組態有預定義及/或動態地定義 之屬性。該等屬性可由系統用以追蹤系統事件。該等屬性事件可被儲存且稍後用以預測該等屬性事件之未來發生。該等所儲存屬性事件可由該系統用以作出關於由該行動裝置執行之處理的決策。該等屬性可與允許預算資源支援該系統上之未來事件或活動的預算編制相關聯。
在一些實施中,在該行動裝置上執行之各種應用程式、功能及程序可提交屬性事件。該等應用程式、功能及程序可稍後請求基於該等所提交事件之預報。該等應用程式、功能及程序可基於與該等屬性相關聯之預算及與所報告事件相關聯之成本來執行預算編制。舉例而言,該等應用程式、功能及程序可與該行動裝置之作業系統或第三方應用程式相關聯。
在一些實施中,該行動裝置可經組態以將頻繁叫用之應用程式保持為最新。該行動裝置可持續追蹤應用程式何時由使用者叫用。基於叫用資訊,該行動裝置可預報應用程式在日間何時被叫用。該行動裝置可接著先佔地啟動該等應用程式且下載更新,使得該使用者可叫用該等應用程式且檢視當前經更新內容而不必等待該等應用程式下載經更新內容。
在一些實施中,該行動裝置可接收與應用程式相關聯之推播通知,該等推播通知指示新內容可供應用程式下載。該行動裝置可在背景中啟動與該等推播通知相關聯之應用程式且下載該新內容。在該內容經下載之後,該行動裝置可呈現一圖形介面,該圖形介面向該使用者指示接收到該推播通知。該使用者可接著叫用該等應用程式且檢視該經更新內容。
在一些實施中,該行動裝置可經組態以執行用於該行動裝置上之應用程式的內容之程序外下載及/或上傳。舉例而言,一專用程序可組態於該行動裝置上以用於下載及/或上傳用於該行動裝置上之應用程式的內容。在正執行該上傳/下載時,可暫時中止或終止該等應 用程式。可在該上傳/下載完成時叫用該等應用程式。
在一些實施中,在執行一應用程式或存取一網路介面之前,該行動裝置可經組態以檢查電池電力及蜂巢式資料使用量預算,從而確保足夠電力及資料可用於使用者叫用之操作。在於背景中啟動一應用程式之前,該行動裝置可檢查使用統計資料以判定該應用程式是否有可能在近期由使用者叫用。
在一些實施中,屬性事件資料可在由同一使用者擁有之行動裝置之間共用。該行動裝置可接收來自一同級裝置之事件資料且基於該所接收之事件資料來作出關於涉及該同級裝置之互動或操作的決策。該事件資料可作為預報、統計資料及/或原始(例如,未經處理)事件資料而共用。舉例而言,該行動裝置可基於該所接收之事件資料來判定是否與該同級裝置通信。
特定實施至少提供以下優點:可藉由回應於偵測到之事件而動態地調整該行動裝置之組件來節約電池電力。藉由預料使用者將何時叫用應用程式及下載內容使得使用者將在叫用應用程式後即刻檢視經更新內容,可改良使用者體驗。
下文附圖及描述中陳述一或多項實施之細節。其他特徵、態樣及潛在優點將自該描述及圖式以及申請專利範圍而變得顯而易見。
100‧‧‧行動裝置
102‧‧‧取樣精靈協助程式/取樣程序
104‧‧‧事件資料儲存區
106‧‧‧應用程式管理器/應用程式管理器程序
108‧‧‧應用程式/電力監測程序/電力監測器
110‧‧‧熱精靈協助程式
112‧‧‧裝置設定程序
114‧‧‧裝置感測器
116‧‧‧行事曆應用程式/行事曆
118‧‧‧時鐘應用程式/時鐘
120‧‧‧試探性程序
122‧‧‧裝置組件
124‧‧‧控制多工器
200‧‧‧用於叫用試探性程序之程序
300‧‧‧用於使用試探性程序調整行動裝置之設定的程序
400‧‧‧用於執行應用程式之背景提取更新的實例系統
402‧‧‧帳戶處理資料儲存區
404‧‧‧內容伺服器
406‧‧‧網路精靈協助程式
408‧‧‧活動監測器應用程式/活動監測器
500‧‧‧圖表
530‧‧‧圖表
560‧‧‧圖表
600‧‧‧用於預測性地啟動應用程式以執行背景更新之實例程序
700‧‧‧用於判定何時啟動行動裝置上之應用程式的實例程序
800‧‧‧說明趨勢表中之條目(例如,應用程式)之狀態轉變的流程圖
900‧‧‧說明用於將推播通知提供至行動裝置之系統的方塊圖
902‧‧‧推播提供器
904‧‧‧推播服務精靈協助程式
906‧‧‧推播通知伺服器
908‧‧‧應用程式
910‧‧‧高優先順序推播通知
912‧‧‧低優先順序推播通知
914‧‧‧推播通知篩選項
916‧‧‧喚醒清單
918‧‧‧未喚醒清單
920‧‧‧推播通知訊息
922‧‧‧推播通知資料儲存區
924‧‧‧傳輸項/訊息
926‧‧‧訊息
928‧‧‧推播篩選項
930‧‧‧喚醒清單
932‧‧‧未喚醒清單
934‧‧‧推播通知資料儲存區
936‧‧‧高優先順序推播通知儲存區
1000‧‧‧用於在推播通知伺服器處執行非喚醒推播之實例程序
1100‧‧‧用於回應於低優先順序推播通知而執行應用程式之背景更新的實例程序
1200‧‧‧用於回應於高優先順序推播通知而執行應用程式之背景更新的實例程序
1300‧‧‧用於在行動裝置上執行資料之背景下載及/或上傳的實例系統
1302‧‧‧背景傳送精靈協助程式
1304‧‧‧應用程式
1306‧‧‧伺服器
1308‧‧‧請求存放庫
1400‧‧‧用於執行背景下載及上傳之實例程序
1500‧‧‧圖形使用者介面(GUI)
1502‧‧‧應用程式
1504‧‧‧應用程式
1506‧‧‧應用程式
1508‧‧‧應用程式
1510‧‧‧應用程式/圖形物件
1512‧‧‧應用程式
1514‧‧‧應用程式
1516‧‧‧雙態觸變元件
1518‧‧‧雙態觸變元件
1520‧‧‧圖形物件
1600‧‧‧行動裝置
1602‧‧‧取樣精靈協助程式
1604‧‧‧事件資料
1606‧‧‧應用程式管理器
1608‧‧‧應用程式
1610‧‧‧識別服務精靈協助程式
1612‧‧‧同級資料儲存區
1620‧‧‧識別服務精靈協助程式
1622‧‧‧同級資料儲存區
1700‧‧‧用於在同級裝置之間共用資料的實例程序
1800‧‧‧運算裝置
1802‧‧‧記憶體介面
1804‧‧‧影像處理器及/或中央處理單元
1806‧‧‧周邊介面
1810‧‧‧運動感測器
1812‧‧‧光感測器
1814‧‧‧近接感測器
1816‧‧‧感測器
1820‧‧‧攝影機子系統
1822‧‧‧光學感測器
1824‧‧‧無線通信子系統
1826‧‧‧音訊子系統
1828‧‧‧揚聲器
1830‧‧‧麥克風
1840‧‧‧I/O子系統
1842‧‧‧觸控表面控制器
1844‧‧‧其他輸入控制器
1846‧‧‧觸控表面
1848‧‧‧其他輸入/控制裝置
1850‧‧‧記憶體
1852‧‧‧作業系統
1854‧‧‧通信指令
1856‧‧‧圖形使用者介面指令
1858‧‧‧感測器處理指令
1860‧‧‧電話指令
1862‧‧‧電子訊息傳遞指令
1864‧‧‧web瀏覽指令
1866‧‧‧媒體處理指令
1868‧‧‧GNSS/導航指令
1870‧‧‧攝影機指令
1872‧‧‧軟體指令
1874‧‧‧軟體指令
圖1說明行動裝置,該行動裝置經組態以執行該行動裝置之動態調整。
圖2說明用於叫用試探性程序之實例程序。
圖3說明用於使用試探性程序調整行動裝置之設定的程序。
圖4說明用於執行應用程式之背景提取更新的實例系統。
圖5說明用於判定使用者對行動裝置100上之應用程式之叫用機率的同級預報。
圖6為用於預測性地啟動應用程式以執行背景更新之實例程序之流程圖。
圖7為用於判定何時啟動行動裝置上之應用程式的實例程序之流程圖。
圖8為說明趨勢表中之條目的狀態轉變之流程圖。
圖9為說明用於將推播通知提供至行動裝置之系統之方塊圖。
圖10為用於在推播通知伺服器處執行非喚醒推播之實例程序之流程圖。
圖11為用於回應於低優先順序推播通知而執行應用程式之背景更新的實例程序之流程圖。
圖12為用於回應於高優先順序推播通知而執行應用程式之背景更新的實例程序之流程圖。
圖13為用於在行動裝置上執行資料之背景下載及/或上傳的實例系統之方塊圖。
圖14為用於執行背景下載及上傳之實例程序之流程圖。
圖15說明用於啟用及/或停用行動裝置上之應用程式之背景更新的實例圖形使用者介面(GUI)。
圖16說明用於在同級裝置之間共用資料的實例系統。
圖17說明用於在同級裝置之間共用資料的實例程序。
圖18為可實施圖1至圖17之特徵及程序的實例運算裝置之方塊圖。
各個圖式中之類似參考符號指示類似元件。
概述
本文中描述一種系統架構,其用於基於各種系統事件來啟用對行動裝置之調適以促進電池壽命、電力需求、熱管理及效能之間的取 捨。該系統提供基礎事件搜集架構及一組試探性程序,該組試探性程序自該等系統事件學習以在使用者體驗無顯著降級之情況下最大化電池壽命。該系統監測系統定義屬性及用戶端定義屬性且可使用系統定義屬性及用戶端定義屬性以預測或預報未來事件之發生。此系統可基於動態搜集之統計資料及/或明確指定之使用者意圖來預料該系統之未來行為以及使用者對裝置效能之期望。該系統可判定設定哪些硬體及軟體控制參數且將該等參數設定至何些值,以便改良使用者對所預料系統行為之體驗。該系統利用系統監測及硬體控制來達成使用者體驗之整體改良,同時擴展可用於行動裝置之系統及網路資源。因此,該系統可最大化系統及網路資源,同時最小化對使用者體驗之影響。
資料收集-使用者中心統計資料
圖1說明實例行動裝置100,其經組態以執行該行動裝置100之動態調整。在一些實施中,行動裝置100可包括取樣精靈協助程式102,該取樣精靈協助程式收集與裝置條件、網路條件、系統服務(例如,精靈協助程式)及使用者行為相關之事件。舉例而言,取樣精靈協助程式102可收集與應用程式、感測器及由行動裝置100接收之使用者輸入相關的統計資料且將統計資料儲存於事件資料儲存區104中。可藉由在行動裝置100上執行之各種用戶端(例如,應用程式、公用程式、功能、第三方應用程式等)使用經報告為事件之預定義或用戶端定義屬性將統計資料報告至取樣精靈協助程式102。
資料收集-事件及屬性
在一些實施中,行動裝置100可經組態有用於收集系統及/或應用程式事件之構架。舉例而言,行動裝置100可經組態有應用程式設計介面(API),該介面允許各種應用程式、公用程式及行動裝置100之其他組件將事件提交至取樣精靈協助程式102以用於稍後進行統計分析。
在一些實施中,藉由取樣精靈協助程式102記錄於事件資料儲存區104中之每一事件可包括屬性名稱(例如,「bundleId」)、屬性值(例如,「連絡人」)、匿名化信標資訊、匿名化位置資訊、日期資訊(例如,事件之GMT日期)、時間資訊(例如,事件之本地化24小時時間)、網路品質資訊、處理器利用量度、磁碟輸入/輸出量度、當前使用者之識別及/或事件類型(例如,開始、停止、發生)。舉例而言,屬性名稱可識別與事件相關聯之屬性之類型。舉例而言,屬性名稱可用以識別正由取樣精靈協助程式102追蹤之特定量度。屬性值可為與屬性相關聯之值(例如,字串、整數、浮點)。匿名化信標資訊可在不將信標資訊繫結或關聯至使用者或裝置之情況下指示哪些無線信標(例如,藍芽、藍芽低能量、Wi-Fi等)在行動裝置之範圍中。類似地,匿名化位置資訊可在不將位置資訊繫結或關聯至使用者或裝置之情況下識別行動裝置之位置。舉例而言,可使用組態於行動裝置100上之各種收發器自衛星資料(例如,全球定位衛星系統)、蜂巢式資料、Wi-Fi資料、藍芽資料導出位置資訊。網路品質資訊可指示如由行動裝置100在事件發生時偵測到的行動裝置之網路(例如,Wi-Fi、蜂巢式、衛星等)連接之品質。
在一些實施中,每一事件之事件資料可指示事件發生、開始或停止。舉例而言,可對用於同一屬性之多對事件執行時間帳戶處理(例如,持續時間帳戶處理),該等事件指示用於該屬性之開始事件及停止事件。舉例而言,取樣精靈協助程式102可接收用於具有值「連絡人」之屬性「bundleId」的開始事件。稍後,取樣精靈協助程式102可接收用於具有值「連絡人」之屬性「bundleId」的停止事件。取樣精靈協助程式102可比較開始事件之時間與停止事件之時間以判定「連絡人」應用程式在作用中之時間長度(例如,持續時間)。在一些實施中,可將未經受時間帳戶處理之事件記錄為點事件(例如,單次 發生)。舉例而言,可將與指定在事件時之瞬時電池電量的「batteryLevel」系統屬性相關聯之事件簡單地記錄為事件之發生。
下表1提供由取樣精靈協助程式102記錄於事件資料儲存區104中之屬性事件條目之實例。第一條目記錄指示「連絡人」應用程式已由使用者「好友(Fred)」叫用之「bundleId」事件。此「bundleId」事件為指示好友已開始使用連絡人應用程式之開始事件。第二條目為指示行動裝置100之電池電量處於46%之「batteryLevel」事件條目;此事件為發生類型事件(例如,單點事件)。第三條目為與值「喬治」相關聯之「personName」事件。「personName」事件用以記錄使用者好友已在連絡人應用程式中存取連絡人「喬治」之連絡人資訊的事實;此為發生類型事件。第四條目記錄指示「連絡人」應用程式已關閉或由使用者「好友」隱藏之「bundleId」事件。此bundleId事件為指示好友已停止使用連絡人應用程式之停止事件。藉由記錄用於「bundleId」屬性之開始及停止事件,取樣精靈協助程式102可基於對應於開始及停止事件之時戳來判定使用者好友在2014年5月12日已使用連絡人應用程式8分鐘。舉例而言,此屬性事件資訊可用以預報與行動裝置100上之應用程式相關且詳言之,關於連絡人應用程式的使用者活動。
預定義屬性
在一些實施中,可使用熟知或預定義屬性將事件資料提交至取樣精靈協助程式102。熟知或預定義屬性可為可由各種應用程式、公 用程式、功能或行動裝置100之其他組件用以將事件資料提交至取樣精靈協助程式102的泛型系統屬性。雖然預定義屬性定義(例如,屬性名稱、相關聯值之資料類型等),但指派至預定義屬性之值可在事件間變化。舉例而言,行動裝置100可經組態有用於識別應用程式之預定義屬性「bundleId」及用於識別所關注人員之「personName」。指派至「bundleId」之值可基於哪一應用程式在行動裝置100上處於作用中而變化。指派至「personName」之值可基於使用者輸入而變化。舉例而言,若使用者選擇來自「喬治」之電子郵件訊息,則「personName」屬性值可經設定為「喬治」。若使用者選擇與「鮑勃」相關聯之連絡人條目,則「personName」屬性值可經設定為「鮑勃」。當行動裝置100之應用程式、公用程式、功能或其他組件使用預定義屬性將事件提交至取樣精靈協助程式102時,應用程式、公用程式、功能或其他組件可指定待與用於彼事件之預定義屬性相關聯的值。預定義或熟知系統事件之實例描述於以下段落中。
在一些實施中,行動裝置100可經組態有指定安裝於行動裝置100上之應用程式(例如,應用程式套件組合)之名稱或識別符的預定義屬性(例如,「system.bundleId」)。當應用程式經啟動時,應用程式管理器106(例如,負責啟動應用程式)可使用取樣精靈協助程式102之API以提交應用程式之識別符或名稱(例如,用於連絡人應用程式之「連絡人」)作為「system.bundleId」系統屬性之值。取樣精靈協助程式102可將啟動「連絡人」應用程式之發生作為事件(例如)連同其他事件資料記錄於事件資料儲存區104中,如上文所描述。替代地,應用程式可使用取樣精靈協助程式102之API以指示分別對應於何時叫用應用程式「連絡人」及何時隱藏或關閉該應用程式之開始及停止事件。舉例而言,「bundleId」屬性可用以記錄行動裝置100上之應用程式啟動事件。「bundleId」屬性可用以記錄行動裝置100上之應用程式 終止事件。藉由指定與「bundleId」屬性相關聯之開始及停止事件而非僅指定事件之發生,取樣精靈協助程式102可判定「連絡人」應用程式由行動裝置100之使用者使用的時間長度。
在一些實施中,行動裝置100可經組態有指定行動裝置100之使用者之名稱或識別符或行動裝置100之使用者所關注之個人的預定義屬性(例如,「system.personName」)。舉例而言,當登入至、喚醒或以其他方式存取行動裝置100時,可產生與識別行動裝置100之當前使用者的「personName」屬性相關聯之事件且將其提交至取樣精靈協助程式102。當使用者存取與另一個人相關聯之資料時,可產生將另一個人識別為使用者所關注之個人的「personName」屬性事件且可將其提交至取樣精靈協助程式102。
在一些實施中,行動裝置100可經組態有指示行動裝置100之位置的預定義屬性(例如,「system.anonymizedLocation」)。舉例而言,行動裝置100可產生與指定行動裝置100在事件產生時之位置之「anonymizedLocation」屬性相關聯的事件且將其提交至取樣精靈協助程式102。位置資料可經匿名化以使得該位置稍後無法繫結或關聯至特定使用者或裝置。舉例而言,無論何時使用者使用行動裝置100的基於位置之服務,皆可產生及儲存「anonymizedLocation」屬性事件。
在一些實施中,行動裝置100可經組態有指示行動裝置100之飛航模式開啟或關閉的預定義屬性(例如,「system.airplaneMode」)。舉例而言,當使用者開啟或關閉飛航模式時,行動裝置100可產生指示在事件時之飛航模式狀態的事件且將其提交至取樣精靈協助程式102。舉例而言,可在airplaneMode開啟時將「airplaneMode」屬性之值設定為真(例如,1)且在飛航模式關閉將該值設定為假(例如,0)。取樣精靈協助程式102又可將包括「airplaneMode」屬性值之 「airplaneMode」事件儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示行動裝置100之電力纜線被***或未被***的預定義屬性(例如,「system.cablePlugin」)。舉例而言,當行動裝置100偵測到電力纜線已拔除時,行動裝置100可產生指示「cablePlugin」屬性值為假(例如,0)之事件。當行動裝置100偵測到電力纜線已***至行動裝置100中時,行動裝置100可產生指示「cablePlugin」屬性為真(例如,1)之事件。行動裝置100可將「cablePlugin」事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示行動裝置100之顯示螢幕被鎖定抑或解除鎖定的預定義屬性(例如,「system.screenLock」)。舉例而言,行動裝置100可偵測行動裝置100之顯示螢幕何時已被鎖定(例如,藉由系統或藉由使用者)或解除鎖定(例如,藉由使用者)。在偵測到顯示螢幕之鎖定或解除鎖定後,行動裝置100可即刻產生包括「screenLock」屬性之事件且將該事件之「screenLock」屬性值設定為真(例如,鎖定,整數1)或假(例如,解除鎖定,整數0)以指示行動裝置100之顯示螢幕被鎖定抑或解除鎖定。行動裝置100可將「screenLock」事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示行動裝置100是否處於休眠模式中之預定義屬性(例如,「system.sleepWake」)。舉例而言,行動裝置100可偵測行動裝置100何時進入休眠模式。行動裝置100可偵測行動裝置100何時退出休眠模式(例如,喚醒)。在偵測到進入或退出休眠模式後,行動裝置可即刻產生包括「sleepWake」屬性之事件且將該屬性值設定為真或假(例如,分別為整數1或0)以指示行動裝置100在「sleepWake」事件時之休眠模式狀態。行動裝置100可 將「sleepWake」事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示行動裝置100之顯示器是否被點亮的預定義屬性(例如,「system.backlight」)。可向「背光」屬性指派指示背光之強度或等級的值。舉例而言,行動裝置100之使用者可調整行動裝置100之顯示器的光照(背光)之強度。當環境光照為亮的時,使用者可增加背光之強度。當環境光照為暗的時,使用者可減小背光之強度。在偵測到背光設定中之改變後,行動裝置100可即刻產生包括「背光」屬性之事件且將該屬性值設定為經調整背光設定(例如,強度等級)。行動裝置100可將「背光」改變事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示如由行動裝置100之環境光感測器偵測之環境光強度值的預定義屬性(例如,「system.ALS」)。可向「ALS」屬性指派指示圍繞行動裝置100之環境光之強度或等級的值。舉例而言,行動裝置100之環境光感測器可偵測環境光之強度的改變。行動裝置100可判定強度之改變超過某一臨限值。在偵測到環境光之改變超過臨限值後,行動裝置100可即刻產生包括「ALS」屬性之事件且將該屬性值設定為偵測到之環境光強度值。行動裝置100可將「ALS」改變事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示行動裝置100之近接感測器何時偵測到行動裝置100之顯示器在物件附近(例如,使用者之面部,在桌上等)的預定義屬性(例如,「system.proximity」)。可向「接近性」屬性指派指示行動裝置之顯示器是否接近物件的值(例如,真、假、0、1)。舉例而言,行動裝置100之近接感測器可偵測接近性之改變。在偵測到接近性之改變後,行動裝置100可即刻產生包括 「接近性」屬性之事件,且在行動裝置100接近物件時將該屬性值設定為真(例如,1)且在行動裝置100並不接近物件時將該屬性值設定為假(例如,0)。行動裝置100可將「接近性」改變事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示由行動裝置100偵測到之運動之類型的預定義屬性(例如,「system.motionState」)。可向「motionState」屬性指派指示行動裝置是否靜止、移動、跑動、駕駛、行走等之值。舉例而言,行動裝置100之運動感測器(例如,加速度計)可偵測行動裝置100之移動。行動裝置100可基於在偵測到之移動中偵測到的運動之型樣來將偵測到之移動分類。可將運動型樣分類成使用者活動,諸如使用者何時靜止、移動、跑動、駕駛、行走等。在偵測到移動之改變後,行動裝置100可即刻產生包括「motionState」屬性之事件且將該屬性值設定為偵測到之移動之類型(例如,靜止、跑動、行走、駕駛等)。行動裝置100可將「motionState」事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示由行動裝置100偵測到之網路連接之品質的預定義屬性(例如,「system.networkQuality」)。可向「networkQuality」屬性指派指示在n秒(例如,1毫秒、2秒等)時間段期間之網路輸送量的值。舉例而言,行動裝置100可連接至資料網路(例如,蜂巢式資料、衛星資料、Wi-Fi、網際網路等)。行動裝置100可監測在一時間段(例如,5秒)內網路連接之資料輸送量。行動裝置可計算每秒傳輸之資料之量(例如,多個位元/秒、多個位元組/秒等)。在偵測到輸送量之改變後或在建立新網路連接後,行動裝置100可即刻產生包括「networkQuality」屬性之事件且將該屬性值設定為計算所得之輸送量值。行動裝置100 可將「networkQuality」事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示行動裝置100之內部電池之瞬時電量的預定義屬性(例如,「system.batteryLevel」)。可向「batteryLevel」屬性指派指示電池之電量(例如,百分比)的值。舉例而言,行動裝置100可週期性地(例如,每5秒、每分鐘、每15分鐘等)判定電池之電量且產生「batteryLevel」事件以記錄電池之電量。行動裝置100可監測電池電量且判定電量何時改變達臨限量且產生「batteryLevel」事件以記錄電池之電量。行動裝置100可將「batteryLevel」事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示行動裝置100之熱等級的預定義屬性(例如,「system.thermalLevel」)。舉例而言,行動裝置100之熱等級可為行動裝置之當前操作溫度(例如,攝氏度)。行動裝置100之熱等級可為表示溫度值範圍之等級(例如,高、中等、低、正常、異常等)。舉例而言,行動裝置100可經組態有用於監測行動裝置100之熱狀態的公用程式或功能。在偵測到溫度之改變或熱等級之改變後,行動裝置100之熱公用程式可即刻產生包括「thermalLevel」屬性之事件且將該屬性值設定為操作溫度或當前熱等級。行動裝置100可將「thermalLevel」事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示行動裝置100在n秒(例如,2毫秒、3秒等)時間段內之能量使用量的預定義屬性(例如,「system.energy」)。舉例而言,當使用者叫用行動裝置100之功能(例如,叫用應用程式、照明顯示器、傳輸資料等)時,行動裝置100可監測在該功能正執行之時間段內的能量使用量以估計每一活動或功 能使用多少能量。行動裝置100可接著產生包括「能量」屬性之事件且將該屬性值設定為計算所得之平均能量使用量。行動裝置100可將「能量」事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
在一些實施中,行動裝置100可經組態有指示行動裝置100在n秒(例如,2毫秒、3秒等)時間段內之網路資料使用量的預定義屬性(例如,「system.networkBytes」)。舉例而言,當使用者叫用功能或起始需要經由行動裝置100之網路連接傳輸資料的操作時,行動裝置100可監測在一時間段內之網路資料使用量以估計每一活動或功能使用或傳輸多少網路資料。行動裝置100可接著產生包括「networkBytes」屬性之事件且將該屬性值設定為計算所得之平均網路資料使用量。行動裝置100可將「networkBytes」事件提交至取樣精靈協助程式102以供儲存於事件資料儲存區104中。
其他預定義屬性可包括:「system.chargingStatus」屬性,其具有指示行動裝置100是否正對其電池充電之真/假(例如,1/0)屬性值;「system.batteryCapacity」屬性,其具有指示當前電池計量(例如,以mAh為單位,與batteryLevel成比例)之屬性值;及「system.devicePresence」屬性,其具有追蹤同級裝置之出現的裝置識別符(例如,字串)屬性值。舉例而言,「devicePresence」屬性可用以在排程同級間資料共用時預報同級裝置之出現。
自訂屬性
在一些實施中,可藉由取樣精靈協助程式102之用戶端動態地定義用戶端特定屬性。舉例而言,用戶端(例如,第三方應用程式)可動態地定義其自身的事件屬性而非使用預定義(例如,在取樣精靈協助程式102或作業系統中)及組態於行動裝置100上之屬性。舉例而言,電子郵件應用程式可動態地(例如,在執行階段)建立「信箱」屬性。 電子郵件應用程式(「mailapp」)可使用取樣精靈協助程式102之API以定義屬性名稱(例如,「mailapp.mailbox」)及屬性值類型(例如,字串、整數、浮點)。一旦用戶端已建立(註冊)新自訂屬性,用戶端便可使用該屬性以產生待儲存於事件資料儲存區104中之事件。舉例而言,mailapp可使用「信箱」屬性以報告使用者正存取電子郵件應用程式中之哪一信箱。若使用者正存取「工作」信箱,則mailapp可建立使用「mailapp.mailbox」屬性之事件且將該屬性之值設定為「工作」以記錄使用者正存取「工作」信箱。舉例而言,取樣精靈協助程式102及用戶端可接著使用所儲存之信箱事件資訊以預測使用者在未來何時有可能存取「工作」信箱。
在一些實施中,當自行動裝置100移除(例如,刪除、解除安裝)用戶端應用程式時,可自行動裝置100刪除由用戶端應用程式建立之屬性。此外,當移除用戶端應用程式時,可刪除與用戶端應用程式相關聯之事件資料。舉例而言,若自行動裝置100刪除mailapp,則可自行動裝置100刪除屬性「mailapp.mailbox」連同與mailapp相關聯之所有事件資料。
實例事件產生用戶端
在一些實施中,取樣精靈協助程式102可接收來自應用程式管理器程序106之應用程式事件(例如,「system.bundleId」事件)。舉例而言,應用程式管理器106可為開始、停止及監測行動裝置100上之應用程式(例如,應用程式108)的程序。在一些實施中,應用程式管理器106可將在行動裝置100上執行之應用程式的開始及停止時間(例如,「bundleId」開始及停止事件)報告至取樣精靈協助程式102。舉例而言,當使用者叫用或啟動應用程式時,應用程式管理器106可藉由提交用於該經叫用應用程式之指定應用程式之名稱或識別符的「bundleId」開始事件來通知取樣精靈協助程式102應用程式叫用。在 一些實施中,應用程式管理器106可向取樣精靈協助程式102指示應用程式起始係回應於推播通知、使用者叫用或所預測或預報使用者應用程式叫用而起始。當應用程式終止時,應用程式管理器106可藉由提交用於該應用程式之指定應用程式之名稱或識別符的「bundleId」停止事件來通知取樣精靈協助程式102該應用程式不再執行。
在一些實施中,取樣精靈協助程式102可使用應用程式開始及結束事件(例如,「bundleId」屬性事件)以產生每個應用程式之使用時間的歷程。舉例而言,每個應用程式之使用時間的歷程可針對應用程式之每一執行而包括自應用程式之最後執行起已過去的時間量及執行持續時間。取樣精靈協助程式102可維持使用者叫用之應用程式啟動及/或系統啟動(例如,自動啟動)之應用程式的單獨歷程。因此,取樣精靈協助程式102可維持在行動裝置100上執行之所有應用程式的使用統計資料。
在一些實施中,取樣精靈協助程式102可接收來自電力監測程序108之電力事件。舉例而言,電力監測器108可監測行動裝置100之電池容量、放電、使用及充電特性。電力監測器108可判定行動裝置100何時***至外部電源中及行動裝置100何時用電池電力供電。電力監測器108可通知取樣精靈協助程式102行動裝置100何時***至外部電源中。舉例而言,當電力監測器108偵測到行動裝置100***至外部電源中時,電力監測器可將具有「cablePlugin」屬性值1(例如,真)之「cablePlugin」事件發送至取樣精靈協助程式102。該事件可包括在連接外部電源時之電池計量。電力監測器108可將「能量」屬性事件發送至取樣精靈協助程式102以報告電池使用量。
在一些實施中,電力監測器108可通知取樣精靈協助程式102行動裝置100何時與外部電源斷開。舉例而言,當電力監測器108偵測到行動裝置100與外部電源斷開時,電力監測器可將具有 「cablePlugin」屬性值0(例如,假)之「cablePlugin」事件發送至取樣精靈協助程式102。訊息可包括在斷開外部電源時之電池計量。因此,取樣精靈協助程式102可維持描述行動裝置100之電池之充電分佈(例如,隨時間進行充電)的統計資料。充電分佈統計資料可包括自最後充電起之時間量(例如,自***至外部電源中起之時間)及電池計量可歸因於充電之改變(例如,開始電池電量、結束電池電量)。
在一些實施中,電力監測器108可通知取樣精靈協助程式102電池計量在一整日中之改變。舉例而言,可通知電力監測器108應用程式何時開始及停止且回應於該等通知,該電力監測器判定在該時段期間放電之電池電力量及電池中剩餘之電池電量且將此資訊傳輸至取樣精靈協助程式102。舉例而言,電力監測器108可將「system.energy」事件發送至取樣精靈協助程式102以指示在期間應用程式處於作用中之時間段內消耗的能量之量。
在一些實施中,取樣精靈協助程式102可接收來自熱精靈協助程式110之裝置溫度統計資料。舉例而言,熱精靈協助程式110可使用一或多個溫度感測器來監測行動裝置100之操作溫度條件。熱精靈協助程式110可經組態以週期性地將溫度改變報告至取樣精靈協助程式102。舉例而言,熱精靈協助程式110可每5秒判定行動裝置100之操作溫度且將行動裝置100之溫度或熱等級報告至取樣精靈協助程式102。舉例而言,熱精靈協助程式110可將「system.thermalLevel」事件發送至取樣精靈協助程式102以報告行動裝置100之當前操作溫度或熱等級。取樣精靈協助程式102可將所報告溫度儲存於事件資料儲存區104中。
在一些實施中,取樣精靈協助程式102可接收來自裝置設定程序112之裝置設定統計資料。舉例而言,裝置設定程序112可為行動裝置100之作業系統的功能或程序。裝置設定程序112可(例如)接收使用者 輸入以調整各種裝置設定,諸如開啟/關閉飛航模式、開啟/關閉Wi-Fi、開啟/關閉漫遊等。裝置設定程序112可將裝置設定之改變報告至取樣精靈協助程式102。每一裝置設定可具有對應的預定義事件屬性。舉例而言,當使用者開啟或關閉行動裝置100上之飛航模式時,裝置設定程序112可將「system.airplaneMode」事件發送至取樣精靈協助程式102。取樣精靈協助程式102可基於所接收之事件及屬性值來產生及儲存用於裝置設定之統計資料。舉例而言,對於設定之每次啟用(或停用),取樣精靈協助程式102可儲存指示自先前啟用該設定起已過去之時間量及啟用該設定所持續之時間量(例如,持續時間)的資料。
類似地,在一些實施中,取樣精靈協助程式102可在其他事件發生時接收來自其他行動裝置100組件(例如,裝置感測器114)之通知。舉例而言,取樣精靈協助程式102可在以下情況中接收通知:當行動裝置之螢幕開啟或關閉(例如,「system.backlight」事件)時;當行動裝置100保持緊鄰使用者之面部(例如,「system.proximity」事件)時;當偵測到小區塔交遞時;當基頻處理器在搜尋模式中(例如,「system.btlescan」事件)時;當行動裝置100已偵測到使用者正行走、跑動及/或駕駛(例如,「system.motionState」事件)時。在每一狀況下,取樣精靈協助程式102可在事件開始及結束時接收通知。在每一狀況下,取樣精靈協助程式102可產生及儲存指示自最後偵測到事件起已過去之時間量及事件持續時間的統計資料。取樣精靈協助程式102可接收其他事件通知且產生其他統計資料,如下文關於特定使用狀況及情境進一步描述。
應用程式事件
在一些實施中,取樣精靈協助程式102可接收來自行動裝置100上之應用程式的事件資訊。舉例而言,行動裝置100上之應用程式可 產生至取樣精靈協助程式102之包括預定義或動態定義之屬性的事件以追蹤各種應用程式特定事件。舉例而言,取樣精靈協助程式102可接收來自行事曆應用程式116之行事曆事件(例如,包括「calendar.appointment」、「calendar.meeting」或「calendar.reminder」屬性等)。行事曆事件可包括具有指定與各種行事曆事件或功能相關聯之位置、時間及其他資料之值的「calendar.appointment」、「calendar.meeting」或「calendar.reminder」屬性。舉例而言,取樣精靈協助程式102可儲存屬性名稱、屬性持續時間及/或屬性經排程以發生時之時間。在一些實施中,取樣精靈協助程式102可接收來自時鐘應用程式118之時鐘事件(例如,包括「clock.alarm」屬性)。舉例而言,取樣精靈協助程式102可儲存屬性名稱(例如,「clock.alarm」)及指示鬧鐘經排程以發生時之時間的值。取樣精靈協助程式102可接收來自其他應用程式(例如,媒體應用程式、存摺應用程式等)之事件資訊,如下文進一步描述。
應用程式統計資料
在一些實施中,取樣精靈協助程式102可跨越應用程式啟動事件而收集應用程式統計資料。舉例而言,取樣精靈協助程式102可跨越應用程式之許多叫用而收集每一應用程式之統計資料(例如,事件、「bundleId」屬性值)。舉例而言,可藉由每一應用程式之可執行檔案系統路徑之雜湊及可執行內容之雜湊來識別該應用程式,使得可將同一應用程式之不同版本作為相異應用程式來處置。舉例而言,可在「bundleId」事件中將應用程式雜湊值作為「bundleId」屬性之值提交至取樣精靈協助程式102。
在一些實施中,取樣精靈協助程式102可針對每一應用程式維持追蹤背景任務完成確證事件之計數器。舉例而言,每當應用程式作為背景任務(例如,在前景中不可見及/或當前未由使用者使用)執行時, 應用程式或應用程式管理器106可通知取樣精靈協助程式102該應用程式何時終止或暫時中止且取樣精靈協助程式102可使計數器遞增。取樣精靈協助程式102可維持跨越應用程式啟動而追蹤應用程式已在背景中執行之累積秒數的計數器。舉例而言,取樣精靈協助程式102可分析「bundleId」開始及停止事件以判定應用程式何時開始及停止且使用開始及停止事件之時戳以判定應用程式已執行之時間長度。在一些實施中,取樣精靈協助程式102可維持單獨計數器,該等計數器對資料連接之數目進行計數,追蹤網路資料訊務之量(例如,以位元組為單位),追蹤檔案系統操作之持續時間及大小及/或追蹤與每一應用程式相關聯之執行緒之數目。舉例而言,取樣精靈協助程式102可跨越應用程式啟動而維持應用程式保持處於作用中之累積時間量的計數。此等僅為可藉由取樣精靈協助程式102基於由取樣精靈協助程式102接收且儲存於事件資料儲存區104中之事件及屬性資料產生之應用程式統計資料的類型之幾個實例。可產生或收集其他統計資料,如下文進一步描述。
試探法
在一些實施中,行動裝置100可經組態有可基於由取樣精靈協助程式102偵測到之事件來調整裝置組件之設定的試探性程序。舉例而言,試探性程序120可包括經組態(例如,經程式化)以回應於一或多個觸發事件及/或基於由取樣精靈協助程式102收集或產生之統計資料而調整各種系統設定(例如,CPU功率、基頻處理器功率、顯示器光照等)的一或多個程序。
在一些實施中,試探性程序120可向取樣精靈協助程式102註冊以在預定義準則集合滿足(例如,發生某一觸發事件)時被叫用或啟動。觸發事件可包括叫用媒體播放器應用程式(例如,「bundleId」事件)或偵測到使用者已開始行走、跑動、駕駛等(例如, 「motionState」事件)。觸發事件可經一般化以在於事件資料104中或藉由取樣精靈協助程式102偵測到一些性質、資料、統計資料、事件、屬性、屬性值等時叫用試探性程序120。舉例而言,當取樣精靈協助程式102接收到應用程式開始通知(例如,指定特定應用程式之「bundleId」開始事件)或高於某一臨限值之溫度(例如,「thermalLevel」事件)時,可叫用試探性程序120。當取樣精靈協助程式102接收到與指定屬性或屬性值相關聯之事件時,可叫用試探性程序120。試探性程序120可註冊以在發生單一事件或觀測到統計資料時被叫用。試探性程序120可註冊以在觀測或偵測到事件、資料、屬性、屬性值及/或統計資料之組合時被叫用。可回應於特定使用者輸入(例如,「airplaneMode」事件、「sleepWake」事件等)而觸發或叫用試探性程序120。當取樣程序102偵測到事件(針對該等事件註冊試探性程序120)時,取樣程序102可叫用試探性程序120。
在一些實施中,當叫用試探性程序120時,試探性程序120可與取樣精靈協助程式102通信以自事件資料儲存區104擷取事件資料。試探性程序120可處理事件資料及/或試探性程序120自身收集之其他資料以判定如何調整系統設定,從而改良行動裝置100之效能,改良使用者在使用行動裝置100時之體驗及/或避開關於行動裝置100之未來問題。
在一些實施中,試探性程序120可作出可引起行動裝置100之各種裝置組件122的設定之改變的設定建議。舉例而言,裝置組件可包括CPU、GPU、基頻處理器、顯示器、GPS、藍芽、Wi-Fi、振動馬達及其他組件。
在一些實施中,試探性程序120可向控制多工器124作出設定建議。舉例而言,控制多工器124可為在由試探性程序120及行動裝置100的影響或改變行動裝置100之組件之設定的其他程序及/或功能提 供的組件設定之間仲裁的程序。舉例而言,熱精靈協助程式110可為經組態以基於偵測到行動裝置100處於熱事件中(例如,高於臨限溫度)來作出對CPU功率、顯示器亮度、基頻處理器功率及其他組件設定之調整的試探性程序。然而,試探性程序120亦可經組態以作出對CPU功率、顯示器亮度、基頻處理器功率及其他組件設定之調整。因此,在一些實施中,試探性程序120及熱精靈協助程式110可向控制多工器124作出設定調整建議且控制多工器124可判定將作出哪些設定調整。舉例而言,控制多工器124可排定程序之優先順序且基於建議程序之優先順序來執行調整。因此,若熱精靈協助程式110為優先順序高於試探性程序120之程序,則控制多工器124可根據熱精靈協助程式110之建議而非試探性程序120而調整CPU、顯示器、基頻處理器等之設定。
在一些實施中,行動裝置100可經組態有多個試探性程序120。試探性程序120可經空中組態或重新組態。舉例而言,可經由網路(例如,蜂巢式資料連接、Wi-Fi連接等)設定或調整每一試探性程序120之參數(例如,觸發、臨限值、準則及輸出)。在一些實施中,可將新試探性程序120新增至行動裝置100。舉例而言,可隨時間藉由系統開發人員判定觸發事件、統計資料及裝置設定之間的新相關性。在識別到此等新相關性時,可開發新試探性程序120以調整系統設定從而考量新判定之關係。在一些實施中,可經由網路將新試探性程序120新增至行動裝置100。舉例而言,可在行動裝置100空中(例如,蜂巢式資料連接、Wi-Fi連接等)下載或安裝新試探性程序120。
實例試探性程序
在一些實施中,試探性程序120可經組態以調整行動裝置100之系統設定,從而防止行動裝置100在處於使用者袋中時變得過熱。舉例而言,此袋中變熱(hot-in-pocket)試探性程序可經組態以向取樣精 靈協助程式102註冊以在行動裝置之顯示器關閉(例如,「system.backlight」事件具有0/假之屬性值)時及在行動裝置100並非正播放任何娛樂媒體(例如,音樂、電影、視訊等)時被叫用。舉例而言,當經叫用時,袋中變熱試探法可作出減小CPU功率及GPU功率以降低行動裝置100之操作溫度的建議。
在一些實施中,試探性程序120可經組態以在行動裝置之顯示器並未被正在使用(例如,「system.backlight」事件具有0/假之屬性值)時調整位置準確度。舉例而言,若行動裝置之顯示器並未被正在使用(例如,顯示器關閉,如由上文所描述之「背光」屬性事件指定),則行動裝置100無法向使用者顯示地圖資訊或方向。因此,使用者不可能使用行動裝置100之位置服務且位置服務(例如,GPS位置、Wi-Fi位置、蜂巢式位置等)可經調整以使用較少電力。位置準確度試探性程序可向取樣精靈協助程式102註冊以在行動裝置之顯示器關閉時被叫用。當經叫用時,試探性程序可調整GPS處理器、Wi-Fi傳輸器、蜂巢式傳輸器、基頻處理器之功率位準或終止用以判定行動裝置100之位置的程序以便節約行動裝置100之能量資源。
在一些實施中,試探性程序120可經組態以回應於使用者之行為而調整行動裝置之環境光感測器的設定。舉例而言,可藉由取樣精靈協助程式102在精靈協助程式102接收到指示以下情況之資料(例如,「使用者自適應環境光感測器(ALS)」屬性事件)時叫用此ALS試探性程序:環境光感測器已偵測到圍繞行動裝置100之環境光的改變;環境光感測器系統已調整顯示器之亮度及/或使用者已提供輸入以調整顯示器之亮度。
當經叫用時,使用者自適應ALS試探法可向取樣精靈協助程式102請求關於ALS顯示器調整及使用者起始之顯示器調整的額外資訊以判定是否存在指示ALS何時上調或下調顯示器亮度且使用者在相反 方向上調整顯示器亮度的使用者輸入之型樣(例如,「system.ALS」事件,其後接著「system.backlight」事件)。舉例而言,使用者可乘坐巴士或火車上班。在乘坐期間,巴士燈可開啟或關閉。環境光感測器可偵測環境光之改變且在該等燈變得開啟時增加顯示器亮度。由於該等燈僅臨時變得開啟,因此使用者可在該等燈再次關閉時減小顯示器亮度。可藉由試探性程序追蹤(例如,經由「背光」屬性事件)使用者輸入之型樣且使其與當日時間、行事曆或鬧鐘事件條目或行進型樣相關以判定使用者在何些情況或何內容脈絡下回應於ALS顯示器調整而調整顯示器亮度。一旦使用者自適應ALS試探性程序判定輸入及內容脈絡之型樣,試探性程序便可大體上積極地調整ALS之設定。舉例而言,可在所判定之當日時間、行事曆或鬧鐘條目或行進型樣期間大體上頻繁地調整ALS以檢查環境光之等級且相應地調整顯示器亮度。
以上試探性程序為試探性程序及其在本文中所描述之系統中可如何實施之幾個實例。可實施其他試探性程序且在隨時間開發出該等其他試探性程序時將其新增至系統。舉例而言,額外試探性程序可經組態或程式化以回應於偵測到與溫度量測、使用者輸入、時鐘事件(例如,鬧鐘)、行事曆事件及/或在行動裝置發生及偵測到之其他事件相關的事件或事件型樣而調整CPU、GPU、基頻處理器或行動裝置之其他組件。
實例試探性註冊及叫用程序
圖2說明用於叫用試探性程序之實例程序200。在步驟202處,可初始化取樣精靈協助程式102。舉例而言,可在行動裝置100之啟動期間初始化取樣精靈協助程式102。
在步驟204處,取樣精靈協助程式102可在取樣精靈協助程式102之初始化期間叫用組態於行動裝置100上之試探性程序。舉例而言,取樣精靈協助程式102可使每一試探性程序120在行動裝置100執行且 執行遍歷其初始化次常式。
在步驟206處,取樣精靈協助程式102可接收來自每一試探性程序120之事件註冊訊息。舉例而言,在試探性程序120之初始化次常式期間,試探性程序120可將指示哪些屬性事件應觸發試探性程序120之叫用的資訊發送至取樣精靈協助程式102。舉例而言,取樣精靈協助程式102可將註冊資訊儲存於資料庫(諸如,事件資料儲存區104)中。註冊資訊可包括試探性程序之識別(例如,可執行名稱、檔案系統路徑等)及事件準則(屬性、屬性值、臨限值、範圍等之識別),使得取樣精靈協助程式102可在偵測到指定事件時呼叫試探性程序120。
在步驟208處,取樣精靈協助程式102可接收屬性事件資料。舉例而言,取樣精靈協助程式102可接收來自各種系統組件(包括應用程式管理器106、感測器114、行事曆116及時鐘118)之屬性事件資料,如上文所描述。
在步驟210處,取樣精靈協助程式102可比較所接收之屬性事件資料與試探性註冊資料。舉例而言,在屬性事件資料經報告至取樣精靈協助程式102時,取樣精靈協助程式102可比較事件資料(例如,屬性值)或自事件資料產生之統計資料與自試探性程序120接收之註冊資訊。
在步驟212處,取樣精靈協助程式102可基於在步驟210處執行之比較來叫用試探性程序。舉例而言,若事件資料(例如,屬性資料)及/或統計資料滿足在用於試探性程序120之試探性註冊資料中指定的準則,則取樣精靈協助程式102可叫用試探性程序120。舉例而言,若事件資料及/或統計資料越過由試探性程序在註冊期間針對事件所指定之某一臨限值,則可藉由取樣精靈協助程式102叫用試探性程序。替代地,僅特定屬性事件之發生可引起對試探性程序120之叫用。
圖3說明用於使用試探性程序120調整行動裝置100之設定的程序 300。在步驟302處,初始化試探性程序120。舉例而言,可藉由取樣精靈協助程式102叫用試探性程序120,使得試探性程序120可執行遍歷其初始化次常式。舉例而言,叫用可經參數化以指示試探性程序120應在此叫用期間執行遍歷其初始化次常式。
在步驟304處,試探性程序120可針對系統事件向取樣精靈協助程式102註冊。舉例而言,在初始化期間,試探性程序120可將包括事件、臨限值、屬性、屬性值或用於叫用試探性程序120之其他準則的識別的訊息發送至取樣精靈協助程式102。當事件發生及/或準則滿足時,取樣精靈協助程式102可叫用試探性程序120。
在步驟306處,試探性程序120可關閉或終止。舉例而言,系統不需要試探性程序120直至滿足用於試探性程序120之註冊準則為止。因此,為節約裝置資源(例如,電池電力、處理能力等),終止、關閉或暫時中止試探性程序120直至需要該程序(例如,藉由取樣精靈協助程式102觸發)為止。
在步驟308處,可重新啟動試探性程序120。舉例而言,當取樣精靈協助程式102判定由試探性程序120在註冊訊息中指定之準則已滿足時,取樣精靈協助程式102可叫用試探性程序120。
在步驟310處,試探性程序120可自取樣精靈協助程式102獲得事件資料。舉例而言,一旦重新啟動,試探性程序120便可問詢取樣精靈協助程式102以獲得額外屬性事件資料。試探性程序120可經組態以視需要與其他系統資源、程序、感測器等互動以收集資料。
在步驟312處,試探性程序120可處理事件資料以判定組件設定。舉例而言,試探性程序120可使用來自取樣精靈協助程式102之事件資料及/或統計資料及/或自系統之其他組件收集之資料以判定如何調整行動裝置100之各種組件之設定。舉例而言,若試探性程序120判定行動裝置100過熱,則試探性程序120可判定行動裝置100之哪些功 率設定將降低行動裝置100之操作溫度。
在步驟314處,試探性程序120可將所判定之組件設定傳輸至控制多工器124。舉例而言,控制多工器124可仲裁自試探性程序120及其他系統組件(例如,熱精靈協助程式110)接收之裝置設定建議。控制多工器124可接著根據所接收之設定建議而調整行動裝置100之各種組件(例如,CPU、GPU、基頻處理器、顯示器等)。
預報事件
在一些實施中,儲存於事件資料儲存區104中之屬性事件資料(例如,歷程資料)可由取樣精靈協助程式102用以預測未來事件之發生。舉例而言,可分析「bundleId」屬性事件以預測使用者將何時叫用應用程式(例如,任何應用程式或特定應用程式)。可分析指定特定電子郵件資料夾(例如,將「信箱」屬性值設定為「工作」資料夾)之「mailapp.mailbox」事件以預測使用者將何時使用「mailapp」應用程式之特定電子郵件資料夾。
事件歷程窗口規格
在一些實施中,可基於事件歷程窗口規格來產生事件預報。舉例而言,可藉由用戶端產生窗口規格以指定用戶端希望事件預報所基於的所關注之時間段或所關注之重複出現時間段。窗口規格可包括四個分量:開始時間、結束時間、重複出現寬度及重複出現頻率。開始時間可指示歷程中之窗口應開始時的日期及/或時間。結束時間可指示歷程中之窗口應結束時的日期及/或時間。重複出現寬度可指示用戶端所關注之時間區塊(例如,在開始時間處開始之4個小時)。重複出現頻率可指示該時間區塊應重複在開始時間處開始之頻繁程度(例如,每8小時、每兩天、每週、每兩週等)。
在一些實施中,當產生事件預報時,將僅分析在指定時間區塊(例如,所關注的時間段)內發生的事件。舉例而言,若當前日期為 2014年5月13日,則窗口規格可指定2014年5月11日下午12:00之開始日期、5月12日下午12:00之結束日期、1小時之重複出現寬度及4小時之重複出現頻率。此窗口規格將使取樣精靈協助程式102分析在2014年5月11日下午12:00開始且在5月12日下午12:00結束之每4小時發生的每一1小時區塊(例如,所關注的時間段)(例如,區塊1:2014年5月11日下午12:00至1:00;區塊2:2014年5月11日下午4:00至5:00;區塊3:2014年5月11日下午8:00至9:00,等等)內之事件資料。在一些實施中,當未指定重複出現寬度時,將分析自開始時間至結束時間之整個時間段以預報事件。
在一些實施中,取樣精靈協助程式102可自動產生事件歷程窗口規格。舉例而言,取樣精靈協助程式102可識別儲存於事件資料儲存區104中之事件歷程資料中的型樣。若用戶端請求「bundleId」事件之預報但不提供窗口規格,則取樣精靈協助程式102可(例如)識別用於「bundleId」屬性/事件之型樣,該型樣指示使用者通常在上午8:00至9:00、上午11:30至下午1:30及下午7:00至11:00叫用應用程式。取樣精靈協助程式102可自動產生窗口規格,該窗口規格包括彼等時間段且排除其他當日時間使得所請求預報將關注與所請求屬性相關之時間段。類似地,取樣精靈協助程式102可針對特定(例如,指定)屬性值自動產生事件歷程窗口規格。舉例而言,若用戶端請求具有屬性值「mailapp」之「bundleId」事件的預報,則取樣精靈協助程式102可分析事件歷程資料以識別與「mailapp」值相關之發生型樣。若在每日上午10:00、下午12:00及下午5:00將「mailapp」(「bundleId」屬性值)記錄於事件歷程資料中,則取樣精靈協助程式102可產生指定圍繞彼等當日時間之所關注時間段的窗口規格。
時間預報
在一些實施中,可針對屬性或屬性值產生時間預報。時間預報 可指示(例如)與該屬性或屬性值之事件有可能在當日何時間發生。舉例而言,取樣精靈協助程式102之用戶端可請求「bundleId」屬性(例如,應用程式啟動)在最後一週(例如,最後7天)之時間預報。為產生該預報,可將一天24小時分成96個15分鐘時槽。對於最後7天中之每一天中的特定時槽(例如,下午1:00至1:15),取樣精靈協助程式102可判定「bundleId」事件是否發生且產生該時槽之得分。若「bundleId」事件在7天中之2天中的特定時槽期間發生,則「bundleId」事件將在該特定時槽(例如,下午1:00至1:15)期間發生的似然度(例如,得分)為0.29(例如,2除以7)。若「bundleId」事件在7天中之4天中的不同時槽(例如,下午12:15至12:30)期間發生,則「bundleId」事件將在彼時槽期間發生的似然度(例如,得分)為0.57(例如,4除以7)。
類似地,用戶端可請求特定屬性值之時間預報。舉例而言,用戶端可請求「bundleId」事件之時間預報而非請求「bundleId」屬性(例如,「bundleId」事件)之時間預報,其中「bundleId」屬性值為「mailapp」。因此,用戶端可接收使用者將有可能在一天中何時間(例如,15分鐘時槽)叫用「mailapp」應用程式之指示。
在一些實施中,可基於事件歷程窗口規格來產生時間預報。舉例而言,若用戶端提供指定所關注之4小時時間段的窗口規格,則時間預報將僅針對所關注之4小時時間段中的15分鐘時槽產生似然度得分。舉例而言,若所關注之時間段對應於最後3天中之每一天的下午12:00至4:00,則在所關注之4小時時間段期間將產生16個時槽且將針對16個15分鐘時槽中之每一者產生一得分。將不針對在經指定之所關注4小時時間段外的時槽產生得分。
同級預報
在一些實施中,取樣精靈協助程式102可針對屬性產生同級預 報。舉例而言,同級預報可指示在所關注之時間段期間發生的屬性之值相對於同一屬性之所有值(例如,發生)的相對似然度。舉例而言,取樣精靈協助程式102之用戶端可請求在如由隨請求提交之窗口規格指定的所關注之時間段(例如,上午11:00至下午1:00)內的「bundleId」屬性之同級預報。若在所關注之時間段期間,具有屬性值「mailapp」、「連絡人」、「行事曆」、「webbrowser」、「mailapp」、「webbrowser」、「mailapp」之「bundleId」事件發生,則「mailapp」發生之相對似然度(亦即,得分)為0.43(例如,3/7),「webbrowser」發生之相對似然度為0.29(例如,2/7)且「連絡人」或「行事曆」發生之相對似然度為0.14(例如,1/7)。
在一些實施中,取樣精靈協助程式102之用戶端可請求屬性之同級預報。舉例而言,若用戶端在不指定屬性之值的情況下請求屬性之同級預報,則取樣精靈協助程式102將產生同級預報且傳回在所關注之時間段內屬性之所有值的各種機率得分。藉由使用上文之實例同級預報,取樣精靈協助程式102將傳回屬性值及得分之清單至請求用戶端,例如:「mailapp」:0.43;「webbrowser」:0.29;「連絡人」:0.14;「行事曆」:0.14。
在一些實施中,取樣精靈協助程式102之用戶端可請求屬性值之同級預報。舉例而言,用戶端可請求具有值「mailapp」之「bundleId」屬性的同級預報。取樣精靈協助程式102可根據由用戶端提供之窗口規格而產生「bundleId」屬性之同級預報,如上文所描述。舉例而言,取樣精靈協助程式102可計算「mailapp」發生之相對似然度(亦即,得分)為0.43(例如,3/7),「webbrowser」發生之相對似然度為0.29(例如,2/7)且「連絡人」或「行事曆」發生之相對似然度為0.14(例如,1/7)。取樣精靈協助程式102將所請求「mailapp」值之得分(例如,0.43)傳回至用戶端。若所請求值未在如由窗口規格指 定的所關注之時間段中表示,則值0將被傳回至用戶端。
全景預報
在一些實施中,可產生全景預報以預測屬性事件之發生。舉例而言,上文所描述之時間及同級預報使用單一屬性或屬性值之事件發生的相對頻率以預測彼屬性之未來發生。此「頻率」預報類型(例如,發生頻率)僅使用與在預報請求中指定之屬性或屬性值相關聯的資料。對比而言,「全景」預報可使用針對在預報請求中指定之屬性或屬性值而接收的事件資料中之其他資料(例如,位置資料、信標資料、網路品質等)。在一些實施中,全景預報可使用來自與其他屬性或屬性值相關聯之事件的資料。舉例而言,當用戶端請求指定屬性或屬性值之時間預報或同級預報且亦指定預報類型(亦即,預報類別)為全景時,取樣精靈協助程式102將分析指定屬性或屬性值之事件資料及其他屬性及屬性值之事件資料以識別由取樣精靈協助程式102接收之指定事件與其他事件之間的相關性。舉例而言,具有值「mailapp」之屬性「bundleId」的頻率預報可將得分0.4指派至上午9:00的15分鐘時槽。然而,全景預報可判定「mailapp」屬性值與使用者工作位置之間存在強相關性。舉例而言,全景預報可判定:若使用者在與工作相關聯之位置處,則在上午9:00的15分鐘時槽中的90%時間叫用mailapp。因此,取樣精靈協助程式102可將較高得分(例如,0.9)指派至上午9:00的15分鐘時槽之「mailapp」預報得分。
類似地,取樣精靈協助程式102可發現「mailapp」(「bundleId」屬性值)與相關聯於「motionState」屬性值「靜止」之事件的發生之間的強相關性。舉例而言,取樣精靈協助程式102可判定mailapp應用程式之使用與行動裝置100靜止之間的相關度為95%。取樣精靈協助程式102可判定mailapp之使用與行動裝置100運動之間的相關度為5%。因此,取樣精靈協助程式102可基於行動裝置正移動抑或靜止來 調整特定時槽之「mailapp」屬性值的預報得分(例如,0.95或0.05)。
記分板處理-頻率對全景
在一些實施中,取樣精靈協助程式102可持續追蹤哪一預報類型為事件之較好預測項。舉例而言,當取樣精靈協助程式102接收到屬性事件時,取樣精靈協助程式102可產生與所接收之事件相關聯之屬性或屬性值的頻率及全景預報且判定哪一預報類型將為所接收之屬性事件的較好預測項。換言之,若緊接在接收到屬性事件之前產生頻率預報或全景預報,則取樣精靈協助程式102可判定頻率預報類型抑或全景預報類型將為所接收之屬性事件的較好預測項。
在一些實施中,取樣精靈協助程式102可針對每一預報類型(例如,預設、全景)維持一記分板。舉例而言,每當取樣精靈協助程式102判定頻率預報類型將為所接收之事件的較好預測項時,取樣精靈協助程式102可使頻率預報類型之得分(例如,計數器)遞增。每當取樣精靈協助程式102判定全景預報類型將為所接收之事件的較好預測項時,取樣精靈協助程式102可使全景預報類型之得分(例如,計數器)遞增。
在一些實施中,取樣精靈協助程式102可基於針對每一預報類型(例如,頻率、全景)產生之得分來判定預設預報類型。舉例而言,若記分板處理程序針對全景預報類型產生較高得分,則全景將被指派為預設預報類型。若記分板處理程序針對頻率預報類型產生較高得分,則頻率將被指派為預設預報類型。當用戶端請求同級或時間預報時,用戶端可指定預報類型(例如,全景、頻率、預設)。若用戶端不指定預報類型,則預設預報類型將用以產生同級及/或時間預報。
屬性統計資料
在一些實施中,用戶端可請求取樣精靈協助程式102產生屬性或屬性值之統計資料。舉例而言,類似於預報產生,用戶端可指定歷程 窗口,屬性或屬性值之統計資料應在該窗口上產生。當產生指定屬性或屬性值之統計資料時,取樣精靈協助程式102將分析在指定歷程窗口內發生之屬性事件。用戶端請求可指定後續統計資料中之哪一者應由取樣精靈協助程式102產生。
在一些實施中,取樣精靈協助程式102可產生屬性或屬性值之「計數」統計資料。舉例而言,「計數」統計資料可對在指定歷程窗口內發生之與指定屬性或屬性值相關聯的事件之數目進行計數。
在一些實施中,取樣精靈協助程式102可基於屬性值來產生統計資料。舉例而言,用戶端可請求且取樣精靈協助程式102可傳回指定歷程窗口中之屬性的第一值及/或最後值。用戶端可請求且取樣精靈協助程式102可傳回與指定歷程窗口內之指定屬性相關聯的所有值的最小值、最大值、平均值、模式及標準偏差。取樣精靈協助程式102可產生值或判定哪些值與所請求百分位數相關聯(例如,第10、第25、第50、第75、第90等)。
在一些實施中,取樣精靈協助程式102可產生持續時間統計資料。舉例而言,取樣精靈協助程式102可藉由比較屬性之開始事件與屬性之停止事件來判定與屬性值相關聯之持續時間。發生開始事件時與發生停止事件時之間的時間差將為事件之持續時間。在一些實施中,用戶端可請求且取樣精靈協助程式102可傳回與指定歷程窗口內之指定屬性或屬性值相關聯的所有持續時間的最小值、最大值、平均值、模式及標準偏差。取樣精靈協助程式102可產生持續時間值或判定哪些持續時間值與所請求百分位數相關聯(例如,第10、第25、第50、第75、第90等)。
在一些實施中,取樣精靈協助程式102可產生事件間隔統計資料。舉例而言,取樣精靈協助程式102可藉由比較屬性事件之第一發生與屬性事件之後續發生來判定與相關聯於屬性值之事件之到達或報 告相關聯的時間間隔。發生第一事件時與發生後續事件時之間的時間差將為事件發生之間的時間間隔。在一些實施中,用戶端可請求且取樣精靈協助程式102可傳回與指定歷程窗口內之指定屬性或屬性值相關聯的所有時間間隔值的最小值、最大值、平均值、模式及標準偏差。取樣精靈協助程式102可產生間隔值或判定哪些間隔值與所請求百分位數相關聯(例如,第10、第25、第50、第75、第90等)。
將應用程式保持為最新-提取更新
圖4說明用於執行應用程式之背景提取更新的實例系統400。在一些實施中,行動裝置100可經組態以預測性地啟動應用程式作為行動裝置100之背景程序,使得在預料到使用者叫用該等應用程式時,該等應用程式可下載內容且更新其介面。舉例而言,由取樣精靈協助程式102維持之使用者應用程式啟動歷程資料(例如,「system.bundleId」開始事件)可用以預報(預測)使用者將何時叫用行動裝置100之應用程式。此等所預測應用程式可藉由應用程式管理器106在使用者叫用之前啟動,使得將不需要使用者等待使用者叫用之應用程式下載當前內容且更新應用程式之圖形介面。
判定何時啟動應用程式-時間預報
在一些實施中,應用程式管理器106可向取樣精靈協助程式102請求應用程式叫用預報。舉例而言,取樣精靈協助程式102可提供允許應用程式管理器106請求行動裝置100上之應用程式啟動(例如,「bundleId」開始事件)之時間預報的介面。取樣精靈協助程式102可接收指示使用者何時已叫用行動裝置100上之應用程式的事件(例如,「bundleId」開始事件),如上文所描述。當應用程式管理器106請求「bundleId」屬性之時間預報時,取樣精靈協助程式102可分析儲存於事件資料儲存區104中之「bundleId」事件以判定使用者通常在一天期間何時(例如,在哪一15分鐘時槽中)叫用應用程式。舉例而言,取樣 精靈協助程式102可使用上文所描述之時間預報機制計算特定當日時間或時間段將包括由使用者進行之應用程式叫用的機率。
在一些實施中,應用程式管理器106可在應用程式管理器106之初始化期間向取樣精靈協助程式102請求「bundleId」屬性之時間預報。舉例而言,可在行動裝置100之啟動期間叫用或啟動應用程式管理器106。在應用程式管理器106正初始化時,應用程式管理器106可請求接下來24小時之應用程式叫用(例如,「bundleId」開始事件)的時間預報。一旦初始的24小時時段已過去,應用程式管理器106便可請求另一24小時時間預報。舉例而言,此24小時預報循環可繼續直至行動裝置100關閉為止。
在一些實施中,取樣精靈協助程式102可產生24小時時段之應用程式叫用(例如,「bundleId」開始事件)時間預報。舉例而言,取樣精靈協助程式102可將24小時時段分成96個15分鐘時槽。取樣精靈協助程式102可基於由取樣精靈協助程式102收集且儲存於事件資料儲存區104中之應用程式啟動歷程資料(例如,「bundleId」開始事件資料)來判定已叫用哪些應用程式及在操作之先前數天(例如,1至7天)內何時間叫用該等應用程式。
在一些實施中,當取樣精靈協助程式102產生「bundleId」屬性之時間預報時,可根據在15分鐘時槽中叫用(例如,任何)應用程式之機率而將每一15分鐘時槽排名,如上文在時間預報部分中所描述。
一旦計算出96個時槽中之每一者的應用程式叫用機率,取樣精靈協助程式102便可選擇具有最大非零機率之數個(例如,至多64個)時槽且將識別該等時槽之資訊傳回至應用程式管理器106。舉例而言,取樣精靈協助程式102可向應用程式管理器106發送對應於15分鐘時槽之開始的時間(例如,下午12:00、下午1:45等)之清單,該等15分鐘時槽對應於可能的使用者叫用應用程式啟動(例如,具有大於0之得 分的時槽)。
在一些實施中,應用程式管理器106可基於由取樣精靈協助程式102提供之時槽來設定計時器。舉例而言,應用程式管理器106可建立或設定對應於由取樣精靈協助程式102識別之時槽的一或多個計時器(例如,鬧鐘)。當每一計時器停止運行(例如,在下午12:00)時,應用程式管理器106可喚醒(例如,若休眠、暫時中止等)應用程式且判定在當前15分鐘時槽應啟動哪些應用程式。因此,計時器可觸發對有可能待由使用者在對應時槽內叫用之應用程式的提取背景更新。
在一些實施中,其他事件可觸發對應用程式之提取背景更新。舉例而言,應用程式管理器106可向取樣精靈協助程式102註冊所關注之各種事件。舉例而言,應用程式管理器106可註冊所關注的與開啟蜂巢式無線電、基頻處理器或建立網路連接(例如,蜂巢式或Wi-Fi)相關之事件(例如,屬性),使得應用程式管理器106可被通知此等事件何時發生且可觸發背景應用程式啟動以致應用程式更新可利用作用中網路連接。將行動裝置100解除鎖定、開啟顯示器及/或其他互動可觸發背景應用程式啟動及提取更新,如下文進一步描述。在一些實施中,若在先前數分鐘(例如,7分鐘)內已執行任何背景更新,則應用程式管理器106將不觸發背景應用程式啟動及提取更新。
判定啟動何些應用程式-同級預報
在一些實施中,應用程式管理器106可請求取樣精靈協助程式102提供在當前時間啟動之應用程式之清單。舉例而言,當對於15分鐘時槽,計時器停止運行(例如,期滿),或偵測到觸發事件時,應用程式管理器可向取樣精靈協助程式102請求「bundleId」屬性之同級預報,使得取樣精靈協助程式102可判定在當前時槽內啟動哪些應用程式。取樣精靈協助程式102可接著產生同級預報,該等同級預報包括應用程式識別符及指示使用者大約在當前時間將叫用每一應用程式之 機率之對應得分的清單。
圖5說明用於判定使用者對行動裝置100上之應用程式之叫用機率的同級預報。舉例而言,圖表500說明用於近期歷程窗口規格(例如,先前2小時)之同級預報。圖表530說明用於每日歷程窗口規格(例如,先前7天之每日4小時區塊)之同級預報。圖表560說明用於每週歷程窗口規格(例如,4小時區塊,每7天一次)之同級預報。在一些實施中,取樣精靈協助程式102可使用用於不同重疊窗口規格之同級預報執行時間數列模型化,以判定使用者對行動裝置100上之應用程式的叫用機率。若應用程式並未顯露於同級預報中,則應用程式可經指派0機率值。
在一些實施中,可藉由產生用於不同時間窗口之同級預報來執行時間數列模型化。舉例而言,可基於近期、每日及每週事件歷程窗口規格來產生近期、每日及每週同級預報。可接著組合近期、每日及每週同級預報以判定在當前時間啟動哪些應用程式,如下文進一步描述。
在一些實施中,可基於近期應用程式叫用來產生使用者叫用機率。舉例而言,可藉由依據將先前兩小時指定為所關注之時間段的窗口規格執行「bundleId」屬性之同級預報來產生使用者叫用機率(例如,在最後兩小時內之使用者起始之應用程式啟動)。
如藉由圖表500說明,應用程式啟動歷程資料(例如,「bundleId」事件資料)可指示在先前兩小時中啟動數個(例如,4個)應用程式。舉例而言,圓點及圓圈可表示應用程式,其中空心圓圈可表示單一特定應用程式(例如,電子郵件、社交網路連接應用程式等)且點表示其他應用程式之叫用。可藉由將特定應用程式之叫用次數(例如,2次)除以在先前兩小時內應用程式叫用之總次數(例如,4次)來計算與使用近期歷程(例如,先前2個小時)之特定應用程式相關聯的同級預報機 率得分。在所說明之狀況下,與使用近期應用程式啟動歷程資料之特定應用程式相關聯的機率為2/4或50%。
可基於應用程式啟動之每日歷程來產生使用者叫用機率(例如,在先前7天中之每一天的當前時間+-2小時啟動哪些應用程式)。舉例而言,可藉由依據將當前當日時間+-2小時(例如,4小時重複出現寬度)指定為所關注之時間段的窗口規格執行「bundleId」屬性之同級預報來產生使用者叫用機率(例如,最後兩小時內之使用者起始之應用程式啟動),其中重複出現頻率為24小時(例如,每24小時重複該重複出現寬度)。
圖表530說明可用以判定應用程式之使用者叫用機率的應用程式啟動(例如,「bundleId」開始事件)之每日歷程。舉例而言,圖表530之每一方塊表示先前數天(例如,7天)中之每一天中的時間窗口(例如,當前當日時間+-2小時)(例如,如在同級預報之窗口規格中指定),該等時間窗口可經分析以判定特定應用程式(例如,空心圓圈)之使用者叫用機率(例如,同級預報得分)。可藉由將所有窗口中之特定應用程式之叫用次數(例如,6次)除以所有窗口中之應用程式叫用之總次數(例如,22次)來計算與使用每日歷程資料之特定應用程式相關聯的機率。在所說明之狀況下,與使用每日啟動歷程資料之特定應用程式相關聯的機率為6/22或27%。
可基於應用程式啟動之每週歷程來產生使用者叫用機率(例如,在7天前的當前時間+-2小時啟動哪些應用程式)。舉例而言,可藉由依據將當前當日時間+-2小時(例如,4小時重複出現寬度)指定為所關注之時間段的窗口規格執行「bundleId」屬性之同級預報來產生使用者叫用機率(例如,最後兩小時內之使用者起始之應用程式啟動),其中重複出現頻率為7天(例如,每7天重複該重複出現寬度)。
圖表560說明可用以判定應用程式之使用者叫用機率的應用程式 啟動(例如,「bundleId」開始事件)之每週歷程。舉例而言,若當日及時間為星期三下午1點,則應用程式之使用者叫用機率(例如,同級預報得分)可基於在先前星期三期間在下午1點或大約下午1點之時間窗口(例如,+-2小時)期間啟動的應用程式。在所說明之狀況下,與使用每週應用程式啟動歷程資料之特定應用程式(例如,空心圓圈)相關聯的機率為1/4或25%。
在一些實施中,可針對每一應用程式組合近期、每日及每週使用者叫用機率以產生得分。舉例而言,可藉由計算近期(r)、每日(d)及每週(w)機率之加權平均值來組合近期、每日及每週機率。每一機率可具有相關聯權重且每一權重可對應於每一機率的憑藉經驗判定之預定義重要性。所有權重之總和可等於一。舉例而言,用於基於近期啟動之機率之權重可為0.6,用於每日機率之權重可為0.3且用於每週機率之權重可為0.1。因此,組合之機率得分可為0.6(r)、0.3(d)及0.1(w)之總和(例如,得分=0.6r+0.3d+0.1w)。
返回參看圖4,一旦針對每一應用程式基於近期、每日及每週機率判定機率得分,取樣精靈協助程式102便可向應用程式管理器106建議具有最高非零機率得分之可組態數目個(例如,三個)應用程式以供啟動從而執行背景提取下載/更新。
在一些實施中,取樣精靈協助程式102可自上文所描述之「啟動何些應用程式」分析排除不支援背景更新(例如,提取)應用程式更新之應用程式、使用者已關閉背景更新之應用程式、已選擇退出背景更新之應用程式及/或當前正由使用者使用或在行動裝置100之顯示器上的前景中的無論哪一應用程式,此係因為前景應用程式有可能已為最新的。
在一些實施中,一旦應用程式管理器106接收到來自取樣精靈協助程式102之彼等所建議應用程式,應用程式管理器106便可詢問取樣 精靈協助程式102是否認可啟動所建議應用程式中之每一者。取樣精靈協助程式102可使用其本端許可控制機制(下文所描述)以判定應用程式管理器是否可啟動特定應用程式。舉例而言,應用程式管理器106可將具有識別所建議應用程式中之一者之屬性值的「bundleId」屬性發送至取樣精靈協助程式102且請求取樣精靈協助程式102執行對屬性值之許可控制。
本端許可控制
在一些實施中,取樣精靈協助程式102可執行對行動裝置100上之屬性事件的許可控制。舉例而言,可對屬性或屬性值執行許可控制以判定用戶端應用程式是否可執行與該屬性相關聯之活動、動作、功能、事件等。舉例而言,取樣精靈協助程式102之用戶端可請求具有值「mailapp」之屬性「bundleId」的許可。回應於接收到許可請求,取樣精靈協助程式可判定用戶端是否可執行與「mailapp」屬性值相關聯之活動(例如,執行「mailapp」應用程式)。
在一些實施中,可基於預算及來自表決者之回饋來執行許可控制。舉例而言,當取樣精靈協助程式102接收到許可控制請求時,該請求可包括與允許屬性事件(例如,啟動應用程式、「bundleId」開始事件)相關聯之成本。取樣精靈協助程式102可檢查全系統資料預算、全系統能量預算及/或特定屬性預算以判定與屬性相關聯之預算是否剩餘有足夠信用以涵蓋屬性事件。若不存在與屬性相關聯之預算(例如,屬性並非經預算編制屬性),則可允許屬性事件進行(例如,取樣精靈協助程式102將回應於許可控制請求而傳回「可」值)。若存在與屬性相關聯之預算且相關聯預算中未留有足夠信用以涵蓋事件成本,則將不允許屬性事件進行(例如,取樣精靈協助程式102將回應於許可控制請求而傳回「否」值)。
若存在與屬性相關聯之預算且預算中留有足夠信用以涵蓋事件 成本,則將詢問表決者以對允許屬性進行來作出表決。若所有表決者作出表決「是」,則將允許屬性事件進行(例如,取樣精靈協助程式102將回應於許可控制請求而傳回「可」值)。若任何表決者作出表決「否」,則將不允許屬性事件進行(例如,取樣精靈協助程式102將回應於許可控制請求而傳回「否」值)。關於預算及表決者之細節描述於以下部分中。
在一些實施中,若在許可控制請求之前的時間段(例如,7天、一個月等)中尚未在事件中將屬性或屬性值報告至取樣精靈協助程式102,則取樣精靈協助程式102可回應於許可控制請求而傳回「決不」值。舉例而言,取樣精靈協助程式102可產生時間或同級預報以判定何時允許或許可與屬性或屬性值相關聯之事件。舉例而言,不需要先佔未預期發生之事件(例如,不需要預提取用於將不由使用者叫用之應用程式的資料)。
許可控制-預算
在一些實施中,取樣精靈協助程式102可基於與屬性或屬性值相關聯之預算來執行許可控制。舉例而言,取樣精靈協助程式102可基於與屬性或屬性值相關聯之預算來判定是否允許(例如,許可)與屬性或屬性值相關聯之活動(例如,事件)。在一些實施中,取樣精靈協助程式102可基於經組態以用於行動裝置100之全系統能量預算及/或全系統資料預算來判定是否可許可屬性或屬性值。取樣精靈協助程式102可將預算儲存於帳戶處理資料儲存區402中,包括用於持續追蹤當前時間段(例如,當前一小時)內之剩餘資料及能量預算的計數器。當用戶端請求對屬性或屬性值執行許可控制時,用戶端可指定表示允許或許可與屬性或屬性值相關聯之事件發生之成本的數字。若在與屬性相關聯之預算中存在足夠信用,則將藉由表決者對屬性事件作出表決,如下文所描述。若在與屬性相關聯之預算中不存在足夠信用,則 將不允許屬性事件進行。
全系統能量預算
在一些實施中,取樣精靈協助程式102可基於能量預算來判定是否可許可屬性或屬性值。舉例而言,能量預算可為行動裝置之電池的以毫安小時為單位之容量的百分比(例如,5%)。
在一些實施中,能量預算可在24小時時段中之每一小時當中分佈。舉例而言,取樣精靈協助程式102可利用收集及儲存於事件資料儲存區104中之電池利用統計資料(例如,「system.energy」事件)以判定反映24小時時段中之每一小時的典型歷程電池使用量之分佈。舉例而言,可基於依據歷程或以統計方式判定之能量使用分佈或應用程式使用預報來向每一小時指派能量預算之百分比,如上文所描述。每一小時將至少具有大於0之最小量的的能量預算(例如,0.1%、1%等)。舉例而言,可在不使用資料之數小時當中分佈能量預算之10%,且可根據歷程能量或應用程式使用在數個作用中使用小時當中分佈能量預算之剩餘90%。隨著每一小時過去,當前能量預算將由用於新/當前小時之能量預算補充。自前一小時留下之任何能量預算將被新增至當前小時之預算。
在一些實施中,帳戶處理資料儲存區402可包括用於判定多少能量預算保留可用之計數器。舉例而言,帳戶處理資料儲存區402可包括藉由用於當前小時之能量預算初始化的一或多個計數器。當能量預算由屬性事件使用時,該能量預算可遞減對應量。舉例而言,應用程式管理器106可使用「bundleId」開始或停止事件來通知取樣精靈協助程式102何時啟動或終止應用程式。又,取樣精靈協助程式102可通知電力監測器108何時啟動應用程式及何時終止應用程式。基於開始及停止時間,電力監測器108可判定由應用程式使用多少能量。電力監測器108可將由應用程式使用之電力量傳輸(例如,藉由提交 「system.energy」屬性事件)至取樣精靈協助程式102且取樣精靈協助程式102可使適當計數器遞減所使用之電力量。
在一些實施中,當對於當前小時而無能量預算保留時,取樣精靈協助程式102可拒絕對屬性之許可請求。舉例而言,當帳戶處理資料儲存區402中之能量預算計數器遞減至0時,無能量預算保留且無與繫結至該能量預算之屬性相關聯的活動、事件等可得到許可。若對於當前小時而保留足夠能量預算以涵蓋屬性事件之成本,則取樣精靈協助程式102可回應於許可控制請求而傳回「是」值且允許屬性事件進行。
在一些實施中,當行動裝置100***至外部電源中時,取樣精靈協助程式102將不使許可控制決策基於能量預算。舉例而言,當行動裝置100***至外部電源中時,剩餘能量預算為0將不防止屬性事件。
全系統資料預算
在一些實施中,取樣精靈協助程式102可基於資料預算來判定是否可許可屬性。舉例而言,取樣精靈協助程式102可基於由取樣精靈協助程式102收集且儲存於事件資料儲存區104中之統計資料(例如,「system.networkBytes」屬性事件)來判定由行動裝置100消耗之網路資料之平均量。可將網路資料預算計算為由使用者/行動裝置100消耗之平均每日網路資料之百分比。替代地,網路資料預算可為預定義或可組態值。
在一些實施中,網路資料預算可在24小時時段中之每一小時當中分佈。舉例而言,可向每一小時分配最小預算(例如,0.2MB)。可根據歷程網路資料使用而在24小時中之每一者當中分佈網路資料預算之剩餘量。舉例而言,取樣精靈協助程式102可基於歷程統計資料(例如,「system.networkBytes」屬性事件)來判定在當日之每一小時中消耗多少網路資料且根據每一小時中消耗之資料量而分派百分比。隨著 每一小時過去,當前資料預算將由用於新/當前小時之資料預算補充。自前一小時留下之任何資料預算將被新增至當前小時之資料預算。
在一些實施中,帳戶處理資料儲存區402可維持用於網路資料預算之資料計數器。當消耗網路資料時,可根據所消耗之網路資料之量而使資料計數器遞減。舉例而言,可基於由應用程式管理器106提供至取樣精靈協助程式102之應用程式開始及停止事件(例如,「bundleId」開始或停止事件)來判定所消耗之網路資料之量。替代地,可藉由管理網路介面之程序(例如,網路精靈協助程式406、背景傳送精靈協助程式1302)提供所消耗之網路資料之量。舉例而言,網路介面管理程序可將可與應用程式開始及停止事件(例如,「bundleId」事件)相關之「system.networkBytes」事件報告至取樣精靈協助程式102以判定應用程式消耗多少資料。
在一些實施中,取樣精靈協助程式102可持續追蹤哪一網路介面類型(例如,蜂巢式或Wi-Fi)用以消耗網路資料且基於該網路介面類型來判定所消耗之網路資料之量。可根據指派至每一介面類型之權重或係數而調整所消耗之網路資料之量。舉例而言,可向在蜂巢式資料介面上消耗之網路資料指派係數一(1)。可向在Wi-Fi介面上消耗之網路資料指派係數十分之一(0.1)。可藉由將所消耗之蜂巢式資料加至除以十的所消耗之Wi-Fi資料來計算所消耗之總網路資料(例如,總資料=1×蜂巢式資料+0.1×Wi-Fi)。因此,在Wi-Fi上消耗之資料將對資料預算的影響遠小於在蜂巢式資料連接上消耗之資料對資料預算的影響。
在一些實施中,當對於當前小時而無資料預算保留時,取樣精靈協助程式102可用「否」回覆對許可控制請求作出回應。舉例而言,當帳戶處理資料儲存區402中之資料預算計數器遞減至0時,無資 料預算保留且無與繫結至該資料預算之屬性相關聯的活動將得到允許。若當前小時中存在足夠剩餘資料預算以涵蓋屬性事件之資料成本,則取樣精靈協助程式102可用「是」回覆對許可控制請求作出回應。
屬性預算
在一些實施中,屬性可與預算相關聯。舉例而言,預定義屬性或自訂(動態定義之)屬性可經由取樣精靈協助程式102之API而與預算相關聯。取樣精靈協助程式102之用戶端(例如,應用程式、公用程式、功能、第三方應用程式等)可向取樣精靈協助程式102作出使屬性與用戶端定義之預算相關聯的請求。該預算可為(例如)數個信用。
一旦預算經分配,與經預算編制屬性相關聯之所報告事件便可指示與事件相關聯之成本,且該預算可根據指定成本而遞減。舉例而言,預定義系統屬性「system.btlescan」可組態於行動裝置100上以指示行動裝置100何時執行對來自其他藍芽低能量裝置之信號的掃描。舉例而言,藍芽LE掃描可執行為背景任務。藍芽LE掃描需要開啟藍芽無線電,其又消耗來自行動裝置100之電池的能量。為防止藍芽LE掃描消耗過多能量,可向「btlescan」屬性指派預算(例如,24個信用)。每當產生「btlescan」事件且將其報告至取樣精靈協助程式102時,可以一成本(例如,1)報告該事件。可自預算減去該成本使得每當在事件中報告「btlescan」屬性,預算24遞減1。
在一些實施中,可在一時間段內分佈屬性預算。舉例而言,可在24小時時段內均勻地分佈「btlescan」屬性預算使得「btlescan」屬性可每小時僅花費1個信用。在一些實施中,可在時間段結束時補充屬性預算。舉例而言,若用於「btlescan」屬性預算之時段為24小時,則可每24小時補充「btlescan」屬性預算。
在一些實施中,與一屬性相關聯之一預算可為另一預算之子集 (例如,子預算)。舉例而言,可將用於一屬性之一預算指定為另一預算(諸如,上文所描述之全系統資料預算或全系統能量預算)之一部分。舉例而言,「mailapp.mailbox」屬性可與為經分配用於系統之資料預算之5%的預算相關聯。「btlescan」屬性可與為經分配用於系統之能量預算之3%的預算相關聯。子預算(例如,「信箱」預算)可繫結至超預算(例如,系統資料預算)使得遞減子預算亦遞減超預算。在一些實施中,若超預算減少至0,則子預算亦減少至0。舉例而言,若系統資料預算處於0,則「信箱」屬性預算亦將為0,即使針對「信箱」屬性尚未報告將使「信箱」屬性預算遞減之事件亦如此。
在一些實施中,取樣精靈協助程式102用戶端可請求取樣精靈協助程式102傳回保留用於屬性之預算之量。舉例而言,用戶端可向取樣精靈協助程式102作出對為「btlescan」屬性剩餘之預算的請求。若已使用24個經預算編制信用中之3個信用,則取樣精靈協助程式102可將值21傳回至請求用戶端。
在一些實施中,用戶端可在用於相關聯屬性之預算中未保留信用時報告以指定數目個經預算編制信用為成本之事件。當取樣精靈協助程式102在預算中未剩餘信用時接收到以1個信用為成本之事件(例如,「btlescan」事件)時,取樣精靈協助程式102可使預算遞減(例如,-1)且將報告該事件之錯誤傳回至用戶端。舉例而言,該錯誤可指示該屬性無預算剩餘。
屬性預算制定(shaping)
在一些實施中,可基於歷程使用資訊來分佈屬性預算。舉例而言,在針對經預算編制屬性而報告事件時,可隨時間追蹤使用用於該屬性之預算的請求(例如,與成本相關聯之事件)。若(例如)針對「btlescan」屬性而分配預算24,則最初可跨越24小時時段均勻地分配該預算,如上文所描述。在針對與該預算相關聯之屬性而隨時間報告 事件時,取樣精靈協助程式102可分析所報告事件以判定在24小時時段期間事件最可能在何時發生。舉例而言,取樣精靈協助程式102可判定「btlescan」事件在大約上午8點、下午12點及下午6點頻繁地發生,但在大約上午2點很少發生。取樣精靈協助程式102可使用此事件頻率資訊以制定「btlescan」屬性之預算在24小時時段內的分佈。舉例而言,取樣精靈協助程式可針對對應於上午8點、下午12點及下午6點之每一時槽分配兩個預算信用且針對與上午2點相關聯之時槽分配0個預算信用。
許可控制-表決者
在一些實施中,取樣精靈協助程式102可基於來自在行動裝置100上執行之其他軟體(例如,外掛程式、公用程式、應用程式、試探性程序)的回饋來執行許可控制。舉例而言,其他軟體可經組態以作為用於許可控制之表決者而與取樣精靈協助程式102一起工作。舉例而言,若干表決者(例如,應用程式、公用程式、精靈協助程式、試探法等)可向取樣精靈協助程式102註冊以對許可控制決策作出表決。舉例而言,取樣精靈協助程式102可經組態以與監測行動裝置100之熱條件的表決者、監測行動裝置100之CPU使用率的表決者及/或監測行動裝置100之電池剩餘電量的表決者介接。當取樣精靈協助程式102接收到許可控制請求時,可詢問每一表決者(例如,熱、CPU及電池)以對是否應允許與指定屬性相關聯之活動作出表決。當所有表決者作出表決「是」時,則該屬性將得到許可(例如,將允許與屬性相關聯之活動發生)。當單一表決者作出表決「否」時,則該屬性將不被許可(例如,將不允許與屬性相關聯之活動)。在一些實施中,表決者可經組態為可動態地(例如,在執行階段)新增至取樣精靈協助程式102以將額外功能提供至許可控制系統之外掛程式軟體。在一些實施中,表決者可在判定是否許可或允許與屬性或屬性值相關聯之事件時使用上 文所描述之時間及同級預報機制。
網路精靈協助程式
在一些實施中,網路精靈協助程式406可經組態為許可控制表決者。網路精靈協助程式406可經組態以使用取樣精靈協助程式102之表決API,該表決API允許網路精靈協助程式406接收來自取樣精靈協助程式102之表決請求且將表決(例如,是、否)回應提供至取樣精靈協助程式102。舉例而言,網路精靈協助程式406可接收來自取樣精靈協助程式102之表決請求,該表決請求包括屬性及/或屬性值。舉例而言,網路精靈協助程式406可指示取樣精靈協助程式102在行動裝置100連接至語音通話且未連接至Wi-Fi網路連接時應不許可或允許與屬性或屬性值相關聯之事件。舉例而言,為防止背景更新程序(例如,提取程序)干擾語音通話或降低語音通話之品質,網路精靈協助程式406將在使用者連接至語音通話且未連接至Wi-Fi連接時不允許與啟動背景更新程序相關聯之事件(例如,「bundleId」開始事件)。因此,網路精靈協助程式406可在行動裝置100連接至通話且未連接至Wi-Fi時回應於表決請求而傳回「否」值。
在一些實施中,網路精靈協助程式406可指示取樣精靈協助程式102在行動裝置100具有不良品質之蜂巢式網路連接時應不允許或許可屬性事件。可在傳送速率及/或輸送量低於預定義臨限值時判定不良品質之蜂巢式網路連接。舉例而言,若行動裝置100具有不良品質之蜂巢式網路連接且未連接至Wi-Fi,則網路精靈協助程式406可藉由在取樣精靈協助程式102作出表決者請求時傳回「否」值來防止由於使用不良品質之網路連接(例如,啟動將嘗試經由不良蜂巢式連接下載或上傳資料之應用程式)而將浪費電池能量及蜂巢式資料的屬性事件之許可或執行。
在一些實施中,當網路精靈協助程式406不具有指示不良網路條 件或將影響網路資料使用量或系統效能之某一其他條件的資訊時,網路精靈協助程式406可對所請求屬性之許可作出表決「是」。
熱精靈協助程式
在一些實施中,熱精靈協助程式110應用程式可經組態為許可控制表決者。熱精靈協助程式110可經組態以使用取樣精靈協助程式102之表決API,該表決API允許熱精靈協助程式110接收來自取樣精靈協助程式102之表決請求且將表決(例如,是、否)回應提供至取樣精靈協助程式102。舉例而言,熱精靈協助程式可接收來自取樣精靈協助程式102之表決請求,該表決請求包括屬性及/或屬性值。在熱精靈協助程式110已偵測到熱事件時,熱精靈協助程式110可指示取樣精靈協助程式102應不許可或允許與屬性或屬性值相關聯之事件。舉例而言,熱精靈協助程式110可監測行動裝置100之溫度且藉由產生包括「thermalLevel」屬性及對應溫度值之事件來將溫度值報告至取樣精靈協助程式102。
在一些實施中,當熱精靈協助程式110判定行動裝置100之溫度高於臨限溫度值時,熱精靈協助程式110可進一步藉由在取樣精靈協助程式102將對屬性(例如,「bundleId」」事件作出表決之請求發送至熱精靈協助程式110時傳回「否」值來防止取樣精靈協助程式102允許可增加行動裝置100之操作溫度的屬性事件。
在一些實施中,在當前存在異常熱條件時,取樣精靈協助程式102將僅向熱精靈協助程式110請求表決。舉例而言,取樣精靈協助程式102可維持指示行動裝置100是否在正常熱條件下操作之熱條件值(例如,真、假)。舉例而言,若行動裝置100之當前熱條件為正常的,則熱條件值可為真。若行動裝置100之當前熱條件為異常的(例如,過熱、高於臨限溫度),則熱條件值可為假。最初,可將熱條件值設定為真(例如,正常操作溫度)。在偵測到操作溫度已上升至高於 臨限溫度後,熱精靈協助程式110可即刻將指示異常操作溫度之熱條件值的更新值(例如,假)發送至取樣精靈協助程式102。一旦行動裝置100冷卻至低於臨限溫度之溫度,熱精靈協助程式110便可更新熱條件值以指示正常操作溫度(例如,真)。
當取樣精靈協助程式102接收到對屬性之許可控制請求時,取樣精靈協助程式102可檢查熱條件值以判定是否詢問熱精靈協助程式110以對屬性事件之許可(允許)作出表決。若熱條件值指示正常操作溫度(例如,值為真),則取樣精靈協助程式102將會將該熱條件值解譯為來自熱精靈協助程式110之「是」表決。
若熱條件值指示異常操作溫度(例如,值為假),則取樣精靈協助程式102將會將屬性及/或屬性值發送至熱精靈協助程式110以允許熱精靈協助程式110對特定屬性或屬性值作出表決。
在一些實施中,熱精靈協助程式110可基於行動裝置100之當前熱條件及屬性之同級預報來判定如何對屬性及/或屬性值作出表決(例如,是、否)。舉例而言,熱精靈協助程式110可向取樣精靈協助程式102請求屬性之同級預報。熱精靈協助程式110可藉由產生在所關注之時間段中的包括當前時間之窗口規格(例如,+-1小時、2小時等)來請求當前時間之同級預報。熱精靈協助程式110將接收來自取樣精靈協助程式102之同級預報,該同級預報指示在所關注之時間段中出現的屬性之每一值的似然度得分。舉例而言,若熱精靈協助程式110請求「bundleId」屬性之同級預報,則熱精靈協助程式110可接收「bundleId」值(例如,應用程式識別符)及相關聯預報(例如,機率、似然度)得分之清單。舉例而言,若在所關注之時間段期間,具有屬性值「mailapp」、「連絡人」、「行事曆」、「webbrowser」、「mailapp」、「webbrowser」、「mailapp」之「bundleId」事件發生,則「mailapp」發生之相對似然度(亦即,得分)為0.43(例如,3/7),「webbrowser」 發生之相對似然度為0.29(例如,2/7)且「連絡人」或「行事曆」發生之相對似然度為0.14(例如,1/7)。在一些實施中,熱精靈協助程式110可根據得分而對屬性值之清單進行排序(例如,最高得分在頂部,最低得分在底部)。舉例而言,自上而下的以上「bundleId」屬性值之經排序清單為:「mailapp」、「webbrowser」、「連絡人」及「行事曆」。
在一些實施中,熱精靈協助程式110可基於屬性值在經排序清單中何處來判定何時對屬性值作出表決是。舉例而言,若熱精靈協助程式110正考慮之屬性值不在自取樣精靈協助程式102接收之同級預報清單中,則屬性值將接收來自熱精靈協助程式110之「否」表決。若屬性值在同級預報清單中且在清單中處於臨限等級(例如,索引)下方(例如,基於得分在屬性之底部25%中),則熱精靈協助程式110將對屬性作出表決「否」。若屬性值在同級預報清單中且在清單中處於臨限等級上方(例如,基於得分在屬性之頂部75%中),則熱精靈協助程式110將對屬性作出表決「是」。一旦判定表決,熱精靈協助程式110便將會將「是」(例如,真)或「否」(例如,假)表決傳回至取樣精靈協助程式102。
在一些實施中,熱精靈協助程式110可經組態有最大臨限等級以避免對所有屬性值作出表決「否」(例如,使得一些屬性事件將發生)。最大臨限等級可為經排序同級預報清單中之屬性值的50%(例如,頂部50%獲得「是」表決,底部50%獲得「否」表決)。因此,熱精靈協助程式110可將使將接收「是」表決之屬性值與將接收「否」表決之屬性值分離的臨限等級自0%調整至具有最低得分之屬性值的50%。
在一些實施中,用於判定「是」或「否」表決之臨限等級可與行動裝置100之熱等級(例如,溫度)成比例。舉例而言,熱精靈協助 程式110可經組態有最大操作熱等級(Lh)及正常操作等級(Ln)。熱精靈協助程式110可判定當前操作熱等級(Lc)且判定行動裝置100當前操作處於熱範圍(例如,Lh-Ln)之何百分位數(例如,Lc-Ln/Lh-Ln=%)。熱精靈協助程式110可使用計算所得之百分位數以判定0至50%屬性值之何部分應接收「否」表決。舉例而言,若當前操作熱等級經計算為熱範圍之65%,則依據同級預報得分之屬性值之底部32.5%將接收來自熱精靈協助程式110之「否」表決。因此,最不重要屬性值將接收「否」表決,而最重要屬性值將接收「是」表決。返回參看以上「bundleId」實例,若自上而下的以上「bundleId」屬性值之經排序清單為:「mailapp」、「webbrowser」、「連絡人」及「行事曆」,則「行事曆」將接收「否」表決且「mailapp」、「webbrowser」及「連絡人」將接收「是」表決(例如,「mailapp」、「webbrowser」及「連絡人」為使用最多之應用程式)。舉例而言,若應用程式管理器106已作出對「bundleId」屬性之許可控制請求以判定啟動哪些應用程式,則將啟動「mailapp」、「webbrowser」及「連絡人」應用程式且將不啟動「行事曆」應用程式。
作為另一實例,可詢問熱精靈協助程式110以對「mailapp.mailbox」屬性作出表決。可針對產生郵件資料夾之經排序清單的「mailapp.mailbox」屬性值產生同級預報,該等郵件資料夾指示最頻繁存取之資料夾至最不頻繁存取之資料夾(例如,「收件匣」、「個人」、「工作」、「家庭」、「垃圾郵件」及「垃圾箱」)。若屬性值之底部32.5%將接收「否」表決,則「垃圾郵件」」及「垃圾箱」將接收「否」表決。舉例而言,若「信箱」應用程式作出對「mailapp.mailbox」屬性之許可控制請求以判定將自哪些資料夾提取電子郵件,則「mailapp」應用程式將自「收件匣」、「個人」、「工作」及「家庭」資料夾提取電子郵件且不自「垃圾郵件」」及「垃圾 箱」資料夾提取電子郵件。在一些實施中,可在由取樣精靈協助程式102維持之熱條件值經重設以指示正常操作溫度(例如,真值)時通知已接收來自熱精靈協助程式110之「否」表決的屬性或屬性值。舉例而言,取樣精靈協助程式102可儲存識別已接收「否」表決之用戶端、屬性及屬性值的資料。在接收到來自熱精靈協助程式110之經更新熱條件值(例如,真)後,取樣精靈協助程式102可即刻將接收「否」表決之通知發送至用戶端以提示用戶端嘗試對先前拒絕之屬性或屬性值的另一許可控制請求。在一些實施中,用戶端可在無來自取樣精靈協助程式102之提示的情況下重新發送許可控制請求。舉例而言,用戶端可具有內部計時器,該內部計時器使用戶端在一時間段已屆期之後重試許可控制請求。
活動監測器
在一些實施中,活動監測器應用程式408可經組態為許可控制表決者。活動監測器408可經組態以使用取樣精靈協助程式102之表決API,該表決API允許活動監測器408接收來自取樣精靈協助程式102之表決請求且將表決(例如,是、否)回應提供至取樣精靈協助程式102。舉例而言,活動監測器408可接收來自取樣精靈協助程式102之表決請求,該表決請求包括屬性及/或屬性值。活動監測器408可指示取樣精靈協助程式102在行動裝置100正使用超過臨限量(例如,90%)之記憶體資源或CPU資源時應不許可或允許與屬性或屬性值相關聯之事件。舉例而言,若行動裝置100已執行使用行動裝置100之大部分記憶體資源或CPU資源的許多應用程式或程序,則在背景中啟動額外應用程式將可能由於用盡剩餘記憶體資源而降低行動裝置100之效能。因此,當活動監測器408判定記憶體或CPU使用率超過臨限值(例如,75%)時,活動監測器408可藉由在取樣精靈協助程式102發送對「bundleId」屬性事件作出表決之請求時傳回「否」值來防止應用程式 管理器106啟動額外應用程式。若活動監測器408判定行動裝置100之記憶體及/或CPU資源低於臨限使用量,則活動監測器408可回應於來自取樣精靈協助程式102之表決請求而傳回「是」值。
啟動背景提取應用程式
在一些實施中,當應用程式管理器106向取樣精靈協助程式102作出許可控制請求且接收「是」回覆時,應用程式管理器106可在行動裝置100之操作環境的背景中叫用或啟動所識別應用程式(例如,如由「bundleId」屬性值識別之應用程式108)。舉例而言,可在背景中啟動應用程式108使得啟動應用程式108對於使用者並非顯而易見的。應用程式108可接著經由網路(例如,網際網路)與內容伺服器404通信以下載經更新內容從而用於向使用者顯示。因此,當使用者隨後選擇應用程式108(例如,將應用程式帶至前景)時,使用者將被呈現有當前及最新內容而不必等待應用程式108自伺服器404下載內容且再新應用程式之使用者介面。
在一些實施中,應用程式管理器106可經組態以在行動裝置100正充電且連接至Wi-Fi時啟動具備背景提取功能之應用程式。舉例而言,取樣精靈協助程式102可判定行動裝置100何時連接至外部電源(例如,基於「cablePlugin」屬性事件)及經由Wi-Fi連接至網路(例如,網際網路)(例如,基於所接收事件),且將使應用程式管理器106啟動已在先前時間量(例如,7天)內使用的具備提取功能之應用程式的信號發送至應用程式管理器106。
實例背景提取程序
圖6為用於預測性地啟動應用程式以執行背景更新之實例程序600的流程圖。舉例而言,程序600可由應用程式管理器106及取樣精靈協助程式102執行以判定何時啟動經組態以自網路資源(諸如,圖4之內容伺服器404)提取資料更新之背景應用程式。可參看上文之圖4 及圖5找到關於程序600之步驟的額外描述。
在步驟602處,應用程式管理器106可接收來自取樣精靈協助程式102之應用程式叫用預報。舉例而言,可在行動裝置100之啟動期間啟動應用程式管理器106。在其初始化期間,應用程式管理器106可請求可能待由行動裝置100之使用者在接下來24小時時段內叫用的應用程式之預報。舉例而言,應用程式管理器106可請求屬性「bundleId」之時間預報。此預報可指示何時啟動應用程式。舉例而言,可將24小時時段分成多個15分鐘區塊且每一15分鐘區塊可與使用者將在該15分鐘區塊期間叫用應用程式之機率相關聯。當使用者可能叫用應用程式時,傳回至應用程式管理器106之預報可識別多達64個15分鐘時間區塊。
在步驟604處,應用程式管理器106可基於應用程式啟動預報來設定計時器。舉例而言,應用程式管理器106可針對在由取樣精靈協助程式102傳回至應用程式管理器106之應用程式啟動預報中識別的15分鐘區塊中之每一者而設定一計時器或鬧鐘。
在步驟606處,應用程式管理器106可請求取樣精靈協助程式102識別啟動何些應用程式。舉例而言,當計時器期滿或鬧鐘停止運行時,應用程式管理器可喚醒(若休眠或暫時中止)且向取樣精靈協助程式102請求待在當前15分鐘時間區塊內啟動之應用程式之清單。取樣精靈協助程式102可傳回應在行動裝置100上於背景中啟動的應用程式之清單。舉例而言,應用程式管理器106可請求屬性「bundleId」之同級預報。該同級預報可指示在當前15分鐘時槽中最可能報告「bundleId」屬性之哪些值(例如,哪些應用程式最可能由使用者叫用)。
在步驟608處,應用程式管理器106可將詢問是否可啟動應用程式之請求發送至取樣精靈協助程式102。舉例而言,對於由取樣精靈 協助程式102回應於「bundleId」同級預報請求而識別之每一應用程式,應用程式管理器106可詢問取樣精靈協助程式102是否可啟動該應用程式。舉例而言,應用程式管理器106可請求取樣精靈協助程式102執行對對應於應用程式管理器106正嘗試啟動之應用程式的「bundleId」屬性之特定值的許可控制。取樣精靈協助程式102可在可啟動應用程式之情況下針對許可控制請求而傳回「是」,在不可啟動應用程式之情況下傳回「否」或在決不可啟動應用程式之情況下傳回「決不」。
在步驟610處,應用程式管理器106可啟動應用程式。舉例而言,若取樣精靈協助程式102回應於許可控制請求而傳回「可」(例如,可、是、真等),則應用程式管理器106將啟動應用程式作為行動裝置100之背景程序。若取樣精靈協助程式102回應於許可控制請求而傳回「否」或「決不」,則應用程式管理器106將不啟動應用程式。
在步驟612處,應用程式管理器106可將應用程式啟動通知傳輸至取樣精靈協助程式102。舉例而言,應用程式管理器106可將「bundleId」開始事件傳輸至取樣精靈協助程式102以記錄經啟動應用程式之執行。
在步驟614處,應用程式管理器106可偵測到經啟動應用程式已終止。舉例而言,應用程式管理器106可判定經啟動應用程式何時不再在行動裝置100上執行。
在步驟616處,應用程式管理器106可將應用程式終止通知傳輸至取樣精靈協助程式102。舉例而言,應用程式管理器106可將「bundleId」結束事件傳輸至取樣精靈協助程式102以記錄應用程式之終止。
圖7為用於判定何時啟動行動裝置100上之應用程式的實例程序700之流程圖。舉例而言,程序700可用以基於應用程式使用統計資料 (例如,「bundleId」屬性事件資料)、資料及能量預算以及行動裝置操作及環境條件(如上文參看圖4所詳細描述)判定何時啟動應用程式,應啟動何些應用程式及是否可啟動應用程式。
在步驟702處,取樣精靈協助程式102可接收來自應用程式管理器106之應用程式啟動預報請求。舉例而言,應用程式管理器106可向取樣精靈協助程式102請求接下來24小時內的「bundleId」屬性之時間預報。一旦24小時時段已過去,應用程式管理器106便可請求後續24小時時段內的「bundleId」屬性之時間預報。舉例而言,應用程式管理器106可每24小時請求「bundleId」屬性之時間預報。
在步驟704處,取樣精靈協助程式102可判定應用程式啟動預報。舉例而言,應用程式啟動預報(例如,「bundleId」屬性之時間預報)可用以預測使用者起始之應用程式啟動可能在24小時時段期間何時發生。可將24小時時段分成多個15分鐘時間區塊。對於每一15分鐘時間區塊(例如,在24小時時段中存在96個15分鐘時間區塊),取樣精靈協助程式102可使用歷程使用者叫用統計資料(例如,「bundleId」開始事件)以判定使用者起始之應用程式啟動將在15分鐘時間區塊中發生的機率,如上文參看圖4所描述。
在步驟706處,取樣精靈協助程式102可將應用程式啟動預報傳輸至應用程式管理器106。舉例而言,取樣精靈協助程式102可選擇具有使用者起始之應用程式啟動的最高非零機率之至多64個15分鐘區塊。該等選定15分鐘區塊中之每一者可藉由該15分鐘區塊之開始時間(例如,下午12:45)識別。取樣精靈協助程式102可將15分鐘區塊識別符之清單作為應用程式啟動預報(例如,「bundleId」屬性之時間預報)發送至應用程式管理器106。
在步驟708處,取樣精靈協助程式102可接收對在當前時間將啟動何些應用程式之請求。舉例而言,應用程式管理器106可將請求發 送至取樣精靈協助程式102以供取樣精靈協助程式102判定應在當前時間或在大約當前時間啟動哪些應用程式。舉例而言,該請求可為對在當前15分鐘時槽內的「bundleId」屬性之同級預報的請求。
在步驟710處,取樣精靈協助程式102可基於歷程事件資料對當前時間之應用程式計算得分。取樣精靈協助程式102可基於由取樣精靈協助程式102收集之歷程使用者起始應用程式啟動資料(例如,「bundleId」屬性開始事件資料)來判定使用者可能在近期啟動哪些應用程式。取樣精靈協助程式102可利用近期應用程式啟動資料、每日應用程式啟動資料及/或每週應用程式啟動資料以基於使用者將在當前時間或在大約當前時間叫用應用程式之歷程似然度來對應用程式計算得分,如上文參看圖4及圖5所描述。
在步驟712處,取樣精靈協助程式102可將應用程式及應用程式得分傳輸至應用程式管理器106。舉例而言,取樣精靈協助程式102可選擇具有最高得分(例如,由使用者叫用之最高機率)之數個(例如,3個)應用程式(例如,「bundleId」屬性值)以傳輸至應用程式管理器106。取樣精靈協助程式102可排除已在先前時間段(例如,前5分鐘)內啟動之應用程式。取樣精靈協助程式102可將識別最高得分應用程式及其各別得分之資訊傳輸至應用程式管理器106,如上文參看圖4所描述。
在步驟714處,取樣精靈協助程式102可接收來自應用程式管理器106之判定是否可啟動應用程式的請求。舉例而言,取樣精靈協助程式102可接收識別應用程式(例如,「bundleId」值)之許可控制請求。
在步驟716處,取樣精靈協助程式102可判定當前行動裝置條件及預算允許應用程式啟動。舉例而言,回應於許可控制請求,取樣精靈協助程式102可檢查全系統資料及能量預算、屬性預算及表決者回 饋以判定是否應啟動應用程式作為行動裝置100上之背景任務,如上文參看圖4所詳細描述。
在步驟718處,取樣精靈協助程式102可將回覆傳輸至應用程式管理器106,該回覆指示可啟動經識別應用程式。舉例而言,若條件適於背景應用程式啟動,則取樣精靈協助程式102可回應於許可控制請求而將「是」值(例如,可、是、真等)傳回至應用程式管理器106使得應用程式管理器106可啟動經識別應用程式。
短期趨勢化
在一些實施中,取樣精靈協助程式102可經組態以偵測屬性何時正趨勢化(trending)。舉例而言,用戶端應用程式可向取樣精靈協助程式102註冊所關注之特定屬性。當取樣精靈協助程式102偵測到特定屬性正趨勢化時,取樣精靈協助程式102可通知用戶端特定屬性正趨勢化。
舉例而言,應用程式管理器106可註冊所關注之「bundleId」屬性(或「bundleId」屬性之特定值)。當取樣精靈協助程式102判定「bundleId」屬性(或其值)正趨勢化時,取樣精靈協助程式102可通知應用程式管理器106該趨勢,使得應用程式管理器106可在行動裝置100上於背景中預測性地啟動趨勢化應用程式。舉例而言,若應用程式正由行動裝置100之使用者重複叫用,則應用程式正趨勢化。在一些狀況下,趨勢化應用程式為新應用程式或在該趨勢之前,其為可未包括於上文所描述之「bundleId」屬性同級預報中的很少使用之應用程式。因此,使用上文所描述之應用程式啟動預報方法,趨勢化應用程式可能未保持最新。
屬性趨勢偵測之目的為偵測正重複報告至取樣精靈協助程式102之屬性(例如,屬性事件)且判定屬性正藉以啟動之大致步調(例如,週期性),錯誤處理為報告較小步調。正重複報告至取樣精靈協助程式 102之屬性據稱為「趨勢化」。可接著在預料到與趨勢化屬性相關聯之下一事件時由取樣精靈協助程式102用戶端使用經判定步調以執行功能或操作。
舉例而言,所判定步調可由應用程式管理器106用以設定計時器,該計時器將觸發應用程式管理器106在背景中啟動趨勢化應用程式使得該應用程式將在使用者叫用該應用程式時經更新,如上文所描述。舉例而言,若對於一應用程式,該步調為5分鐘,則應用程式管理器可設定計時器,該計時器將每隔4分鐘期滿且使應用程式管理器106啟動應用程式,使得應用程式可在再次由使用者叫用之前接收經更新內容且更新應用程式之介面。
在一些實施中,本文中所描述之趨勢偵測機制可用以偵測除應用程式啟動外之其他系統事件趨勢,諸如重複軟體或網路通知、應用程式損毀等。舉例而言,用戶端可註冊所關注之任何屬性或屬性值且可在所關注之屬性趨勢化時接收通知。
在一些實施中,取樣精靈協助程式102可維持可用以追蹤數個屬性之行為的趨勢表。該趨勢表可包括屬性值識別欄位(ATTID)、狀態欄位(狀態)、最後啟動時戳(LLT)、指示啟動之間的時間量之啟動間步調(ILC),及可信度欄位(C)。
圖8為說明趨勢表中之條目(例如,應用程式)之狀態轉變的流程圖800。最初在步驟802處,趨勢表可包括空白條目(例如,記錄),其中ATTID、LLT、ILC及C欄位空白(例如,N/A)且狀態經設定為「無效」(I)。當在時間t報告屬性事件時,可掃描趨勢表以查找可用條目(例如,在狀態I中之條目)。在可能的無效條目當中,若干方法可用於選擇將使用之條目。舉例而言,可選擇隨機無效條目。替代地,可選擇無效條目使得趨勢表中之所有空白條目可保持處於連續次序。若不存在無效條目,則可選擇在瞬時(T)狀態中之最舊條目(或隨機條目)以 追蹤新啟動之應用程式。若不存在I或T狀態條目,則可選擇最舊的新(N)狀態條目以追蹤新報告之屬性事件。
在步驟804處,一旦選定趨勢表條目,便可將用於追蹤新報告之屬性事件的選定條目之狀態欄位設定為新(N),可將ATTID設定為新報告之屬性的屬性值,可將LLT欄位設定為當前時間t(例如,掛鐘時間)且將ILC及C欄位設定為預定義最小值ILC_MIN(例如,1分鐘)及C_MIN(例如,0)。
在步驟806處,在時間t'的相同屬性事件之下一報告時,若該表中用於屬性之條目仍存在且尚未被收回(例如,經選擇以追蹤另一屬性),則找到該條目。將該條目之狀態設定為瞬時(T),將ILC設定為LLT與當前系統時間之間的差(例如,t'-t或t'-LLT),且使C欄位遞增(例如,遞增預定義值C_DELTA)。替代地,可將ILC欄位設定為其舊值及新值之某一其他函數,諸如流動平均值。
在步驟808處,在時間t"的相同屬性事件之下一報告時,若該表中用於屬性之條目仍存在且尚未被收回(例如,經選擇以追蹤另一屬性),則找到該條目。該條目之狀態可保持設定為瞬時(T),將ILC設定為LLT與當前時鐘(例如,掛鐘)時間之間的差(例如,t"-t'或t"-LLT),且再次使C欄位遞增(例如,遞增預定義值C_DELTA)。
在步驟810處,若在屬性事件之若干報告之後,趨勢表條目之C值達到(例如,等於)臨限值(例如,C_HIGHTHRESHOLD),則在步驟811處,可將屬性條目之狀態改變為狀態=A。若在步驟810處,趨勢表條目之C值未達到臨限值(例如,C_HIGHTHRESHOLD),則可根據步驟808更新該條目之值。
無論何時在處於狀態「A」中時報告屬性事件時,若上一報告與當前報告之時間之間的時間在某一時間量(例如,ILC_EPSILON=5分鐘)內,則使屬性條目之可信度(C)欄位遞增直至其達到預定義最大值 (例如,C_MAX)為止。當趨勢表中之屬性條目處於作用中(A)狀態中時,條目之ILC值可用作啟動速率(例如,步調)之估計且條目之ATTID可用以識別趨勢化屬性值。
在一些實施中,取樣精靈協助程式102可將屬性值(ATTID)及步調值(ILC)發送至用戶端,使得用戶端可在預料到與屬性值相關聯的下一事件時執行某一動作或功能。舉例而言,可將屬性值及步調值發送至應用程式管理器106使得應用程式管理器106可在預料到使用者對應用程式之叫用時在背景中啟動經識別應用程式(例如,ATTID,「bundleId」屬性值),以致應用程式可在使用者啟動應用程式之前接收經更新內容,如上文所描述。舉例而言,應用程式管理器106可在預料到使用者叫用應用程式時基於步調值啟動將喚醒應用程式管理器106以啟動應用程式之計時器。
在一些實施中,取樣精靈協助程式102可基於偵測到之屬性趨勢來通知用戶端屬性事件之所預料的下一發生。舉例而言,取樣精靈協助程式102可向應用程式管理器106發送指示應由應用程式管理器106啟動趨勢化應用程式之信號或通知。應用程式管理器106可藉由向取樣精靈協助程式102發送應用程式識別符(例如,「bundleId」屬性值)來註冊所關注之應用程式。取樣精靈協助程式102可監測應用程式以監測使用者叫用(例如,基於所報告之「bundleId」開始事件),從而判定應用程式是否正趨勢化,如上文所描述。若應用程式正趨勢化,則取樣精靈協助程式102可判定叫用步調(如上文所描述),且在基於步調判定之時間將通知或信號發送至應用程式管理器106。舉例而言,若該步調為4分鐘,則取樣精靈協助程式102可每隔3分鐘(例如,在事件之下一發生之前的某一時間段)將信號發送至應用程式管理器106以使應用程式管理器106啟動應用程式。若步調改變為6分鐘,則取樣精靈協助程式102可偵測步調改變且對何時用信號通知應用程式 管理器106進行調整。舉例而言,取樣精靈協助程式102可用信號通知應用程式管理器106每隔5分鐘而非每隔3分鐘啟動應用程式以針對減小之步調(例如,叫用之間的時間段增加)進行調整。
在由於任何原因(例如,新增新條目、更新現存條目等)而對屬性趨勢表進行每一檢驗時,在狀態=T或狀態=A中之所有條目(其自最後啟動起之時間比其ILC大ILC_EPSILON)將使其C值遞減。使在彼點處之C值降至低於最小臨限值(例如,C_LOWTHRESHOLD)的任何條目降階。舉例而言,可使條目自狀態A降階至狀態T或自狀態T降階至狀態I。
在一些實施中,上文所描述之趨勢偵測機制可用以偵測除應用程式叫用或啟動外之趨勢化事件。舉例而言,上文所描述之趨勢偵測方法及趨勢表可用以偵測及追蹤行動裝置100上之任何重複出現事件(例如,任何屬性事件)。趨勢化事件可包括螢幕觸摸、網路連接、應用程式失敗、網路入侵之發生及/或可報告或用信號通知至取樣精靈協助程式102之任何其他事件。
推播通知
圖9為說明用於將推播通知提供至行動裝置100之系統的方塊圖900。在一些實施中,行動裝置100可經組態以接收推播通知。舉例而言,推播通知可為由推播提供器902起始且經由推播通知伺服器906發送至在行動裝置100上執行之推播服務精靈協助程式904的訊息。
在一些實施中,推播提供器902可經由使用者授權請求接收對將推播通知發送至行動裝置100之授權,該使用者授權請求藉由應用程式908呈現給行動裝置100之使用者。舉例而言,推播提供器902可為由建立(例如,程式化、開發)應用程式908之同一供應商擁有、操作及/或維持的伺服器。當應用程式908在行動裝置100上呈現請求對推播提供器902將推播通知發送至行動裝置100之授權的使用者介面且使 用者指示推播通知經授權時,推播提供器902可接收來自使用者之將推播通知發送至行動裝置100(例如,推播服務精靈協助程式904)的授權。舉例而言,使用者可選擇由應用程式908呈現之使用者介面上的按鈕以指示推播通知經授權給推播提供器902及/或應用程式908。推播提供器902可接著接收識別行動裝置100且可用以將推播通知投送至行動裝置100之裝置符記。舉例而言,推播通知伺服器906可接收具有推播通知之裝置符記且使用該裝置符記以判定哪一行動裝置100應接收推播通知。
在一些實施中,行動裝置100可將識別經授權推播應用程式之資訊發送至推播通知伺服器906。舉例而言,行動裝置100可將含有推播通知篩選項914及用於行動裝置100之裝置符記的訊息926發送至推播通知伺服器906。推播通知伺服器906可針對由推播通知伺服器906服務之每一行動裝置而儲存裝置符記(例如,用於行動裝置100之識別符)至推播篩選項914之映射。舉例而言,推播篩選項914可包括識別行動裝置100上的已接收到對接收推播通知之授權的應用程式之資訊。
在一些實施中,推播篩選項914可由推播通知伺服器906用以篩選掉(例如,防止發送)至應用程式的尚未由行動裝置100之使用者授權的推播通知。由推播提供器902發送至推播通知伺服器906之每一推播通知可包括識別與推播提供器902相關聯之應用程式908的資訊(例如,識別符)及識別行動裝置100之資訊(例如,裝置符記)。
當通知伺服器906接收到推播通知時,通知伺服器906可使用行動裝置識別資訊(例如,裝置符記)以判定哪些推播篩選項914適用於所接收推播通知。通知伺服器906可比較推播通知中之應用程式識別資訊與用於經識別行動裝置之推播篩選項914以判定與推播提供器902相關聯且在推播通知中識別到之應用程式是否在推播篩選項914中得 到識別。若與推播通知相關聯之應用程式在推播篩選項914中得到識別,則通知伺服器906可將自推播提供器902接收之推播通知傳輸至行動裝置100。若在推播通知中識別到之應用程式未在推播篩選項914中得到識別,則通知伺服器不將自推播提供器902接收之推播通知傳輸至行動裝置100且可刪除該推播通知。
非喚醒推播通知
在一些實施中,通知伺服器906可經組態以處理高優先順序推播通知及低優先順序推播通知。舉例而言,推播提供器902可將高優先順序推播通知910及/或低優先順序推播通知912發送至推播通知伺服器906。舉例而言,推播提供器902可藉由在含於發送至推播通知伺服器906及行動裝置100之推播通知內之資料中指定推播通知之優先順序來將推播通知識別為高或低優先順序。
在一些實施中,推播通知伺服器906可以不同於高優先順序推播通知910之方式處理低優先順序推播通知912。舉例而言,推播通知伺服器906可經組態以比較含於高優先順序推播910中之應用程式識別資訊與推播篩選項914中之經授權應用程式識別資訊以判定是否可將高優先順序推播通知910傳輸至行動裝置100。若高優先順序推播通知910中之應用程式識別資訊匹配推播篩選項914中之經授權應用程式識別符,則推播通知伺服器906可將高優先順序推播通知傳輸至行動裝置100。若高優先順序推播通知910中之應用程式識別資訊不匹配推播篩選項914中之經授權應用程式識別符,則推播通知伺服器906可不將高優先順序推播通知傳輸至行動裝置100。
在一些實施中,推播通知伺服器906可經組態以延遲低優先順序推播通知之遞送。舉例而言,當行動裝置100接收來自推播通知伺服器906之推播通知時,推播通知之接收使行動裝置100喚醒(例如,若在休眠或低功率狀態中)。當行動裝置100喚醒時,行動裝置100將開 啟可消耗電池、使用蜂巢式資料、使行動裝置100變熱或以其他方式影響行動裝置100之各種子系統及處理器。舉例而言,藉由防止或延遲低優先順序推播通知至行動裝置100之遞送,行動裝置100可節約網路(例如,蜂巢式資料)及系統(例如,電池)資源。
在一些實施中,推播通知篩選項914可包括喚醒清單916及未喚醒清單918。喚醒清單916可識別應用程式,對於該等應用程式,應將低優先順序推播通知遞送至行動裝置100。在一些實施中,當對應用程式授權以在行動裝置100處接收推播通知時,按預設將應用程式識別資訊新增至喚醒清單914。未喚醒清單918可識別經授權應用程式,對於該等應用程式,應延遲低優先順序推播通知。下文在描述推播通知起始之背景更新時詳細描述用於填充未喚醒清單918及/或操控喚醒清單916及未喚醒清單918之特定機制。在一些實施中,高優先順序推播通知在推播通知伺服器906處將不被延遲且將被遞送至行動裝置100,只要在高優先順序推播通知中識別到之應用程式在推播篩選項914(例如,喚醒清單914及/或未喚醒清單918)中得到識別即可。
在一些實施中,當推播通知伺服器906接收到低優先順序推播通知912時,推播通知伺服器906可比較低優先順序推播通知912中之應用程式識別符與喚醒清單916及/或未喚醒清單918。舉例而言,若低優先順序推播通知912中之應用程式識別資訊匹配喚醒清單916中之經授權應用程式識別符,則將在通知訊息920中將低優先順序推播通知912遞送至行動裝置100。
在一些實施中,可延遲與在未喚醒清單918中識別到之應用程式相關聯的低優先順序推播通知之遞送。舉例而言,若在低優先順序推播通知912中識別到之應用程式亦在未喚醒清單918中得到識別,則低優先順序推播通知912可儲存於推播通知資料儲存區922中且並未即刻遞送至行動裝置100。在一些實施中,若由推播通知(高或低優先順 序)識別之行動裝置100當前未連接至推播通知伺服器906,則用於斷開行動裝置100之推播通知可儲存於推播通知資料儲存區922中以供稍後遞送至行動裝置100。
在一些實施中,儲存於推播資料儲存區922中之推播通知將保留在推播資料儲存區922中直至與所儲存推播通知相關聯之應用程式識別符自未喚醒清單918移動至喚醒清單916為止或直至網路連接建立於推播通知伺服器906與行動裝置100之間為止。舉例而言,當另一(高或低優先順序)推播通知經遞送至行動裝置100時或當行動裝置100將其他傳輸項924(例如,狀態訊息、心跳訊息、保持運作訊息等)發送至推播通知伺服器906時,可建立推播通知伺服器906與行動裝置100之間的網路連接。舉例而言,行動裝置100可將指示行動裝置100在一時間段(例如,5分鐘)內將處於作用中之訊息924發送至推播通知伺服器906,且推播通知伺服器906可將在指定作用中時間段期間接收之所有推播通知發送至行動裝置100。在一些實施中,當網路連接建立於行動裝置100與推播通知伺服器906時,儲存於推播通知儲存區922中之所有推播通知將被遞送至行動裝置100。舉例而言,可經由藉由在行動裝置100與推播通知伺服器906之間的其他傳輸建立之連接傳輸儲存於推播通知儲存區922中之推播通知。
在一些實施中,行動裝置100可與推播通知伺服器906建立兩個不同的通信頻道。舉例而言,可同時或在不同時間建立該兩個通信頻道。舉例而言,行動裝置100可具有至推播通知伺服器906之蜂巢式資料連接及/或Wi-Fi連接。在一些實施中,行動裝置100可針對每一通信頻道產生不同的推播篩選項914且將其傳輸至推播通知伺服器906。舉例而言,蜂巢式資料連接可與用於判定何時跨越蜂巢式資料連接發送高及低優先順序推播通知之推播篩選項914之第一集合相關聯。Wi-Fi資料連接可與用於判定何時跨越Wi-Fi資料連接發送高及低優先順 序推播通知之推播篩選項914之第二集合相關聯,該等推播篩選項與蜂巢式資料推播篩選項相同或不同。當推播通知伺服器906接收到推播通知時,推播通知伺服器可比較在推播通知中識別到之應用程式與用於推播通知伺服器906將用以將推播通知傳輸至行動裝置100之通信頻道(例如,Wi-Fi、蜂巢式)的推播通知篩選項。
推播起始之背景更新
在一些實施中,推播通知由行動裝置100之接收可觸發行動裝置100上之應用程式的背景更新。舉例而言,當行動裝置100(例如,推播服務精靈協助程式904)接收到來自推播通知伺服器906之推播通知訊息920時,推播服務精靈協助程式904可比較推播通知訊息920中之應用程式識別符與儲存於行動裝置100上之推播篩選項928以判定推播通知訊息920由推播通知伺服器906適當地遞送抑或本應由推播通知伺服器906篩選掉(例如,未傳遞)。舉例而言,推播篩選項928、喚醒清單930及未喚醒清單932可分別對應於推播篩選項914、喚醒清單916及未喚醒清單918。在一些實施中,若推播服務精靈協助程式904判定推播通知訊息920不應遞送至行動裝置100,則將刪除推播通知訊息902。
低優先順序推播通知
在一些實施中,由行動裝置100接收之推播通知訊息920可包括低優先順序推播通知。舉例而言,低優先順序推播通知可指示內容更新可用於與該推播通知相關聯之應用程式。因此,當低優先順序推播通知引起應用程式908之啟動時,應用程式908可自一或多個網路資源(例如,推播提供器902)下載經更新內容。
在一些實施中,當推播服務精靈協助程式904接收與行動裝置100上之應用程式(例如,應用程式908)相關聯的低優先順序推播通知時,推播服務精靈協助程式904可詢問取樣精靈協助程式102是否可啟 動與所接收之低優先順序推播通知相關聯的應用程式。舉例而言,推播服務精靈協助程式904可藉由向取樣精靈協助程式102發送與所接收之低優先順序推播通知相關聯的應用程式(例如,「bundleId」屬性值)之識別符來請求取樣精靈協助程式102執行許可控制。取樣精靈協助程式102可藉由檢查資料預算、能量預算、屬性預算及表決者回饋來執行許可控制,如上文參看圖4所描述。取樣精靈協助程式102可基於許可控制程序之結果將指示是否可啟動由低優先順序推播通知識別之應用程式的值傳回至推播服務精靈協助程式904。
在一些實施中,若針對許可控制請求而傳回之值指示「是」(可啟動應用程式),則推播服務精靈協助程式904將會將低優先順序推播通知發送至應用程式管理器106且應用程式管理器106可叫用應用程式(例如,應用程式908)。應用程式908可接著經由網路(例如,網際網路)與推播提供器902通信以接收來自推播提供器902之經更新內容。
在一些實施中,若針對許可控制請求而傳回之值指示「否」(不可啟動應用程式),則推播服務精靈協助程式904將會將低優先順序推播通知儲存於推播通知資料儲存區934中。舉例而言,當儲存低優先順序推播通知時,推播服務精靈協助程式904將僅儲存針對在推播通知中識別到之應用程式而接收之最後推播通知。
在一些實施中,當取樣精靈協助程式102指示推播服務精靈協助程式904不應立刻啟動應用程式(例如,許可控制回覆為「否」)時,推播服務精靈協助程式904可將應用程式之應用程式識別符自喚醒清單930移動至未喚醒清單932。舉例而言,若取樣精靈協助程式102判定行動裝置之預算及/或條件不允許啟動應用程式,則允許推播通知伺服器906針對與應用程式相關聯之額外低優先順序推播通知而喚醒行動裝置100將僅進一步消耗行動裝置100之資料及能量預算或使環境條件更糟(例如,使裝置變熱)。因此,藉由將應用程式識別符移動至 未喚醒清單932中及將包括經更新篩選項928(例如,喚醒清單930及未喚醒清單932)之訊息926發送至推播通知伺服器906,通知伺服器906可更新其自身的推播篩選項914、喚醒清單916及未喚醒清單918以反映推播篩選項928之改變且防止將用於應用程式之額外低優先順序推播通知遞送至行動裝置100。
在一些實施中,若針對許可控制請求而傳回之值指示「決不」可啟動應用程式,則推播服務精靈協助程式904將刪除低優先順序推播通知且自推播篩選項928移除與該推播通知相關聯之應用程式識別符。可將經更新推播篩選項傳輸至推播通知伺服器906且可更新推播通知伺服器906上之推播篩選項914以防止推播通知伺服器906發送與應用程式識別符相關聯之任何其他推播通知。
在一些實施中,取樣精靈協助程式102可將「停止」信號傳輸至推播服務精靈協助程式904以臨時防止未來的低優先順序推播通知自推播通知伺服器906發送至行動裝置100。舉例而言,當取樣精靈協助程式102判定用於當前小時之資料預算耗盡,用於當前小時之能量預算耗盡,系統正經歷熱事件(例如,行動裝置100過熱),行動裝置100具有不良蜂巢式連接且行動裝置100未連接至Wi-Fi及/或行動裝置100連接至語音通話且未連接至Wi-Fi時,取樣精靈協助程式102可將停止信號發送至推播服務精靈協助程式904。當推播服務精靈協助程式904接收到停止信號時,推播服務精靈協助程式904可將喚醒清單930中之應用程式識別符移動至未喚醒清單932且將經更新推播篩選項928傳輸至推播通知伺服器906以更新推播篩選項914。因此,推播通知伺服器906將臨時防止未來的低優先順序推播通知喚醒行動裝置100且影響行動裝置100之預算、限制及操作條件。
在一些實施中,取樣精靈協助程式102可將重試信號傳輸至推播服務精靈協助程式904。舉例而言,取樣精靈協助程式102可監測預 算、網路連接、限制及裝置條件之狀態且將在推播資料預算未耗盡時,在能量預算未耗盡時,在行動裝置100未經歷熱事件時,在行動裝置100具有良好品質之蜂巢式連接或連接至Wi-Fi時,在行動裝置100未連接至語音通話時且在已重設啟動速率限制時,將重試訊息發送至推播服務精靈協助程式904。一旦推播服務精靈協助程式904接收到重試信號,推播服務精靈協助程式904便將針對推播通知資料儲存區934中之每一推播通知將許可控制請求發送至取樣精靈協助程式102以判定是否可啟動與所儲存推播通知相關聯之每一應用程式(例如,「bundleId」屬性值)。
若取樣精靈協助程式102針對許可控制請求而傳回「是」,則推播服務精靈協助程式904可將推播通知發送至應用程式管理器106且應用程式管理器106可啟動與該推播通知相關聯之應用程式作為行動裝置100上之背景程序,如上文所描述。一旦應用程式經啟動,應用程式便可下載內容或資料更新且基於經下載資料來更新應用程式使用者介面。應用程式管理器106將不詢問取樣精靈協助程式102是否可啟動與低優先順序推播通知相關聯之應用程式。
高優先順序推播通知
在一些實施中,由行動裝置100接收之推播通知訊息920可包括高優先順序推播通知。舉例而言,高優先順序推播通知可指示內容更新可用於與該推播通知相關聯之應用程式。因此,當高優先順序推播通知引起應用程式之叫用時,應用程式可自一或多個網路資源下載經更新內容。在一些實施中,當高優先順序推播通知由推播服務精靈協助程式904接收時,推播服務精靈協助程式904將在未向取樣精靈協助程式102作出許可控制請求之情況下將高優先順序推播通知發送至應用程式管理器106。
在一些實施中,當應用程式管理器106接收到與應用程式相關聯 之推播通知時,應用程式管理器106將向取樣精靈協助程式102作出許可控制請求。回應於許可控制請求,取樣精靈協助程式102可用「是」、「否」或「決不」回應作出回覆,如上文所描述。當應用程式管理器106接收到對許可控制請求之「是」回覆時,應用程式管理器106可啟動與所接收之高優先順序推播通知相關聯的應用程式作為行動裝置100上之背景程序。
在一些實施中,當應用程式管理器106接收到對許可控制請求之「否」回覆時,應用程式管理器106可將高優先順序推播通知儲存於高優先順序推播通知儲存區936中。當應用程式管理器106接收到「決不」回應時,應用程式管理器106可刪除該高優先順序推播通知且刪除儲存於推播通知資料儲存區936中之用於與該推播通知相關聯之應用程式的任何推播通知。
在一些實施中,取樣精靈協助程式102可將「可重試」信號發送至應用程式管理器106。舉例而言,當應用程式管理器106接收到來自取樣精靈協助程式102之「可重試」信號時,應用程式管理器106可作出針對與高優先順序推播通知資料儲存區936中之每一高優先順序推播通知相關聯的應用程式之許可控制請求且在回應於許可控制請求而接收到「是」回覆時啟動各別應用程式作為背景程序。
延遲推播通知之顯示
在一些實施中,高優先順序推播通知可使得在行動裝置100上顯示圖形使用者介面。舉例而言,高優先順序推播通知之接收可使得在行動裝置100之圖形使用者介面上顯示橫幅、氣球或其他圖形物件。舉例而言,圖形物件可包括指示所接收推播通知之主題或內容的資訊。
在一些實施中,當應用程式管理器106接收到高優先順序推播通知時,應用程式管理器106可使得在行動裝置100之圖形使用者介面上 顯示該通知。然而,當高優先順序推播通知指示存在待下載至與高優先順序推播通知相關聯之應用程式的資料更新時,可在顯示推播通知之前在行動裝置100之背景中啟動應用程式。舉例而言,應用程式管理器106可經組態有啟動與高優先順序推播通知相關聯之應用程式與顯示向使用者宣告該推播通知之圖形物件(例如,橫幅)之間的延遲時間量(例如,30秒)。舉例而言,該延遲可允許應用程式具有足夠時間來在應用程式由使用者叫用之前下載內容更新且更新應用程式之使用者介面。因此,當使用者將輸入提供至圖形物件或以其他方式叫用與高優先順序推播通知相關聯之應用程式時,應用程式之使用者介面將為最新的且使用者將不會被強制等待對應用程式之更新。在一些實施中,若應用程式管理器106無法啟動與高優先順序推播通知相關聯之應用程式,則行動裝置100將顯示圖形物件(例如,橫幅)以通知使用者已接收到高優先順序推播通知。
實例推播通知程序
圖10為用於在推播通知伺服器906處執行非喚醒推播之實例程序1000之流程圖。在步驟1002處,推播通知伺服器906可接收推播通知。舉例而言,推播通知伺服器906可接收來自推播通知提供器902(例如,由應用程式供應商操作之伺服器)之推播通知。
在步驟1004處,推播通知伺服器906可判定該推播通知為低優先順序推播通知。舉例而言,推播通知提供器可將指定推播通知之優先順序的資料包括於推播通知中。推播通知伺服器906可分析推播通知之內容以判定推播通知之優先順序。
在步驟1006處,推播通知伺服器906可比較該推播通知與推播通知篩選項。舉例而言,該推播通知可識別安裝或組態於行動裝置100上之該低優先順序推播通知經引導至的應用程式。舉例而言,該推播通知可包括應用程式識別符(例如,「bundleId」屬性值)。推播通知伺 服器906可比較推播通知中之應用程式識別符與推播通知篩選項之未喚醒清單918中之應用程式識別符。
在步驟1008處,推播通知伺服器906可判定應儲存低優先順序推播通知。舉例而言,若來自低優先順序推播通知之應用程式識別符在推播通知篩選項之未喚醒清單918中,則推播通知伺服器906可判定低優先順序推播應儲存於推播通知資料儲存區922中。
在步驟1010處,基於步驟1008處之判定,低優先順序推播通知將儲存於推播通知伺服器906之資料庫或資料儲存區922中且未即刻發送至行動裝置100。
在步驟1012處,推播通知伺服器906可判定已建立至行動裝置100之網路連接。舉例而言,推播通知伺服器906可建立至行動裝置100之網路連接以遞送另一高或低優先順序推播。行動裝置100可建立至推播通知伺服器906之網路連接以將通知篩選項改變、週期性狀態更新、保持運作訊息或其他訊息發送至推播通知伺服器906。
在步驟1014處,推播通知伺服器906可回應於判定已建立至行動裝置100之網路連接而發送所儲存推播通知。舉例而言,推播通知伺服器906可將儲存於推播通知伺服器906處之低優先順序推播通知發送至行動裝置100。
圖11為用於回應於低優先順序推播通知而執行應用程式之背景更新的實例程序1100之流程圖。在步驟1102處,行動裝置100可接收來自推播通知伺服器906之低優先順序推播通知。
在步驟1104處,行動裝置100可判定是否可啟動與低優先順序推播通知相關聯之應用程式。舉例而言,可啟動應用程式作為行動裝置100上之背景程序。行動裝置100可使用上文所描述之許可控制程序判定是否可啟動應用程式。舉例而言,行動裝置100(例如,取樣精靈協助程式102)可基於針對行動裝置100判定之資料、能量及/或屬性預 算來判定是否可啟動應用程式。行動裝置100可基於行動裝置之條件及/或行動裝置之網路連接之條件,基於來自各種表決者之回應來判定是否可啟動應用程式。上文參看圖4更詳細描述用於判定是否可啟動應用程式(例如,許可控制)之細節。
在步驟1106處,行動裝置100可在裝置條件、預算、限制及其他資料指示不可啟動應用程式時儲存低優先順序推播通知。舉例而言,行動裝置100可將低優先順序推播通知儲存於行動裝置100上之資料庫或其他資料儲存區中。
在步驟1108處,行動裝置100可回應於判定不可啟動背景應用程式而更新其推播通知篩選項。舉例而言,行動裝置100可將與低優先順序推播通知相關聯之應用程式移動至行動裝置100上之推播通知篩選項之未喚醒清單。
在步驟1110處,行動裝置100可將經更新通知篩選項傳輸至推播通知伺服器906。推播通知伺服器906可基於自行動裝置100接收之篩選項來更新其自身之推播通知篩選項以判定何時將低優先順序推播通知傳輸及何時不將低優先順序推播通知傳輸至行動裝置100。
在步驟1112處,行動裝置100可判定是否可重試啟動與低優先順序推播通知相關聯之應用程式。舉例而言,行動裝置100可判定如上文所描述之預算、限制及裝置條件允許啟動行動裝置100上之額外背景應用程式。
在步驟1114處,行動裝置100可判定是否可啟動與所儲存之低優先順序推播通知相關聯的特定應用程式。舉例而言,行動裝置100之取樣精靈協助程式102可執行許可控制以判定針對當前時間已重設或補充組態於行動裝置100上之預算且行動裝置100之環境條件及網路連接足夠良好以啟動特定背景應用程式。
在步驟1116處,行動裝置100可在行動裝置100判定可啟動特定應 用程式時啟動該應用程式。舉例而言,可啟動特定應用程式作為背景程序以在使用者叫用應用程式之前下載新內容且更新應用程式之使用者介面。此程序將允許使用者叫用應用程式且不必等待下載內容更新及再新應用程式之使用者介面。
圖12為用於回應於高優先順序推播通知而執行應用程式之背景更新的實例程序1200之流程圖。在步驟1202處,行動裝置100可接收高優先順序推播通知。
在步驟1204處,行動裝置100可判定是否可啟動與高優先順序推播通知相關聯之應用程式。舉例而言,行動裝置100之取樣精靈協助程式102可基於行動裝置100之預算及環境條件(例如,裝置條件、網路條件等)來執行許可控制以判定是否可啟動應用程式。
在步驟1206處,當不可啟動(例如,許可控制傳回「否」)與高優先順序推播通知相關聯之應用程式時,行動裝置100可儲存高優先順序推播通知。舉例而言,行動裝置100可將高優先順序推播通知儲存於資料庫、佇列或其他適當資料結構中。
在步驟1208處,行動裝置100可判定可重試啟動與所儲存之高優先順序推播通知相關聯的應用程式。舉例而言,當資料、能量及/或屬性預算已得到補充、裝置條件已改良、網路條件已改良或行動裝置100之其他條件已改變(如上文在許可控制描述中所論述)時,行動裝置100可判定可重試啟動應用程式。
在步驟1210處,行動裝置100可判定是否可啟動與所儲存之高優先順序推播通知相關聯的應用程式。舉例而言,行動裝置100可基於如上文所論述之準則來判定是否可啟動應用程式。
在步驟1212處,行動裝置100可在行動裝置100上於背景中啟動應用程式。舉例而言,可啟動應用程式作為行動裝置100上之背景程序使得應用程式可自網路(例如,網際網路)上之網路資源(例如,內容 伺服器)下載經更新內容。
在步驟1214處,行動裝置100可在將推播通知呈現給使用者之前等待一時間段。舉例而言,行動裝置可經組態以允許應用程式在通知使用者該所接收之高優先順序推播通知之前在一時間段內下載內容。
在步驟1216處,行動裝置100可在行動裝置100之使用者介面上呈現推播通知。舉例而言,行動裝置100可呈現包括描述高優先順序推播通知之資訊的圖形物件(例如,橫幅)。舉例而言,使用者可選擇圖形物件以叫用應用程式。由於在使用者經呈現有通知之前應用程式具有時間來下載內容,因此當使用者叫用應用程式時,應用程式將能夠在不強制使用者等待自網路下載經更新內容之情況下向使用者顯示經更新內容。
背景上傳/下載
圖13為用於在行動裝置100上執行資料之背景下載及/或上傳的實例系統1300之方塊圖。背景下載及/或上傳可為在無來自使用者之明確輸入的情況下由應用程式起始之網路資料傳送。舉例而言,可在使用者正播放視訊遊戲應用程式的同時執行背景下載以擷取視訊遊戲之下一關卡。對比而言,前景下載或上傳可為回應於來自使用者之下載或上傳應發生的明確指示而執行的網路資料傳送。舉例而言,可藉由使用者選擇網頁連結以下載圖片、電影或文件來起始前景下載。類似地,可基於是否自使用者接收到對將資料上傳至網路資源(例如,伺服器)之明確使用者請求來區分背景上傳與前景上傳。
在一些實施中,針對使用者即刻執行前景下載/上傳(例如,下載/上傳由使用者明確請求)。舉例而言,即刻執行使用者請求之下載/上傳且該等下載/上傳並不經受預算編制約束或其他考慮因素。可經由蜂巢式資料連接執行前景下載/上傳。對比而言,可伺機且在預算編制約束及考慮環境條件(諸如,行動裝置100之溫度)內執行背景下載 及/或上傳。舉例而言,當屬性經上文所描述之許可控制機制批准時,可針對屬性或屬性值執行背景下載或上傳。在一些實施中,背景下載及/或上傳可受限於Wi-Fi網路連接。
在一些實施中,系統1300可包括背景傳送精靈協助程式1302。在一些實施中,背景傳送精靈協助程式1302可經組態而以在行動裝置100上執行之應用程式或程序的名義執行資料或內容之背景下載及上傳。舉例而言,背景傳送精靈協助程式1302可以應用程式1304之名義在應用程式1304與伺服器1306之間執行背景下載及/或上傳。因此,可自應用程式1304在程序外(例如,未在請求下載/上傳之程序中執行或未藉由請求下載/上傳之程序執行)執行背景下載/上傳。
在一些實施中,應用程式1304可藉由將下載或上傳資料之請求發送至背景傳送精靈協助程式1302來起始背景下載/上傳。舉例而言,下載資料(例如,內容)之請求可識別網路位置,可自該網路位置下載該資料。上傳資料之請求可識別該資料可上傳至的網路位置及資料當前儲存於行動裝置100上所處之位置。該請求亦可識別應用程式1304。一旦已作出請求,便可關閉或暫時中止應用程式1304使得在背景下載/上傳正由背景傳送精靈協助程式1302執行時應用程式將不繼續消耗行動裝置100上之計算及/或網路資源。
在一些實施中,在接收到執行資料之背景上傳或下載的請求後,背景傳送精靈協助程式1302可即刻將請求發送至取樣精靈協助程式102以判定背景傳送精靈協助程式1302是否可經由網路執行資料傳送。舉例而言,背景傳送精靈協助程式1302可請求取樣精靈協助程式102執行對資料傳送之許可控制。在許可控制請求中,背景傳送精靈協助程式1302可提供背景傳送精靈協助程式1302之識別符(例如,「bundleId」屬性值)或請求背景傳送者之應用程式之識別符,使得可對背景傳送精靈協助程式或應用程式執行許可控制。許可控制請求可 包括作為待自全系統資料預算扣除之請求成本的待傳送資料之量。
回應於接收到來自背景傳送精靈協助程式1302之許可控制請求,取樣精靈協助程式102可判定全系統資料及/或能量預算針對當前小時是否已耗盡。在一些實施中,若取樣精靈協助程式102判定行動裝置100連接至外部電源,則取樣精靈協助程式102將不基於能量預算來防止背景下載/上傳。取樣精靈協助程式102可判定行動裝置100是否連接至Wi-Fi。取樣精靈協助程式102亦可判定行動裝置100是否處於熱事件中(例如,操作溫度高於預定義臨限值)中。在一些實施中,若取樣精靈協助程式102判定資料預算已耗盡且行動裝置100未連接至Wi-Fi,判定能量預算已耗盡且行動裝置100未連接至外部電源或判定行動裝置100處於熱事件中,則取樣精靈協助程式102將傳回對由背景傳送精靈協助程式1302作出之許可控制請求的「否」回覆。
在一些實施中,當背景傳送精靈協助程式1302接收來自取樣精靈協助程式102之對許可控制請求的「否」回覆時,程序1302可將來自應用程式1304之背景下載/上傳請求儲存於請求存放庫1308中。
在一些實施中,取樣精靈協助程式102可將重試信號發送至背景傳送精靈協助程式1302。舉例而言,當資料及能量預算經補充時且當系統不再經歷熱事件時,取樣精靈協助程式102可將重試信號發送至背景傳送精靈協助程式1302。當行動裝置100連接至Wi-Fi,連接至外部電源時且當系統未經歷熱事件時,取樣精靈協助程式102可將重試信號發送至背景傳送精靈協助程式1302。舉例而言,當連接至Wi-Fi時,可不存在對控制資料使用量之需要。類似地,當連接至外部電源時,可不存在對節約電池電力之需要。因此,當執行許可控制時,取樣精靈協助程式102可忽略資料及能量預算。
在一些實施中,當重試信號由背景傳送精靈協助程式1302接收時,背景傳送精靈協助程式1302可將許可控制請求發送至取樣精靈協 助程式102。若取樣精靈協助程式102回應於許可控制請求而傳回「可」回覆,則背景傳送精靈協助程式1302可執行應用程式1304之背景下載或上傳。一旦背景下載完成,背景傳送精靈協助程式1302便可喚醒或叫用應用程式1304且向應用程式1304提供經下載資料。
在一些實施中,背景傳送精靈協助程式1302可通知取樣精靈協助程式102背景下載/上傳何時開始及結束,使得取樣精靈協助程式102可調整關於在行動裝置100上執行之背景下載/上傳的預算且維持關於背景下載/上傳之統計資料。舉例而言,背景傳送精靈協助程式1302可將「backgroundTransfer」屬性開始或停止事件發送至取樣精靈協助程式102。在一些實施中,背景傳送精靈協助程式1302可傳輸經由蜂巢式資料傳送、經由Wi-Fi傳送及/或總計的位元組(例如,「system.networkBytes」屬性事件)之數目,使得取樣精靈協助程式102可調整關於在行動裝置100上執行之背景下載/上傳的預算且維持關於背景下載/上傳之統計資料。
在一些實施中,取樣精靈協助程式102可回應於許可控制請求而將逾時值傳回至背景傳送精靈協助程式1302。舉例而言,該逾時值可指示背景傳送精靈協助程式必須執行背景下載或上傳之時間段(例如,5分鐘)。當逾時時段屆期時,背景傳送精靈協助程式1302將暫時中止背景下載或上傳。
在一些實施中,該逾時值可基於用於當前小時之剩餘能量預算。舉例而言,取樣精靈協助程式102可基於由取樣精靈協助程式102收集之歷程事件資料來判定在經由Wi-Fi執行下載或上傳時每秒消耗多少能量。取樣精靈協助程式102可藉由將剩餘能量預算除以在執行背景下載或上傳時能量消耗之速率來判定逾時時段(例如,能量預算/所消耗能量/時間=逾時時段)。
在一些實施中,背景下載及/或上傳可重新繼續。舉例而言,若 行動裝置100移出Wi-Fi範圍,則背景下載/上傳可暫時中止(例如,暫停)。當行動裝置100重新進入Wi-Fi範圍時,經暫時中止之下載/上傳可重新繼續。類似地,若背景下載/上傳用盡能量預算(例如,逾時時段屆期),則背景下載/上傳可暫時中止。當分配(例如,在下一小時中)額外預算時,可重新繼續經暫時中止之下載/上傳。
在一些實施中,背景下載/上傳可基於網路連接之品質而暫時中止。舉例而言,即使行動裝置100可具有在行動裝置100與服務蜂巢式塔之間的良好蜂巢式資料連接及在蜂巢式塔與伺服器(行動裝置100正將資料傳送至該伺服器或傳送來自該伺服器之資料)之間的良好資料連接,行動裝置100仍可能不具有至伺服器之良好連接。舉例而言,行動裝置100與伺服器之間的傳送速率可為緩慢的或蜂巢式介面之輸送量可為低的。若背景下載/上傳之傳送速率降至低於臨限傳送速率值及/或背景下載/上傳之輸送量降至低於臨限輸送量值,則背景下載/上傳(例如,資料傳送)可基於偵測到之不良品質網路連接而暫時中止或暫停,直至較好網路連接可用為止。舉例而言,若Wi-Fi連接變得可用,則經暫時中止之背景下載/上傳可經由Wi-Fi連接重新繼續。
在一些實施中,背景傳送精靈協助程式1302可經組態有對可同時執行之背景下載及/或上傳之數目的限制。舉例而言,背景傳送精靈協助程式1302可將同時背景下載及/或上傳之數目限制為三個。
實例背景下載/上傳程序
圖14為用於執行背景下載及上傳之實例程序1400的流程圖。舉例而言,可藉由背景傳送精靈協助程式1302以行動裝置100上之應用程式的名義來執行背景下載及/或上傳。
在步驟1402處,可接收背景傳送請求。舉例而言,背景傳送精靈協助程式1302可接收來自在行動裝置100上執行之應用程式的背景下載/上傳請求。舉例而言,一旦應用程式作出該請求,該應用程式 便可終止或暫時中止。該請求可識別該應用程式且識別資料之源及/或目的地位置。舉例而言,當下載資料時,源位置可為伺服器之網路位址且目的地位置可為行動裝置100之檔案系統中的目錄。當上傳資料時,源位置可為檔案系統位置且目的地可為網路位置。
在步驟1404處,行動裝置100可判定預算及裝置條件不允許資料傳送。舉例而言,背景傳送精靈協助程式1302可藉由向取樣精靈協助程式102作出許可控制請求來詢問取樣精靈協助程式102是否可執行所請求背景傳送,該許可控制請求識別背景傳送精靈協助程式1302、應用程式(針對其執行背景傳送)及/或待傳送資料之量。取樣精靈協助程式102可判定能量及資料預算是否已耗盡且行動裝置100是否處於熱事件中。若預算已耗盡或若行動裝置100處於熱事件中,則取樣精靈協助程式102可將指示不可執行背景資料傳送(例如,許可控制傳回「否」)之訊息發送至背景傳送精靈協助程式1302。
在步驟1406處,行動裝置100可儲存背景傳送請求。舉例而言,當取樣精靈協助程式102回應於許可控制請求而傳回「否」值時,背景傳送精靈協助程式1302可將傳送請求儲存於傳送請求存放庫中。
在步驟1408處,行動裝置100可判定可重試背景傳送。舉例而言,取樣精靈協助程式102可判定資料及能量預算已經補充且行動裝置100不處於熱事件中。取樣精靈協助程式102可將重試訊息發送至背景傳送精靈協助程式1302。背景傳送精靈協助程式1302可接著藉由針對所儲存傳送請求中之每一者作出另一許可控制請求來嘗試執行儲存於傳送請求存放庫中之所請求傳送。
在步驟1410處,行動裝置100可判定行動裝置100之預算及條件允許背景資料傳送。舉例而言,背景傳送精靈協助程式1302可詢問取樣精靈協助程式102是否可執行所請求背景傳送。取樣精靈協助程式102可執行許可控制以判定能量及資料預算經補充且行動裝置100不處 於熱事件中。若預算未耗盡且若行動裝置100不處於熱事件中,則取樣精靈協助程式102可將指示可執行背景資料傳送之訊息發送至背景傳送精靈協助程式1302。
在步驟1412處,行動裝置100可執行背景傳送。舉例而言,背景傳送精靈協助程式1302可執行請求應用程式之所請求背景下載或背景上傳。背景傳送精靈協助程式1302可通知取樣精靈協助程式102背景傳送何時開始及結束(例如,使用「backgroundTransfer」屬性開始及停止事件)。背景傳送精靈協助程式1302可發送通知取樣精靈協助程式在背景下載或上傳期間傳送之位元組之數目(例如,使用「networkBytes」屬性事件)的訊息。一旦背景傳送完成,背景傳送精靈協助程式1302便可叫用(例如,啟動或喚醒)作出背景傳送請求之應用程式且將完成狀態資訊(例如,成功、錯誤、經下載資料等)發送至請求應用程式。
啟用/停用背景更新
圖15說明用於啟用及/或停用行動裝置上之應用程式之背景更新的實例圖形使用者介面(GUI)1500。舉例而言,GUI 1500可為在行動裝置100之顯示器上呈現的用於接收使用者輸入以調整行動裝置100上之應用程式之背景更新設定的介面。
在一些實施中,至GUI 1500之使用者輸入可基於使用者叫用預報來啟用/停用對應用程式執行背景更新,如上文所描述。舉例而言,取樣程序102及/或應用程式管理器106可判定啟用抑或停用應用程式之背景更新且防止應用程式由應用程式管理器106啟動或防止應用程式包括於由取樣精靈協助程式102產生之應用程式叫用預報中。舉例而言,若停用該應用程式之背景更新,則取樣精靈協助程式102將不在由應用程式管理器106請求之使用者叫用應用程式預報中包括該應用程式。因此,應用程式管理器106在背景更新經停用時將不啟 動該應用程式。相反,若啟用該應用程式之背景更新,則該應用程式可包括於由取樣精靈協助程式102基於使用者叫用機率產生之應用程式叫用預報中,如上文所描述。
在一些實施中,至GUI 1500之使用者輸入可在推播通知經接收時啟用/停用對應用程式執行背景更新,如上文所描述。舉例而言,取樣精靈協助程式102、應用程式管理器106及/或推播服務精靈協助程式904可判定啟用抑或停用應用程式之背景更新且防止應用程式由應用程式管理器106回應於接收到推播通知而啟動。舉例而言,若停用應用程式之背景更新且接收到應用程式之推播通知,則應用程式管理器106回應於該推播通知而將不啟動應用程式以下載更新。
在一些實施中,GUI 1500可顯示已經組態以執行背景更新之應用程式1502至1514。舉例而言,應用程式1502至1514可經組態或程式化以在由應用程式管理器106啟動時作為行動裝置100上之背景程序執行。當作為背景程序執行時,應用程式1502至1514可與各種網路資源通信以下載當前或經更新內容。應用程式1502至1514可接著更新其各別使用者介面以在由行動裝置100之使用者叫用時呈現經更新內容。在一些實施中,未經組態或程式化以執行背景更新之應用程式將不顯示於GUI 1500上。
在一些實施中,使用者可將輸入提供至GUI 1500以啟用及/或停用應用程式之背景更新。舉例而言,使用者可將關於開啟或關閉應用程式1502之背景更新的雙態觸變元件(toggle)1516之輸入(例如,觸摸式輸入)提供至行動裝置102。使用者可將關於開啟或關閉應用程式1508之背景更新的雙態觸變元件(toggle)1518之輸入(例如,觸摸式輸入)提供至行動裝置102。
在一些實施中,可經由GUI 1500指定用於背景更新應用程式之額外選項。舉例而言,使用者可選擇與應用程式1514相關聯之圖形物 件1520以叫用用於指定額外背景更新選項之圖形使用者介面(未圖示)。背景更新選項可包括(例如)開啟及/或關閉應用程式1514之背景更新的開始時間及結束時間。
在同級裝置之間共用資料
圖16說明用於在同級裝置之間共用資料的實例系統。在一些實施中,行動裝置100可與行動裝置1600共用事件資料、系統資料及/或事件預報。舉例而言,行動裝置100及行動裝置1600可為由同一使用者所擁有之裝置。因此,在行動裝置100與行動裝置1600之間共用關於每一裝置上之使用者活動的資訊可為有益的。
在一些實施中,行動裝置1600可類似於上文所描述之行動裝置100而加以組態。舉例而言,行動裝置1600可經組態有提供描述於以上部分中之功能性(例如,屬性、屬性事件、預報、許可控制等)的取樣精靈協助程式1602。
在一些實施中,行動裝置100及行動裝置1600可分別經組態有識別服務精靈協助程式1620及識別服務精靈協助程式1610。舉例而言,識別服務精靈協助程式1620及1610可經組態以在行動裝置100與行動裝置1600之間傳達資訊。識別服務精靈協助程式可用以經由各種同級間及網路連接在由同一使用者所擁有之裝置之間共用資料。舉例而言,識別服務精靈協助程式1620及識別服務精靈協助程式1610可經由藍芽、藍芽低能量、Wi-Fi、LAN、WAN及/或網際網路連接交換資訊。
在一些實施中,取樣精靈協助程式1602(及取樣精靈協助程式102)可經組態以與在由同一使用者所擁有之其他裝置上執行的其他取樣精靈協助程式共用事件預報及系統狀態資訊。舉例而言,若行動裝置100及行動裝置1600由同一使用者所擁有,則取樣精靈協助程式102及取樣精靈協助程式1602可交換事件預報資訊及/或系統狀態資訊(例 如,電池狀態)。舉例而言,取樣精靈協助程式1602可使用識別服務精靈協助程式1610發送事件預報資訊及/或系統狀態資訊。識別服務精靈協助程式1610可建立至識別服務精靈協助程式1620之連接且經由識別服務精靈協助程式1620將事件預報資訊及/或行動裝置1600系統狀態資訊傳達至取樣精靈協助程式102。
在一些實施中,應用程式1608(例如,取樣精靈協助程式1602之用戶端)可請求取樣精靈協助程式1602將指定屬性或屬性值之事件預報發送至取樣精靈協助程式102。舉例而言,應用程式1608可為與行動裝置100之應用程式108同步的應用程式。舉例而言,應用程式108及1608可為經組態以在行動裝置100與行動裝置1600之間使資料(例如,媒體檔案、訊息、狀態資訊等)同步的媒體應用程式(例如,音樂庫、電子郵件應用程式、訊息傳遞應用程式等)。
在一些實施中,為了允許同級裝置(例如,行動裝置100)判定何時在裝置之間使資料同步,應用程式1608可請求取樣精靈協助程式1602基於由行動裝置1600產生之屬性事件資料來產生「bundleId」屬性或特定「bundleId」屬性值(例如,應用程式1608之應用程式識別符)之時間及/或同級預報,且將該等預報傳輸至取樣精靈協助程式102。舉例而言,同級裝置可為由同一使用者所擁有之遠端裝置(例如,並非當前本端裝置)。舉例而言,行動裝置100可為行動裝置1600之同級裝置。
在一些實施中,請求用戶端(例如,應用程式1608)可指定預報資料之遞送及持續時間的排程。舉例而言,應用程式1608可請求「bundleId」屬性值「mailapp」之同級及/或時間預報。舉例而言,應用程式1608可請求每週產生及交換預報且每一預報涵蓋一週之持續時間或時段。
在一些實施中,可靜態地排程同級裝置之間的資料交換。取樣 精靈協助程式1602可發送行動裝置100在嚴格排程(例如,每24小時之應用程式預報及電池統計資料)下具有對行動裝置1600之遠端狀態之持續檢視所必要的屬性資料。在一些實施中,用戶端可按需要向同級裝置請求屬性預報或統計資料。此等交換並非為重複出現的。可通知請求用戶端何時接收所請求資料。
在一些實施中,取樣精靈協助程式1602可將行動裝置1600之系統狀態資料傳輸至取樣精靈協助程式102。舉例而言,取樣精靈協助程式1602可接收電池電量事件(例如,「batteryLevel」屬性事件)、電池充電事件(例如,「cableplugin」事件)、能量使用量事件(例如,「能量」屬性事件)及/或可用以產生電池使用量及充電統計資料之其他事件且將電池相關事件資料傳輸至取樣精靈協助程式102。舉例而言,可每24小時交換電池狀態資訊。可伺機交換電池狀態資訊。舉例而言,當通信頻道(例如,同級間、網路化等)建立於行動裝置100與行動裝置1600之間時,行動裝置可伺機使用已開放之通信頻道以交換電池狀態或其他系統狀態資訊(例如,當前前景應用程式之識別)。
作為另一實例,取樣精靈協助程式1602可接收熱等級事件(例如,「thermalLevel」屬性事件)、網路事件(例如,「networkQuality」屬性事件、「networkBytes」屬性事件)且將熱及/或網路事件傳輸至取樣精靈協助程式102。取樣精靈協助程式1602可接收來自應用程式管理器1606的指示哪一應用程式(例如,應用程式識別符)當前在行動裝置1600之前景中的事件(例如,「system.foregroundApp」屬性事件)且將前景應用程式資訊傳輸至取樣精靈協助程式102。在一些實施中,一旦事件發生(例如,一旦連接建立於同級裝置之間),便可與同級裝置交換熱事件及前景應用程式改變資訊。在一些實施中,可週期性地(例如,一天一次,一天兩次,每小時等)交換網路狀態資訊。
在接收到來自取樣精靈協助程式1602之預報及/或系統事件資料 後,取樣精靈協助程式102可即刻將預報及/或事件資料儲存於同級資料儲存區1622中。類似地,取樣精靈協助程式1602自取樣精靈協助程式102接收之任何預報及/或事件資料可儲存於同級資料儲存區1612及事件資料1604中。在一些實施中,自另一裝置接收之預報及/或事件資料可與裝置描述相關聯。舉例而言,該裝置描述可包括裝置名稱、裝置識別符及識別裝置之型號的型號識別符。該裝置描述可用以在同級資料儲存區1622中查找該裝置之預報資料及/或事件資料。一旦行動裝置100及行動裝置1600已交換預報及/或事件資料,行動裝置便可使用經交換資訊以使用以下遠端許可控制機制判定何時彼此通信。藉由允許裝置僅在需要資訊時及在裝置之電池狀態可支援共用資訊時共用資訊,可改良通信之功率管理。
遠端許可控制
在一些實施中,行動裝置100(或行動裝置1600)可基於自另一裝置接收之資料來執行許可控制。舉例而言,取樣精靈協助程式102可基於自取樣精靈協助程式1602接收且儲存於同級資料儲存區1622中之預報及系統事件資料來執行許可控制。舉例而言,為與應用程式1608同步資料,應用程式108可將同步訊息發送至識別服務精靈協助程式1620。舉例而言,同步訊息可包括行動裝置100之識別符、行動裝置1600之識別符、優先順序識別符(例如,高、低)及訊息有效負載(例如,待同步資料)。
低優先順序訊息
在一些實施中,可在經歷許可控制之後傳輸低優先順序訊息。舉例而言,低優先順序訊息可為與任意處理(例如,背景應用程式、系統公用程式、預料活動、並非使用者起始之活動)相關聯之訊息。舉例而言,識別服務精靈協助程式1620可將「bundleId」屬性值之許可控制請求發送至取樣精靈協助程式102,該屬性值為應用程式1608 (例如,「bundleId」=「1608」)之套件組合識別符。除「bundleId」屬性名稱及值(例如,「1608」)外,識別服務精靈協助程式1620可在許可控制請求中提供裝置名稱(例如,「device1600」)以指示應用程式108正請求與另一裝置通信之許可控制。
在一些實施中,回應於接收到許可控制請求,取樣精靈協助程式102可執行本端許可控制及遠端許可控制。舉例而言,取樣精靈協助程式102可執行本端許可控制(如上文所描述)以判定行動裝置100是否能夠允許與指定屬性值(例如,「bundleId」=「1608」)相關聯之事件發生。取樣精靈協助程式102可(例如)檢查本端能量、資料及屬性預算且請求表決者回饋以判定行動裝置100是否能夠允許與指定屬性值(例如,「bundleId」=「1608」)相關聯之事件。
除執行本端許可控制外,取樣精靈協助程式102亦可基於自行動裝置1600接收且儲存於同級資料儲存區1622中之「bundleId」屬性預報、事件資料及系統資料來執行遠端許可控制。舉例而言,取樣精靈協助程式102可使用裝置識別符(例如,「device1600」、裝置名稱、唯一識別符、UUID等)來在同級資料儲存區1622中定位與行動裝置1600相關聯之資料。取樣精靈協助程式102可分析自取樣精靈協助程式1602接收之屬性(例如,「bundleId」」)預報資料以判定應用程式1608是否可能在當前15分鐘時槽中在行動裝置1600上由使用者叫用。若應用程式1608不可能在當前15分鐘時槽中由使用者叫用,則取樣精靈協助程式102可回應於許可控制請求而傳回「否」值。舉例而言,藉由允許應用程式108僅在應用程式1608可能用於行動裝置1600上時與應用程式1608同步,取樣精靈協助程式102可延遲同步程序且節約系統資源(例如,電池、CPU循環、網路資料)直至使用者可能在行動裝置1600上使用應用程式1608時之此時間為止。
在一些實施中,若應用程式1608可能在當前15分鐘時槽中由行 動裝置1600之使用者叫用,則取樣精靈協助程式102可檢查與行動裝置1600相關聯且儲存於同級資料儲存區1622中之系統資料。舉例而言,取樣精靈協助程式102可檢查與行動裝置1600相關聯之系統資料以判定行動裝置1600是否剩餘有足夠電池計量以執行應用程式108與應用程式1608之間的同步。舉例而言,取樣精靈協助程式102可檢查當前是否存在足夠電池計量以完成應用程式108與應用程式1608之間的同步。取樣精靈協助程式102可檢查是否存在足夠電池計量以執行該同步且繼續操作直至下一所預測電池再充電(例如,「cablePlugin」屬性事件)為止。舉例而言,取樣精靈協助程式102可產生「cablePlugin」屬性之時間預報,其識別下一「cablePlugin」屬性事件何時可能發生。取樣精靈協助程式102可分析能量使用量統計資料(事件)以預測能量使用量直至下一「cablePlugin」事件為止,且判定是否存在足夠剩餘能量以服務應用程式108與應用程式1608之間的同步傳輸。若取樣精靈協助程式102判定行動裝置1600並不具有足夠能量(例如,電池計量)以服務該同步,則取樣精靈協助程式102可回應於遠端許可控制請求而傳回「否」值。
在一些實施中,取樣精靈協助程式102可檢查與行動裝置1600相關聯之系統資料以判定行動裝置1600是否處於正常熱條件中(例如,未過熱)且可處置處理同步請求。舉例而言,若自行動裝置1600接收之「thermalLevel」屬性事件資料指示行動裝置1600當前在高於臨限值之溫度下操作,則取樣精靈協助程式102可藉由回應於遠端許可控制請求而傳回「否」值來防止同步通信。
在一些實施中,當預報資料指示使用者可能在行動裝置1600上叫用應用程式1608且能量、熱及其他系統狀態資訊指示行動裝置1600能夠處置來自行動裝置100之通信時,取樣精靈協助程式102可回應於許可控制請求而將「是」值傳回至識別服務精靈協助程式1620。回應 於接收到「是」值(回應於許可控制請求),識別服務精靈協助程式1620可將應用程式108之同步訊息傳輸至行動裝置1600上之識別服務精靈協助程式1610。應用程式108及應用程式1608可接著藉由經由識別服務精靈協助程式1620及識別服務精靈協助程式1610交換訊息來使資料同步。
在一些實施中,可在經歷遠端許可控制之後傳輸高優先順序訊息。舉例而言,高優先順序訊息可為與使用者起始之任務相關聯的訊息,諸如與前景應用程式相關聯之訊息或回應於使用者提供輸入而產生之訊息。在一些實施中,可類似於低優先順序訊息而處置對高優先順序訊息之許可控制。然而,當執行對高優先順序訊息之遠端許可控制時,可在不考慮屬性預報資料(例如,「bundleId」預報資料)之情況下許可(允許)高優先順序訊息,此係因為高優先順序訊息通常由某一使用者動作觸發而非由某一任意背景任務起始。
在一些實施中,當執行對高優先順序訊息之許可控制時,可檢查遠端裝置(例如,行動裝置1600)之電池狀態以確保遠端裝置(例如,同級裝置)具有可用於處理高優先順序訊息之足夠電池計量。若存在可用於遠端裝置上之足夠電池計量,則高優先順序訊息將經遠端許可控制批准。舉例而言,當存在足夠的剩餘電池計量以處理高優先順序訊息時,取樣精靈協助程式102可回應於遠端許可控制請求而將「是」值傳輸至識別服務精靈協助程式1620。若不存在可用於遠端裝置上之足夠電池計量,則高優先順序訊息將被遠端許可控制拒絕。舉例而言,當不存在足夠的剩餘電池計量以處理高優先順序訊息時,取樣精靈協助程式102可回應於遠端許可控制請求而將「否」值傳輸至識別服務精靈協助程式1620。因此,當同級裝置(例如,行動裝置1600)剩餘有足夠電池計量以處理論述中之訊息時,識別服務精靈協助程式1620將起始與該同級裝置之通信。
在一些實施中,當通知取樣精靈協助程式102高優先順序訊息時,取樣精靈協助程式102可將當前電池狀態資訊(例如,當前電池電量)發送至識別服務精靈協助程式1620。識別服務精靈協助程式1620可接著將電池狀態資訊新增至高優先順序訊息。因此,可藉由在傳輸於行動裝置100與行動裝置1600之間的其他訊息上背載電池狀態資訊(或其他資訊,例如,熱等級、前景應用程式等)來在裝置之間有效地共用系統狀態資訊。
在一些實施中,取樣精靈協助程式102可將重試訊息發送至識別服務精靈協助程式1620。舉例而言,當行動裝置100或行動裝置1600上之條件改變(例如,電池條件改良)時,取樣精靈協助程式102可向識別服務精靈協助程式1620發送重試訊息。在一些實施中,可在遠端焦點應用程式改變時產生重試訊息。舉例而言,若遠端同級裝置上之使用者正使用「mailapp」應用程式,則「mailapp」應用程式變成焦點應用程式。當使用者開始使用「webbrowser」應用程式時,焦點應用程式改變為「webbrowser」應用程式。當在行動裝置100與行動裝置1600之間交換同級資料時,可將焦點應用程式之改變作為事件報告至取樣精靈協助程式1602且傳輸至取樣精靈協助程式102。在於同級裝置1600處接收到指示焦點應用程式之改變的事件資訊後,取樣精靈協助程式102可即刻將重試訊息發送至識別服務精靈協助程式1620。識別服務精靈協助程式1620可接著針對被取樣精靈協助程式102拒絕之每一訊息而重試許可控制。舉例而言,識別服務精靈協助程式1620可儲存被拒絕訊息(例如,傳輸任務)且在自取樣精靈協助程式102接收到重試訊息時經由許可控制發送被拒絕訊息。在一些實施中,可在一時間段已過去之後傳輸被拒絕訊息。舉例而言,可在可組態時間段已過去之後將尚未通過許可控制之訊息發送至同級裝置。
在一些實施中,當取樣精靈協助程式102指示行動裝置100或行 動裝置1600上之條件已改變時,識別服務精靈協助程式1620可中斷資料串流傳輸。舉例而言,若取樣精靈協助程式102判定行動裝置100或行動裝置1600上之電池條件已改變使得行動裝置中之一者可用盡電池電力,則取樣精靈協助程式102可告知識別服務精靈協助程式1620停止傳輸且重試對與資料串流相關聯之屬性事件的許可控制。
用於在同級裝置之間共用資料的程序
圖17說明用於在同級裝置之間共用資料的實例程序1700。可參看圖16找到程序1700之額外細節。在步驟1702處,行動裝置可接收來自同級裝置之事件資料。舉例而言,事件資料可作為「摘要」(例如,預報、統計資料等)或作為原始(例如,未經處理)事件資料而共用。舉例而言,當第二裝置(例如,行動裝置1600)及行動裝置100由同一使用者擁有時,該第二裝置為該行動裝置之同級裝置。行動裝置100可接收關於行動裝置1600之系統狀態(例如,電池狀態、網路狀態、前景應用程式識別符等)的事件資料。行動裝置可基於已在行動裝置1600上發生之事件接收來自行動裝置1600之屬性事件預報、統計資料或原始事件資料。舉例而言,同級裝置1600上之應用程式1608可指示同級裝置1600上之取樣精靈協助程式1602產生特定屬性或屬性值之預報且將其發送至行動裝置100。
在步驟1704處,行動裝置100上之識別服務精靈協助程式1620可接收待傳輸至同級裝置1600之訊息。舉例而言,在行動裝置上執行之應用程式108可需要與同級裝置1600上之對應應用程式1608共用、交換或同步資料。應用程式108可將含有待共用之資料的訊息發送至識別服務精靈協助程式1620。
在步驟1706處,行動裝置100上之取樣精靈協助程式102可基於自同級裝置1600接收之資料來判定是否傳輸訊息。舉例而言,取樣精靈協助程式102可執行本端許可控制檢查及遠端許可控制檢查以判定 是否應在當前時間將訊息發送至同級裝置1600。若自同級裝置1600接收之屬性事件預報指示同級裝置1600之使用者有可能在當前時間叫用應用程式1608或若事件資料指示同級裝置1600之條件(例如,電池狀態、熱等級等)使得起始與同級裝置1600之通信將不會耗盡電池或使熱狀態更糟,則取樣精靈協助程式102可批准訊息之傳輸。
在步驟1708處,一旦取樣精靈協助程式102執行許可控制且批准起始與同級裝置1600之通信,識別服務精靈協助程式1620便可將訊息傳輸至同級裝置1600。舉例而言,識別服務精靈協助程式1620可將訊息傳輸至同級裝置1600之識別服務精靈協助程式1610。識別服務精靈協助程式1610可接著將訊息傳輸至應用程式1608使得應用程式108及應用程式1608可使資料同步。
實例系統架構
圖18為可實施圖1至圖17之特徵及程序的實例運算裝置1800之方塊圖。舉例而言,運算裝置1800可為智慧型手機、平板電腦、膝上型電腦、可穿戴式裝置(例如,表)、機上盒或車輛媒體系統。運算裝置1800可包括一記憶體介面1802、一或多個資料處理器、多個影像處理器及/或中央處理單元1804及一周邊介面1806。該記憶體介面1802、該一或多個處理器1804及/或該周邊介面1806可為單獨組件或可整合於一或多個積體電路中。運算裝置1800中之各種組件可藉由一或多個通信匯流排或信號線耦接。
感測器、裝置及子系統可耦接至周邊介面1806以促進多個功能性。舉例而言,運動感測器1810、光感測器1812及近接感測器1814可耦接至周邊介面1806以促進定向、光照及近接功能。諸如全球導航衛星系統(GNSS)(例如,GPS接收器)、溫度感測器、生物測定感測器、磁力計或其他感測裝置之其他感測器1816亦可連接至周邊介面1806以促進相關功能性。
攝影機子系統1820及光學感測器1822(例如,電荷耦合裝置(CCD)或互補金屬氧化物半導體(CMOS)光學感測器)可用以促進攝影機功能,諸如記錄相片及視訊剪輯。攝影機子系統1820及光學感測器1822可用以(例如)藉由執行面部辨識分析來收集待在使用者鑑認期間使用之使用者影像。
可經由一或多個無線通信子系統1824促進通信功能,該一或多個無線通信子系統可包括射頻接收器與發射器及/或光學(例如,紅外線)接收器與發射器。通信子系統1824之特定設計及實施可取決於運算裝置1800意欲操作所經由之通信網路。舉例而言,運算裝置1800可包括經設計以經由GSM網路、GPRS網路、EDGE網路、Wi-Fi或WiMax網路及BluetoothTM網路而操作之通信子系統1824。詳言之,無線通信子系統1824可包括代管協定使得裝置100可組態為用於其他無線裝置的基地台。
音訊子系統1826可耦接至揚聲器1828及麥克風1830以促進諸如揚聲器辨識、語音複寫、數位記錄之語音允用功能,及電話功能。舉例而言,音訊子系統1826可經組態以促進處理語音命令、聲紋產生及語音鑑認。
I/O子系統1840可包括觸控表面控制器1842及/或其他輸入控制器1844。觸控表面控制器1842可耦接至觸控表面1846。觸控表面1846及觸控表面控制器1842可使用複數種觸敏技術中之任一者來(例如)偵測接觸及移動或其斷裂,該複數種觸敏技術包括(但不限於)電容性、電阻性、紅外線及表面聲波技術,以及用於判定與觸控表面1846接觸之一或多個點的其他近接感測器陣列或其他元件。
其他輸入控制器1844可耦接至其他輸入/控制裝置1848,諸如一或多個按鈕、搖臂開關、拇指旋輪、紅外線埠、USB埠及/或指標裝置(諸如,觸控筆)。一或多個按鈕(未圖示)可包括用於揚聲器1828及/ 或麥克風1830之音量控制的增加/減小按鈕。
在一項實施中,按壓按鈕歷時第一持續時間可解開觸控表面1846之鎖定;且按壓按鈕歷時比第一持續時間長之第二持續時間可開啟或關閉運算裝置1800之電力。按壓按鈕歷時第三持續時間可啟動語音控制或語音命令模組,該語音控制或語音命令模組使得使用者能夠說出命令至麥克風1830中以使該裝置執行所說出的命令。使用者可自訂一或多個按鈕的功能性。觸控表面1846亦可(例如)用以實施虛擬或螢幕按鈕及/或鍵盤。
在一些實施中,運算裝置1800可呈現所記錄之音訊及/或視訊檔案,諸如MP3、AAC及MPEG檔案。在一些實施中,運算裝置1800可包括諸如iPodTM之MP3播放器的功能性。
記憶體介面1802可耦接至記憶體1850。記憶體1850可包括高速隨機存取記憶體及/或非揮發性記憶體,諸如一或多個磁碟儲存裝置、一或多個光學儲存裝置及/或快閃記憶體(例如,NAND、NOR)。記憶體1850可儲存作業系統1852,諸如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或嵌入式作業系統(諸如,VxWorks)。
作業系統1852可包括用於處置基本系統服務且用於執行硬體依賴性任務的若干指令。在一些實施中,作業系統1852可為核心(例如,UNIX核心)。在一些實施中,作業系統1852可包括用於基於使用者活動來執行行動裝置之動態調整的指令。舉例而言,作業系統1852可實施如參看圖1至圖17所描述之動態調整特徵。
記憶體1850亦可儲存通信指令1854以促進與一或多個額外裝置、一或多個電腦及/或一或多個伺服器的通信。記憶體1850可包括:圖形使用者介面指令1856,其用以促進圖形使用者介面處理;感測器處理指令1858,其用以促進感測器相關處理及功能;電話指令1860,其用以促進電話相關程序及功能;電子訊息傳遞指令1862,其 用以促進電子訊息傳遞相關程序及功能;web瀏覽指令1864,其用以促進web瀏覽相關程序及功能;媒體處理指令1866,其用以促進媒體處理相關程序及功能;GNSS/導航指令1868,其用以促進GNSS及導航相關程序及指令;及/或攝影機指令1870,其用以促進攝影機相關程序及功能。
記憶體1850可儲存用以促進其他程序及功能(諸如,如參看圖1至圖17所描述之動態調整程序及功能)之其他軟體指令1872。
記憶體1850亦可儲存其他軟體指令1874,諸如:web視訊指令,其促進web視訊相關程序及功能;及/或web購物指令,其促進web購物相關程序及功能。在一些實施中,媒體處理指令1866被分成音訊處理指令及視訊處理指令,其用以分別促進音訊處理相關程序及功能以及視訊處理相關程序及功能。
上文識別之指令及應用程式中之每一者可對應於用於執行上文所描述之一或多個功能的指令集。不需要將此等指令實施為單獨的軟體程式、程序或模組。記憶體1850可包括額外指令或較少指令。此外,運算裝置1800之各種功能可以硬體及/或以軟體來實施,包括以一或多個信號處理及/或特殊應用積體電路來實施。
在一些實施例中,電腦可讀儲存裝置、媒體及記憶體可包括含有位元串流及其類似者之纜線或無線信號。然而,當提及時,非暫時性電腦可讀儲存媒體明確地排除諸如能量、載波信號、電磁波及信號本身之媒體。
儘管多種實例及其他資訊用以解釋屬於所附申請專利範圍之範疇內的態樣,但基於此等實例中之特定特徵或配置,應暗示並不限制申請專利範圍,此係因為一般熟習此項技術者將能夠使用此等實例以導出廣泛多種實施。另外且儘管可已以特定於結構性特徵及/或方法步驟之實例的語言來描述一些標的物,但應理解,所附申請專利範圍 中所定義之標的物未必限於此等所描述特徵或動作。舉例而言,此功能性可不同地分佈,或執行於除了本文中所識別之彼等組件的組件中。確切而言,將所描述特徵及步驟揭示為屬於所附申請專利範圍之範疇內的系統及方法之組分的實例。
以下部分敍述上文所描述之特徵的實例實施。
實例1
舉例而言,一實施可包括一種方法,該方法包含:藉由在一行動裝置上執行之一第一程序接收由一或多個用戶端程序產生之事件,每一事件包括與複數個屬性中之一者相關聯的資料,其中該等屬性中之每一者與一預算相關聯且該等事件中之每一者具有一對應成本;基於由該行動裝置接收之與一特定屬性相關聯的事件之該成本來減少該特定屬性之該預算;將該事件資料儲存於該行動裝置上之一事件資料儲存區中;藉由該第一程序接收來自一用戶端程序之起始與該特定屬性相關聯之一事件的一請求;比較該事件之該成本與為該特定屬性剩餘之該預算;及藉由該第一程序基於該比較來判定允許與該特定屬性相關聯之該事件。如上文之方法,其中該複數個屬性中之至少一者係由一用戶端在執行階段動態地定義。如上文之方法,其中判定允許該事件包含產生該特定屬性之一預報,該預報指示與該屬性相關聯之一事件何時可能發生。如上文之方法,其中判定允許該事件包含判定是否剩餘有足夠預算以涵蓋該事件之該成本。如上文之方法,其中該特定屬性之該預算係藉由該用戶端動態地定義。如上文之方法,其中該預算對應於一全系統資料預算之一部分。如上文之方法,其中該預算對應於一全系統能量預算之一部分。
舉例而言,一實施可包括一種非暫時性電腦可讀媒體,該非暫時性電腦可讀媒體包括指令之一或多個序列,該等指令在由一或多個處理器執行時引起以下操作:藉由在一行動裝置上執行之一第一程序 接收由一或多個用戶端程序產生之事件,每一事件包括與複數個屬性中之一者相關聯的資料,其中該等屬性中之每一者與一預算相關聯且該等事件中之每一者具有一對應成本;基於由該行動裝置接收之與一特定屬性相關聯的事件之該成本來減少該特定屬性之該預算;將該事件資料儲存於該行動裝置上之一事件資料儲存區中;藉由該第一程序接收來自一用戶端程序之起始與該特定屬性相關聯之一事件的一請求;比較該事件之該成本與為該特定屬性剩餘之該預算;及藉由該第一程序基於該比較來判定允許與該特定屬性相關聯之該事件。如上文之非暫時性電腦可讀媒體,其中該複數個屬性中之至少一者係由一用戶端在執行階段動態地定義。如上文之非暫時性電腦可讀媒體,其中引起判定允許該事件之該等指令包括引起產生該特定屬性之一預報的指令,該預報指示與該屬性相關聯之一事件何時可能發生。如上文之非暫時性電腦可讀媒體,其中引起判定允許該事件之該等指令包括引起判定是否剩餘有足夠預算以涵蓋該事件之該成本的指令。如上文之非暫時性電腦可讀媒體,其中該特定屬性之該預算係藉由該用戶端動態地定義。如上文之非暫時性電腦可讀媒體,其中該預算對應於一全系統資料預算之一部分。如上文之非暫時性電腦可讀媒體,其中該預算對應於一全系統能量預算之一部分。
舉例而言,一實施可包括一種系統,該系統包含:一或多個處理器;及一電腦可讀媒體,其包括指令之一或多個序列,該等指令在由該一或多個處理器執行時引起以下操作:藉由在一行動裝置上執行之一第一程序接收由一或多個用戶端程序產生之事件,每一事件包括與複數個屬性中之一者相關聯的資料,其中該等屬性中之每一者與一預算相關聯且該等事件中之每一者具有一對應成本;基於由該行動裝置接收之與一特定屬性相關聯的事件之該成本來減少該特定屬性之該預算;將該事件資料儲存於該行動裝置上之一事件資料儲存區中;藉 由該第一程序接收來自一用戶端程序之起始與該特定屬性相關聯之一事件的一請求;比較該事件之該成本與為該特定屬性剩餘之該預算;及藉由該第一程序基於該比較來判定允許與該特定屬性相關聯之該事件。如上文之系統,其中該複數個屬性中之至少一者係由一用戶端在執行階段動態地定義。如上文之系統,其中引起判定允許該事件之該等指令包括引起產生該特定屬性之一預報的指令,該預報指示與該屬性相關聯之一事件何時可能發生。如上文之系統,其中引起判定允許該事件之該等指令包括引起判定是否剩餘有足夠預算以涵蓋該事件之該成本的指令。如上文之系統,其中該特定屬性之該預算係藉由該用戶端動態地定義。如上文之系統,其中該預算對應於一全系統資料預算之一部分。如上文之系統,其中該預算對應於一全系統能量預算之一部分。
實例2
舉例而言,一實施可包括一種方法,其包含:藉由來自在一運算裝置上執行之一或多個外掛程序的一第一程序接收將該等外掛程序註冊為一或多個表決程序的一請求;藉由該第一程序接收由一或多個用戶端程序產生之事件,每一事件包括與複數個屬性中之一者相關聯的資料;將該事件資料儲存於該行動裝置上之一事件資料儲存區中;藉由該第一程序接收來自一用戶端程序之起始與一特定屬性相關聯之一事件的一請求;將識別該特定屬性之資訊發送至每一經註冊表決程序;回應於將識別該特定屬性之該資訊發送至每一經註冊表決程序,接收來自該等經註冊表決程序中之至少一者的一表決;及藉由該第一程序基於該表決來判定允許與該特定屬性相關聯之該事件。如上文之方法,其中該一或多個表決程序係在執行階段動態地***至該第一程序中。如上文之方法,其中藉由該第一程序基於來自一或多個表決程序之回饋來判定允許與該特定屬性相關聯之該事件包含:向每一表決 程序發送識別該特定屬性之資訊;及在每一表決程序判定應允許與該特定屬性相關聯之一事件發生時接收來自該等表決程序中之每一者的一是表決。如上文之方法,其進一步包含藉由該第一程序判定在該第一程序接收到來自該一或多個表決程序中之至少一者的一否表決時防止與一第二屬性相關聯之一第二事件。如上文之方法,其進一步包含:接收來自該等表決程序中之至少一者的對與該特定屬性相關聯之一預報的一請求;產生該所請求預報;及將該所請求預報傳回至該至少一個表決程序。如上文之方法,其進一步包含藉由該第一程序基於來自一或多個表決程序之回饋來判定允許與一特定屬性值相關聯之一第三事件。如上文之方法,其中藉由該第一程序基於來自一或多個表決程序之回饋來判定允許與一特定屬性值相關聯之一第三事件包含:向每一表決程序發送識別該特定屬性值之資訊;及在每一表決程序判定應允許與該特定屬性值相關聯之一事件發生時接收來自該等表決程序中之每一者的一是表決。
舉例而言,一實施可包括一種非暫時性電腦可讀媒體,該非暫時性電腦可讀媒體包括指令之一或多個序列,該等指令在由一或多個處理器執行時引起以下操作:藉由來自在一運算裝置上執行之一或多個外掛程序的一第一程序接收將該等外掛程序註冊為一或多個表決程序的一請求;藉由該第一程序接收由一或多個用戶端程序產生之事件,每一事件包括與複數個屬性中之一者相關聯的資料;將該事件資料儲存於該行動裝置上之一事件資料儲存區中;藉由該第一程序接收來自一用戶端程序之起始與一特定屬性相關聯之一事件的一請求;將識別該特定屬性之資訊發送至每一經註冊表決程序;回應於將識別該特定屬性之該資訊發送至每一經註冊表決程序,接收來自該等經註冊表決程序中之至少一者的一表決;及藉由該第一程序基於該表決來判定允許與該特定屬性相關聯之該事件。如上文之非暫時性電腦可讀媒 體,其中該一或多個表決程序係在執行階段動態地***至該第一程序中。如上文之非暫時性電腦可讀媒體,其中引起藉由該第一程序基於來自一或多個表決程序之回饋來判定允許與該特定屬性相關聯之該事件的該等指令包括引起以下操作之指令:向每一表決程序發送識別該特定屬性之資訊;及在每一表決程序判定應允許與該特定屬性相關聯之一事件發生時接收來自該等表決程序中之每一者的一是表決。如上文之非暫時性電腦可讀媒體,其中該等指令引起藉由該第一程序判定在該第一程序接收到來自該一或多個表決程序中之至少一者的一否表決時防止與一第二屬性相關聯之一第二事件。如上文之非暫時性電腦可讀媒體,其中該等指令引起以下操作:接收來自該等表決程序中之至少一者的對與該特定屬性相關聯之一預報的一請求;產生該所請求預報;及將該所請求預報傳回至該至少一個表決程序。如上文之非暫時性電腦可讀媒體,其中該等指令引起藉由該第一程序基於來自一或多個表決程序之回饋來判定允許與一特定屬性值相關聯之一第三事件。如上文之非暫時性電腦可讀媒體,其中引起藉由該第一程序基於來自一或多個表決程序之回饋來判定允許與一特定屬性值相關聯之一第三事件的該等指令包括引起以下操作之指令:向每一表決程序發送識別該特定屬性值之資訊;及在每一表決程序判定應允許與該特定屬性值相關聯之一事件發生時接收來自該等表決程序中之每一者的一是表決。
舉例而言,一實施可包括一種系統,該系統包含:一或多個處理器;及一電腦可讀媒體,其包括指令之一或多個序列,該等指令在由該一或多個處理器執行時引起以下操作:藉由來自在一運算裝置上執行之一或多個外掛程序的一第一程序接收將該等外掛程序註冊為一或多個表決程序的一請求;藉由該第一程序接收由一或多個用戶端程序產生之事件,每一事件包括與複數個屬性中之一者相關聯的資料; 將該事件資料儲存於該行動裝置上之一事件資料儲存區中;藉由該第一程序接收來自一用戶端程序之起始與一特定屬性相關聯之一事件的一請求;將識別該特定屬性之資訊發送至每一經註冊表決程序;回應於將識別該特定屬性之該資訊發送至每一經註冊表決程序,接收來自該等經註冊表決程序中之至少一者的一表決;及藉由該第一程序基於該表決來判定允許與該特定屬性相關聯之該事件。如上文之系統,其中該一或多個表決程序係在執行階段動態地***至該第一程序中。如上文之系統,其中引起藉由該第一程序基於來自一或多個表決程序之回饋來判定允許與該特定屬性相關聯之該事件的該等指令包括引起以下操作之指令:向每一表決程序發送識別該特定屬性之資訊;及在每一表決程序判定應允許與該特定屬性相關聯之一事件發生時接收來自該等表決程序中之每一者的一是表決。如上文之系統,其中該等指令引起藉由該第一程序判定在該第一程序接收到來自該一或多個表決程序中之至少一者的一否表決時防止與一第二屬性相關聯之一第二事件。如上文之系統,其中該等指令引起以下操作:接收來自該等表決程序中之至少一者的對與該特定屬性相關聯之一預報的一請求;產生該所請求預報;及將該所請求預報傳回至該至少一個表決程序。如上文之系統,其中該等指令引起藉由該第一程序基於來自一或多個表決程序之回饋來判定允許與一特定屬性值相關聯之一第三事件。如上文之系統,其中引起藉由該第一程序基於來自一或多個表決程序之回饋來判定允許與一特定屬性值相關聯之一第三事件的該等指令包括引起以下操作之指令:向每一表決程序發送識別該特定屬性值之資訊;及在每一表決程序判定應允許與該特定屬性值相關聯之一事件發生時接收來自該等表決程序中之每一者的一是表決。
實例3
舉例而言,一實施可包括一種方法,其包含:藉由在一行動裝 置上執行之一第一程序接收由一或多個用戶端程序產生之事件,每一事件包括與複數個屬性中之一者相關聯的資料;將該事件資料儲存於該行動裝置上之一事件資料儲存區中;針對該所儲存事件資料中之該等屬性中之每一者產生一或多個事件預報;藉由該第一程序接收來自一用戶端程序之起始與一特定屬性相關聯之一事件的一請求;藉由該第一程序基於針對該特定屬性產生之一預報來判定允許與該特定屬性相關聯之該事件。如上文之方法,其中該一或多個預報預測與一屬性相關聯之一事件將在一時間段中發生的一似然度。如上文之方法,其中該一或多個預報包括一同級預報。如上文之方法,其中該一或多個預報包括一時間預報。如上文之方法,其中該一或多個預報包括基於該事件資料儲存區中之該特定屬性之發生頻率的一頻率預報。如上文之方法,其中該一或多個預報包括基於與不同於該特定屬性之屬性相關聯之事件的一全景預報。如上文之方法,其進一步包含基於複數個預報類型中之每一者如何良好地預測一所接收事件之發生來判定一預設預報類型。如上文之方法,其中該複數個預報類型包括一頻率預報類型及一全景預報類型。
舉例而言,一實施可包括一種非暫時性電腦可讀媒體,該非暫時性電腦可讀媒體包括指令之一或多個序列,該等指令在由一或多個處理器執行時引起以下操作:藉由在一行動裝置上執行之一第一程序接收由一或多個用戶端程序產生之事件,每一事件包括與複數個屬性中之一者相關聯的資料;將該事件資料儲存於該行動裝置上之一事件資料儲存區中;針對該所儲存事件資料中之該等屬性中之每一者產生一或多個事件預報;藉由該第一程序接收來自一用戶端程序之起始與一特定屬性相關聯之一事件的一請求;藉由該第一程序基於針對該特定屬性產生之一預報來判定允許與該特定屬性相關聯之該事件。如上文之非暫時性電腦可讀媒體,其中該一或多個預報預測與一屬性相關 聯之一事件將在一時間段中發生的一似然度。如上文之非暫時性電腦可讀媒體,其中該一或多個預報包括一同級預報。如上文之非暫時性電腦可讀媒體,其中該一或多個預報包括一時間預報。如上文之非暫時性電腦可讀媒體,其中該一或多個預報包括基於該事件資料儲存區中之該特定屬性之發生頻率的一頻率預報。如上文之非暫時性電腦可讀媒體,其中該一或多個預報包括基於與不同於該特定屬性之屬性相關聯之事件的一全景預報。如上文之非暫時性電腦可讀媒體,其中該等指令引起基於複數個預報類型中之每一者如何良好地預測一所接收事件之發生來判定一預設預報類型。如上文之非暫時性電腦可讀媒體,其中該複數個預報類型包括一頻率預報類型及一全景預報類型。
舉例而言,一實施可包括一種系統,該系統包含:一或多個處理器;及一非暫時性電腦可讀媒體,其包括指令之一或多個序列,該等指令在由該一或多個處理器執行時引起以下操作:藉由在一行動裝置上執行之一第一程序接收由一或多個用戶端程序產生之事件,每一事件包括與複數個屬性中之一者相關聯的資料;將該事件資料儲存於該行動裝置上之一事件資料儲存區中;針對該所儲存事件資料中之該等屬性中之每一者產生一或多個事件預報;藉由該第一程序接收來自一用戶端程序之起始與一特定屬性相關聯之一事件的一請求;藉由該第一程序基於針對該特定屬性產生之一預報來判定允許與該特定屬性相關聯之該事件。如上文之系統,其中該一或多個預報預測與一屬性相關聯之一事件將在一時間段中發生的一似然度。如上文之系統,其中該一或多個預報包括一同級預報。如上文之系統,其中該一或多個預報包括一時間預報。如上文之系統,其中該一或多個預報包括基於該事件資料儲存區中之該特定屬性之發生頻率的一頻率預報。如上文之系統,其中該一或多個預報包括基於與不同於該特定屬性之屬性相關聯之事件的一全景預報。如上文之系統,其中該等指令引起基於複 數個預報類型中之每一者如何良好地預測一所接收事件之發生來判定一預設預報類型。如上文之系統,其中該複數個預報類型包括一頻率預報類型及一全景預報類型。
100‧‧‧行動裝置
102‧‧‧取樣精靈協助程式/取樣程序
104‧‧‧事件資料儲存區
106‧‧‧應用程式管理器/應用程式管理器程序
108‧‧‧應用程式/電力監測程序/電力監測器
110‧‧‧熱精靈協助程式
112‧‧‧裝置設定程序
114‧‧‧裝置感測器
400‧‧‧用於執行應用程式之背景提取更新的實例系統
402‧‧‧帳戶處理資料儲存區
404‧‧‧內容伺服器
406‧‧‧網路精靈協助程式
408‧‧‧活動監測器應用程式/活動監測器

Claims (15)

  1. 一種方法,其包含:在一行動裝置處自一同級裝置接收屬性事件資料,其中該屬性事件資料描述發生於該同級裝置上之事件;在該行動裝置處儲存該同級事件資料;自該行動裝置上之一應用程式接收一請求以與該同級裝置通信,其中該請求包括具有一值之一屬性,該值對應於針對該同級裝置上之一相應應用程式的一識別符;基於儲存在該同級事件資料中之針對該同級裝置的一應用程式啟動預報,由該行動裝置決定初始化與該同級裝置之通信,其中該應用程式啟動預報表示該相應應用程式將在一當前時間段內於該同級裝置上被叫用的一似然度(likelihood)。
  2. 如請求項1之方法,其中該同級裝置及該行動裝置係由一單一使用者擁有。
  3. 如請求項1之方法,其中基於該同級事件資料由該行動裝置決定初始化與該同級裝置之通信包括:基於該同級事件資料判定該同級裝置之一電池狀態。
  4. 如請求項1之方法,其中基於該同級事件資料由該行動裝置決定初始化與該同級裝置之通信包括:基於該同級事件資料判定該同級裝置之一熱狀態。
  5. 如請求項1之方法,其中基於該同級事件資料由該行動裝置決定初始化與該同級裝置之通信包括:判定一使用者大約於當前時間可能叫用在該同級裝置上之該相應應用程式。
  6. 一種非暫態電腦可讀媒體,其包含一或多組指令,當該一或多組指令被一或多個處理器執行時,將導致下列動作: 於一行動裝置處自一同級裝置接收屬性事件資料,其中該屬性事件資料描述發生於該同級裝置上之事件;在該行動裝置處儲存該同級事件資料;自該行動裝置上之一應用程式接收一請求以與該同級裝置通信,其中該請求包括具有一值之一屬性,該值對應於針對該同級裝置上之一相應應用程式的一識別符;基於儲存在該同級事件資料中之針對該同級裝置的一應用程式啟動預報,由該行動裝置決定初始化與該同級裝置之通信,其中該應用程式啟動預報表示該相應應用程式將在一當前時間段內於該同級裝置上被叫用的一似然度。
  7. 如請求項6之非暫態電腦可讀媒體,其中該同級裝置及該行動裝置係由一單一使用者擁有。
  8. 如請求項6之非暫態電腦可讀媒體,其中導致基於該同級事件資料由該行動裝置決定初始化與該同級裝置之通信的該等指令包括:導致基於該同級事件資料判定該同級裝置之一電池狀態的指令。
  9. 如請求項6之非暫態電腦可讀媒體,其中導致基於該同級事件資料由該行動裝置決定初始化與該同級裝置之通信的該等指令包括:導致基於該同級事件資料判定該同級裝置之一熱狀態的指令。
  10. 如請求項6之非暫態電腦可讀媒體,其中導致基於該同級事件資料由該行動裝置決定初始化與該同級裝置之通信的該等指令包括:導致判定一使用者大約於當前時間可能叫用在該同級裝置上之該相應應用程式的指令。
  11. 一種系統,其包含:一或多個處理器;及 一非暫態電腦可讀媒體,其包含一或多組指令,當該一或多組指令被一或多個處理器執行時,將導致下列動作:於一行動裝置處自一同級裝置接收屬性事件資料,其中該屬性事件資料描述發生於該同級裝置上之事件;在該行動裝置處儲存該同級事件資料;自該行動裝置上之一應用程式接收一請求以與該同級裝置通信,其中該請求包括具有一值之一屬性,該值對應於針對該同級裝置上之一相應應用程式的一識別符;基於儲存在該同級事件資料中之針對該同級裝置的一應用程式啟動預報,由該行動裝置決定初始化與該同級裝置之通信,其中該應用程式啟動預報表示該相應應用程式將在一當前時間段內於該同級裝置上被叫用的一似然度。
  12. 如請求項11之系統,其中該同級裝置及該行動裝置係由一單一使用者擁有。
  13. 如請求項11之系統,其中導致基於該同級事件資料由該行動裝置決定初始化與該同級裝置之通信的該等指令包括:導致基於該同級事件資料判定該同級裝置之一電池狀態的指令。
  14. 如請求項11之系統,其中導致基於該同級事件資料由該行動裝置決定初始化與該同級裝置之通信的該等指令包括:導致基於該同級事件資料判定該同級裝置之一熱狀態的指令。
  15. 如請求項11之系統,其中導致基於該同級事件資料由該行動裝置決定初始化與該同級裝置之通信的該等指令包括:導致判定一使用者大約於當前時間可能叫用在該同級裝置上之該相應應用程式的指令。
TW105113128A 2014-05-30 2015-05-18 行動裝置基於熱條件之動態調整 TWI575372B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462005964P 2014-05-30 2014-05-30
US14/503,253 US9432839B2 (en) 2014-05-30 2014-09-30 Dynamic adjustment of mobile device based on thermal conditions

Publications (2)

Publication Number Publication Date
TW201633131A TW201633131A (zh) 2016-09-16
TWI575372B true TWI575372B (zh) 2017-03-21

Family

ID=53180893

Family Applications (2)

Application Number Title Priority Date Filing Date
TW105113128A TWI575372B (zh) 2014-05-30 2015-05-18 行動裝置基於熱條件之動態調整
TW104115783A TWI540426B (zh) 2014-05-30 2015-05-18 行動裝置基於熱條件之動態調整

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW104115783A TWI540426B (zh) 2014-05-30 2015-05-18 行動裝置基於熱條件之動態調整

Country Status (3)

Country Link
US (1) US9432839B2 (zh)
TW (2) TWI575372B (zh)
WO (1) WO2015183514A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI754561B (zh) * 2021-03-12 2022-02-01 中華電信股份有限公司 即時通訊系統、方法及電腦可讀媒介

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8437748B2 (en) * 2010-07-07 2013-05-07 At&T Mobility Ii Llc Method for managing multiple radio access bearers in a single handset
US10223156B2 (en) 2013-06-09 2019-03-05 Apple Inc. Initiating background updates based on user activity
US10218582B2 (en) 2013-09-26 2019-02-26 Apple Inc. Notifications with input-based completion
US9432796B2 (en) 2014-05-30 2016-08-30 Apple Inc. Dynamic adjustment of mobile device based on peer event data
KR102260177B1 (ko) 2014-07-16 2021-06-04 텐세라 네트워크스 리미티드 선택된 시각에서 개런티 프리페칭을 사용하는 무선 네트워크를 통한 효과적인 콘텐트 전달
US9979796B1 (en) 2014-07-16 2018-05-22 Tensera Networks Ltd. Efficient pre-fetching notifications
US11095743B2 (en) 2014-07-16 2021-08-17 Tensera Networks Ltd. Optimized content-delivery network (CDN) for the wireless last mile
US10506027B2 (en) 2014-08-27 2019-12-10 Tensera Networks Ltd. Selecting a content delivery network
US20160232451A1 (en) * 2015-02-09 2016-08-11 Velocee Ltd. Systems and methods for managing audio content
US10609523B2 (en) * 2015-02-12 2020-03-31 Ca, Inc. Context and environmentally aware notifications on mobile devices
US9723470B1 (en) 2015-04-30 2017-08-01 Tensera Networks Ltd. Selective enabling of data services to roaming wireless terminals
US9875150B2 (en) * 2015-06-02 2018-01-23 Apple Inc. Method and system for processing notifications amongst applications of a data processing system
US10491708B2 (en) 2015-06-05 2019-11-26 Apple Inc. Context notifications
JP6472896B2 (ja) * 2015-09-28 2019-02-20 シャープ株式会社 制御装置、電子機器および制御プログラム
KR20180069806A (ko) 2015-10-15 2018-06-25 텐세라 네트워크스 리미티드 통신 단말기에서의 콘텐츠의 신선도 인식 프리젠테이션
US10230820B2 (en) * 2017-04-12 2019-03-12 Wyse Technology L.L.C. Analytics driven update notification
WO2018234967A1 (en) 2017-06-19 2018-12-27 Tensera Networks Ltd. SILENT CONTENT UPDATE IN USER DEVICES
US10379584B2 (en) * 2017-12-06 2019-08-13 Plume Design, Inc. Local thermal control of wireless access points
TWI758960B (zh) * 2020-11-19 2022-03-21 友達光電股份有限公司 電子裝置
US20220269542A1 (en) * 2021-02-19 2022-08-25 Micron Technology, Inc. Management of a computing device usage profile
US11632454B2 (en) 2021-04-19 2023-04-18 Meta Platforms Technologies, Llc Head-worn wearable devices for automatically ceasing the capture of video data, and methods of use thereof
CN113132486A (zh) * 2021-04-20 2021-07-16 阿波罗智联(北京)科技有限公司 一种数据处理方法、装置、电子设备和介质
US20240187883A1 (en) * 2022-12-02 2024-06-06 Samsung Electronics Co., Ltd. Traffic aware ue temperature management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200530905A (en) * 2004-03-01 2005-09-16 Hitachi Ltd Command control method in network storage system
US8170547B1 (en) * 2008-01-17 2012-05-01 Sprint Communications Company L.P. Dynamic adjustment of a base transceiver station in a wireless communication system

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859829B1 (en) 1999-02-23 2005-02-22 Microsoft Corp. Method and mechanism for providing computer programs with computer system events
US7065575B1 (en) 2000-11-20 2006-06-20 Hewlett-Packard Development Company, L.P. Cooperative networking method and system
US6996441B1 (en) 2002-03-11 2006-02-07 Advanced Micro Devices, Inc. Forward-looking fan control using system operation information
US20030200264A1 (en) 2002-04-18 2003-10-23 Brill Gregory M. Wireless email protocol system and method of using the same
US20040128663A1 (en) 2002-12-31 2004-07-01 Efraim Rotem Method and apparatus for thermally managed resource allocation
US20070067373A1 (en) 2003-11-03 2007-03-22 Steven Higgins Methods and apparatuses to provide mobile applications
US20050125701A1 (en) 2003-12-03 2005-06-09 International Business Machines Corporation Method and system for energy management via energy-aware process scheduling
US20060168014A1 (en) 2004-11-30 2006-07-27 Nokia Inc. Highly extendable message filtering daemon for a network appliance
US8838620B2 (en) 2006-02-03 2014-09-16 International Business Machines Corporation Predictive data object retrieval
US8126993B2 (en) 2006-07-18 2012-02-28 Nvidia Corporation System, method, and computer program product for communicating sub-device state information
US8028060B1 (en) 2007-01-05 2011-09-27 Apple Inc. Background task execution over a network based on network activity idle time
US8386822B2 (en) 2008-02-01 2013-02-26 International Business Machines Corporation Wake-and-go mechanism with data monitoring
US8327349B2 (en) 2008-07-11 2012-12-04 Internationanl Business Machines Corporation Matching plug-ins to users
US20100015926A1 (en) 2008-07-18 2010-01-21 Luff Robert A System and methods to monitor and analyze events on wireless devices to predict wireless network resource usage
US8321057B2 (en) 2009-03-12 2012-11-27 Red Hat, Inc. Infrastructure for adaptive environmental control for equipment in a bounded area
JP4966327B2 (ja) 2009-03-17 2012-07-04 株式会社東芝 情報処理装置及び省電力設定方法
US9141918B2 (en) 2009-03-18 2015-09-22 Location Labs, Inc. User contribution based mapping system and method
EP2433256A4 (en) 2009-05-21 2016-10-05 Intertrust Tech Corp SYSTEMS AND METHODS FOR CONTENT DISTRIBUTION
US20120042002A1 (en) 2009-06-03 2012-02-16 Tony Paul Smith System and method for context driven centralized help
US8190939B2 (en) 2009-06-26 2012-05-29 Microsoft Corporation Reducing power consumption of computing devices by forecasting computing performance needs
US8732728B2 (en) 2009-07-20 2014-05-20 Samsung Electronics Co., Ltd. System and method to allow multiple plug-in applications real-time access to a camera application in a mobile device
EP2328324A1 (en) 2009-11-27 2011-06-01 France Telecom Selective routing method, network and home agent
US8305728B2 (en) 2010-06-30 2012-11-06 Apple Inc. Methods and apparatus for cooling electronic devices
US20120179502A1 (en) 2011-01-11 2012-07-12 Smart Technologies Ulc Method for coordinating resources for events and system employing same
EP2568384A1 (en) 2011-09-06 2013-03-13 Alcatel Lucent Method, controller device and computer program for measuring energy efficiency of a multi blades system
US20130067492A1 (en) 2011-09-09 2013-03-14 Eli Joshua FIDLER Content-filter publish-subscribe system that optimizes interprocess communications
US9172608B2 (en) 2012-02-07 2015-10-27 Cloudera, Inc. Centralized configuration and monitoring of a distributed computing cluster
US9098357B2 (en) 2012-04-11 2015-08-04 Nokia Technologies Oy Method and apparatus for activity management across multiple devices
JP6019778B2 (ja) 2012-06-07 2016-11-02 富士通株式会社 運用監視装置、運用監視装置における原因事象の判定方法、及び情報通信ネットワークシステム
US20130332524A1 (en) 2012-06-12 2013-12-12 Intermec Ip Corp. Data service on a mobile device
US8984240B2 (en) 2012-08-30 2015-03-17 International Business Machines Corporation Reducing page faults in host OS following a live partition mobility event
US9092445B2 (en) 2012-09-06 2015-07-28 Advanced Micro Devices, Inc. Predictive information topology modeling and visualization
US8515499B1 (en) 2012-09-10 2013-08-20 Google Inc. Estimating remaining use time of mobile computing devices
US20140082383A1 (en) 2012-09-20 2014-03-20 Apple Inc. Predicting user intent and future interaction from application activities
US9431839B2 (en) 2012-10-26 2016-08-30 Nokia Technologies Oy Method, apparatus, and computer program product for optimized device-to-device charging

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200530905A (en) * 2004-03-01 2005-09-16 Hitachi Ltd Command control method in network storage system
US8170547B1 (en) * 2008-01-17 2012-05-01 Sprint Communications Company L.P. Dynamic adjustment of a base transceiver station in a wireless communication system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI754561B (zh) * 2021-03-12 2022-02-01 中華電信股份有限公司 即時通訊系統、方法及電腦可讀媒介

Also Published As

Publication number Publication date
TW201600963A (zh) 2016-01-01
TWI540426B (zh) 2016-07-01
WO2015183514A1 (en) 2015-12-03
US20150350885A1 (en) 2015-12-03
US9432839B2 (en) 2016-08-30
TW201633131A (zh) 2016-09-16

Similar Documents

Publication Publication Date Title
TWI575372B (zh) 行動裝置基於熱條件之動態調整
KR102106744B1 (ko) 피어 이벤트 데이터에 기초한 모바일 디바이스의 동적 조정
US9462965B2 (en) Dynamic adjustment of mobile device based on system events
US10936358B2 (en) Initiating background updates based on user activity
US9465679B2 (en) Dynamic adjustment of mobile device based on adaptive prediction of system events
KR101980138B1 (ko) 사용자 활동에 기초한 모바일 디바이스의 동적 조정
US9603094B2 (en) Non-waking push notifications
US9392393B2 (en) Push notification initiated background updates
US9813990B2 (en) Dynamic adjustment of mobile device based on voter feedback