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

安卓第三夜 概念漫游

移動開發(fā) Android
拿起一個手機,總是滿屏的應(yīng)用圖標(biāo)。點擊圖標(biāo),選擇應(yīng)用,玩一把游戲,刷一下微博,寫一篇日記。“叮咚”一聲,郵件應(yīng)用提醒有一封新來的郵件。在安卓里,眼花繚亂的應(yīng)用承載著各種有趣的功能。歡迎來到安卓應(yīng)用的世界。

拿起一個手機,總是滿屏的應(yīng)用圖標(biāo)。點擊圖標(biāo),選擇應(yīng)用,玩一把游戲,刷一下微博,寫一篇日記。“叮咚”一聲,郵件應(yīng)用提醒有一封新來的郵件。在安卓里,眼花繚亂的應(yīng)用承載著各種有趣的功能。歡迎來到安卓應(yīng)用的世界。

每一個應(yīng)用都是存儲在手機中的一段小程 序。編寫這段小程序,是每個安卓開發(fā)者的主要工作。程序運行后成為一個進程后,在進程的內(nèi)存空間中新建一個Dalvik虛擬機。程序預(yù)設(shè)的各種視覺效果和 功能,都會在這一虛擬機中進行。如同一個小小的軍團,安卓應(yīng)用也需要不同功能的單元配合。

Activity

步兵是軍團的基石

使用手機的大多數(shù)時候,你會停留在某一個“頁 面”,比如和戀人的對話頁面、切水果頁面、相機的取景頁面。用安卓的術(shù)語講,頁面是一個Activity,它是一個占據(jù)整個屏幕的界面。用戶和手機可以通 過Activity交流。頁面,也就是Activity,是手機應(yīng)用中如此常見的概念,以至于用戶有時會忽視它們的存在,就像那些無比普通的小步兵。

[[117409]]

觀察這些頁面,我們會發(fā)現(xiàn)一些共同點。

Activity包含一些特別的視覺元素,比如豎直列表、一個彩色的背景或者一個小小的按鈕。

Activity呈現(xiàn)各種信息,比如圖片、文字、輸入欄等等。靜態(tài)信息之外,Activity也可以播放動態(tài)的動畫或視頻。

用戶可以與Activity互動,輸入信息、點擊按鈕、上下滑動,而Activity會根據(jù)這些互動動作,觸發(fā)特定的效果。

 

一個應(yīng)用往往包含多個頁面。在某些情況 下,我們會從當(dāng)前Activity離開,激活并前往下一個Activity。在聯(lián)系人條目菜單的頁面上,點擊某個聯(lián)系人,進入一個新的頁面,這個新的頁面 上包含該聯(lián)系人的具體信息;再點擊返回鍵,我們退出了包含具體信息的頁面,又回到聯(lián)系人條目菜單的頁面上。應(yīng)用的進程空間中有一個棧(stack), 用來記錄我們依次激活的各個Activity。新激活的Activity被壓入到棧的頂端。在手機屏幕上,我們只能看到棧頂?shù)倪@個Activity,也只 能和該Activity互動。當(dāng)我們點擊返回鍵時,當(dāng)前Activity結(jié)束,從棧中彈出。上一個被激活的Activity出現(xiàn)在棧頂,重新占領(lǐng)手機屏 幕。這也就是我們按返回鍵時,能回到歷史頁面(聯(lián)系人條目菜單)的原理。

