Android中有哪些生命周期

Android中有哪些生命周期,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比橋東網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式橋東網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋橋東地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。

在眾人的猜測(cè)和期盼中,Google 終于發(fā)布了 Android SDK,為 “GPhone” 這個(gè)曾經(jīng)充滿爭(zhēng)議的新名詞下了一個(gè)官方定義。Google 并沒有轉(zhuǎn)行做硬件,我們可能還要等一年左右的時(shí)間才能觸摸到真正的 “GPhone”。但是作為開發(fā)人員,有了 SDK 和 emulator 我們就可以提前開始 “GPhone 之旅”了。

  • Android數(shù)據(jù)存儲(chǔ)訪問機(jī)制

  • Android可選API適用范圍

  • Android調(diào)試程序正確進(jìn)行方式

  • Android根文件系統(tǒng)相關(guān)應(yīng)用介紹

  • Android數(shù)據(jù)庫操作技巧應(yīng)用

我看了一些 Android SDK 的文檔和視頻,在模擬世界中使用了一把 GPhone —— 其實(shí)就是在電腦上運(yùn)行了一下 Android 的 emulator。在激動(dòng)之余,我也對(duì) Android 有了些許認(rèn)識(shí)。睡覺前花了一些時(shí)間整理出來和大家分享,也請(qǐng)大家指正。

Android 是一構(gòu)建在 Linux 之上的開源移動(dòng)開發(fā)平臺(tái),在 Android 中,多數(shù)情況下每個(gè)程序都是在各自獨(dú)立的 Linux 進(jìn)程中運(yùn)行的。當(dāng)一個(gè)程序或其某些部分被請(qǐng)求時(shí),它的進(jìn)程就“出生”了;當(dāng)這個(gè)程序沒有必要再運(yùn)行下去且系統(tǒng)需要回收這個(gè)進(jìn)程的內(nèi)存用于其他程序時(shí),這個(gè) 進(jìn)程就“死亡”了。

可以看出,Android生命周期是由系統(tǒng)控制而非程序自身直接控制。這和我們編寫桌面應(yīng)用程序時(shí)的思維有一些不同,一個(gè)桌面應(yīng)用程序的進(jìn)程也是在其他進(jìn)程或用戶請(qǐng)求時(shí)被創(chuàng) 建,但是往往是在程序自身收到關(guān)閉請(qǐng)求后執(zhí)行一個(gè)特定的動(dòng)作(比如從 main 函數(shù)中 return)而導(dǎo)致進(jìn)程結(jié)束的。要想做好某種類型的程序或者某種平臺(tái)下的程序的開發(fā),最關(guān)鍵的就是要弄清楚這種類型的程序或整個(gè)平臺(tái)下的程序的一般工作 模式并熟記在心。Android生命周期控制就是屬于這個(gè)范疇——我的個(gè)人理解:)

在 Android 系統(tǒng)中,當(dāng)某個(gè) activity(應(yīng)用程序的一個(gè)“幀”)調(diào)用 startActivity(myIntent) 時(shí),系統(tǒng)會(huì)在所有已經(jīng)安裝的程序中尋找其 intent filter 和 myIntent 最匹配的一個(gè) activity,啟動(dòng)這個(gè)進(jìn)程,并把這個(gè) intent 通知給這個(gè) activity。這就是一個(gè)程序的“生”。比如我們?cè)?nbsp;Home application 中選擇 “Web browser”,系統(tǒng)會(huì)根據(jù)這個(gè) intent 找到并啟動(dòng) Web browser 程序,顯示 Web browser 的一個(gè) activity 供我們?yōu)g覽網(wǎng)頁(這個(gè)啟動(dòng)過程有點(diǎn)類似我們?cè)谠趥€(gè)人電腦上雙擊桌面上的一個(gè)圖標(biāo),啟動(dòng)某個(gè)應(yīng)用程序)。在 Android 中,所有的應(yīng)用程序“生來就是平等的”,所以不光 Android 的核心程序甚至第三方程序也可以發(fā)出一個(gè) intent 來啟動(dòng)另外一個(gè)程序中的一個(gè) activity。Android 的這種設(shè)計(jì)非常有利于“程序部件”的重用。

一個(gè) Android 程序的進(jìn)程是何時(shí)被系統(tǒng)結(jié)束的呢?通俗地說,一個(gè)即將被系統(tǒng)關(guān)閉的程序是系統(tǒng)在內(nèi)存不足(low memory)時(shí),根據(jù)“重要性層次”選出來的“犧牲品”。一個(gè)進(jìn)程的重要性是根據(jù)其中運(yùn)行的部件和部件的狀態(tài)決定的。各種進(jìn)程按照重要性從高到低排列如 下:

1. 前臺(tái)進(jìn)程。這樣的進(jìn)程擁有一個(gè)在屏幕上顯示并和用戶交互的 activity 或者它的一個(gè) IntentReciver 正在運(yùn)行。這樣的程序重要性***,只有在系統(tǒng)內(nèi)存非常低,萬不得已時(shí)才會(huì)被結(jié)束。

2. 可見進(jìn)程。在屏幕上顯示,但是不在前臺(tái)的程序。比如一個(gè)前臺(tái)進(jìn)程以對(duì)話框的形式顯示在該進(jìn)程前面。這樣的進(jìn)程也很重要,它們只有在系統(tǒng)沒有足夠內(nèi)存運(yùn)行所有前臺(tái)進(jìn)程時(shí),才會(huì)被結(jié)束。

3. 服務(wù)進(jìn)程。這樣的進(jìn)程在后臺(tái)持續(xù)運(yùn)行,比如后臺(tái)音樂播放、后臺(tái)數(shù)據(jù)上傳下載等。這樣的進(jìn)程對(duì)用戶來說一般很有用,所以只有當(dāng)系統(tǒng)沒有足夠內(nèi)存來維持所有的前臺(tái)和可見進(jìn)程時(shí),才會(huì)被結(jié)束。

4. 后臺(tái)進(jìn)程。這樣的程序擁有一個(gè)用戶不可見的 activity。這樣的程序在系統(tǒng)內(nèi)存不足時(shí),按照 LRU 的順序被結(jié)束。

5. 空進(jìn)程。這樣的進(jìn)程不包含任何活動(dòng)的程序部件。系統(tǒng)可能隨時(shí)關(guān)閉這類進(jìn)程。

從某種意義上講,垃圾收集機(jī)制把程序員從“內(nèi)存管理噩夢(mèng)”中解放出來,而Android生命周期管理機(jī)制把用戶從“任務(wù)管理噩夢(mèng)”中解放出來。我見過一些 Nokia S60 用戶和 Windows Mobile 用戶要么因?yàn)殚L期不關(guān)閉多余的應(yīng)用程序而導(dǎo)致系統(tǒng)變慢,要么因?yàn)椴粫r(shí)查看應(yīng)用程序列表而影響使用體驗(yàn)。Android 使用 Java 作為應(yīng)用程序 API,并且結(jié)合其獨(dú)特的生命周期管理機(jī)制同時(shí)為開發(fā)者和使用者提供***程度的便利。

關(guān)于Android中有哪些生命周期問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

網(wǎng)頁題目:Android中有哪些生命周期
文章源于:http://muchs.cn/article46/ijcseg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)電子商務(wù)、網(wǎng)站建設(shè)、品牌網(wǎng)站制作建站公司、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)