新四季網

基於Android系統內存優化與應用調度方法及系統的製作方法

2023-06-12 10:15:41

基於Android系統內存優化與應用調度方法及系統的製作方法
【專利摘要】本發明公開一種基於Android系統內存優化與應用調度方法及系統,該方法包括:利用安卓系統應用程式接口獲取當前所有UI進程的任務信息列表,將其轉化為對應任務棧;將相鄰時間點任務棧進行比較,並將比較結果與預設用戶行為與堆棧變化對應表進行比對,得出所對應的用戶行為;根據所得出的用戶行為對任務棧中的元素進行選擇回收其內存,以及根據該用戶行為進行應用程式的切換。本發明方法可實現在不影響用戶操作和體驗的前提下,對系統應用狀態變化進行有效檢測,並進一步實現內存的優化和用戶行為分析,其簡化了目前內存管理機制,有效避免了影響用戶體驗的誤殺等操作,並且系統根據用戶行為的分析實現了自身應用和系統界面切換的統一性。
【專利說明】基於Android系統內存優化與應用調度方法及系統
【技術領域】
[0001]本發明涉及內存管理【技術領域】,尤其涉及一種基於安卓系統的內存優化與應用調度方法及系統。
【背景技術】
[0002]現在安卓(Android)系統的發展迅速,越來越多的手機設備、電視廠商都引入了Android系統,但是對於設備廠商而言,深入定製Android系統是一件工作量大而又必須進行的工作。為利用Android系統實現自身設備的最大有效管理,通常需要的對Android自身源碼進行大量改動,但對源碼的改動工作通常既耗時又繁瑣。
[0003]現有的Android機制中,用戶進行的操作所產生的交互的activity會被任務棧收集,所述任務棧如圖1所示,該棧包含了所有當前在系統中顯示的UI界面的層次,棧底為首頁(Laucher) 10,棧中元素應用1/1 (即指應用I)的activity組件11、應用2/2 (即指應用2)的activity組件12,棧頂元素應用3/3的activity組件13表示展示在界面的最頂端的應用,也就是用戶最關心的用戶行為。在Android現有的機制中,只關心棧頂元素的變化,對於棧中的其他元素均不作處理,這就造成系統的很多內存將被消耗在用戶不可見的行為上,造成資源的浪費。
[0004]因此,現有技術還有待於改進和發展。

【發明內容】

