TWI557555B - 基於使用者活動之行動裝置之動態調整 - Google Patents

基於使用者活動之行動裝置之動態調整 Download PDF

Info

Publication number
TWI557555B
TWI557555B TW104136386A TW104136386A TWI557555B TW I557555 B TWI557555 B TW I557555B TW 104136386 A TW104136386 A TW 104136386A TW 104136386 A TW104136386 A TW 104136386A TW I557555 B TWI557555 B TW I557555B
Authority
TW
Taiwan
Prior art keywords
application
mobile device
push notification
processing sequence
sprite
Prior art date
Application number
TW104136386A
Other languages
English (en)
Other versions
TW201606500A (zh
Inventor
馬貝爾 菲利普 史坦利
葛瑞夫 卡普爾
奇 曼 萬
強納森J 安德魯斯
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 TW201606500A publication Critical patent/TW201606500A/zh
Application granted granted Critical
Publication of TWI557555B publication Critical patent/TWI557555B/zh

Links

Classifications

    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • 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/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0251Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity
    • H04W52/0258Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity controlling an operation mode according to history or models of usage information, e.g. activity schedule or time of day
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0264Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by selectively disabling software applications
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

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

Description

基於使用者活動之行動裝置之動態調整 相關申請案之交叉參考
本申請案主張2013年6月9日申請之名為「基於使用者活動之行動裝置之動態調整(Dynamic Adjustment of Mobile Device Based on User Activity)」之美國臨時申請案第61/832,919號的優先權,此臨時申請案之全部內容係以引用方式併入本文中。
本發明大體上係關於基於使用者行為來調整電腦系統之組件。
行動運算裝置通常為電池供電型(battery operated)。一些行動運算裝置可經由蜂巢式資料及/或Wi-Fi網路連接而無線地存取網路資源。此等行動裝置常常受到電池容量及對蜂巢式資料之限制的約束。
一些行動運算裝置允許使用者執行自網路資源存取資料之應用程式。使用者通常調用應用程式,且接著必須等待應用程式自網路資源擷取資料,使得應用程式可呈現當前經更新內容。
在一些實施中,一行動裝置可經組態以監視環境事件、系統事件及使用者事件。該行動裝置可經組態以偵測可觸發對系統設定之調整的一或多個事件之發生。
在一些實施中,該行動裝置可經組態以使經頻繁調用之應用程 式保持最新。該行動裝置可追蹤應用程式何時由使用者調用。基於調用資訊,該行動裝置可預報該等應用程式在一天期間何時被調用。該行動裝置可接著先佔式地啟動該等應用程式且下載更新,使得該使用者可調用該等應用程式且檢視當前經更新內容而不必等待該等應用程式下載經更新內容。
在一些實施中,該行動裝置可接收與應用程式相關聯之推播通知,該等推播通知指示出新內容可用於該等應用程式以供下載。該行動裝置可在背景中啟動與該等推播通知相關聯之該等應用程式,且下載該新內容。在下載該內容之後,該行動裝置可呈現向該使用者指示出該推播通知被接收之一圖形介面。該使用者可接著調用該等應用程式且檢視該經更新內容。
在一些實施中,該行動裝置可經組態以在該行動裝置上在處理序外(out of process)執行用於應用程式之內容之下載及/或上傳。舉例而言,可在該行動裝置上組態一專用處理序以用於在該行動裝置上下載及/或上傳用於應用程式之內容。可在執行該上傳/下載的同時暫時中止或終止該等應用程式。當該上傳/下載完成時,可調用該等應用程式。
在一些實施中,在執行一應用程式或存取一網路介面之前,該行動裝置可經組態以檢查電池電力及蜂巢式資料使用量預算以確保足夠電力及資料可用於使用者調用操作。在背景中啟動一應用程式之前,該行動裝置可檢查使用量統計資料以判定該應用程式是否很可能由一使用者在近期未來調用。
特定實施提供至少以下優點:可藉由回應於經偵測事件而動態地調整行動裝置之組件來節約電池電力。可藉由預期使用者何時將調用應用程式且下載內容而使得使用者將在調用應用程式後就檢視經更新內容來改良使用者體驗。
隨附圖式及以下描述中闡述一或多項實施之細節。其他特徵、態樣及潛在優點將自該描述及該等圖式且自申請專利範圍顯而易見。
100‧‧‧行動裝置
102‧‧‧取樣精靈協助程式
104‧‧‧事件資料儲存區
106‧‧‧應用程式管理員處理序
108‧‧‧電力監視器處理序/應用程式
110‧‧‧熱管理處理序
112‧‧‧裝置設定處理序
114‧‧‧裝置感測器
116‧‧‧行事曆應用程式
118‧‧‧時鐘應用程式
120‧‧‧試探性處理序
122‧‧‧裝置組件
124‧‧‧控制多工器
200‧‧‧處理序
202‧‧‧步驟
204‧‧‧步驟
206‧‧‧步驟
208‧‧‧步驟
210‧‧‧步驟
212‧‧‧步驟
300‧‧‧處理序
302‧‧‧步驟
304‧‧‧步驟
306‧‧‧步驟
308‧‧‧步驟
310‧‧‧步驟
312‧‧‧步驟
314‧‧‧步驟
400‧‧‧系統
402‧‧‧帳戶處理資料儲存區
404‧‧‧內容伺服器
500‧‧‧圖解
530‧‧‧圖解
560‧‧‧圖解
600‧‧‧處理序
602‧‧‧步驟
604‧‧‧步驟
606‧‧‧步驟
608‧‧‧步驟
610‧‧‧步驟
612‧‧‧步驟
614‧‧‧步驟
616‧‧‧步驟
700‧‧‧處理序
702‧‧‧步驟
704‧‧‧步驟
706‧‧‧步驟
708‧‧‧步驟
710‧‧‧步驟
712‧‧‧步驟
714‧‧‧步驟
716‧‧‧步驟
718‧‧‧步驟
800‧‧‧流程圖
802‧‧‧步驟
804‧‧‧步驟
806‧‧‧步驟
808‧‧‧步驟
810‧‧‧步驟
811‧‧‧步驟
900‧‧‧方塊圖
902‧‧‧推播提供者
904‧‧‧推播服務精靈協助程式
906‧‧‧推播通知伺服器
908‧‧‧應用程式
910‧‧‧高優先權推播通知
912‧‧‧低優先權推播通知
914‧‧‧推播通知篩選
916‧‧‧喚醒清單
918‧‧‧非喚醒清單
920‧‧‧通知訊息
922‧‧‧推播通知資料儲存區
924‧‧‧其他傳輸/訊息
926‧‧‧訊息
928‧‧‧推播篩選
930‧‧‧喚醒清單
932‧‧‧非喚醒清單
934‧‧‧推播通知資料儲存區
936‧‧‧高優先權推播通知儲存區
1000‧‧‧處理序
1002‧‧‧步驟
1004‧‧‧步驟
1006‧‧‧步驟
1008‧‧‧步驟
1010‧‧‧步驟
1012‧‧‧步驟
1014‧‧‧步驟
1100‧‧‧處理序
1102‧‧‧步驟
1104‧‧‧步驟
1106‧‧‧步驟
1108‧‧‧步驟
1110‧‧‧步驟
1112‧‧‧步驟
1114‧‧‧步驟
1116‧‧‧步驟
1200‧‧‧處理序
1202‧‧‧步驟
1204‧‧‧步驟
1206‧‧‧步驟
1208‧‧‧步驟
1210‧‧‧步驟
1212‧‧‧步驟
1214‧‧‧步驟
1216‧‧‧步驟
1300‧‧‧系統
1302‧‧‧背景傳送精靈協助程式
1304‧‧‧應用程式
1306‧‧‧伺服器
1308‧‧‧請求存放庫
1400‧‧‧處理序
1402‧‧‧步驟
1404‧‧‧步驟
1406‧‧‧步驟
1408‧‧‧步驟
1410‧‧‧步驟
1412‧‧‧步驟
1500‧‧‧圖形使用者介面(GUI)
1502‧‧‧應用程式
1504‧‧‧應用程式
1506‧‧‧應用程式
1508‧‧‧應用程式
1510‧‧‧應用程式/圖形物件
1512‧‧‧應用程式
1514‧‧‧應用程式
1516‧‧‧雙態觸發
1518‧‧‧雙態觸發
1600‧‧‧運算裝置
1602‧‧‧記憶體介面
1604‧‧‧中央處理單元
1606‧‧‧周邊設備介面
1610‧‧‧運動感測器
1612‧‧‧光感測器
1614‧‧‧近接感測器
1616‧‧‧其他感測器
1620‧‧‧攝影機子系統
1622‧‧‧光學感測器
1624‧‧‧無線通信子系統
1626‧‧‧音訊子系統
1628‧‧‧揚聲器
1630‧‧‧麥克風
1640‧‧‧I/O子系統
1642‧‧‧觸控表面控制器
1644‧‧‧其他輸入控制器
1646‧‧‧觸控表面
1648‧‧‧其他輸入/控制裝置
1650‧‧‧記憶體
1652‧‧‧作業系統
1654‧‧‧通信指令
1656‧‧‧圖形使用者介面指令
1658‧‧‧感測器處理指令
1660‧‧‧電話指令
1662‧‧‧電子傳訊指令
1664‧‧‧網頁瀏覽指令
1666‧‧‧媒體處理指令
1668‧‧‧GNSS/導航指令
1670‧‧‧攝影機指令
1672‧‧‧其他軟體指令
1674‧‧‧其他軟體指令
圖1說明行動裝置100,其經組態以執行該行動裝置之動態調整。
圖2說明用於調用試探性處理序(heuristic process)之實例處理序。
圖3說明用於使用試探性處理序來調整行動裝置之設定之處理序。
圖4說明用於執行應用程式之背景提取更新(background fetch updating)之實例系統。
圖5說明描繪用於判定針對行動裝置上之應用程式的使用者調用機率之時間序列模型化的實例圖解。
圖6為用於預測性地啟動應用程式以執行背景更新之實例處理序的流程圖。
圖7為用於判定何時在行動裝置上啟動應用程式之實例處理序的流程圖。
圖8為說明用於趨勢資料表(trending table)中之項目之狀態轉變的流程圖。
圖9為說明用於將推播通知提供至行動裝置之系統的方塊圖。
圖10為用於在推播通知伺服器處執行非喚醒推播之實例處理序的流程圖。
圖11為用於回應於低優先權推播通知而執行應用程式之背景更新之實例處理序的流程圖。
圖12為用於回應於高優先權推播通知而執行應用程式之背景更新之實例處理序的流程圖。
圖13為用於在行動裝置上執行資料之背景下載及/或上傳之實例系統的方塊圖。
圖14為用於執行背景下載及上傳之實例處理序的流程圖。
圖15說明用於啟用及/或停用針對行動裝置上之應用程式之背景更新的實例圖形使用者介面(graphical user interface,GUI)。
圖16為可實施圖1至圖15之特徵及處理序之實例運算裝置的方塊圖。
各種圖式中之類似參考符號指示類似元件。
概觀
根據實施,本文描述一種用於啟用行動裝置對使用者行為之調適以促進電池壽命、功率要求、熱管理與效能之間的取捨的系統架構。系統提供基礎事件與統計資料搜集架構及隨著時間而得知使用者之網路條件與應用程式使用量型樣之一組試探性處理序,以在沒有顯著使用者體驗降級的情況下最大化電池壽命。此系統可基於經動態搜集之統計資料及/或經明確指定之使用者意圖來預期使用者之未來行為以及使用者對裝置效能之期望。系統可判定將設定哪些硬體及軟體控制參數且將該等參數設定至什麼值,以便針對所預期之使用者行為來改良使用者體驗。系統充分利用使用者監視及硬體控制以達成使用者體驗之整體改良,同時延伸可用於行動裝置之系統及網路資源。因此,系統可最大化系統及網路資源,同時最小化對使用者體驗之影響。
資料收集-以使用者為主之統計資料
圖1說明行動裝置100,其經組態以執行行動裝置100之動態調整。在一些實施中,行動裝置100可包括收集與裝置條件、網路條件及使用者行為相關之事件之取樣精靈協助程式(sampling daemon) 102。舉例而言,取樣精靈協助程式102可收集與應用程式、感測器及由行動裝置100接收之使用者輸入相關之統計資料,且將統計資料儲存於事件資料儲存區104中。所產生或所收集之所有統計資料可包括指示統計資料被產生或收集之時間與時區之時間戳記,及/或地理位置。可基於全球導航衛星系統信號、蜂巢式傳輸信號、Wi-Fi信號或任何其他位置判定方法來判定地理位置。
在一些實施中,取樣精靈協助程式102可自應用程式管理員處理序106接收應用程式使用量統計資料。舉例而言,應用程式管理員106可為在行動裝置100上開始、停止及監視應用程式(例如,應用程式108)之處理序。在一些實施中,應用程式管理員106可向取樣精靈協助程式102報告針對在行動裝置100上執行之應用程式之開始時間及停止時間。舉例而言,當使用者或其他處理序調用或啟動應用程式時,應用程式管理員106可向取樣精靈協助程式102通知應用程式調用。另外,應用程式管理員106可向取樣精靈協助程式102指示出應用程式啟動係回應於推播通知、使用者調用或經預測或經預報使用者應用程式調用而起始。當應用程式終止時,應用程式管理員106可向取樣精靈協助程式102通知應用程式不再執行。舉例而言,應用程式管理員106可將應用程式之名稱或其他識別符以及開始時間或結束時間提供至取樣精靈協助程式102。
在一些實施中,取樣精靈協助程式102可使用應用程式開始及結束通知以產生每應用程式之使用量時間之歷史。舉例而言,對於一應用程式之每一執行,每應用程式之使用量時間之歷史可包括自該應用程式之最後執行以來已經過之時間量,及執行持續時間。取樣精靈協助程式102可維護使用者調用應用程式啟動及/或系統啟動應用程式之分離歷史。因此,取樣精靈協助程式102可維護針對在行動裝置100上執行之所有應用程式之使用量統計資料。
在一些實施中,取樣精靈協助程式102可自電力監視器處理序108接收電力統計資料。舉例而言,電力監視器108可監視用於行動裝置100之電池容量、放電、使用量及充電特性。電力監視器可判定行動裝置100何時插入至外部電源中及行動裝置100何時接通電池電力。電力監視器108可向取樣精靈協助程式102通知行動裝置100何時插入至外部電力中。舉例而言,電力監視器108可將電力監視器何時偵測到行動裝置100插入至外部電源中之訊息發送至取樣精靈協助程式102。該訊息可包括外部電源被連接時之電池計量(battery charge)。
電力監視器108可向取樣精靈協助程式102通知行動裝置100何時自外部電力中斷連接。舉例而言,電力監視器108可將電力監視器何時偵測到行動裝置100自外部電源中斷連接之訊息發送至取樣精靈協助程式102。該訊息可包括外部電源被中斷連接時之電池計量。因此,取樣精靈協助程式102可維護描述行動裝置100之電池之充電散佈(例如,隨著時間之計量)的統計資料。充電散佈統計資料可包括自最後充電以來之時間量(例如,自插入至外部電力中以來之時間),及可歸因於充電之電池計量變更(例如,開始電量、結束電量)。
在一些實施中,電力監視器108可向取樣精靈協助程式102通知全天之電池計量變更。舉例而言,電力監視器108可被通知應用程式何時開始及停止,且回應於該通知而判定在該時期期間放電之電池電力之量以及電池中剩餘之電量,且將此資訊傳輸至取樣精靈協助程式102。
在一些實施中,取樣精靈協助程式102可自熱管理處理序110接收裝置溫度統計資料。舉例而言,熱管理處理序110可使用一或多個溫度感測器來監視行動裝置100之操作溫度條件。熱管理處理序110可經組態以將溫度變更週期性地報告給取樣精靈協助程式102。舉例而言,熱管理處理序110可每五秒鐘判定行動裝置100之操作溫度一次, 且將溫度報告給取樣精靈協助程式102。取樣精靈協助程式102可將所報告之溫度儲存於事件資料儲存區104中。
在一些實施中,取樣精靈協助程式102可自裝置設定處理序112接收裝置設定統計資料。舉例而言,裝置設定處理序112可為行動裝置100之作業系統之函式或處理序。舉例而言,裝置設定處理序112可接收使用者輸入以調整各種裝置設定,諸如,接通/關斷飛航模式、接通/關斷Wi-Fi、接通/關斷漫遊等等。裝置設定處理序112可將對裝置設定之變更報告給取樣精靈協助程式102。舉例而言,裝置設定處理序112可向取樣精靈協助程式102通知使用者何時在行動裝置100上接通或關斷飛航模式。取樣精靈協助程式102可基於經接收通知而產生及儲存用於裝置設定之統計資料。舉例而言,對於一設定被啟用(或停用)之每一時間,取樣精靈協助程式102可儲存指示自先前啟用該設定以來已經過之時間量及該設定被啟用之時間量(例如,持續時間)的資料。
相似地,在一些實施中,取樣精靈協助程式102可自行動裝置100之其他組件(例如,裝置感測器114)接收何時發生其他事件之通知。舉例而言,取樣精靈協助程式102可接收以下各者之通知:行動裝置之閒置螢幕何時被接通或關斷;行動裝置100何時被固持成緊接於使用者之臉部;小區塔交遞何時被偵測;基頻處理器何時處於搜尋模式;行動裝置100何時已偵測到使用者正在行走、跑步及/或駕駛。在每一狀況下,取樣精靈協助程式102可在事件之開始及結束時接收一通知。在每一狀況下,取樣精靈協助程式102可產生及儲存指示自最後次偵測到事件以來已經過之時間量及事件之持續時間的統計資料。取樣精靈協助程式102可接收其他事件通知且產生其他統計資料,如下文關於特定使用狀況及情境進一步所描述。
應用程式事件
在一些實施中,取樣精靈協助程式102可自行動裝置100上之應用程式接收事件資訊。舉例而言,取樣精靈協助程式102可自行事曆應用程式116接收行事曆事件(例如,約會、會議、提醒等等)。舉例而言,取樣精靈協助程式102可儲存事件名稱、事件持續時間,及/或事件何時經排程以發生之時間。取樣精靈協助程式102可自時鐘應用程式118接收時鐘事件。舉例而言,取樣精靈協助程式102可儲存事件名稱(例如,鬧鐘名稱),及/或事件何時經排程以發生之時間。取樣精靈協助程式102可自其他應用程式(例如,媒體應用程式、存摺應用程式等等)接收事件資訊,如下文進一步所描述。
應用程式統計資料
在一些實施中,取樣精靈協助程式102可橫越應用程式啟動事件而收集應用程式統計資料。舉例而言,取樣精靈協助程式102可橫越每一應用程式之許多調用而收集用於該應用程式之統計資料。舉例而言,可運用每一應用程式之可執行碼之檔案系統路徑的雜湊及該可執行碼之內容的雜湊來識別該應用程式,使得可將該同一應用程式之不同版本處置為相異應用程式。
在一些實施中,取樣精靈協助程式102可維護追蹤用於每一應用程式之背景任務完成確證事件之計數器。舉例而言,每當應用程式作為背景任務而執行(例如,由使用者在前景中不可見及/或當前在使用中)時,應用程式或應用程式管理員106可向取樣精靈協助程式102通知應用程式何時終止或暫時中止,且取樣精靈協助程式102可遞增計數器。取樣精靈協助程式102可維護橫越應用程式已在背景中執行之應用程式啟動而追蹤累計秒數之計數器。在一些實施中,取樣精靈協助程式102可維護計數資料連接之數目、追蹤網路資料訊務之量(例如,以位元組為單位)、追蹤檔案系統操作之持續時間與大小及/或追蹤與每一應用程式相關聯之執行緒之數目的分離計數器。舉例而言, 取樣精靈協助程式102可維護應用程式橫越應用程式啟動而保持作用中之累計時間量之計數。此等者僅僅為可由取樣精靈協助程式102追蹤之應用程式統計資料之類型的有限實例。可產生或收集其他統計資料,如下文進一步所描述。
試探法
在一些實施中,行動裝置100可經組態有可基於由取樣精靈協助程式102偵測之事件來調整裝置組件之設定的試探性處理序。舉例而言,試探性處理序120可包括經組態(例如,程式化)以回應於一或多個觸發事件及/或基於由取樣精靈協助程式102收集或產生之統計資料來調整各種系統設定(例如,CPU功率、基頻處理器功率、顯示照明等等)之一或多個處理序。
在一些實施中,試探性處理序120可向取樣精靈協助程式102註冊以在滿足一組預定義準則(例如,發生某一觸發事件)時被調用或啟動。觸發事件可能包括調用媒體播放器應用程式,或偵測到使用者已開始行走、跑步、駕駛等等。當在事件資料104中或由取樣精靈協助程式102偵測到某一屬性、資料、統計資料、事件等等時,觸發事件可經一般化以調用試探性處理序120。舉例而言,當取樣精靈協助程式102接收到應用程式開始通知或高於某一臨限值之溫度時,可調用試探性處理序120。試探性處理序120可註冊以在發生單一事件或觀測到統計資料時被調用。試探性處理序120可註冊以在觀測到或偵測到事件、資料及/或統計資料之組合時被調用。可回應於特定使用者輸入(例如,將裝置設定變更至飛航模式)而觸發或調用試探性處理序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。舉例而言,可經由空中傳輸(例如,蜂巢式資料連接、Wi-Fi連接等等)而將新試探性處理序120下載或安裝於行動裝置100上。
實例試探性處理序
在一些實施中,試探性處理序120可經組態以調整行動裝置100之系統設定,以防止行動裝置100在處於使用者之口袋中時變得過熱。舉例而言,此口袋中熱試探性處理序(hot-in-pocket heuristic process)可經組態以向取樣精靈協助程式102註冊以在行動裝置之顯示器關斷時及在行動裝置100未播放任何娛樂媒體(例如,音樂、電影、視訊等等)時被調用。舉例而言,當被調用時,口袋中熱試探法可作出推薦以縮減CPU功率及GPU功率。
在一些實施中,試探性處理序120可經組態以在行動裝置之顯示器未被使用時調整位置準確度。舉例而言,若行動裝置之顯示器未被使用(例如,顯示器關斷),則行動裝置100不能將地圖資訊或方向顯示給使用者。因此,使用者很可能不使用行動裝置100之位置服務,且可調整位置服務(例如,GPS位置、Wi-Fi位置、蜂巢式位置等等)以使用較少功率。位置準確度試探性處理序可向取樣精靈協助程式102註冊以在行動裝置之顯示器關斷時被調用。當被調用時,試探性處理序可調整GPS處理器、Wi-Fi傳輸器、蜂巢式傳輸器、基頻處理器之功率位準,或終止用以判定行動裝置100之位置之處理序。
在一些實施中,試探性處理序120可經組態以回應於使用者行為 而調整行動裝置之環境光感測器之設定。舉例而言,當取樣精靈協助程式102接收到指示出以下各者之資料時,可由取樣精靈協助程式102調用此使用者調適性環境光感測器(ALS)試探性處理序:環境光感測器已偵測到環繞行動裝置100之環境光之變更;環境光感測器系統已調整顯示器之亮度;及/或使用者已提供輸入以調整顯示器之亮度。
當被調用時,使用者調適性ALS試探法可向取樣精靈協助程式102請求關於ALS顯示器調整及使用者起始顯示器調整之額外資訊,以判定是否存在指示出ALS何時調高或調低顯示器亮度且使用者何時在相對方向上調整顯示器亮度之使用者輸入型樣。舉例而言,使用者可乘座巴士或火車去工作。在乘座期間,巴士燈可接通及關斷。當燈接通時,環境光感測器可偵測環境光變更,且增加顯示器亮度。由於燈僅暫時地接通,故當燈再次關斷時,使用者可減低顯示器亮度。可由試探性處理序使此使用者輸入型樣與當日時間、行事曆或鬧鐘項目或旅行型樣相關,以判定使用者在什麼情況或上下文中回應於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之資料庫中。舉例而言,註冊資訊可包括試探性處理序之識別(例如,可執行名稱、檔案系統路徑等等),及事件準則(事件、值、臨限值、範圍等等之識別)。
在步驟208處,取樣精靈協助程式102可接收事件資料。舉例而言,取樣精靈協助程式102可自各種系統組件接收事件資料,該等各種系統組件包括應用程式管理員106、感測器114、行事曆116及時鐘118,如上文所描述。
在步驟210處,取樣精靈協助程式102可比較經接收事件資料與試探性註冊資料。舉例而言,隨著將事件資料報告給取樣精靈協助程式102,取樣精靈協助程式102可比較事件資料或自事件資料產生之統計資料與自試探性處理序120接收之註冊資訊。
在步驟212處,取樣精靈協助程式102可基於步驟210處執行之比較來調用試探性處理序。舉例而言,若事件資料及/或統計資料滿足 用於試探性處理序120之試探性註冊資料中指定之準則,則取樣精靈協助程式102可調用試探性處理序120。舉例而言,若事件資料及/或統計資料超出由試探性處理序在註冊期間針對事件所指定之臨限值,則可由取樣精靈協助程式102調用試探性處理序。
圖3說明用於使用試探性處理序120來調整行動裝置100之設定之處理序300。在步驟302處,初始化試探性處理序120。舉例而言,可由取樣精靈協助程式102調用試探性處理序120,使得試探性處理序120可經由其初始化次常式而執行。舉例而言,調用可經參數化以指示出試探性處理序120應在此調用期間經由其初始化次常式而執行。
在步驟304處,試探性處理序120可針對系統事件而向取樣精靈協助程式102註冊。舉例而言,在初始化期間,試探性處理序120可將包括用於調用試探性處理序120之事件、臨限值、值或其他準則之識別的訊息發送至取樣精靈協助程式102。當發生事件及/或滿足準則時,取樣精靈協助程式102可調用試探性處理序120。
在步驟306處,試探性處理序120可關機或終止。舉例而言,試探性處理序120不為系統所需要,直至針對試探性處理序120滿足註冊準則為止。因此,為了節約裝置資源(例如,電池電力、處理能力等等),使試探性處理序120終止、關機或暫時中止,直至其被需要為止。
在步驟308處,可重新開始試探性處理序120。舉例而言,當取樣精靈協助程式102判定出已滿足在註冊訊息中由試探性處理序120指定之準則時,取樣精靈協助程式102可調用試探性處理序120。
在步驟310處,試探性處理序120可自取樣精靈協助程式102獲得事件資料。舉例而言,一旦重新開始,試探性處理序120就可查詢取樣精靈協助程式102以取得額外事件資料。試探性處理序120可經組態以按需要而與其他系統資源、處理序、感測器等等互動以收集資料。
在步驟312處,試探性處理序120可處理事件資料以判定組件設定。舉例而言,試探性處理序120可使用來自取樣精靈協助程式102之事件資料及/或統計資料,及/或自系統之其他組件收集之資料,以判定如何調整行動裝置100之各種組件之設定。
在步驟314處,試探性處理序120可將經判定組件設定傳輸至控制多工器124。舉例而言,控制多工器124可仲裁自試探性處理序120及其他系統組件(例如,熱管理處理序110)接收之裝置設定推薦。控制多工器124可接著根據經接收設定推薦來調整行動裝置100之各種組件(例如,CPU、GPU、基頻處理器、顯示器等等)。
使應用程式保持最新-提取更新
圖4說明用於執行應用程式之背景提取更新之實例系統400。在一些實施中,行動裝置100可經組態以預測性地啟動應用程式作為行動裝置100之背景處理序,使得應用程式可預期到使用者調用應用程式而下載內容且更新其介面。舉例而言,可使用由取樣精靈協助程式102維護之使用者應用程式啟動歷史資料以預報使用者何時將調用行動裝置100之應用程式。可在使用者調用之前由應用程式管理員106啟動此等應用程式,使得使用者將無需等待使用者調用應用程式下載當前內容且更新應用程式之圖形介面。
判定何時啟動應用程式
在一些實施中,應用程式管理員106可向取樣精靈協助程式102請求應用程式調用預報(application invocation forecast)。舉例而言,取樣精靈協助程式102可提供允許應用程式管理員106請求指示何時啟動行動裝置100之應用程式之資訊的介面。取樣精靈協助程式102可維護指示使用者何時調用行動裝置100上之應用程式的統計資料,如上文所描述。當應用程式管理員106呼叫「何時啟動(when to launch)」介面時,取樣精靈協助程式102可處理使用者應用程式調用統計資料 以判定每一應用程式通常在一天期間何時由使用者調用。舉例而言,取樣精靈協助程式102可計算特定當日時間或時段將包括由使用者進行之應用程式調用的機率。
在一些實施中,應用程式管理員106可在應用程式管理員106之初始化期間調用取樣精靈協助程式102之「何時啟動」介面。舉例而言,可在行動裝置100之啟動期間調用或啟動應用程式管理員106。在應用程式管理員106正在初始化時,應用程式管理員106可請求針對下一24小時之應用程式調用預報。一旦已經過初始24小時時期,應用程式管理員106就可請求另一24小時預報。舉例而言,此24預報循環可繼續直至行動裝置100關斷為止。
在一些實施中,取樣精靈協助程式102可產生針對24小時時期之應用程式調用預報。舉例而言,取樣精靈協助程式102可將24小時時期劃分成96個十五分鐘時槽。取樣精靈協助程式102可基於由取樣精靈協助程式102收集且儲存於事件資料儲存區104中之應用程式啟動歷史資料來判定哪些應用程式已被調用及該等應用程式遍及數個(例如,1個至7個)先前操作天數在什麼時間被調用。在一些實施中,當已針對一應用程式停用背景更新時,取樣精靈協助程式102將自調用預報排除該應用程式。
在一些實施中,可根據一(例如,任一)應用程式將在每一15分鐘時槽內被調用的機率而對該15分鐘時槽順位。舉例而言,若取樣精靈協助程式102正使用先前七天之使用者調用應用程式啟動歷史資料以判定針對15分鐘時槽之機率,則取樣精靈協助程式102可計算遍及先前七天已發生多少次使用者調用應用程式啟動(例如,總應用程式啟動),且判定在每一15分鐘時槽(例如,n時槽)內發生多少次應用程式啟動。舉例而言,若15分鐘窗對應於時段12:00pm至12:15pm,則在15分鐘窗內啟動之應用程式之數目將包括在最後七天中之每一天內自 12:00pm至12:15pm發生之所有使用者起始應用程式啟動。取樣精靈協助程式102可接著藉由將在七天中之每一天之給定15分鐘窗內發生的應用程式啟動之數目除以遍及七天時期之總應用程式啟動(例如,n時槽/總應用程式啟動)來判定一應用程式由使用者在給定15分鐘時槽內調用的機率。
一旦計算針對96個時槽中每一者之應用程式調用機率,取樣精靈協助程式102就將選擇具有最大非零機率之數個(例如,高達64個)時槽,且將識別該等時槽之資訊傳回至應用程式管理員106。舉例而言,取樣精靈協助程式102可向應用程式管理員106發送對應於15分鐘時槽之開始之時間清單(例如,12:00pm、1:45pm等等),該等15分鐘時槽對應於可能之使用者調用應用程式啟動。
在一些實施中,可基於96個時槽中之每一各別時槽內之週期性應用程式調用而對96個時槽中每一者順位。舉例而言,若使用者在遍及最後天數(例如,七天)之每一天期間之一時槽內調用同一應用程式,則可對該同一時槽進行高順位。若使用者在遍及最後天數之每一天期間之一時槽內調用不同應用程式(例如,同一應用程式被調用不多於一次),則可對該同一時槽進行低順位。舉例而言,若在針對最後七天之一時槽(例如,12:00pm至12:15pm)期間由使用者調用應用程式「A」,則該時槽可具有基於該應用程式被調用之天數與所考慮之總天數之比率的順位或記分(例如,7/7=1)。若在針對最後七天之一時槽(例如,12:00pm至12:15pm)期間由使用者在僅一天內調用應用程式「B」,則該時槽可具有基於該應用程式被調用之天數與所考慮之總天數之比率的順位或記分(例如,1/7=0.14)。若遍及七天時期在12:00pm至12:15pm時槽內調用應用程式A及應用程式B,則可根據所產生之最高記分而對該時槽順位或記分。舉例而言,針對使用應用程式A之時槽之記分為1.0,針對使用應用程式B之時槽之記分為0.14, 因此,針對該時槽之記分為1.0。可向不具有應用程式調用之時槽指派為零之記分。
在一些實施中,取樣精靈協助程式102可選擇具有最高記分之數個(例如,64個)時槽,且將該等時槽發送至應用程式管理員106。舉例而言,取樣精靈協助程式102可向應用程式管理員106發送對應於15分鐘時槽之開始之時間清單(例如,12:00pm、1:45pm等等),該等15分鐘時槽對應於可能之使用者調用應用程式啟動。
在一些實施中,應用程式管理員106可基於由取樣精靈協助程式102提供之時槽來設定計時器。舉例而言,應用程式管理員106可建立或設定對應於由取樣精靈協助程式102識別之時槽之一或多個計時器(例如,鬧鐘)。當每一計時器響起(例如,在12:00pm)時,應用程式管理員106可喚醒(例如,若睡眠、暫時中止等等),且判定應針對當前15分鐘時槽啟動哪些應用程式。因此,計時器可觸發針對很可能由使用者在對應時槽內調用之應用程式之提取背景更新。
在一些實施中,其他事件可觸發針對應用程式之提取背景更新。舉例而言,接通蜂巢式無線電、接通基頻處理器或建立網路連接(例如,蜂巢式或Wi-Fi)可觸發背景應用程式啟動,使得應用程式更新可利用作用中網路連接。解除鎖定行動裝置100、接通顯示器及/或其他互動可觸發背景應用程式啟動及提取更新,如下文進一步所描述。在一些實施中,若在先前數目個(例如,七)分鐘內執行任何背景更新,則應用程式管理員106將不觸發背景應用程式啟動及提取更新。
判定將啟動什麼應用程式
在一些實施中,應用程式管理員106可請求取樣精靈協助程式102提供針對當前時間將啟動之應用程式清單。舉例而言,當計時器針對15分鐘時槽響起(例如,過期)時,應用程式管理員可呼叫取樣精靈協助程式102之「啟動什麼(what to launch)」介面,使得取樣精靈 協助程式102可判定針對當前時槽將啟動哪些應用程式。取樣精靈協助程式102可接著產生應用程式清單及對應記分,該等記分指示每一應用程式在大約當前時間將由使用者調用的機率,如下文進一步所描述。在一些實施中,當已針對一應用程式停用背景更新時,取樣精靈協助程式102將自應用程式清單排除該應用程式。
在一些實施中,取樣精靈協助程式102可判定每一應用程式針對當前(例如,15分鐘)時槽將由使用者調用的機率。舉例而言,回應於「啟動什麼」介面之調用,取樣精靈協助程式102可判定每一應用程式將由使用者調用的可能性。
圖5說明描繪用於判定針對行動裝置100上之應用程式的使用者調用機率之時間序列模型化的實例圖解500、530及560。在一些實施中,取樣精靈協助程式102可使用時間序列模型化以判定針對行動裝置100上之每一應用程式的使用者調用機率。若一應用程式未顯露於時間序列中,則可向該應用程式指派零機率值。
在一些實施中,可基於最近應用程式調用來產生使用者調用機率。舉例而言,可使用針對先前兩小時之應用程式啟動資料(例如,在最後兩小時內之使用者起始應用程式啟動)來產生使用者調用機率。如圖解500所說明,應用程式啟動歷史資料可指示數個(例如,四個)應用程式在先前兩小時內啟動。舉例而言,圓點及圓圈可表示應用程式,其中空白圓圈可表示單一特定應用程式(例如,電子郵件、社交網路連接應用程式等等)。可藉由將特定應用程式之調用之數目(例如,2)除以先前兩小時內之應用程式調用之總數(例如,4)來計算使用最近歷史的與特定應用程式相關聯之機率。在所說明狀況下,使用最近應用程式啟動歷史資料的與特定應用程式相關聯之機率為2/4或50%。
可基於應用程式啟動之每日歷史(例如,針對先前七天中之每一 天在當前時間±2小時啟動哪些應用程式)來產生使用者調用機率。圖解530表示使用每日歷史以判定針對應用程式之使用者調用機率。舉例而言,圖解530之每一方框表示數個(例如,7個)先前天中之每一天內的時間窗(例如,當前時間±2小時),該等時間窗可經分析以判定針對特定應用程式(例如,空白圓圈)之使用者調用機率。可藉由將所有窗內的特定應用程式之調用之數目(例如,6)除以所有窗內的應用程式調用之總數(例如,22)來計算使用每日歷史資料的與特定應用程式相關聯之機率。在所說明狀況下,使用每日啟動歷史資料的與特定應用程式相關聯之機率為6/22或27%。
可基於應用程式啟動之每週歷史(例如,七天前在當前時間±2小時啟動哪些應用程式)來產生使用者調用機率。圖解560表示使用每週歷史以判定針對應用程式之使用者調用機率。舉例而言,若當前日期及時間為星期三的1pm,則針對應用程式之使用者調用機率可基於在先前星期三期間在1pm或大約在1pm之時間窗(例如,±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接收到待啟動應用程式清單及應用程式記分時,應用程式管理員106可呼叫取樣精靈協助程式102之「確定啟動(ok to launch)」介面,以判定是否確定啟動每一應用程式。舉例而言,取樣精靈協助程式102可分析網路條件、裝置條件、環境條件、資料與能量預算及其他資料,以判定是否確定使應用程式管理員106啟動特定應用程式。舉例而言,應用程式管理員106可在呼叫「確定啟動」介面時向取樣精靈協助程式102發送應用程式識別符。
在一些實施中,行動裝置100上之其他應用程式可呼叫取樣精靈協助程式102之「確定啟動」介面,以判定是否確定在行動裝置100之背景中啟動應用程式。舉例而言,下文所描述之推播服務精靈協助程式可調用「確定啟動」介面,以判定是否確定回應於接收到推播通知而啟動應用程式。在一些實施中,當已針對在「確定啟動」請求中識別之應用程式停用背景更新時,取樣精靈協助程式102將傳回「否」回覆值。
環境條件
在一些實施中,取樣精靈協助程式102可基於行動裝置100之環 境條件來判定是否允許啟動經識別應用程式。舉例而言,環境條件可包括行動裝置100之當前狀態、網路連接之狀態,及/或如下文所描述之其他條件。在一些實施中,當由應用程式管理員106(或另一應用程式、處理序或精靈協助程式)呼叫「確定啟動」介面時,取樣精靈協助程式102可傳回指示出確定「決不(never)」啟動經識別應用程式之值、確定不啟動該應用程式之「否」,或確定啟用該應用程式之「是」。舉例而言,除非以下條件中之一者指示出應用程式應不啟動,否則將傳回「是」值。當經識別應用程式最近尚未被使用(例如,在過去8週內未被使用)時,當使用者已停用該應用程式時,及/或當該應用程式由使用者明確地關閉時,取樣精靈協助程式102將傳回「決不」值。
在一些實施中,取樣精靈協助程式102可指示出,當行動裝置100連接至語音通話且未連接至Wi-Fi網路連接時,應用程式管理員106應不啟動應用程式。舉例而言,為了防止背景更新處理序(例如,提取處理序)干擾或縮減語音通話之品質,當使用者連接至語音通話且未連接至Wi-Fi連接時,取樣精靈協助程式102將不允許應用程式管理員106啟動背景更新處理序。因此,當行動裝置100連接至通話且未連接至Wi-Fi時,取樣精靈協助程式102將回應於「確定啟動」請求而傳回「否」值。
在一些實施中,取樣精靈協助程式102可指示出,當行動裝置100已偵測到熱事件時,應用程式管理員106應不啟動應用程式。舉例而言,熱管理處理序110可監視行動裝置100之溫度,且將溫度值報告給取樣精靈協助程式102。當取樣精靈協助程式102判定出行動裝置100之溫度高於臨限溫度值時,取樣精靈協助程式102可進一步藉由在應用程式管理員作出「確定啟動」請求時傳回「否」值來防止應用程式管理員106啟動可增加行動裝置100之操作溫度之額外應用程式。
在一些實施中,取樣精靈協助程式102可指示出,當行動裝置100具有不良品質蜂巢式網路連接時,應用程式管理員106應不啟動應用程式。當傳送速率及/或輸送量低於預定義臨限值時,可判定不良品質蜂巢式連接。舉例而言,若行動裝置100具有不良品質蜂巢式網路連接且未連接至Wi-Fi,則取樣精靈協助程式102可藉由在應用程式管理員作出「確定啟動」請求時傳回「否」值來防止應用程式管理員106啟動將藉由試圖經由不良蜂巢式連接而下載或上傳資料來浪費電池能量及蜂巢式資料之應用程式。
在一些實施中,取樣精靈協助程式102可指示出,當行動裝置100正使用臨限量(例如,90%)以上之記憶體資源時,應用程式管理員106應不啟動應用程式。舉例而言,若行動裝置100已經正在執行正使用行動裝置100之大多數記憶體資源之許多應用程式或處理序,則在背景中啟動額外應用程式將僅藉由用完剩餘記憶體資源而縮減行動裝置100之效能。因此,當取樣精靈協助程式102判定出記憶體使用量超過臨限值(例如,75%)時,取樣精靈協助程式102可藉由在應用程式管理員作出「確定啟動」請求時傳回「否」值來防止應用程式管理員106啟動額外應用程式。
在一些實施中,取樣精靈協助程式102可指示出,當應用程式已退出背景更新或使用者已關斷針對應用程式之背景更新時,應用程式管理員106應不啟動應用程式。舉例而言,應用程式可程式性地(例如,動態地)判定出(基於程式設計師定義準則)應用程式應退出背景更新歷時一時段。替代地,使用者可與設定使用者介面互動以關斷針對應用程式之背景更新。在任一狀況下,取樣精靈協助程式102可判定出已針對應用程式停用背景更新,且藉由在應用程式管理員106作出針對應用程式之「確定啟動」請求時傳回「否」值來防止應用程式管理員106啟動應用程式。
考量預算及速率極限
在一些實施中,取樣精靈協助程式102可基於針對行動裝置100而組態之能量預算、資料預算及/或應用程式啟動速率極限來判定是否確定啟動應用程式。取樣精靈協助程式102可將預算及速率極限資訊儲存於帳戶處理資料儲存區402中,帳戶處理資料儲存區402包括用於追蹤針對當前時段(例如,當前小時)之剩餘資料與能量預算之計數器。
能量預算
在一些實施中,取樣精靈協助程式102可基於能量預算來判定是否確定啟動應用程式。舉例而言,能量預算可為以毫安時(milliamp hours)為單位的行動裝置電池之容量之百分數(例如,5%)。可在如上文所描述之預測性提取應用程式(例如,2%)與如下文所描述之推播應用程式及背景下載/上傳(例如,3%)之間劃分能量預算。
在一些實施中,可在24小時時期內之每一小時當中散佈能量預算。舉例而言,取樣精靈協助程式102可利用被收集及儲存於事件資料儲存區104中之電池充電統計資料以判定反映針對24小時時期內之每一小時之典型歷史電池使用量的散佈。舉例而言,可基於歷史上或統計上判定之能量使用散佈或應用程式使用量預報而向每一小時指派能量預算之百分數,如上文所描述。每一小時將具有大於零的至少最小量之能量預算(例如,0.1%、1%等等)。舉例而言,可在不具有使用資料之小時當中散佈10%之能量預算,且可根據歷史能量或應用程式使用而在作用中使用小時當中散佈剩餘90%之能量預算。隨著每一小時過去,將運用針對新/當前小時之能量預算來補充當前能量預算。自先前小時剩下之任何能量預算將被加至當前小時之預算。
在一些實施中,帳戶處理資料儲存區402可包括用於判定針對提取應用程式(例如,經預測性啟動應用程式)剩餘多少能量預算之計數 器。舉例而言,帳戶處理資料儲存區402可包括運用針對當前小時之能量預算(例如,提取預算、推播及背景下載/上傳)而初始化之一或多個計數器。當由應用程式使用能量預算時,可將對應(例如,提取或推播)能量預算遞減對應量。舉例而言,應用程式管理員106可向取樣精靈協助程式102通知應用程式何時啟動或終止。又,取樣精靈協助程式102可向電力監視器108通知應用程式何時啟動及應用程式何時終止。基於開始時間及停止時間,電力監視器108可判定由應用程式使用多少能量。電力監視器108可將由應用程式使用之電力量傳輸至取樣精靈協助程式102,且取樣精靈協助程式102可將適當計數器遞減所使用之電力量。
在一些實施中,當針對當前小時未剩餘能量預算時,取樣精靈協助程式102可運用「否」回覆而對確定啟動請求作出回應。舉例而言,當帳戶處理資料儲存區402中之能量預算計數器遞減至零時,未剩餘能量預算,且將不啟動額外背景應用程式。
在一些實施中,當行動裝置100插入至外部電力中時,取樣精靈協助程式102將不使「確定啟動」判定基於能量預算。舉例而言,當行動裝置100插入至外部電源中時,為零之剩餘能量預算將不防止應用程式啟動。
資料預算
在一些實施中,取樣精靈協助程式102可基於能量預算來判定是否確定啟動應用程式。舉例而言,取樣精靈協助程式102可基於由取樣精靈協助程式102收集且儲存於事件資料儲存區104中之統計資料來判定由行動裝置100消耗之網路資料之平均量。可將網路資料預算(例如,提取/推播預算、背景下載/上傳預算)計算為由使用者/行動裝置100消耗之平均每日網路資料之百分數。替代地,網路資料預算可為預定義或可組態值(例如,對於提取/推播預算為每天15MB,對於背 景下載/上傳為每天5MB)。
在一些實施中,可在24小時時期內之每一小時當中散佈網路資料預算。舉例而言,可向每一小時分配最小預算(例如,0.2MB)。可根據歷史網路資料使用而在24小時中之每一小時當中散佈剩餘量之網路資料預算。舉例而言,取樣精靈協助程式102可基於歷史統計資料來判定在一天之每一小時內消耗多少網路資料,且根據在每一小時內消耗之資料量來指派百分數。隨著每一小時過去,將運用針對新/當前小時之資料預算來補充當前資料預算。自先前小時剩下之任何資料預算將被加至當前小時之資料預算。
在一些實施中,帳戶處理資料儲存區402可維護針對網路資料預算之資料計數器。舉例而言,帳戶處理資料儲存區402可維護針對提取/推播應用程式之資料計數器。帳戶處理資料儲存區402可維護針對背景下載/上傳操作之資料計數器。隨著網路資料被消耗,資料計數器可根據所消耗之網路資料量而遞減。舉例而言,可基於由應用程式管理員106提供至取樣精靈協助程式102之應用程式開始及停止時間來判定所消耗之網路資料量。替代地,可由利用網路介面之處理序(例如,下文所描述之背景下載/上傳精靈協助程式)提供所消耗之網路資料量。
在一些實施中,取樣精靈協助程式102可追蹤哪一網路介面(例如,蜂巢式或Wi-Fi)用以消耗網路資料,且基於該網路介面來判定所消耗之網路資料量。可根據被指派給每一介面之權數或係數來調整所消耗之網路資料量。舉例而言,可向蜂巢式資料介面上消耗之網路資料指派為一(1)之係數。可向Wi-Fi介面上消耗之網路資料指派為十分之一(0.1)之係數。可藉由將所消耗之蜂巢式資料加至所消耗之Wi-Fi資料除以十來計算所消耗之總網路資料(例如,總資料=1*蜂巢式資料+0.1*Wi-Fi)。因此,經由Wi-Fi所消耗之資料將比經由蜂巢式資料 連接所消耗之資料少得多地影響資料預算。
在一些實施中,當針對當前小時未剩餘資料預算時,取樣精靈協助程式102可運用「否」回覆而對確定啟動請求作出回應。舉例而言,當帳戶處理資料儲存區402中之資料預算計數器遞減至零時,未剩餘資料預算,且將不啟動額外背景應用程式。
全域應用程式啟動速率極限
在一些實施中,取樣精靈協助程式102可基於全域應用程式啟動速率極限來判定是否確定啟動應用程式。舉例而言,取樣精靈協助程式102可經組態有應用程式管理員106每小時可啟動之數個背景應用程式(例如,提取及/或推播背景應用程式)。在一些實施中,將僅針對推播通知觸發應用程式啟動而考慮啟動速率極限,如下文所描述。舉例而言,應用程式管理員106可限於每小時啟動64個背景應用程式。取樣精靈協助程式102可維護追蹤已在當前小時內執行之背景應用程式啟動之數目的計數器。在每一小時,可重設全域應用程式啟動計數器以允許較多應用程式啟動。然而,若超過針對當前小時之全域應用程式啟動速率,則可不啟動額外背景應用程式,且取樣精靈協助程式102將向確定啟動請求傳回「否」回覆。
每應用程式啟動速率極限
在一些實施中,取樣精靈協助程式102可基於個別應用程式啟動速率極限來判定是否確定啟動應用程式。舉例而言,取樣精靈協助程式102可經組態有個別背景應用程式(例如,提取及/或推播背景應用程式)每小時可啟動之次數。舉例而言,應用程式管理員106可限於每小時啟動同一應用程式15次。取樣精靈協助程式102可維護追蹤個別應用程式每小時在背景中啟動之次數的計數器。在每一小時,可重設個別應用程式啟動計數器以允許較多應用程式啟動。然而,若對於特定應用程式超過針對當前小時之個別應用程式啟動速率,則在當前小 時內不能再次啟動特定應用程式,且取樣精靈協助程式102將向識別特定應用程式之確定啟動請求傳回「否」回覆。
啟動背景提取應用程式
在一些實施中,當應用程式管理員106對取樣精靈協助程式102進行「確定啟動」呼叫且接收到「是」回覆時,應用程式管理員106可在行動裝置100之操作環境之背景中調用或啟動經識別應用程式(例如,應用程式108)。舉例而言,可在背景中啟動應用程式108,使得應用程式108啟動對於使用者而言並非顯而易見。應用程式108可接著經由網路(例如,網際網路)而與內容伺服器404通信以下載經更新內容以供顯示給使用者。因此,當使用者隨後調用應用程式108(例如,使該應用程式達到前景)時,使用者將被呈現當前且最新之內容而不必等待應用程式108下載該內容且再新該應用程式之使用者介面。
在一些實施中,應用程式管理員106可經組態以在行動裝置100正充電且連接至Wi-Fi時啟動背景提取啟用應用程式。舉例而言,取樣精靈協助程式102可判定行動裝置100何時連接至外部電源且經由Wi-Fi而連接至網路(例如,網際網路)及將信號發送至應用程式管理員106以使應用程式管理員106啟動已在先前時間量(例如,七天)內使用之提取啟用應用程式。
實例背景提取處理序
圖6為用於預測性地啟動應用程式以執行背景更新之實例處理序600的流程圖。舉例而言,可由應用程式管理員106執行處理序600以判定何時啟動經組態以自網路資源(諸如,圖4之內容伺服器404)提取資料更新之背景應用程式。可參看以上圖4而找到與處理序600之步驟相關之額外描述。
在步驟602處,應用程式管理員106可自取樣精靈協助程式102接 收應用程式調用預報。舉例而言,可在行動裝置100之啟動期間啟動應用程式管理員106。在應用程式管理員106之初始化期間,應用程式管理員106可請求很可能由行動裝置100之使用者遍及下一24小時時期調用之應用程式的預報。舉例而言,此預報可指示何時啟動應用程式。24小時時期可被劃分成若干15分鐘區塊,且每一15分鐘區塊可與使用者將在該15分鐘區塊期間調用應用程式的機率相關聯。傳回至應用程式管理員106之預報可識別使用者很可能調用應用程式時之高達64個15分鐘時間區塊。
在步驟604處,應用程式管理員106可基於應用程式啟動預報來設定計時器。舉例而言,應用程式管理員106可針對在由取樣精靈協助程式102傳回至應用程式管理員106之應用程式啟動預報中識別之15分鐘區塊中每一者設定一計時器或鬧鐘。
在步驟606處,應用程式管理員106可請求取樣精靈協助程式102識別將啟動什麼應用程式。舉例而言,當計時器過期或鬧鐘響起時,應用程式管理員可喚醒(若睡眠或暫時中止),且向取樣精靈協助程式102請求針對當前15分鐘時間區塊將啟動之應用程式清單。取樣精靈協助程式102可傳回應在行動裝置100上之背景中啟動之應用程式清單。
在步驟608處,應用程式管理員106可將詢問是否確定啟動應用程式之請求發送至取樣精靈協助程式102。舉例而言,對於由取樣精靈協助程式102回應於「啟動什麼」請求而識別之每一應用程式,應用程式管理員106可向取樣精靈協助程式102詢問是否確定啟動該應用程式。取樣精靈協助程式102可在確定啟動應用程式時傳回「是」、在確定不啟動應用程式時傳回「否」,或在確定決不啟動應用程式時傳回「決不」。
在步驟610處,應用程式管理員106可啟動應用程式。舉例而 言,若取樣精靈協助程式102傳回針對「確定啟動」請求之「確定」回應,則應用程式管理員106將啟動應用程式作為行動裝置100之背景處理序。若取樣精靈協助程式102傳回對「確定啟動」請求之「否」或「決不」回應,則應用程式管理員106將不啟動應用程式。
在步驟612處,應用程式管理員106可將應用程式啟動通知傳輸至取樣精靈協助程式102。舉例而言,取樣精靈協助程式102可按需要而使用應用程式啟動通知以產生應用程式啟動統計資料、資料使用量統計資料、能量使用統計資料及/或其他應用程式相關統計資料。
在步驟614處,應用程式管理員106可偵測到經啟動應用程式已終止。舉例而言,應用程式管理員106可判定經啟動應用程式何時不再在行動裝置100上執行。
在步驟616處,應用程式管理員106可將應用程式終止通知傳輸至取樣精靈協助程式102。舉例而言,取樣精靈協助程式102可按需要而使用應用程式終止通知以產生應用程式啟動統計資料、資料使用量統計資料、能量使用統計資料及/或其他應用程式相關統計資料。
圖7為用於判定何時在行動裝置100上啟動應用程式之實例處理序700的流程圖。舉例而言,可使用處理序700以基於應用程式使用統計資料、資料與能量預算及行動裝置條件來判定何時啟動應用程式、應啟動什麼應用程式及是否確定啟動應用程式,如上文參看圖4詳細地所描述。
在步驟702處,取樣精靈協助程式102可自應用程式管理員106接收應用程式啟動預報請求。舉例而言,應用程式管理員106可請求針對下一24小時之應用程式啟動預報。一旦24小時時期已過去,應用程式管理員106就可請求針對後續24小時時期之應用程式啟動預報。舉例而言,應用程式管理員106可每24小時請求一應用程式啟動預報。
在步驟704處,取樣精靈協助程式102可判定應用程式啟動預 報。舉例而言,應用程式啟動預報用以預測使用者起始應用程式啟動很可能在24小時時期期間何時發生。舉例而言,取樣精靈協助程式102可判定針對24小時時期之應用程式啟動預報。24小時時期可被劃分成若干15分鐘時間區塊。對於每一15分鐘時間區塊(例如,在24小時時期內存在96個15分鐘時間區塊),取樣精靈協助程式102可使用歷史使用者調用統計資料,判定使用者起始應用程式啟動將在該15分鐘時間區塊內發生的機率,如上文參看圖4所描述。
在步驟706處,取樣精靈協助程式102可將應用程式啟動預報傳輸至應用程式管理員106。舉例而言,取樣精靈協助程式102可選擇具有使用者起始應用程式啟動之最高非零機率之高達64個15分鐘區塊。該等選定15分鐘區塊中每一者係可由針對該15分鐘區塊之開始時間(例如,12:45pm)識別。取樣精靈協助程式102可將15分鐘區塊識別符清單發送至應用程式管理員106作為應用程式啟動預報。
在步驟708處,取樣精靈協助程式102可接收針對在當前時間將啟動什麼應用程式之請求。舉例而言,應用程式管理員106可將使取樣精靈協助程式102判定應在當前時間或大約在當前時間啟動哪些應用程式之請求發送至取樣精靈協助程式102。
在步驟710處,取樣精靈協助程式102可基於歷史使用者資料而對針對當前時間之應用程式記分。取樣精靈協助程式102可基於由取樣精靈協助程式102收集之歷史使用者起始應用程式啟動資料來判定使用者很可能在近期未來啟動哪些應用程式。取樣精靈協助程式102可利用最近應用程式啟動資料、每日應用程式啟動資料及/或每週應用程式啟動資料,以基於使用者將在當前時間或大約在當前時間調用應用程式之歷史可能性而對應用程式記分,如上文參看圖4及圖5所描述。
在步驟712處,取樣精靈協助程式102可將應用程式及應用程式 記分傳輸至應用程式管理員106。舉例而言,取樣精靈協助程式102可選擇具有最高記分(例如,由使用者調用之最高機率)之數個(例如,三個)應用程式以傳輸至應用程式管理員106。取樣精靈協助程式102可排除已在先前時段(例如,先前5分鐘)內啟動之應用程式。取樣精靈協助程式102可將識別具最高記分應用程式及其各別記分之資訊傳輸至應用程式管理員106,如上文參看圖4所描述。
在步驟714處,取樣精靈協助程式102可自應用程式管理員106接收請求以判定是否確定啟動應用程式。舉例而言,取樣精靈協助程式102可接收識別應用程式之「確定啟動」請求。
在步驟716處,取樣精靈協助程式102可判定出當前行動裝置條件及預算允許應用程式啟動。舉例而言,取樣精靈協助程式102可分析行動裝置100之環境條件、資料與能量預算、應用程式啟動速率極限、網路條件及其他資料,以判定當前時間是否為用以啟動應用程式之良好時間,如上文參看圖4詳細地所描述。
在步驟718處,取樣精靈協助程式102可將指示出確定啟動經識別應用程式之回覆傳輸至應用程式管理員106。舉例而言,若條件對於背景應用程式啟動良好,則取樣精靈協助程式102可向應用程式管理員106傳回「是」值,使得應用程式管理員106可啟動經識別應用程式。
短期趨勢
在一些實施中,取樣精靈協助程式102可經組態以基於偵測趨勢來偵測應用程式何時成趨勢且在行動裝置100上之背景中預測性地啟動應用程式。舉例而言,若應用程式正由行動裝置100之使用者重複地調用,則應用程式成趨勢。在一些狀況下,趨勢應用程式為新應用程式,或在趨勢之前,為可不包括於上文所描述之「啟動什麼」應用程式預報中的很少使用之應用程式。因此,可不使用上文所描述之應 用程式啟動預報方法來使趨勢應用程式保持最新。
應用程式啟動趨勢偵測之目的係偵測正由使用者重複地啟動之應用程式,且判定正啟動該等應用程式所運用之近似步調(例如,週期性),在報告較小步調時係錯誤的。正由使用者重複地調用之應用程式被稱為成「趨勢」。可接著由應用程式管理員106使用經判定步調以設定計時器,該等計時器將觸發應用程式管理員106以在背景中啟動趨勢應用程式,使得當使用者調用該等應用程式時將更新該等應用程式,如上文所描述。舉例而言,若步調針對應用程式為5分鐘,則應用程式管理員106可設定一計時器,該計時器每4分鐘將過期一次且使應用程式管理員106啟動應用程式,使得應用程式可接收經更新內容且在再次由使用者調用之前更新應用程式之介面。在一些實施中,本文所所描述之趨勢偵測機制可用以偵測除了應用程式啟動以外之其他系統事件趨勢,諸如,重複軟體或網路通知、應用程式當機等等。
在一些實施中,取樣精靈協助程式102可維護可用以追蹤數個應用程式之行為之趨勢資料表。趨勢資料表可包括應用程式識別欄位(APPID)、狀態欄位(STATE)、最後啟動時間戳記(LLT)、指示各啟動之間的時間量之啟動間步調(ILC),及信賴欄位(C)。
圖8為說明用於趨勢資料表中之項目(例如,應用程式)之狀態轉變的流程圖800。最初,在步驟802處,趨勢資料表可包括空白項目(例如,記錄),其中APPID欄位、LLT欄位、ILC欄位及C欄位為空白(例如,N/A)且STATE被設定至「無效」(I)。當在時間t啟動應用程式時,掃描趨勢資料表以取得可用項目(例如,處於狀態I之項目)。在可能無效項目當中,若干方法可用於選擇待使用項目。舉例而言,可選擇隨機無效項目。替代地,可選擇無效項目,使得以連續次序來保持趨勢資料表中之所有空白項目。若不存在無效項目,則可選擇處於暫時性(T)狀態之最舊項目(或隨機項目)以追蹤經新啟動應用程式。若不 存在I或T狀態項目,則可選擇最舊之新(N)狀態項目以追蹤經新啟動應用程式。
在步驟804處,一旦選擇趨勢資料表項目,就可將用於追蹤經新啟動應用程式之選定項目之STATE欄位設定至新(N),可將APPID設定至用於經新啟動應用程式之識別符,可將LLT欄位設定至當前時間t(例如,時鐘時間),且將ILC欄位及C欄位設定至預定義最小值ILC_MIN(例如,1分鐘)及C_MIN(例如,零)。
在步驟806處,在時間t'的同一應用程式之下一啟動時,若用於應用程式之資料表中之項目仍存在且尚未被收回(例如,經選擇以追蹤另一應用程式),找到該項目。將項目之STATE設定至暫時性(T),將ILC設定至LLT與當前系統時間之間的差(例如,t'-t或t'-LLT),且遞增C欄位(例如,達預定義值C_DELTA)。替代地,可將ILC欄位設定至其舊值及新值之某一其他函數,諸如,執行平均值(running average)。
在步驟808處,在時間t"的同一應用程式之下一啟動時,若用於應用程式之資料表中之項目仍存在且尚未被收回(例如,經選擇以追蹤另一應用程式),找到該項目。項目之STATE可保持設定至暫時性(T),將ILC設定至LLT與當前時鐘時間之間的差(例如,t"-t'或t"-LLT),且再次遞增C欄位(例如,達預定義值C_DELTA)。
在步驟810處,若在應用程式之若干啟動之後,趨勢資料表項目之C值達到(例如,等於)臨限值(例如,C_HIGHTHRESHOLD),則在步驟811處,可將應用程式項目之狀態變更至STATE=A。若在步驟810處,趨勢資料表項目之C值未達到臨限值(例如,C_HIGHTHRESHOLD),則可根據步驟808來更新該項目之值。
只要應用程式在處於狀態「A」時啟動,若最後啟動與啟動時間之間的時間處於某一時間量內(例如,ILC_EPSILON=5分鐘),則就 遞增應用程式項目之信賴(C)欄位,直至其達到預定義最大值(例如,C_MAX)為止。當趨勢資料表中之應用程式項目處於作用中(A)狀態,則可使用該項目之ILC值作為啟動速率(例如,步調)之估計,且可使用該項目之APPID以識別趨勢應用程式。
在一些實施中,取樣精靈協助程式102可將應用程式識別符(APPID)及步調值(ILC)發送至應用程式管理員106,使得應用程式管理員106可預期到經識別應用程式之使用者調用而在背景中啟動該應用程式,使得該應用程式可在使用者啟動該應用程式之前接收經更新內容,如上文所描述。舉例而言,應用程式管理員106可基於步調值來開始將喚醒應用程式管理員106以預期到使用者調用應用程式而啟動應用程式之計時器。
在一些實施中,取樣精靈協助程式102可向應用程式管理員106發送指示出趨勢應用程式應由應用程式管理員106啟動之信號或通知。舉例而言,應用程式管理員106可藉由向取樣精靈協助程式102發送應用程式識別符而註冊對應用程式之關注。取樣精靈協助程式102可監視用於使用者調用之應用程式以判定該應用程式是否成趨勢,如上文所描述。若應用程式成趨勢,則取樣精靈協助程式102可判定如上文所描述之調用步調,且在基於該步調而判定之時間將通知或信號發送至應用程式管理員106。舉例而言,若步調為四分鐘,則取樣精靈協助程式102可每3分鐘將一信號發送至應用程式管理員106,以使應用程式管理員106啟動應用程式。若步調變更至六分鐘,則取樣精靈協助程式102可偵測步調變更,且調整何時向應用程式管理員106傳信。舉例而言,取樣精靈協助程式102可每5分鐘而非每3分鐘向應用程式管理員106傳信一次以啟動應用程式,以針對減低之步調(例如,各調用之間的增加之時段)進行調整。
在出於任何原因(例如,新增新項目、更新現有項目等等)的趨勢 資料表之每一檢測時,自最後啟動以來之時間比ILC大ILC_EPSILON的處於STATE=T或STATE=A之所有項目將使其C值遞減。使彼點處之C值降至低於最小臨限值(例如,C_LOWTHRESHOLD)的任何項目降階。舉例而言,可使項目自狀態A降階至狀態T,或自狀態T降階至狀態I。
在一些實施中,上文所描述之趨勢偵測機制可用以偵測不同於應用程式調用或啟動之趨勢事件。舉例而言,上文所描述之趨勢偵測方法及趨勢資料表可用以偵測及追蹤行動裝置100上之任何週期性事件。趨勢事件可包括螢幕觸控、網路連接、應用程式失效、網路指令之發生,及/或可被報告或傳信至取樣精靈協助程式102之任何其他事件。
推播通知
圖9為說明用於將推播通知提供至行動裝置100之系統的方塊圖900。在一些實施中,行動裝置100可經組態以接收推播通知。舉例而言,推播通知可為由推播提供者902起始且經由推播通知伺服器906而發送至在行動裝置100上執行之推播服務精靈協助程式904的訊息。
在一些實施中,推播提供者902可經由應用程式908呈現給行動裝置100之使用者的使用者授權請求而接收將推播通知發送至行動裝置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上接收推播通知之授權之應用程式的資訊。
在一些實施中,可由推播通知伺服器906使用推播篩選914以篩選出對尚未由行動裝置100之使用者授權之應用程式的推播通知(例如,防止將推播通知發送至尚未由行動裝置100之使用者授權之應用程式)。由推播提供者902發送至推播通知伺服器906之每一推播通知可包括識別與推播提供者902相關聯之應用程式908及行動裝置100(例如,裝置符記)的資訊(例如,識別符)。
當通知伺服器906接收到推播通知時,通知伺服器906可使用行動裝置識別資訊(例如,裝置符記)以判定哪些推播篩選914將應用於經接收推播通知。通知伺服器906可比較推播通知中之應用程式識別資訊與用於經識別行動裝置之推播篩選914,以判定是否在推播篩選914中識別出與推播提供者902相關聯且在推播通知中識別之應用程式。若在推播篩選914中識別出與推播通知相關聯之應用程式,則通知伺服器906可將自推播提供者902接收之推播通知傳輸至行動裝置100。若在推播篩選914中未識別出在推播通知中識別之應用程式,則通知伺服器不會將自推播提供者902接收之推播通知傳輸至行動裝置100,且可刪除該推播通知。
非喚醒推播通知
在一些實施中,通知伺服器906可經組態以處理高優先權推播通知及低優先權推播通知。舉例而言,推播提供者902可將高優先權推播通知910及/或低優先權推播通知912發送至推播通知伺服器906。舉例而言,推播提供者902可藉由在被發送至推播通知伺服器906及行動裝置100的推播通知內含有之資料中指定推播通知之優先權而將推播通知識別為高優先權或低優先權。
在一些實施中,推播通知伺服器906可不同地處理低優先權推播通知912與高優先權推播通知910。舉例而言,推播通知伺服器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處接收推播通知時,應用程式識別資訊被預設地新增至喚醒清單916。非喚醒清單918可識別低優先權推播通知應被延遲所針對之經授權應用程式。下文在描述推播通知起始背景更新時詳細地描述用於填入非喚醒清單918及/或操控喚醒清單916及非喚醒清單918之特定機制。在一些實施中,只要在推播篩選914(例如,喚醒清單916及/或非喚醒清單918)中識別出在高優先權推播通知中識別之應用程式,高優先權推播通知就不會在推播通知伺服器906處被延遲,且將被遞送至行動裝置100。
在一些實施中,當推播通知伺服器906接收到低優先權推播通知912時,推播通知伺服器906可比較低優先權推播通知912中之應用程式識別符與喚醒清單916及/或非喚醒清單918。舉例而言,若低優先權推播通知912中之應用程式識別資訊匹配於喚醒清單916中之經授權應用程式識別符,則低優先權推播通知912將在通知訊息920中被遞送至行動裝置100。
在一些實施中,可延遲與在非喚醒清單918中識別之應用程式相關聯之低優先權推播通知的遞送。舉例而言,若亦在非喚醒清單918中識別出在低優先權推播通知912中識別之應用程式,則低優先權推播通知912可儲存於推播通知資料儲存區922中,且不被立即遞送至行動裝置100。在一些實施中,若由推播通知(高優先權或低優先權)識別之行動裝置100當前未連接至推播通知伺服器906,則經中斷連接之行動裝置100之推播通知可儲存於推播通知資料儲存區922中以供稍後遞送至行動裝置100。
在一些實施中,儲存於推播資料儲存區922中之推播通知將保持於推播資料儲存區922中,直至將與經儲存推播通知相關聯之應用程 式識別符自非喚醒清單918移動至喚醒清單916為止,或直至在推播通知伺服器906與行動裝置100之間建立網路連接為止。舉例而言,當將另一(高優先權或低優先權)推播通知遞送至行動裝置100時,或當行動裝置100將其他傳輸924(例如,狀態訊息、活動訊號訊息、保持連線訊息等等)發送至推播通知伺服器906時,可建立推播通知伺服器906與行動裝置100之間的網路連接。舉例而言,行動裝置100可將訊息924發送至推播通知伺服器906,訊息924指示出行動裝置100將處於作用中歷時一時段(例如,5分鐘)且推播通知伺服器906可在經指定作用中時段期間將所有經接收推播通知發送至行動裝置100。在一些實施中,當在行動裝置100與推播通知伺服器906之間建立網路連接時,儲存於推播通知儲存區922中之所有推播通知將被遞送至行動裝置100。舉例而言,儲存於推播通知資料儲存區922中之推播通知係可經由藉由其他傳輸而在行動裝置100與推播通知伺服器906之間建立之連接進行傳輸。
在一些實施中,行動裝置100可與推播通知伺服器906建立兩個不同通信頻道。舉例而言,可同時地或在不同時間建立兩個通信頻道。舉例而言,行動裝置100可具有對推播通知伺服器906之蜂巢式資料連接及/或Wi-Fi連接。在一些實施中,行動裝置100可針對每一通信頻道產生不同推播篩選914且將不同推播篩選914傳輸至推播通知伺服器906。舉例而言,蜂巢式資料連接可與第一組推播篩選914相關聯,第一組推播篩選914用於判定何時橫越蜂巢式資料連接而發送高優先權推播通知及低優先權推播通知。Wi-Fi資料連接可與相同於或不同於蜂巢式資料推播篩選之第二組推播篩選914相關聯,第二組推播篩選914用於判定何時橫越Wi-Fi資料連接而發送高優先權推播通知及低優先權推播通知。當推播通知伺服器906接收到推播通知時,推播通知伺服器可比較在推播通知中識別之應用程式與用於將由推播通 知伺服器906使用以將推播通知傳輸至行動裝置100之通信頻道(例如,Wi-Fi、蜂巢式)之推播通知篩選。
推播起始背景更新
在一些實施中,由行動裝置100進行的推播通知之接收可觸發行動裝置100上之應用程式之背景更新。舉例而言,當行動裝置100(例如,推播服務精靈協助程式904)自推播通知伺服器906接收到推播通知訊息920時,推播服務精靈協助程式904可比較推播通知訊息920中之應用程式識別符與儲存於行動裝置100上之推播篩選928,以判定推播通知訊息920被適當地遞送抑或應由推播通知伺服器906篩選(例如,未遞送)。舉例而言,推播篩選928、喚醒清單930及非喚醒清單932可分別對應於推播篩選914、喚醒清單916及非喚醒清單918。在一些實施中,若推播服務精靈協助程式904判定出推播通知訊息920應不被遞送至行動裝置100,則將刪除推播通知訊息902。
低優先權推播通知
在一些實施中,由行動裝置100接收之推播通知訊息920可包括低優先權推播通知。舉例而言,低優先權推播通知可指示出內容更新可用於與推播通知相關聯之應用程式。因此,當低優先權推播通知造成應用程式908之啟動時,應用程式908可自一或多個網路資源(例如,推播提供者902)下載經更新內容。
在一些實施中,當推播服務精靈協助程式904接收到與行動裝置100上之應用程式(例如,應用程式908)相關聯之低優先權推播通知時,推播服務精靈協助程式904可向取樣精靈協助程式102詢問是否確定啟動與經接收之低優先權推播通知相關聯之應用程式。舉例而言,推播服務精靈協助程式904可藉由向取樣精靈協助程式102發送用於與經接收之低優先權推播通知相關聯之應用程式的識別符來調用取樣精靈協助程式102之「確定啟動」介面。取樣精靈協助程式102可檢查如 上文參看圖4所描述之資料預算、能量預算、環境條件及速率極限,且向推播服務精靈協助程式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。舉例而言,當取樣精靈協助程式判定出已超過全域應用程式啟動速率極限、針對當前小時耗盡推播資料預算、針對當前小時耗盡推播能量預算、系統正在經歷熱事件(例如,行動裝置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未連接至語音通話時且當已重設啟動速率極限時,取樣精靈協助 程式102會將「確定重試」訊息發送至推播服務精靈協助程式904。一旦推播服務精靈協助程式904接收到「確定重試」信號,推播服務精靈協助程式904就會針對推播通知資料儲存區934中之每一推播通知而將「確定啟動」請求發送至取樣精靈協助程式102,以判定是否確定啟動與經儲存推播通知相關聯之每一應用程式。
若取樣精靈協助程式102自確定啟動請求傳回「是」,則推播服務精靈協助程式904可將推播通知發送至應用程式管理員106,且應用程式管理員106可啟動與推播通知相關聯之應用程式作為行動裝置100上之背景處理序,如上文所描述。一旦啟動應用程式,應用程式就可下載內容或資料更新,且基於經下載資料來更新應用程式使用者介面。應用程式管理員106將不向取樣精靈協助程式102詢問是否確定啟動與低優先權推播通知相關聯之應用程式。
高優先權推播通知
在一些實施中,由行動裝置100接收之推播通知訊息920可包括高優先權推播通知。舉例而言,高優先權推播通知可指示出內容更新可用於與該推播通知相關聯之應用程式。因此,當高優先權推播通知造成應用程式之調用時,應用程式可自一或多個網路資源下載經更新內容。在一些實施中,當由推播服務精靈協助程式904接收到高優先權推播通知時,推播服務精靈協助程式904會將高優先權推播通知發送至應用程式管理員106而不向取樣精靈協助程式102作出「確定啟動」請求。
在一些實施中,當應用程式管理員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上之應用程式。舉例而言,推播通知可包括應用程式識別符。推播通知伺服器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所判定之資料與能量預算來判定是否確定啟動應用程式。行動裝置100可基於行動裝置之條件及/或行動裝置之網路連接之條件來判定是否確定啟動應用程式。行動裝置100可基於全裝置範圍(例如,全域)及個別應用程式啟動極限(例如,每小時可啟動多少應用程式,每小時可啟動單一應用程式多少次)來判定是否確定啟動應用程式。參看以上圖4而更詳細地描述用於判定是否確定啟動應用程式之細節。
在步驟1106處,當裝置條件、預算、極限及其他資料指示出確定不啟動應用程式時,行動裝置100可儲存低優先權推播通知。舉例而 言,行動裝置100可將低優先權推播通知儲存於行動裝置100上之資料庫或其他資料儲存區中。
在步驟1108處,行動裝置100可回應於判定出確定不啟動背景應用程式而更新其推播通知篩選。舉例而言,行動裝置100可將與低優先權推播通知相關聯之應用程式移動至行動裝置100上之推播通知篩選之非喚醒清單。
在步驟1110處,行動裝置100可將經更新通知篩選傳輸至推播通知伺服器906。推播通知伺服器906可基於自行動裝置100接收之篩選來更新其自己的推播通知篩選,以判定何時將低優先權推播通知傳輸至行動裝置100及何時不將低優先權推播通知傳輸至行動裝置100。
在步驟1112處,行動裝置100可判定出確定重試啟動與低優先權推播通知相關聯之應用程式。舉例而言,行動裝置100可判定出如上文所描述之預算、極限及裝置條件允許在行動裝置100上啟動額外背景應用程式。
在步驟1114處,行動裝置100可判定是否確定啟動與經儲存之低優先權推播通知相關聯之特定應用程式。舉例而言,行動裝置100可判定出已針對當前時間而重設或補充組態於行動裝置100上之預算及極限,且行動裝置100及網路連接之環境條件足夠良好以啟動特定背景應用程式。
在步驟1116處,當行動裝置100判定出確定啟動特定應用程式時,行動裝置100可啟動該應用程式。舉例而言,在使用者調用特定應用程式之前,可啟動該應用程式作為背景處理序以下載新內容且更新該應用程式之使用者介面。此處理序將允許使用者調用應用程式,且不必等待內容更新被下載且不必等待應用程式之使用者介面被再新。
圖12為用於回應於高優先權推播通知而執行應用程式之背景更 新之實例處理序1200的流程圖。在步驟1202處,行動裝置100可接收高優先權推播通知。
在步驟1204處,行動裝置100可判定是否確定啟動與高優先權推播通知相關聯之應用程式。舉例而言,行動裝置100可基於行動裝置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可藉由將下載或上傳資料之請求發送至背景傳送精靈協助程式1304來起始背景下載/上傳。舉例而言,下載資料(例如,內容)之請求可識別可供下載資料之網路位置。上傳資料之請求可識別資料可被上傳至之網路位置,及資料當前儲存於行動裝置100上所處之位置。請求亦可識別應用程式1304。一旦已作出請求,就可使應用程式1304關機或暫時中止,使得該應用程式將不繼續消耗行動裝置100上之運算及/或網路資源,同時由背景傳送精靈協助程式1304執行背景下載/上傳。
在一些實施中,在接收到執行資料之背景上傳或下載之請求後,背景傳送精靈協助程式1302就可將判定是否確定使背景傳送精靈協助程式1302經由網路而執行資料傳送之請求發送至取樣精靈協助程式102。
回應於自背景傳送精靈協助程式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時、當行動裝置100連接至外部電力時,且當系統未經歷熱事件時,取樣精靈協助程式102可將確定重試信號發送至背景傳送精靈協助程式1302。
在一些實施中,當由背景傳送精靈協助程式1302接收到「確定重試」信號時,背景傳送精靈協助程式1302可將「確定傳送」請求發送至取樣精靈協助程式102。若取樣精靈協助程式102傳回「確定」回覆,則背景傳送精靈協助程式1302可執行用於應用程式1304之背景下載或上傳。一旦背景下載完成,背景傳送精靈協助程式1302就可喚醒或調用應用程式1304,且向應用程式1304提供經下載資料。
在一些實施中,背景傳送精靈協助程式1302可向取樣精靈協助程式102通知背景下載/上傳何時開始及結束,使得取樣精靈協助程式102可調整預算且維護關於在行動裝置100上執行之背景下載/上傳之統計資料。在一些實施中,背景傳送精靈協助程式1302可傳輸經由蜂巢式資料而傳送、經由Wi-Fi而傳送及/或整個地傳送之位元組之數目,使得取樣精靈協助程式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的流程圖。舉例而言,可代表行動裝置100上之應用程式而由背景傳送精靈協助程式1302執行背景下載及/或上傳。
在步驟1402處,可接收背景傳送請求。舉例而言,背景傳送精靈協助程式1302可自在行動裝置100上執行之應用程式接收背景下載/上傳請求。舉例而言,一旦應用程式作出請求,就可終止或暫時中止應用程式。請求可識別應用程式,且識別用於資料之來源位置及/或目的地位置。舉例而言,當下載資料時,來源位置可為用於伺服器之網路位址,且目的地位置可為行動裝置100之檔案系統中之目錄。當上傳資料時,來源位置可為檔案系統位置,且目的地位置可為網路位置。
在步驟1404處,行動裝置100可判定出預算及裝置條件不允許資料傳送。舉例而言,背景傳送精靈協助程式1302可向取樣精靈協助程式102詢問是否確定執行經請求背景傳送。取樣精靈協助程式102可判定用於背景下載/上傳之能量與資料預算是否被耗盡,及行動裝置100是否處於熱事件當中。若背景下載/上傳預算被耗盡,或若行動裝置100處於熱事件當中,則取樣精靈協助程式102可將指示出確定不執行背景資料傳送之訊息發送至背景傳送精靈協助程式1302。
在步驟1406處,行動裝置100可儲存背景傳送請求。舉例而言,背景傳送精靈協助程式1302可將傳送請求儲存於傳送請求存放庫中。
在步驟1408處,行動裝置100可判定出確定重試背景傳送。舉例而言,取樣精靈協助程式102可判定出資料與能量預算已被補充,且行動裝置100未處於熱事件當中。取樣精靈協助程式102可將重試訊息 發送至背景傳送精靈協助程式1302。背景傳送精靈協助程式1302可接著試圖執行儲存於傳送請求存放庫中之經請求傳送。
在步驟1410處,行動裝置100可判定出行動裝置100之預算及條件允許背景資料傳送。舉例而言,背景傳送精靈協助程式1302可向取樣精靈協助程式102詢問是否確定執行經請求背景傳送。取樣精靈協助程式102可判定出用於背景下載/上傳之能量與資料預算被補充,且行動裝置100未處於熱事件當中。若背景下載/上傳預算未被耗盡,或若行動裝置100未處於熱事件當中,則取樣精靈協助程式102可將指示出確定執行背景資料傳送之訊息發送至背景傳送精靈協助程式1302。
在步驟1412處,行動裝置100可執行背景傳送。舉例而言,背景傳送精靈協助程式1302可執行用於請求應用程式之經請求背景下載或背景上傳。背景傳送精靈協助程式1302可向取樣精靈協助程式102通知背景傳送何時開始及結束。背景傳送精靈協助程式1302可發送向取樣精靈協助程式告知在背景下載或上傳期間傳送之位元組之數目的訊息。一旦背景傳送完成,背景傳送精靈協助程式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以啟用及/或停用針對應用程式之背景更新。舉例而言,使用者可將關於雙態觸發1516之輸入(例如,觸控輸入)提供至行動裝置100以接通或關斷針對應用程式1502之背景更新。使用者可將關於雙態觸發1518之輸入(例 如,觸控輸入)提供至行動裝置100以接通或關斷針對應用程式1508之背景更新。
在一些實施中,可經由GUI 1500而針對背景更新應用程式指定額外選項。舉例而言,使用者可選擇與應用程式1514相關聯之圖形物件1510,以調用用於指定額外背景更新選項之圖形使用者介面(未圖示)。背景更新選項可包括(例如)用於接通及/或關斷針對應用程式1514之背景更新之開始時間及結束時間。
實例系統架構
圖16為可實施圖1至圖15之特徵及處理序之實例運算裝置1600的方塊圖。運算裝置1600可包括記憶體介面1602、一或多個資料處理器、影像處理器及/或中央處理單元1604,以及周邊設備介面1606。記憶體介面1602、一或多個處理器1604及/或周邊設備介面1606可為分離組件,或可整合於一或多個積體電路中。運算裝置1600中之各種組件係可由一或多個通信匯流排或信號線耦接。
可將感測器、裝置及子系統耦接至周邊設備介面1606以促進多個功能性。舉例而言,可將運動感測器1610、光感測器1612及近接感測器1614耦接至周邊設備介面1606以促進定向、照明及近接功能。亦可將諸如以下各者之其他感測器1616連接至周邊設備介面1606以促進相關功能性:全球導航衛星系統(GNSS)(例如,GPS接收器)、溫度感測器、生物測定感測器、磁力計,或其他感測裝置。
可利用攝影機子系統1620及光學感測器1622(例如,電荷耦合裝置(CCD)或互補金屬氧化物半導體(CMOS)光學感測器)以促進攝影機功能,諸如,記錄相片及視訊剪輯。可使用攝影機子系統1620及光學感測器1622以收集使用者之影像以在使用者之鑑認期間使用,例如,藉由執行臉部辨識分析。
可經由一或多個無線通信子系統1624而促進通信功能,一或多 個無線通信子系統1624可包括射頻接收器與傳輸器,及/或光學(例如,紅外線)接收器與傳輸器。通信子系統1624之特定設計及實施可取決於運算裝置1600意欲操作所經由之通信網路。舉例而言,運算裝置1600可包括經設計成經由GSM網路、GPRS網路、EDGE網路、Wi-Fi或WiMax網路及BluetoothTM網路而操作之通信子系統1624。詳言之,無線通信子系統1624可包括主控協定,使得裝置100可經組態為用於其他無線裝置之基地台。
可將音訊子系統1626耦接至揚聲器1628及麥克風1630以促進語音啟用功能,諸如,揚聲器辨識、語音複製、數位記錄及電話功能。舉例而言,音訊子系統1626可經組態以促進處理語音命令、聲紋及語音鑑認。
I/O子系統1640可包括觸控表面控制器1642及/或其他輸入控制器1644。觸控表面控制器1642可耦接至觸控表面1646。舉例而言,觸控表面1646及觸控表面控制器1642可使用複數種觸控敏感度技術(包括但不限於電容性、電阻性、紅外線及表面聲波技術)中任一者以及用於判定與觸控表面1646之一或多個接觸點之其他近接感測器陣列或其他元件來偵測觸控表面1646及觸控表面控制器1642之接觸及移動或中斷。
其他輸入控制器1644可耦接至其他輸入/控制裝置1648,諸如,一或多個按鈕、搖臂開關、拇指旋輪、紅外線埠、USB埠,及/或諸如手寫筆之指標裝置。一或多個按鈕(未圖示)可包括用於揚聲器1628及/或麥克風1630之音量控制的向上/向下按鈕。
在一項實施中,按壓按鈕歷時第一持續時間可解開觸控表面1646之鎖定;且按壓按鈕歷時長於第一持續時間之第二持續時間可接通或關斷至運算裝置1600之電力。按壓按鈕歷時第三持續時間可啟動使使用者能夠說出命令至麥克風1630中以使裝置執行所說出命令之語 音控制或語音命令模組。使用者可自訂該等按鈕中之一或多者的功能性。舉例而言,觸控表面1646亦可用以實施虛擬或軟按鈕及/或鍵盤。
在一些實施中,運算裝置1600可呈現經記錄音訊及/或視訊檔案,諸如,MP3、AAC及MPEG檔案。在一些實施中,運算裝置1600可包括MP3播放器(諸如,iPodTM)之功能性。
記憶體介面1602可耦接至記憶體1650。記憶體1650可包括高速隨機存取記憶體及/或非揮發性記憶體,諸如,一或多個磁碟儲存裝置、一或多個光學儲存裝置,及/或快閃記憶體(例如,NAND、NOR)。記憶體1650可儲存作業系統1652,諸如,Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS,或諸如VxWorks之嵌入式作業系統。
作業系統1652可包括用於處置基本系統服務且用於執行硬體相依任務之指令。在一些實施中,作業系統1652可為核心(例如,UNIX核心)。在一些實施中,作業系統1652可包括用於基於使用者活動來執行行動裝置之動態調整之指令。舉例而言,作業系統1652可實施如參看圖1至圖15所描述之動態調整特徵。
記憶體1650亦可儲存通信指令1654以促進與一或多個額外裝置、一或多個電腦及/或一或多個伺服器之通信。記憶體1650可包括:圖形使用者介面指令1656,其用以促進圖形使用者介面處理;感測器處理指令1658,其用以促進感測器相關處理及功能;電話指令1660,其用以促進電話相關處理序及功能;電子傳訊指令1662,其用以促進電子傳訊相關處理序及功能;網頁瀏覽指令1664,其用以促進網頁瀏覽相關處理序及功能;媒體處理指令1666,其用以促進媒體處理相關處理序及功能;GNSS/導航指令1668,其用以促進GNSS及導航相關處理序及指令;及/或攝影機指令1670,其用以促進攝影機相 關處理序及功能。
記憶體1650可儲存其他軟體指令1672以促進其他處理序及功能,諸如,如參看圖1至圖15所描述之動態調整處理序及功能。
記憶體1650亦可儲存其他軟體指令1674,諸如,用以促進網頁視訊相關處理序及功能之網頁視訊指令,及/或用以促進網頁購物相關處理序及功能之網頁購物指令。在一些實施中,將媒體處理指令1666劃分成音訊處理指令及視訊處理指令,以分別促進音訊處理相關處理序及功能以及視訊處理相關處理序及功能。
上文所識別之指令及應用程式中每一者可對應於用於執行上文所描述之一或多個功能之一組指令。無需將此等指令實施為分離的軟體程式、程序或模組。記憶體1650可包括額外指令或較少指令。此外,運算裝置1600之各種功能可實施於硬體及/或軟體中,包括實施於一或多個信號處理及/或特殊應用積體電路中。
200‧‧‧處理序
202‧‧‧步驟
204‧‧‧步驟
206‧‧‧步驟
208‧‧‧步驟
210‧‧‧步驟
212‧‧‧步驟

Claims (18)

  1. 一種方法,其包含:在一行動裝置上之一第一處理序(first process)處接收一推播通知(push notification);自該第一處理序發送一請求至該行動裝置上之一第二處理序,以判定啟動與該推播通知相關聯之一應用程式是否妥適;藉由該第二處理序基於歷史行動裝置資源使用資料(historical mobile device resource usage data)判定用於該行動裝置之一資源預算(resource budget);回應於在該第二處理序處接收該請求,藉由該第二處理序自動地基於該資源預算判定啟動該應用程式並不妥適;自該第二處理序發送一回應至該第一處理序,該回應指出啟動該應用程式並不妥適;藉由該第一處理序自該第二處理序接收指出啟動該應用程式並不妥適之一回應;及當啟動該應用程式並不妥適時,將該推播通知儲存於該行動裝置上。
  2. 如請求項1之方法,其中該資源預算係該行動裝置之一資料預算或一能量預算。
  3. 如請求項1之方法,其進一步包括:自該第二處理序接收一重試(retry)信號;發送一第二請求至該第二處理序,以判定啟動與該經儲存之推播通知相關聯之一應用程式是否妥適;自該第二處理序接收一第二回應,該第二回應指出啟動該應用程式係妥適的;及 當啟動該應用程式係妥適的時,啟動與該推播通知相關聯之該應用程式。
  4. 如請求項3之方法,其中該應用程式經啟動作為該行動裝置上之一背景處理序(background process)。
  5. 如請求項1之方法,其進一步包括在該行動裝置之一顯示器上顯示與該推播通知相關聯之一圖形物件。
  6. 如請求項1之方法,其中判定是否啟動該應用程式係基於一應用程式啟動速率極限(application launch rate limit)。
  7. 一種非暫時性電腦可讀媒體,其包含一或多個指令序列(sequences of instructions),該一或多個指令序列在由一或多個處理器執行時使該處理器執行以下操作:在一行動裝置上之一第一處理序處接收一推播通知;發送一請求至一第二處理序,以判定啟動與該推播通知相關聯之一應用程式是否妥適;自該第二處理序接收一回應,該回應指出啟動該應用程式並不妥適;及當啟動該應用程式並不妥適時,將該推播通知儲存於該行動裝置上。
  8. 如請求項7之非暫時性電腦可讀媒體,其中判定是否啟動該應用程式係基於該行動裝置之一資料預算、一能量預算或熱條件(thermal conditions)。
  9. 如請求項7之非暫時性電腦可讀媒體,其中該等指令使該處理器執行以下操作:自該第二處理序接收一重試信號;發送一第二請求至該第二處理序,以判定啟動與該經儲存之推播通知相關聯之一應用程式是否妥適; 自該第二處理序接收一第二回應,該第二回應指出啟動該應用程式係妥適的;及當啟動該應用程式係妥適的時,啟動與該推播通知相關聯之該應用程式。
  10. 如請求項9之非暫時性電腦可讀媒體,其中該應用程式經啟動作為該行動裝置上之一背景處理序。
  11. 如請求項7之非暫時性電腦可讀媒體,其中該等指令使該處理器在該行動裝置之一顯示器上顯示與該推播通知相關聯之一圖形物件。
  12. 如請求項7之非暫時性電腦可讀媒體,其中判定是否啟動該應用程式係基於一應用程式啟動速率極限。
  13. 一種系統,其包含:一或多個處理器;及一非暫時性電腦可讀媒體,其包含一或多個指令序列,該一或多個指令序列在由一或多個處理器執行時使該處理器執行包含以下操作:在一行動裝置上之一第一處理序處接收一推播通知;發送一請求至一第二處理序,以判定啟動與該推播通知相關聯之一應用程式是否妥適;自該第二處理序接收一回應,該回應指出啟動該應用程式並不妥適;及當啟動該應用程式並不妥適時,將該推播通知儲存於該行動裝置上。
  14. 如請求項13之系統,其中判定是否啟動該應用程式係基於該行動裝置之一資料預算、一能量預算或熱條件。
  15. 如請求項13之系統,其中該等指令使該處理器執行以下操作: 自該第二處理序接收一重試信號;發送一第二請求至該第二處理序,以判定啟動與該經儲存之推播通知相關聯之一應用程式是否妥適;自該第二處理序接收一第二回應,該第二回應指出啟動該應用程式係妥適的;及當啟動該應用程式係妥適的時,啟動與該推播通知相關聯之該應用程式。
  16. 如請求項15之系統,其中該應用程式經啟動作為該行動裝置上之一背景處理序。
  17. 如請求項13之系統,其中該等指令使該處理器在該行動裝置之一顯示器上顯示與該推播通知相關聯之一圖形物件。
  18. 如請求項13之系統,其中判定是否啟動該應用程式係基於一應用程式啟動速率極限。
TW104136386A 2013-06-09 2014-05-26 基於使用者活動之行動裝置之動態調整 TWI557555B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361832919P 2013-06-09 2013-06-09
US14/253,742 US9256484B2 (en) 2013-06-09 2014-04-15 Dynamic adjustment of mobile device based on user activity

Publications (2)

Publication Number Publication Date
TW201606500A TW201606500A (zh) 2016-02-16
TWI557555B true TWI557555B (zh) 2016-11-11

Family

ID=52006652

Family Applications (2)

Application Number Title Priority Date Filing Date
TW104136386A TWI557555B (zh) 2013-06-09 2014-05-26 基於使用者活動之行動裝置之動態調整
TW103118303A TWI514133B (zh) 2013-06-09 2014-05-26 基於使用者活動之行動裝置之動態調整

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW103118303A TWI514133B (zh) 2013-06-09 2014-05-26 基於使用者活動之行動裝置之動態調整

Country Status (6)

Country Link
US (1) US9256484B2 (zh)
EP (2) EP3813337A1 (zh)
KR (4) KR101980135B1 (zh)
CN (1) CN105308568B (zh)
TW (2) TWI557555B (zh)
WO (1) WO2014200709A1 (zh)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3367252B1 (en) 2010-07-26 2019-10-16 Seven Networks, LLC Context aware traffic management for resource conservation in a wireless network
WO2013015835A1 (en) 2011-07-22 2013-01-31 Seven Networks, Inc. Mobile application traffic optimization
US8554855B1 (en) * 2011-06-14 2013-10-08 Urban Airship, Inc. Push notification delivery system
US9392393B2 (en) 2013-06-09 2016-07-12 Apple Inc. Push notification initiated background updates
US10223156B2 (en) * 2013-06-09 2019-03-05 Apple Inc. Initiating background updates based on user activity
US9256484B2 (en) 2013-06-09 2016-02-09 Apple Inc. Dynamic adjustment of mobile device based on user activity
US9603094B2 (en) 2013-06-09 2017-03-21 Apple Inc. Non-waking push notifications
EP3454594B1 (en) * 2013-06-11 2020-11-04 Seven Networks, LLC Offloading application traffic to a shared communication channel for signal optimisation in a wireless network for traffic utilizing proprietary and non-proprietary protocols
JP2015207819A (ja) * 2014-04-17 2015-11-19 株式会社リコー 情報処理装置、情報処理システム、通信制御方法およびプログラム
US9565081B2 (en) 2014-05-19 2017-02-07 Ebay Inc. Phone thermal context
US9432796B2 (en) * 2014-05-30 2016-08-30 Apple Inc. Dynamic adjustment of mobile device based on peer event data
EP3170335B1 (en) 2014-07-16 2019-12-11 Tensera Networks Ltd. Efficient content delivery over wireless networks using guaranteed prefetching at selected times-of-day
US11095743B2 (en) 2014-07-16 2021-08-17 Tensera Networks Ltd. Optimized content-delivery network (CDN) for the wireless last mile
US9979796B1 (en) 2014-07-16 2018-05-22 Tensera Networks Ltd. Efficient pre-fetching notifications
CN105373419A (zh) 2014-08-26 2016-03-02 阿里巴巴集团控股有限公司 一种后台应用的操作方法及装置
US10506027B2 (en) 2014-08-27 2019-12-10 Tensera Networks Ltd. Selecting a content delivery network
US10379497B2 (en) 2015-03-07 2019-08-13 Apple Inc. Obtaining and displaying time-related data on an electronic watch
US9723470B1 (en) 2015-04-30 2017-08-01 Tensera Networks Ltd. Selective enabling of data services to roaming wireless terminals
US10149343B2 (en) 2015-05-11 2018-12-04 Apple Inc. Use of baseband triggers to coalesce application data activity
US10572571B2 (en) 2015-06-05 2020-02-25 Apple Inc. API for specifying display of complication on an electronic watch
US10491708B2 (en) 2015-06-05 2019-11-26 Apple Inc. Context notifications
US10175866B2 (en) 2015-06-05 2019-01-08 Apple Inc. Providing complications on an electronic watch
CN105338177B (zh) * 2015-09-30 2018-10-19 小米科技有限责任公司 信息延迟广播方法及装置
CN107924374A (zh) 2015-10-15 2018-04-17 腾赛拉网络有限公司 通信终端中的内容的新鲜度感知呈现
US9781679B2 (en) 2015-11-27 2017-10-03 Samsung Electronics Co., Ltd. Electronic systems and method of operating electronic systems
CN105635270A (zh) * 2015-12-28 2016-06-01 余镓乐 应用程序更新方法以及装置
US10769925B2 (en) * 2015-12-30 2020-09-08 3M Innovative Properties Company Electronic fall event communication system
CN105786561B (zh) * 2016-01-29 2020-06-02 北京小米移动软件有限公司 进程调用的方法及装置
CN105635264B (zh) * 2016-03-28 2019-08-20 庄铭宇 一种基于网络游戏应用的文件系统
US11416212B2 (en) 2016-05-17 2022-08-16 Microsoft Technology Licensing, Llc Context-based user agent
WO2018045562A1 (zh) * 2016-09-09 2018-03-15 华为技术有限公司 一种关联通知消息的方法、装置及移动终端
CN106550021B (zh) * 2016-10-19 2020-03-10 Oppo广东移动通信有限公司 推送消息的推送方法及装置
US20180150443A1 (en) * 2016-11-25 2018-05-31 Google Inc. Application program interface for managing complication data
EP3340536B1 (en) * 2016-12-20 2019-05-22 Axis AB Controlling different states of operation of an electronic device over a communication network using a control device
CN106648029B (zh) * 2016-12-28 2019-10-08 努比亚技术有限公司 一种基于推送服务的功耗管控方法及移动终端
CN107038081A (zh) * 2017-04-10 2017-08-11 刘�文 一种大范围跨区域异常信息迅速采集方法
US11134413B2 (en) 2017-04-20 2021-09-28 Beijing Xiaomi Mobile Software Co., Ltd. User equipment protection method, device, user equipment and base station
CN107122284A (zh) * 2017-05-04 2017-09-01 广州优视网络科技有限公司 应用监控方法、装置、电子设备以及存储介质
CN108958176A (zh) * 2017-05-23 2018-12-07 北京握奇智能科技有限公司 一种网络通信控制系统和方法
US11283895B2 (en) 2017-06-19 2022-03-22 Tensera Networks Ltd. Silent updating of content in user devices
CN109426505B (zh) * 2017-08-16 2022-03-29 中国移动通信有限公司研究院 一种软件的安装方法、装置、电子设备及存储介质
US20190073407A1 (en) * 2017-09-05 2019-03-07 Qualcomm Incorporated Optimized data synchronization
US10237783B1 (en) * 2017-09-07 2019-03-19 Paypal, Inc. Caching and providing data to a device based on available resources
CN109526043A (zh) * 2017-09-19 2019-03-26 北京搜狗科技发展有限公司 一种应用程序的设置方法及装置
CN107797825A (zh) * 2017-10-24 2018-03-13 努比亚技术有限公司 一种数据发送方法、终端及计算机可读存储介质
KR102348693B1 (ko) * 2017-10-24 2022-01-10 삼성전자주식회사 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법
CN109814937A (zh) * 2017-11-20 2019-05-28 广东欧珀移动通信有限公司 应用程序预测模型建立、预加载方法、装置、介质及终端
CN109947495A (zh) 2017-12-20 2019-06-28 广东欧珀移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN109947498B (zh) * 2017-12-20 2021-06-29 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN109947496B (zh) * 2017-12-20 2020-09-15 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN108594992B (zh) * 2018-03-31 2021-05-11 Oppo广东移动通信有限公司 电子设备、应用控制方法及相关产品
US11204806B2 (en) * 2018-06-03 2021-12-21 Apple Inc. Systems and methods for user adaptive resource management
US10666071B2 (en) * 2018-07-03 2020-05-26 Xentris Wireless, Llc Inertial user interface portable power bank and method of operation
KR20200031900A (ko) 2018-09-17 2020-03-25 삼성전자주식회사 Pdu 세션 제어 방법 및 장치
US11276083B2 (en) * 2018-11-28 2022-03-15 Verizon Media Inc. Local content exchange for mobile devices via mediated inter-application communication
CN109725702A (zh) * 2018-12-28 2019-05-07 三星电子(中国)研发中心 一种基于ai预测的智能终端节能方法和设备
US11016825B2 (en) * 2019-01-14 2021-05-25 Vmware, Inc. Flexible analytics framework selection
CN109947503A (zh) * 2019-03-27 2019-06-28 重庆传音通讯技术有限公司 应用程序控制方法、装置、终端及计算机可读存储介质
DE102020208654A1 (de) * 2019-07-11 2021-01-14 Continental Automotive Systems, Inc. Leistungsoptimierung basierend auf HMI-Prioritäten
US11880258B2 (en) * 2019-07-11 2024-01-23 Continental Automotive Systems, Inc. Performance optimization based on HMI priorities
CN110442535B (zh) * 2019-07-19 2021-06-11 华中科技大学 提高分布式固态盘键值缓存系统可靠性的方法及系统
CN110602224B (zh) * 2019-09-18 2022-11-11 上海掌门科技有限公司 用于推送信息的方法、电子设备和计算机可读介质
KR20230115752A (ko) * 2022-01-27 2023-08-03 삼성전자주식회사 애플리케이션을 백그라운드 프로세스에서 실행하는 전자 장치 및 그 동작 방법
WO2024063251A1 (ko) * 2022-09-22 2024-03-28 삼성전자 주식회사 전자 장치 및 전자 장치의 발열 제어 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200820703A (en) * 2006-09-07 2008-05-01 Research In Motion Ltd Mediated plug-in registration of client applications and content providers with push content delivery system
US20080114574A1 (en) * 2006-11-09 2008-05-15 Institute For Information Industry Complex event evaluation systems and methods
US20090199029A1 (en) * 2008-02-01 2009-08-06 Arimilli Ravi K Wake-and-Go Mechanism with Data Monitoring
US20100332876A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Reducing power consumption of computing devices by forecasting computing performance needs
TW201251398A (en) * 2011-06-03 2012-12-16 Apple Inc System and method for dynamic routing for push notifications
US20130067492A1 (en) * 2011-09-09 2013-03-14 Eli Joshua FIDLER Content-filter publish-subscribe system that optimizes interprocess communications
TW201315268A (zh) * 2011-08-01 2013-04-01 Apple Inc 管理通知訊息

Family Cites Families (41)

* 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
US9092286B2 (en) * 2002-12-20 2015-07-28 Qualcomm Incorporated System to automatically process components on a device
US20070067373A1 (en) 2003-11-03 2007-03-22 Steven Higgins Methods and apparatuses to provide mobile applications
US8898256B2 (en) * 2004-07-13 2014-11-25 International Business Machines Corporation Prioritization of application component distribution
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
US7911509B2 (en) 2008-03-12 2011-03-22 Sony Ericsson Mobile Communications Ab Adaptive video encode scaling
US8364123B2 (en) * 2009-02-25 2013-01-29 Apple Inc. Managing notification messages
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
TW201009713A (en) * 2008-08-21 2010-03-01 Ind Tech Res Inst Multitasking processor and task switch method thereof
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
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
US8145199B2 (en) * 2009-10-31 2012-03-27 BT Patent LLC Controlling mobile device functions
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
US8924489B2 (en) * 2011-01-05 2014-12-30 Apple Inc. Message push notification client improvements for multi-user devices
US20120179502A1 (en) 2011-01-11 2012-07-12 Smart Technologies Ulc Method for coordinating resources for events and system employing same
US8407776B2 (en) * 2011-02-11 2013-03-26 Good Technology Corporation Method, apparatus and system for provisioning a push notification session
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
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
US8407306B1 (en) * 2012-06-25 2013-03-26 Google Inc. Systems and methods for managing message delivery based on message priority
CN102866921B (zh) * 2012-08-29 2016-05-11 惠州Tcl移动通信有限公司 一种多核cpu的调控方法及系统
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
US9256484B2 (en) 2013-06-09 2016-02-09 Apple Inc. Dynamic adjustment of mobile device based on user activity

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200820703A (en) * 2006-09-07 2008-05-01 Research In Motion Ltd Mediated plug-in registration of client applications and content providers with push content delivery system
US20080114574A1 (en) * 2006-11-09 2008-05-15 Institute For Information Industry Complex event evaluation systems and methods
US20090199029A1 (en) * 2008-02-01 2009-08-06 Arimilli Ravi K Wake-and-Go Mechanism with Data Monitoring
US20100332876A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Reducing power consumption of computing devices by forecasting computing performance needs
TW201251398A (en) * 2011-06-03 2012-12-16 Apple Inc System and method for dynamic routing for push notifications
TW201315268A (zh) * 2011-08-01 2013-04-01 Apple Inc 管理通知訊息
US20130067492A1 (en) * 2011-09-09 2013-03-14 Eli Joshua FIDLER Content-filter publish-subscribe system that optimizes interprocess communications

Also Published As

Publication number Publication date
KR20160137686A (ko) 2016-11-30
US20140366041A1 (en) 2014-12-11
KR101680796B1 (ko) 2016-11-29
TWI514133B (zh) 2015-12-21
TW201504805A (zh) 2015-02-01
EP3008593A1 (en) 2016-04-20
EP3813337A1 (en) 2021-04-28
KR20180078338A (ko) 2018-07-09
WO2014200709A1 (en) 2014-12-18
KR101980135B1 (ko) 2019-05-21
US9256484B2 (en) 2016-02-09
KR101980138B1 (ko) 2019-05-21
KR20150138400A (ko) 2015-12-09
KR101875014B1 (ko) 2018-08-02
KR20180078337A (ko) 2018-07-09
CN105308568B (zh) 2017-06-23
TW201606500A (zh) 2016-02-16
CN105308568A (zh) 2016-02-03

Similar Documents

Publication Publication Date Title
TWI557555B (zh) 基於使用者活動之行動裝置之動態調整
TWI521434B (zh) 基於使用者活動起始背景更新
TWI540426B (zh) 行動裝置基於熱條件之動態調整
KR102106744B1 (ko) 피어 이벤트 데이터에 기초한 모바일 디바이스의 동적 조정
US9392393B2 (en) Push notification initiated background updates
US9603094B2 (en) Non-waking push notifications
US9462965B2 (en) Dynamic adjustment of mobile device based on system events
US9813990B2 (en) Dynamic adjustment of mobile device based on voter feedback