正如默默守衛(wèi)的小步兵,Activity也總是處于一種相對靜止的某個狀態(tài),比如運行、暫停、停止等。Activity的許多功能,都是在狀態(tài)切換中 完成的。狀態(tài)轉(zhuǎn)換過程中執(zhí)行的命令,都是程序員預(yù)設(shè)好的,包含在特定的方法中。比如一個Activity從未激活狀態(tài)到運行狀態(tài)的過程中,會自動執(zhí)行 Activity對象的onStart()方法。安卓程序員在該方法中,設(shè)計Activity在目標(biāo)狀態(tài)的效果:實現(xiàn)特定的頁面布局,為按鈕注冊回調(diào)函 數(shù),訪問互聯(lián)網(wǎng)獲取信息等。再比如,Activity從暫停到恢復(fù)的狀態(tài),會執(zhí)行onRestart()方法。安卓程序員可以在該方法中,實現(xiàn)諸如調(diào)整亮 度和彈出提示之類的功能。這正如小兵在平時訓(xùn)練時,預(yù)設(shè)了切換過程中要做的事情。小兵從一個狀態(tài)進入到另一個狀態(tài),比如從“警戒”到“預(yù)備射擊”。在該狀 態(tài)過程中,士兵執(zhí)行預(yù)設(shè)動作,即裝填子彈,隨即進入射擊待命狀態(tài)。

有趣的是,一個安卓的Activity與互聯(lián) 網(wǎng)上的一個Web頁面非常相似。它們都是充斥屏幕的頁面,包含視覺元素和信息。用戶可以通過這樣的頁面實現(xiàn)某些功能。就連這些界面的編寫方式,也有相似之 處:安卓用XML設(shè)計一個頁面,而Web用HTML設(shè)計一個頁面。你甚至于可以把一個應(yīng)用直接看做包含了多個頁面的小型網(wǎng)站。

Service

應(yīng)用得當(dāng),騎兵是戰(zhàn)場上的一把利劍。

安卓軍團的另一個重要組成部分是Service。在安卓應(yīng)用中,Activity負(fù)責(zé)的界面大部分時間處于相對靜止的狀態(tài),直到有特定的觸發(fā)時間發(fā)生。這種異步的工作方式,能有效的節(jié)省系統(tǒng)資源。然而,有一些工作需要一個持續(xù)運行的程序來負(fù)責(zé)的,比如:

每五分鐘登錄郵件服務(wù)器,檢查新郵件

保持聯(lián)系人條目與云服務(wù)器同步

相對大運算量的工作,比如圖像和視頻編輯 

這些工作并不需要界面交互。必須的時 候,安卓應(yīng)用可以啟動一個Service。Service在背景運行,來負(fù)責(zé)上述的需要長時間運行的工作。Service對象本身在主線程內(nèi)工作。在設(shè)計 Service時,安卓程序員一般會為Service內(nèi)大計算量的部分開啟新線程,以便不影響主線程的運行。當(dāng)我們刷微博時,背景Service中訪問互 聯(lián)網(wǎng),以獲得新的微博,并更新到微博列表頁面。Service中的互聯(lián)網(wǎng)訪問不會影響到閱讀舊有的微博條目。Service盡管功能強大,但它持續(xù)運行的 工作方式會比較消耗運算資源。在手機這樣運算資源有限的移動平臺上,Service就好像一支精貴的騎兵。

[[117410]]

Broadcast Receiver

預(yù)備隊,隨時待命。

除了Activity和Service,安卓應(yīng)用還有一種重要的功能單元,就是Broadcast Receiver。它的功能比較簡單,就是在接收到系統(tǒng)廣播后,執(zhí)行特定的功能。Broadcast Receiver接收的是Intent對象,將在后面詳解。

Intent

傳令兵少送了一道命令,軍團輸了一場戰(zhàn)爭。

上面講了Activity和Service,每個Activity和Service之間都可以實現(xiàn)特定的功能。一個完整的應(yīng)用需要將這些單個的功能個體粘合起來,比如從一個Activity啟動另一個Activity,在比如從一個Activity內(nèi)部啟動一個Service。安卓中的Intent就是軍團中的傳令兵,粘合各個功能單元。

Intent對象說明了下一步要做的事情,比如啟動一個Activity或Service。我們可以在舊的Activity中發(fā)起一個Intent對象,從而連接新舊的功能單元。在Intent對象中,可以說明要激活的功能單元,比如具體某一個Activity。Intent還可以附加數(shù)據(jù),交給新的功能模塊。

