成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

51CTO專家專欄 李洋談Android應用程序管理

原創
移動開發 Android
本文為51CTO移動開發頻道邀請安全專家李洋撰寫的專家專欄的第四篇文章。在本文中,51CTO特約撰稿人李洋老師將向我們介紹Android應用程序管理。

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

1. 簡介

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

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

2. 應用程序組成

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

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

APK中所包含的組件

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

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

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

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

下圖為APK中各組件之間的典型關系示例。

APK中各組件之間的典型關系示例

3. 應用程序生命周期管理

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

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

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

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

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

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

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

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

4. 實現應用程序開機自動啟動

任何一個Android應用程序要實現開機自動啟動, 必須做到如下兩點:

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

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

  1. <receiver android:name="HelloWorldStartupIntentReceiver" > 
  2.       <intent-filter> 
  3.        
  4. <action android:name="android.intent.action.BOOT_COMPLETED" /> 
  5.       </intent-filter> 
  6. </receiver> 

 

責任編輯:佚名 來源: 51CTO.com
相關推薦

2011-08-01 13:35:08

Android安全框架權限

2011-08-12 09:06:48

Android系統應用程序

2011-09-06 13:56:43

李洋iOS安全機制

2011-11-03 09:24:57

李洋簽名

2011-08-22 08:53:17

Android啟動過程李洋

2011-09-15 08:58:41

Android短信丟失技術原因

2012-07-16 10:21:48

Android進程線程

2010-08-26 08:57:04

AndroidAndroid開發

2012-07-23 13:22:42

Intent Filt安全Android

2010-01-19 11:21:20

51CTO駐站專家

2012-08-27 09:52:48

Android沙箱模型

2011-04-19 08:59:33

2011-09-22 09:51:41

2016-08-23 18:15:26

2012-02-13 12:47:41

Android 4.0Launcher源碼分析

2012-02-02 15:56:48

Android 4.0Launcher源碼分析

2012-01-11 16:02:56

Android 4.0Launcher源碼分析

2012-06-05 10:09:45

AndroidManiAndroidMani

2014-08-29 15:22:33

AppDynamics企業級應用管理平臺

2012-10-29 09:40:24

云應用集成云計算管理IaaS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片在线免费播放 | 亚洲成人一级 | www.日本国产 | 免费av手机在线观看 | 久久青青| 午夜影院视频在线观看 | 一区二区av | 久久99精品久久久久久国产越南 | 久久精品69 | 综合久久综合久久 | 国产精品视频免费观看 | 欧美成人精品一区二区三区 | 成人在线视频免费观看 | 国产一级在线 | 日韩av在线播 | 最近中文字幕第一页 | 逼逼网| 日韩成人在线播放 | 欧美精品片 | 久久高清精品 | 国产在线观看一区二区三区 | 欧美aⅴ在线观看 | 欧美亚洲在线视频 | 久草青青草 | 久久久久久久久淑女av国产精品 | 成人国产一区二区三区精品麻豆 | 91在线视频在线观看 | 久久精品国产一区 | 精品欧美一区二区三区久久久 | 亚洲国产精品久久 | 日本成年免费网站 | 欧美日韩综合视频 | 一级毛片视频在线 | 免费看国产片在线观看 | 一级做a爰片久久毛片 | 国产精品亚洲成在人线 | 99视频精品 | 国产日韩欧美 | 国产精品18久久久久久久 | 在线视频第一页 | 野狼在线社区2017入口 |