偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

進(jìn)行對(duì)Android應(yīng)用程序全解析

移動(dòng)開(kāi)發(fā) Android
Android應(yīng)用程序作為一個(gè)高效的.NET程序語(yǔ)言。其混合了函數(shù)語(yǔ)言和物件導(dǎo)向程序編制語(yǔ)言,并且完美的適用于編程、算法、技術(shù)和探索性開(kāi)發(fā),因此可以在使用的過(guò)程當(dāng)中感受到趣味性和吸引力。

Android應(yīng)用程序里提供的Eclipse插件使得運(yùn)行我們的程序非常簡(jiǎn)單。選擇Run > Open Run Dialog菜單;你會(huì)看到一個(gè)對(duì)話框,在這個(gè)對(duì)話框中就像配置J2ME運(yùn)行環(huán)境一下,配置一個(gè)Luncher。

大功告成!點(diǎn)擊run按鈕,Androi模擬器將運(yùn)行。當(dāng)模擬器啟動(dòng)完成你將看到你的程序。到這里我們就完成了!按照正常思路,一定會(huì)想,程序入口點(diǎn)在哪里呢?為什么會(huì)從這個(gè)Activity 啟動(dòng)呢?

現(xiàn)在用我們自己的最容易理解的方式來(lái)表述:這是因?yàn)楫?dāng)啟動(dòng)這個(gè)程序的映像文件時(shí),會(huì)發(fā)送一個(gè)事件對(duì)象Intent, 帶有MAIN的行為屬性,而自動(dòng)生成的代碼及文件, 有一個(gè)AndroidManifest.xml會(huì)為HelloWorld這個(gè)Activity 配置一個(gè)事件過(guò)濾器,表明實(shí)現(xiàn)了MAIN action,LAUNCHER category的入口點(diǎn)行為。請(qǐng)注意其中的幾行:

  1. @Override  
  2.  public void onCreate(Bundle icicle) {  
  3.      super.onCreate(icicle);  
  4.      TextView tv = new TextView(this);  
  5.      tv.setText("Hello, Android");  
  6.      setContentView(tv);  
  7.  }  
  8.  

在多數(shù)情況下, 每個(gè)Android應(yīng)用程序運(yùn)行在自己的Linux進(jìn)程中. 當(dāng)一個(gè)應(yīng)用的某段code需要運(yùn)行的時(shí)候這個(gè)進(jìn)程將會(huì)被創(chuàng)建, 直到不再需要該應(yīng)用或系統(tǒng)要為其他的應(yīng)用釋放內(nèi)存的時(shí)候才停止.

一個(gè)非常重要且少有的特性是, 應(yīng)用進(jìn)程的存活時(shí)間不是由這個(gè)應(yīng)用直接控制的. 而是由系統(tǒng)決定的, 系統(tǒng)會(huì)根據(jù)每個(gè)已知的正在運(yùn)行的應(yīng)用情況來(lái)定奪, 包括, 該應(yīng)用對(duì)用戶的重要性和系統(tǒng)全部可用內(nèi)存.

對(duì)于開(kāi)發(fā)人員來(lái)講, 了解每個(gè)應(yīng)用組件(尤其是, Activity, Service, 和IntentReceiver)對(duì)于應(yīng)用進(jìn)程存活時(shí)間的影響是非常重要的. 如果沒(méi)有正確使用, 可能會(huì)導(dǎo)致應(yīng)用進(jìn)程在處理重要工作的時(shí)候被系統(tǒng)殺掉.

在對(duì)應(yīng)用進(jìn)程生命周期的理解中, 一個(gè)典型的錯(cuò)誤就是當(dāng)一個(gè)IntentReceiver 接收到Intent 之后, 會(huì)在自己的onReceiveIntent()方法中開(kāi)起一個(gè)線程。而后return這個(gè)方法. 一旦這個(gè)方法return, 系統(tǒng)會(huì)認(rèn)為這個(gè)IntentReceiver 不在處于活躍狀態(tài), 也就認(rèn)為他的宿主進(jìn)程不再需要(除非還包有其他活躍的應(yīng)用組件)。

以至于當(dāng)系統(tǒng)需要回收內(nèi)存的時(shí)候會(huì)隨時(shí)釋kill掉這個(gè)進(jìn)程, 中止其中的子線程. 解決這個(gè)問(wèn)題的辦法是在IntentReceiver中啟動(dòng)一個(gè)Service, 這樣系統(tǒng)會(huì)知道在這個(gè)進(jìn)程中還有活躍的任務(wù)需要完成. 為了決定在內(nèi)存較低的時(shí)候殺掉哪個(gè)進(jìn)程, Android應(yīng)用程序會(huì)根據(jù)運(yùn)行在這些進(jìn)程內(nèi)的組件及他們的狀態(tài)把進(jìn)程劃分成一個(gè)"重要程度層次". 其重要的程度按以下規(guī)則排序:

前端進(jìn)程可以是一個(gè)持有運(yùn)行在屏幕最前端并與用戶交互的Activity的進(jìn)程(onResume方法被調(diào)用時(shí)),也可以是持有一個(gè)正在運(yùn)行的IntentReceiver(也就是說(shuō)他正在執(zhí)行自己的onReceiveIntent方法)的進(jìn)程。

在系統(tǒng)中, 只會(huì)有少數(shù)這樣的進(jìn)程, 并且除非內(nèi)存已經(jīng)低到不夠這些進(jìn)程運(yùn)行, 否則系統(tǒng)不會(huì)主動(dòng)殺掉這些進(jìn)程. 這時(shí), 設(shè)備通常已經(jīng)達(dá)到了需要內(nèi)存整理的狀態(tài), 所以殺掉這些進(jìn)程是為了不讓用戶界面停止響應(yīng)。

責(zé)任編輯:chenqingxiang 來(lái)源: ifanr.com
相關(guān)推薦

2010-02-06 15:26:11

Android應(yīng)用程序

2010-03-03 14:51:02

Android手機(jī)

2010-03-04 16:38:37

Android開(kāi)發(fā)技巧

2010-02-22 15:49:35

Python應(yīng)用程序

2010-02-22 14:54:47

Python應(yīng)用程序

2010-03-02 14:24:00

Android應(yīng)用程序

2010-02-22 10:18:29

Python代碼

2010-03-01 14:28:46

Python進(jìn)程

2010-02-06 10:14:36

Android Act

2011-06-09 09:12:12

QT symbian

2011-06-13 09:38:00

BingiPhoneApp Store

2011-08-22 09:59:16

2010-02-06 17:17:17

Android手機(jī)

2010-02-05 14:54:56

Android UI

2011-09-01 10:01:35

PhoneGap應(yīng)用程序GoodDay

2009-12-21 15:48:29

WCF應(yīng)用程序

2010-02-23 15:29:43

Python 編輯器

2010-02-26 09:55:22

Python應(yīng)用程序

2010-02-05 15:22:14

2010-03-03 13:43:46

Android手機(jī)系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)