[0005]鑑於上述現有技術的不足,本發明的目的在於提供一種基於Android系統的存優化與應用調度方法及系統,旨在解決目前不能實現在不改動Android源碼的前提下實現內存的有效管理的問題。
[0006]本發明的技術方案如下:
一種基於Android系統的內存優化與應用調度方法,其中,所述方法包括以下步驟:利用Android系統的應用程式接口獲取當前的所有UI進程的任務信息列表,並將其轉化為對應的任務棧;
將相鄰時間點的任務棧進行比較,並將所述比較結果與預設的用戶行為與堆棧變化對應表進行比對,得出該比較結果所對應的用戶行為;
根據所得出的用戶行為對任務棧中的元素進行選擇並回收其內存,以及根據該用戶行為進行應用程式的切換。
[0007]所述的基於Android系統內存優化與應用調度方法,其中,所述利用Android系統的應用程式接口獲取當前的所有Π進程的任務信息列表,並將其轉化為對應的任務棧具體包括:
系統開機啟動,創建用於檢測系統中應用狀態變化的線程;
所述線程根據Android系統的應用程式接口獲取當前所有UI進程的任務信息列表; 將所得到的任務信息列錶轉化為Java的棧數據結構。[0008]所述的基於Android系統內存優化與應用調度方法,其中,所述將相鄰時間點的任務棧進行比較,並將所述比較結果與預設的用戶行為與堆棧變化對應表進行比對,得出該比較結果所對應的用戶行為,具體包括:
當所述比較結果為相鄰時間點的第一任務棧中不包含有第二任務棧中的棧頂元素時、則其與用戶行為與堆棧變化對應表比對後,得出該比較結果對應用戶啟動一新應用的行為;
當所述比較結果為相鄰時間點的第一任務棧的棧頂元素不包含在第二任務棧中時、則其與用戶行為與堆棧變化對應表比對後,得出該比較結果對應用戶退出一可視化應用的行為;
當所述比較結果為相鄰時間點的第一任務棧與第二任務棧元素及其個數相同,但兩者元素排列順序不同時、則其與用戶行為與堆棧變化對應表比對後,得出該比較結果對應用戶未發生行為變化;
當所述比較結果為相鄰時間點的第一任務棧的非棧頂元素不包含在第二任務棧中時、則其與用戶行為與堆棧變化對應表比對後,得出該不包含在第二任務棧中的非棧頂元素自動退出。
[0009]所述的基於Android系統的內存優化與應用調度方法,其中,所述根據所得出的用戶行為對任務棧中的元素進行選擇並回收其內存具體包括:
根據所述用戶行為判斷出任務棧中元素間的關聯性,並根據該關聯性設置相應的應用程式的優先級;
根據所得出的任務棧中元素間關聯性及應用程式優先級對任務棧中的元素進行選擇並回收其內存。
[0010]所述的基於Android系統的內存優化與應用調度方法,其中,當確定用戶啟動一新應用行為時,則彈出顯示該新應用的交互界面;
當確定用戶退出一可視化應用的行為時,檢測並確定該應用所退出到的系統應用,彈出該系統應用的交互界面。
[0011]所述的基於Android系統的內存優化與應用調度方法,其中,所述根據該關聯性設置相應的應用程式的優先級具體包括:
設置所述任務棧中棧頂元素對應的應用程式具有最高優先級,設置與所述棧頂元素具有關聯行為的棧中元素所對應的應用程式具有次高優先級,設置與所述棧頂元素未發生關聯行為的棧中元素所對應的應用程式具有比所述次高優先級更低的優先級。
[0012]所述的基於Android卓系統的內存優化與應用調度方法,其中,所述根據所得出的任務棧中元素間關聯性及應用程式優先級對任務棧中的元素進行選擇並回收其內存具體包括:
按照優先級的由高到低回收任務棧中的元素的內存,其中,當檢測到任務棧中具有比次高優先級更低優先級所對應的棧中元素時,優先回收其內存;
當檢測到任務棧中具有次高優先級對應的棧中元素時,同時檢測系統內存是否達到閾值,若是,則回收該棧中元素的內存;
當檢測到任務棧中棧頂元素所佔內存一直在增長並且達到虛擬機的峰值時,回收該棧頂元素的內存。[0013]所述的基於Android系統的內存優化與應用調度方法,其中,所述根據所得出的任務棧中元素間關聯性及應用程式優先級對任務棧中的元素進行選擇並回收其內存,還包括:
檢測所述任務棧中的元素個數是否大於預設數量,若是,則直接將任務棧中與棧頂元素未發生關聯行為的元素進行內存回收,其檢測回收順序是對任務棧的元素進行自下而上的檢測回收。
[0014]一種基於Android系統的內存優化與應用調度系統,其中,所述系統包括:
任務棧創建模塊,用於利用Android系統的應用程式接口獲取當前的所有UI進程的任務信息列表,並將其轉化為對應的任務棧;
比較模塊,用於將相鄰時間點的任務棧進行比較,並將所述比較結果與預設的用戶行為與堆棧變化對應表進行比對,得出該比較結果所對應的用戶行為;
內存回收模塊,用於根據所述比較模塊所得出的用戶行為對任務棧中的元素進行選擇並回收其內存。
[0015]切換模塊,用於根據所述比較模塊所得出的用戶行為進行應用程式的切換。
[0016]有益效果:本發明提供一種基於Android系統的內存優化與應用調度方法及系統,該方法可實現在不影響用戶操作和體驗的前提下,對系統應用狀態變化進行有效檢測,並進一步實現內存的優化和用戶行為分析,其簡化了目前內存管理機制,有效避免了影響用戶體驗的誤殺等操作,並且系統根據用戶行為的分析實現了自身應用和系統界面切換的統一性。
【專利附圖】

