日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
51CTO專家專欄李洋談Android應(yīng)用程序管理

【獨家特稿】在繼《李洋談Android安全框架》系列文章之后,本文李洋老師將向我們介紹《Android應(yīng)用程序管理》。

為金山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及金山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、做網(wǎng)站、金山網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

1. 簡介

Android一詞的本義指“機器人”,谷歌的基于Linux平臺的開源手機操作系統(tǒng)以“Android”命名,以機器人為標志。Android系統(tǒng)早期由谷歌開發(fā),后由開放手持設(shè)備聯(lián)盟(Open Handset Alliance,OHA)開發(fā)。OHA由谷歌與34家廠商一起于2007年11月5日創(chuàng)立,包括手機制造商、電信運營商和芯片制造商,如下表。OHA創(chuàng)立的同時,谷歌發(fā)布了Android系統(tǒng)。

Android采用了軟件堆層(Software stack,又名以軟件疊層)的架構(gòu),主要分為三部分,包括底層Linux內(nèi)核、Android中間件和系統(tǒng)關(guān)鍵應(yīng)用程序。Android中間件以Dalvik虛擬機為基礎(chǔ)構(gòu)成,這是由谷歌自己設(shè)計開發(fā)的Java Virtual Machine。Android上的應(yīng)用使用Java語言開發(fā),Android SDK為在Android系統(tǒng)上開發(fā)Java應(yīng)用提供了一整套開發(fā)工具和API。

2. 應(yīng)用程序組成

Android的每個應(yīng)用程序都對應(yīng)一個安裝包,稱之為APK (Android Package), 在系統(tǒng)運行時每一個APK對應(yīng)一個操作系統(tǒng)進程。

下圖所示為APK中所包含的組件

(1)Activity:Activity就是一個界面,這個界面里面可以放置各種控件,如短信編輯框等;

(2)Service:服務(wù)是運行在后臺的功能模塊。如文件下載、音樂播放程序等;

(3)Content Provider:它是Android平臺應(yīng)用程序間數(shù)據(jù)共享的一種標準接口,它以類似于URI(Universal Resources Identification)的方式來表示數(shù)據(jù),如:content://contacts/people/1101;

(4)Broadcast Receiver:與此組件相關(guān)的概念是Intent,Intent是一個對動作和行為的抽象描述,負責(zé)一個程序的組件之間、不同程序之間進行消息傳遞,Intent包括目標組件地址和消息數(shù)據(jù)。Broadcast Receiver組件負責(zé)實現(xiàn)偵聽Intent消息并對其作出反應(yīng)。

下圖為APK中各組件之間的典型關(guān)系示例。

3. 應(yīng)用程序生命周期管理

Android的每個應(yīng)用程序以一個Linux進程運行,默認情況下,在進程中執(zhí)行一個單一的線程,應(yīng)用程序所有的組件均在這個進程的這個線程中運行。當(dāng)然也可以為任意進程衍生出其它線程。Android系統(tǒng)會盡可能長的延續(xù)一個應(yīng)用程序進程執(zhí)行,確保其正常執(zhí)行結(jié)束。除了應(yīng)用程序執(zhí)行結(jié)束后,正常釋放內(nèi)存外,在內(nèi)存過低超過閥值時,系統(tǒng)仍然會不可避免需要移除舊的進程。為決定保留或移除一個進程,Android將每個進程都放入一個“重要性層次”中,依據(jù)則是它其中運行著的組件及其狀態(tài)。重要性***的進程首先被消滅,然后是較低的,依此類推。重要性共分五層,依據(jù)重要性列表如下:

(1)前臺進程是用戶操作所必須的, 任一時間下,僅有少數(shù)進程會處于前臺,僅當(dāng)內(nèi)存實在無法供給它們維持同時運行時才會被殺死。

(2)可視進程沒有前臺組件,但仍可被用戶在屏幕上所見??梢曔M程依然被視為是很重要的,非到不殺死它們便無法維持前臺進程運行時,才會被殺死。

(3)服務(wù)進程是由startService() 方法啟動的服務(wù),它不會變成上述兩類。盡管服務(wù)進程不會直接為用戶所見,但它們一般都在做著用戶所關(guān)心的事情(比如在后臺播放mp3 或者從網(wǎng)上下載東西)。所以系統(tǒng)會盡量維持它們的運行,除非系統(tǒng)內(nèi)存不足以維持前臺進程和可視進程的運行需要。

(4)背景進程包含目前不為用戶所見的activity。這些進程與用戶體驗沒有直接的聯(lián)系,可以在任意時間被殺死以回收內(nèi)存供前臺進程、可視進程以及服務(wù)進程使用。

(5)空進程不包含任何活動應(yīng)用程序組件。這種進程存在的唯一原因是作為緩存以改善組件再次于其中運行時的啟動時間。系統(tǒng)經(jīng)常會殺死這種進程以保持進程緩存和系統(tǒng)內(nèi)核緩存之間的平衡。

Android會依據(jù)進程中當(dāng)前活躍組件的重要程度來盡可能高的估量一個進程的級別。比如說,如果一個進程中同時有一個服務(wù)和一個可視的activity,則進程會被判定為可視進程,而不是服務(wù)進程。

此外,一個進程的級別可能會由于其它進程依賴于它而升高。一個為其它進程提供服務(wù)的進程級別永遠高于使用它服務(wù)的進程。

4. 實現(xiàn)應(yīng)用程序開機自動啟動

任何一個Android應(yīng)用程序要實現(xiàn)開機自動啟動, 必須做到如下兩點:

1) 繼承BroadcastReceiver類,并實現(xiàn)onReceive()方法,在此方法中啟動應(yīng)用程序。

2) 在應(yīng)用程序的AndroidManifest.xml文件中訂閱BOOT_COMPLETED消息,如下:

 
 
 
 
  1.  
  2.        
  3.        
  4.  
  5.        
  6.  

本文標題:51CTO專家專欄李洋談Android應(yīng)用程序管理
分享地址:http://m.5511xx.com/article/dhsggjj.html