如 果不具體說明要激活的功能單元,Intent對象可以只說明想要執(zhí)行的動作,而由安卓系統(tǒng)尋找合適的下家。這樣的Intent對象會傳給安卓系統(tǒng)。安卓系 統(tǒng)根據(jù)Intent的要求,在整個系統(tǒng)范圍內(nèi)遍歷,找到合適的app來處理。合適與否,是由接收方的Intent Filter來決定的。每一個app的功能單元在編寫時,都會附加一個Intent Filter的說明,注明該功能單元愿意執(zhí)行的動作。如果Intent中說明的動作與Intent Filter說明的吻合,那么該app就是一個備選對象。如果有多個合適的備選對象,安卓手機會跳出菜單,供用戶選擇。

[[117411]]

總結(jié)

這里提到了安卓開發(fā)中最基本的一些概念。大體看來,一個安卓應(yīng)用總是由數(shù)個功能單元構(gòu)成,這些功能單元由Intent連接。我將在后面的文章中,深入更多細節(jié)。

功能單元:Activity, Service, Broadcast Receiver

本文鏈接:http://www.cnblogs.com/vamei/p/3657249.html

 

責(zé)任編輯:chenqingxiang 來源: cnblogs
相關(guān)推薦

2022-01-12 10:57:59

網(wǎng)絡(luò)

2021-11-11 10:07:02

PythonXpath 網(wǎng)頁

2014-08-04 14:21:22

安卓架構(gòu)

2013-06-09 09:38:44

安卓第三方ROM谷歌Android

2021-10-17 22:30:37

安卓系統(tǒng)蘋果

2017-09-26 11:29:29

安卓

2021-03-03 14:17:40

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-04-04 22:58:20

互聯(lián)網(wǎng)IP網(wǎng)絡(luò)協(xié)議

2010-03-03 15:10:49

第三方Python庫

2020-03-10 10:19:42

安卓威脅安全

2020-06-15 13:15:21

安卓刷機手機

2010-01-22 10:37:38

第三層交換機

2022-06-16 09:00:00

安卓權(quán)限SElinuxLinux

2023-11-26 13:36:20

協(xié)議Raft

2019-06-20 16:07:12

鴻蒙安卓操作系統(tǒng)

2019-04-22 14:15:09

APP Store蘋果免費試用

2015-11-10 17:44:08

2021-08-26 18:46:55

React組件前端

2018-07-02 06:33:25

物聯(lián)網(wǎng)手機漫游網(wǎng)絡(luò)

2015-08-04 17:43:02

ZUK Z1U-Touch指紋識別
點贊
收藏

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

主站蜘蛛池模板: 免费亚洲婷婷 | 亚洲国产一区二区三区, | 精品久久久久一区二区国产 | av网站观看 | 亚洲国产成人精 | 中文在线视频观看 | 91精品国产91久久久久久密臀 | 欧美黄在线观看 | 国产视频一区在线观看 | 国产视频h | 亚洲区一区二 | 毛色毛片免费看 | 婷婷激情综合 | 精品国产欧美一区二区 | 欧美色性 | 亚洲国产一区二区视频 | 久久青青 | 国产精品久久精品 | 国产乱码一二三区精品 | 五月天国产 | 亚洲精品久久久久中文字幕欢迎你 | 国产精品一区二区福利视频 | 国产sm主人调教女m视频 | 欧美精品在线一区二区三区 | 久久久久一区二区 | 亚洲精品小视频在线观看 | 天天干天天爱天天爽 | 北条麻妃99精品青青久久 | 91视频久久久久 | 亚洲国产一区二区三区, | 国产在线精品一区二区三区 | 日韩中文字幕一区二区 | 国产内谢| 欧美一级二级视频 | 国产福利视频 | 色吊丝2288sds中文字幕 | 欧美黄在线观看 | 欧美日韩在线一区二区 | a在线观看| 影音先锋亚洲资源 | 国内精品久久久久久 |