【附圖說明】
[0017]圖1為具體實施例中Android系統任務棧的結構示意圖。
[0018]圖2為本發明的基於Android系統的內存優化與應用調度方法流程圖。
[0019]圖3為具體實施例中本發明的相鄰時間點的任務棧比較情形一示意圖。
[0020]圖4為具體實施例中本發明的相鄰時間點的任務棧比較情形二示意圖。
[0021]圖5為具體實施例中本發明的相鄰時間點的任務棧比較情形三示意圖。
[0022]圖6為具體實施例中本發明的相鄰時間點的任務棧比較情形四示意圖。
[0023]圖7為具體實施例中本發明基於Android系統的內存優化與應用調度方法流程圖。
[0024]圖8為具體實施例中本發明基於Android系統的內存優化與應用調度系統原理框圖。
【具體實施方式】
[0025]本發明提供一種基於Android系統內存優化與應用調度方法及系統,為使本發明的目的、技術方案及效果更加清楚、明確,以下對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
[0026]如圖2所示的一種基於Android系統的內存優化與應用調度方法,其中,所述方法包括以下步驟:
S100、利用Android系統的應用程式接口獲取當前的所有UI進程的任務信息列表,並將其轉化為對應的任務棧。
[0027]進一步地,上述步驟具體為:
系統開機啟動,創建用於檢測系統中應用狀態變化的線程。即該線程所處的進程應該在系統開機的時候就啟動,這樣可以檢測系統任何時候的應用啟動和退出等狀態變化等情況。通常情況下,該線程可以在系統的管理Service中啟動,然後將一些重要信息廣播出去。當然,該廣播並不僅限於Android廣播的方式。
[0028]所述線程根據安卓系統的應用程式接口獲取當前所有UI進程的任務信息列表。
[0029]將所得到的任務信息列錶轉化為Java的棧數據結構。
[0030]S200、將相鄰時間點的任務棧進行比較,並將所述比較結果與預設的用戶行為與堆棧變化對應表進行比對,得出該比較結果所對應的用戶行為。
[0031]S300、根據所得出的用戶行為對任務棧中的元素進行選擇並回收其內存,以及根據該用戶行為進行應用程式的切換。
[0032]較佳實施例中,所述將所述比較結果與預設的用戶行為與堆棧變化對應表進行比對,得出該比較結果所對應的用戶行為,根據所得出的用戶行為對任務棧中的元素進行選擇並回收其內存具體為:
將比較結果與預設的用戶行為與堆棧變化對應表進行比對,得出該比較結果所對應的用戶行為,並根據該用戶行為判斷出任務棧中元素間的關聯性,並根據該關聯性設置相應的應用程式的優先級;
根據所得出的任務棧中元素間關聯性及應用程式優先級對任務棧中的元素進行選擇並回收其內存。
[0033]其中,所述根據該關聯性設置相應的應用程式的優先級具體為:
設置所述任務棧中棧頂元素對應的應用程式具有最高優先級,設置與所述棧頂元素具有關聯行為的棧中元素所對應的應用程式具有次高優先級,設置與所述棧頂元素未發生關聯行為的棧中元素所對應的應用程式具有比所述次高優先級更低的優先級。
[0034]其中,將所述比較結果與預設的用戶行為與堆棧變化對應表進行比對,得出該比較結果所對應的用戶行為進一步地包括:
當所述比較結果為相鄰時間點的第一任務棧中不包含有第二任務棧中的棧頂元素時、則其與用戶行為與堆棧變化對應表比對後,得出該比較結果對應用戶啟動一新應用的行為。
[0035]當所述比較結果為相鄰時間點的第一任務棧的棧頂元素不包含在第二任務棧中時、則其與用戶行為與堆棧變化對應表比對後,得出該比較結果對應用戶退出一可視化應用的行為。
[0036]當所述比較結果為相鄰時間點的第一任務棧與第二任務棧元素及其個數相同,但兩者元素排列順序不同時、則其與用戶行為與堆棧變化對應表比對後,得出該比較結果對應用戶未發生行為變化。
[0037]當所述比較結果為相鄰時間點的第一任務棧的非棧頂元素不包含在第二任務棧中時、則其與用戶行為與堆棧變化對應表比對後,得出該不包含在第二任務棧中的非棧頂元素自動退出。
[0038]具體的,比較兩個相鄰時間點的任務棧中元素的不同之處,主要進行四個分支的判斷,即如圖3-6所示的4種情形。這是本發明提出的一個重要判斷依據,有效利用了相鄰棧的相似性和不同性,將複雜的棧結構原子化,所有的用戶行為和系統底層的操作均可表現為圖中前四種情形的模板。
[0039]如圖3所示,A棧與B棧為相鄰時間點的兩任務棧,A棧中不包含有B棧中棧頂元素應用3/3的activity組件13,這是最常見的一種情況,代表用戶啟動了一個應用,啟動的應用的信息可以通過Android的標準API獲取。如圖4所示,A棧中棧頂元素應用3/3的activity組件13不包含在B棧中,這也是最常見的一種情況,代表用戶退出了一個可視化的應用,退出的應用信息頁同樣可以從Android的標準API獲取。如圖5所示,A棧和B棧的元素個數相同,並且元素也相同,即都包含應用1/1的activity組件11、應用2/2的activity組件12、應用3/3的activity組件13,但是順序有一定的改變,該改變必定是由於交換位置的元素的關聯性引起的,則確定用戶行為對於系統而言,未發生行為的變化。如圖6所示,A棧中的非棧頂元素應用2/2的activity組件12不包含在B棧中,表示A棧中消失的元素由於系統或者自身緣故退出,可以分析為A棧中的非棧頂元素進入了 onStop狀態自身退出或是直接被系統的其他機制回首。
[0040]另外,B棧中不可能包含有兩個或者兩個以上A棧中不具有的元素,並且當B棧中含有A棧中不存在的元素時,該元素一定存在於B棧的棧頂。其所述的情形也必然屬於圖3-6所示的情形之一,因此用戶和系統的所有操作行為都可以通過上述四種情形進行分析。上述四種情形被以模板的形式設置在用戶行為與堆棧變化對應表中,任何相鄰時間點的堆棧變化,都可以通過與用戶行為與堆棧變化對應表對比對用戶行為進行有效的分析。較佳的是,所謂相鄰時間點的任務棧,其時間間隔應該較短,時間間隔在IOOms左右為宜。
[0041]因此通過對相鄰時間點的任務棧的比較結果的分析,不僅可分析出的進程的啟動和退出,還可進一步進行用戶行為分析,這樣就可得到用戶在某個時間點,進入某個應用,或者在某個時間點退出某個應用;也同樣可以得到在某個時間點系統回收哪些非必要的進程。總之,上述步驟可實現Android應用進入退出的有效檢測,並對用戶的行為進行有效分析。
[0042]進一步地,根據所得出的用戶行為選擇元素其實是根據該用戶行為判斷出任務棧中元素間的關聯性,並根據該關聯性設置相應的應用程式的優先級,之後根據所得出的任務棧中元素間關聯性及應用程式優先級對任務棧中的元素進行選擇並回收其內存。
[0043]其中,根據所得出的任務棧中元素間關聯性及應用程式優先級對任務棧中的元素進行選擇並回收其內存具體為:
按照優先級的由高到低回收任務棧中的元素的內存,其中,當檢測到任務棧中具有比次高優先級更低優先級所對應的棧中元素時,優先回收其內存。
[0044]當檢測到任務棧中具有次高優先級對應的棧中元素時,同時檢測系統內存是否達到閾值,若是,則回收該棧中元素的內存。
[0045]當檢測到任務棧中棧頂元素所佔內存一直在增長並且達到虛擬機的峰值時,回收該棧頂元素的內存。
[0046]本發明不違背Android本身的優先級規則,最頂層的應用具有最高優先級,由於棧頂元素的應用直接影響用戶的體驗,對其內存和性能的使用不做預警,除非其內存使用達到虛擬機的峰值,否則不做限制。不包含棧頂元素的棧中元素,若經檢測發現其與棧頂元素發生過關聯行為,則賦予其內存管理的次高優先級或次高權限,該類應用如果直接回收其內存,又可能會影響用戶的體驗,因此需要系統檢測這類元素所找內存是否達到預設閾值,當其系統內存和性能達到該閾值時,對其進行釋放。而未與棧頂元素發生過關聯行為的棧中其他元素,,則直接進行內存的回收。既不會影響用戶的體驗,也實現了內存的優先回收。
[0047]較佳實施例中,檢測所述任務棧中的元素個數是否大於預設數量,若是,則直接將任務棧中與棧頂元素未發生關聯行為的元素進行內存回收,其檢測回收順序是對任務棧的元素進行自下而上的檢測回收。
[0048]即任務棧中的元素個數大於某一數值時,可以直接將棧中與棧頂元素未發生關聯的元素自下向上進行直接回收,直至遇到棧頂元素或與棧頂元素發生關聯的元素為止。該數值可以根據具體系統所處的硬體性能進行評估,一般為3較佳,如果硬體性能非常好,可以適當提聞。
[0049]上述對於任務棧中的應用的處理可簡單表述為:將非必要的或者優先級較低的進程在系統資源緊張時直接kill掉,以便回收內存。另外系統可檢測較低進程的內存使用情況,若檢測到相應進程的內存一直在增長,那麼該進程很大程度上發生了內存洩露,當檢測到該進程佔用的內存達到虛擬機的峰值時,則直接將其kill掉。這樣可以儘早確保系統資源的不被浪費和消耗。
[0050]採用如上規則的內存管理,可以極大的簡化內存管理的機制,並且有效避開了影響用戶體驗的誤殺等操作;同時也在上層豐富和細化了 Android本身機制關於內存的管理和實用策略,不再是簡單的進行非頂層應用的回收操作。
[0051]另外一方面,根據該用戶行為進行應用程式的切換其實是根據之前所得出的用戶行為及當前任務棧確定系統中相應應用程式的狀態變化情況,並根據該狀態變化情況進行應用程式切換。
[0052]具體地,當確定用戶啟動一新應用行為時,則彈出顯示該新應用的交互界面。
[0053]當確定用戶退出一可視化應用的行為時,檢測並確定該應用所退出到的系統應用,彈出該系統應用的交互界面。
[0054]本發明利用相鄰時間點的任務棧的比較及其分析,可確切了解某個應用的狀態變化,從而可系統調度某個應用的交互操作。這一點尤其適用於電視等大屏的Android作業系統。因為對於電視等大屏作業系統而言,主要依賴於遙控器、手機或者其他遠程遙控裝置,這樣的遙控簡單但是不夠方便。如果Π (用戶界面)交互不能完整和實時的呈現給用戶,那麼對於用戶而言將是一件非常繁瑣的事情。而本發明的系統可實時檢測到某個應用進入了哪個應用,或者從某一應用退出到了某一系統應用,從而可及時彈出預置的交互Π,而不是不再單純的依賴自身應用的狀態變化,是本發明的系統具有了一個系統級的Π交互調度。
[0055]舉例說明,在電視系統中出現如圖4的情形二,若應用3是未知的第三方應用,不需要響應遙控器的菜單鍵,而應用2和應用I是系統自身設計的內置應用,其需要響應遙控器的菜單鍵,並且自身底下的應用不進入黑屏狀態,則在此種情況下,本發明系統根據對用戶行為和當前的任務棧的分析,分析出當前每一個應用應該進行的操作。不再局限於Android本身的Activity的狀態變化,同時Android自身的狀態變化機制只能響應當前應用2的進程,而不能對底層的應用I和Lanucher有狀態變化的響應。並且,對於Android的應用而言,目前是無法完全按照一個Activity的狀態變化來進行一些界面交互的管理的,因為一個應用可能存在多個Activity,如果對每一個Activity的狀態都在進程間進行管理,將是一件耗時但又不討好的事情。但本發明的機制與此不同,系統可及時確認A棧中的元素I的哪個Activity進入了什麼狀態,並可設置通知機制來實現應用狀態變化的通知,實現了狀態變化的準確判斷。從而最終實現各個應用間切換的界面交互管理。另外,本發明方法執行時只需要消耗極小的系統性能,從而能夠在不影響用戶操作和體驗的情況下實施本發明的方法。
[0056]如圖7所示的基於Android系統的內存優化與應用調度方法具體實施例中,其步驟如下:
S1、相鄰時間點A的系統信息。根據Android的接口獲取相鄰時間點A的系統信息。
[0057]S2、獲取當前的任務信息列表。
[0058]S3、將任務信息列錶轉換為棧A。將對應的任務信息列錶轉換為Java的棧數據結構,即任務棧A。
[0059]S4、相鄰時間點B的系統信息。同理,根據Android的接口獲取相鄰時間點B的系
統信息。
[0060]S5、獲取當前的任務信息列表。
[0061]S6、將任務信息列錶轉換為棧B。即任務棧B。
[0062]S7、根據規則分析棧A和棧B的相似與不同。分析棧A與棧B的不同屬於上述的四種情形中的哪一種,從而確認棧A和棧B的下一步分析依據。
[0063]S8、得到當前用戶的行為。根據之前得到的比較結果並通過與用戶行為與堆棧變化對應表對比,分析出當前用戶行為。
[0064]S9、根據用戶行為優化內存。
[0065]S10、根據用戶行為進行交互切換。
[0066]通過本發明的方法實現對用戶操作行為的準確判斷,進而針對用戶當前的行為實現系統的應用的相互切換機制,尤其適用於一個深度定製和開發的Android系統。目前在大部分的深度定製系統中,各個應用切換的關聯和管理工作,都是進行framework層的更改或者更深層次的Iinux做特殊支持才可以做到。而這是一件非常困難和麻煩的事情,雖然從表面看完成了各個應用的狀態管理,但是違背了 Android本身作為開放平臺的統一通用性,很大程度上阻礙了該平臺向外開放的腳步。而本發明方案進行狀態管理,系統可及時了解當前用戶的行為,並且對於已知自身系統的應用做定製化處理,用來達到自身應用和系統界面切換的統一'I"生。
[0067]如圖8所示的一種基於Android系統的內存優化與應用調度系統,其中,所述系統包括:
任務棧創建模塊100,用於利用Android系統的應用程式接口獲取當前的所有UI進程的任務信息列表,並將其轉化為對應的任務棧,具體如步驟S100所述。
[0068]比較模塊200,用於將相鄰時間點的任務棧進行比較,並將所述比較結果與預設的用戶行為與堆棧變化對應表進行比對,得出該比較結果所對應的用戶行為,具體如步驟S200所述。[0069]內存回收模塊300,用於根據所述比較模塊所得出的用戶行為對任務棧中的元素進行選擇並回收其內存,具體如步驟S300所述。
[0070]切換模塊400,用於根據所述比較模塊所得出的用戶行為進行應用程式的切換,具體如步驟S300所述。
[0071]本發明提供一種基於Android系統內存優化與應用調度方法及系統,該方法可實現在不影響用戶操作和體驗的前提下,對系統應用狀態變化進行有效檢測,並進一步實現內存的優化和用戶行為分析,其簡化了目前內存管理機制,有效避免了影響用戶體驗的誤殺等操作,並且系統根據用戶行為的分析實現了自身應用和系統界面切換的統一性。
[0072]應當理解的是,本發明的應用不限於上述的舉例,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,所有這些改進和變換都應屬於本發明所附權利要求的保護範圍。
【權利要求】
1.一種基於Android系統內存優化與應用調度方法,其特徵在於,所述方法包括以下步驟: 利用Android系統的應用程式接口獲取當前的所有Π進程的任務信息列表,並將其轉化為對應的任務棧; 將相鄰時間點的任務棧進行比較,並將所述比較結果與預設的用戶行為與堆棧變化對應表進行比對,得出該比較結果所對應的用戶行為; 根據所得出的用戶行為對任務棧中的元素進行選擇並回收其內存,以及根據該用戶行為進行應用程式的切換。
2.根據權利要求1所述的基於Android系統內存優化與應用調度方法,其特徵在於,所述利用Android系統的應用程式接口獲取當前的所有Π進程的任務信息列表,並將其轉化為對應的任務棧具體包括: 系統開機啟動,創建用於檢測系統中應用狀態變化的線程; 所述線程根據Android系統的應用程式接口獲取當前所有UI進程的任務信息列表; 將所得到的任務信息列錶轉化為Java的棧數據結構。
3.根據權利要求1所述的基於Android系統內存優化與應用調度方法,其特徵在於,所述將相鄰時間點的任務棧進行比 較,並將所述比較結果與預設的用戶行為與堆棧變化對應表進行比對,得出該比較結果所對應的用戶行為,具體包括: 當所述比較結果為相鄰時間點的第一任務棧中不包含有第二任務棧中的棧頂元素時、則其與用戶行為與堆棧變化對應表比對後,得出該比較結果對應用戶啟動一新應用的行為; 當所述比較結果為相鄰時間點的第一任務棧的棧頂元素不包含在第二任務棧中時、則其與用戶行為與堆棧變化對應表比對後,得出該比較結果對應用戶退出一可視化應用的行為; 當所述比較結果為相鄰時間點的第一任務棧與第二任務棧元素及其個數相同,但兩者元素排列順序不同時、則其與用戶行為與堆棧變化對應表比對後,得出該比較結果對應用戶未發生行為變化; 當所述比較結果為相鄰時間點的第一任務棧的非棧頂元素不包含在第二任務棧中時、則其與用戶行為與堆棧變化對應表比對後,得出該不包含在第二任務棧中的非棧頂元素自動退出。
4.根據權利要求1所述的基於Android系統內存優化與應用調度方法,其特徵在於,所述根據所得出的用戶行為對任務棧中的元素進行選擇並回收其內存具體包括: 根據所述用戶行為判斷出任務棧中元素間的關聯性,並根據該關聯性設置相應的應用程式的優先級; 根據所得出的任務棧中元素間關聯性及應用程式優先級對任務棧中的元素進行選擇並回收其內存。
5.根據權利要求3所述的基於Android系統內存優化與應用調度方法,其特徵在於,當確定用戶啟動一新應用行為時,則彈出顯示該新應用的交互界面; 當確定用戶退出一可視化應用的行為時,檢測並確定該應用所退出到的系統應用,彈出該系統應用的交互界面。
6.根據權利要求4所述的基於Android系統內存優化與應用調度方法,其特徵在於,所述根據該關聯性設置相應的應用程式的優先級具體包括: 設置所述任務棧中棧頂元素對應的應用程式具有最高優先級,設置與所述棧頂元素具有關聯行為的棧中元素所對應的應用程式具有次高優先級,設置與所述棧頂元素未發生關聯行為的棧中元素所對應的應用程式具有比所述次高優先級更低的優先級。
7.根據權利要求6所述的基於Android系統內存優化與應用調度方法,其特徵在於,所述根據所得出的任務棧中元素間關聯性及應用程式優先級對任務棧中的元素進行選擇並回收其內存具體包括: 按照優先級的由高到低回收任務棧中的元素的內存,其中,當檢測到任務棧中具有比次高優先級更低優先級所對應的棧中元素時,優先回收其內存; 當檢測到任務棧中具有次高優先級對應的棧中元素時,同時檢測系統內存是否達到閾值,若是,則回收該棧中元素的內存; 當檢測到任務棧中棧頂元素所佔內存一直在增長並且達到虛擬機的峰值時,回收該棧頂元素的內存。
8.根據權利要求7所述的基於Android系統內存優化與應用調度方法,其特徵在於,所述根據所得出的任務棧中元素間關聯性及應用程式優先級對任務棧中的元素進行選擇並回收其內存,還包括: 檢測所述任務棧中的元素個數是否大於預設數量,若是,則直接將任務棧中與棧頂元素未發生關聯行為的元素進行內存回收,其檢測回收順序是對任務棧的元素進行自下而上的檢測回收。
9.一種基於Android系統內存優化與應用調度系統,其特徵在於,所述系統包括: 任務棧創建模塊,用於利用Android系統應用程式接口獲取當前的所有Π進程的任務信息列表,並將其轉化為對應的任務棧; 比較模塊,用於將相鄰時間點的任務棧進行比較,並將所述比較結果與預設的用戶行為與堆棧變化對應表進行比對,得出該比較結果所對應的用戶行為; 內存回收模塊,用於根據所述比較模塊所得出的用戶行為對任務棧中的元素進行選擇並回收其內存; 切換模塊,用於根據所述比較模塊所得出的用戶行為進行應用程式的切換。
【文檔編號】G06F9/46GK103902359SQ201410124776
【公開日】2014年7月2日 申請日期:2014年3月31日 優先權日:2014年3月31日
【發明者】郭尚鋒 申請人:深圳創維-Rgb電子有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