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

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

新聞中心

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

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

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

1. 簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

新聞名稱:51CTO專家專欄李洋談Android應(yīng)用程序管理
文章地址:http://www.5511xx.com/article/dhsggjj.html