1. 程式人生 > >android應用程式元件概述

android應用程式元件概述

元件是一個Android程式至關重要的構建模組。每一個元件都是系統進入你的應用的不同途徑。但並不是所有的元件都是使用者進入程式的真實入口,其中一些要依賴於其它元件, 但是每一個元件都以自己獨有的形式存在,併發揮特殊的作用;每一個元件都是一個唯一的模組,幫助你實現程式的各種行為。

有四種不同的應用程式元件。每一種元件都有其唯一的目的並且有獨有的生命週期,這個生命週期定義了附件被建立和銷燬的方式。

Activity
一個 activity 為一個使用者互動提供一個單獨的介面。例如,一個郵件程式可能有一個activity,它展現了一個新郵件的列表。 另一個activity用來編輯郵件,還有一個是用來閱讀郵件。 雖然這些activity組合在一起構成一個緊密的使用者體驗,但每一個都是相對獨立的。 同樣,其它程式也可以啟動這些activity(如果這個郵件程式允許)。 例如,一個相機程式可以啟動這個郵件程式的編輯郵件activity,如果使用者想分享一張照片。

Service
一個 service是一個執行在後臺的元件。它用於執行耗時操作或者遠端程序。 一個service並不提供使用者互動介面。例如,當用戶在使用另外一個程式的時候,一個服務可能在播放音樂或者在 通過網路獲取資料,這樣不會阻塞住使用者與activity的互動。其它的元件,例如一個activity,可以啟動一個service並讓其執行或者與其繫結,繫結後可以與其互動。

Content provider
一個content provider負責管理應用程式的資料共享集。 你可以通過檔案系、SQLite資料庫、網站,或者其它的你的應用程式可以訪問的持久化儲存位置來儲存資料。 通過content provider,其它的應用程式可以查詢甚至修改你的資料(如果這個content provider允許它們這麼做)。 例如,Android系統提供了一個content provider來管理聯絡人資訊。 同樣地,任何程式擁有了適當許可權都可以查詢這個content provider (例如 ContactsContract.Data) 去讀寫某人的資訊。
Content provider在讀寫程式的私有資料時也很有用。例如,Note Pad 範例程式就使用了一個content provider來儲存筆記。
一個content provider是作為ContentProvider的一個子類被實現的。 並且必須實現一些標準的API集,這樣其它的應用程式才能執行事務。

Broadcast receiver
broadcast receiver 是一個用來響應系統範圍內的廣播的元件。 很多廣播發自於系統本身。—例如, 通知螢幕已經被關閉、電池低電量、照片被拍下的廣播。 應用程式也可以發起廣播。—例如, 通知其它程式,一些資料被下載到了裝置,且可供它們使用。 雖然廣播並不提供使用者互動介面,它們也可以建立一個狀態列通知 來提醒使用者一個廣播事件發生了。儘管如此,更多的情形是,一個廣播只是進入其它元件的一個“門路”,並試圖做一些少量的工作。 例如,它可能發起一個服務,並通過服務執行與這個廣播事件相關的工作。
broadcast receiver是BroadcastReceiver 的子類實現,而且每一個廣播通過Intent 物件來傳遞。

Android系統設計的一個獨特方面是,任何程式都可以啟動其它程式的元件。 例如,如果你想讓使用者使用裝置相機捕捉一個相片,有另外一個程式做這件事,那麼你的程式將可以呼叫它, 而不是你自己開發一個拍照的activity。你不必從相機程式中嵌入程式碼或者連連結程式碼也不需要。取而代之地,你可以簡單地啟動相機程式中拍照的activity。 當拍照完成,相片就會返回給你的程式供你使用。從使用者的角度,就好像相機就是你程式的一部分。

當系統啟動一個元件,它其實就啟動了這個程式的程序(如果這個程序還未被啟動的話)並例項化這個元件所需要的類。 例如,如果你的程式啟動了相機程式裡的activity去拍照,這個activity實際上是執行在相機程式的程序裡,而不是你自己的程序。 因此,不像其它系統裡的程式,Android程式並不是單入口的(例如它沒有main方法)。

由於系統把程式執行在一個個獨立的程序中,並使用檔案許可權來限制對其它程式的訪問,所以你的程式不能從其它程式中直接啟用元件。 儘管如此,Android系統可以做到!啟用一個其它程式的元件,你必須向系統傳送一個資訊,這個資訊需要指定你的intent 來啟動一個指定的元件。 然後系統就會為你啟用這個元件。

相關推薦

android應用程式元件概述

元件是一個Android程式至關重要的構建模組。每一個元件都是系統進入你的應用的不同途徑。但並不是所有的元件都是使用者進入程式的真實入口,其中一些要依賴於其它元件, 但是每一個元件都以自己獨有的形式存在,併發揮特殊的作用;每一個元件都是一個唯一的模組,幫助你實現

Android應用程式元件Content Provider在應用程式之間共享資料的原理分析

                        在Android系統中,不同的應用程式是不能直接讀寫對方的資料檔案的,如果它們想共享資料的話,只能通過Content Provider元件來實現。那麼,Content Provider元件又是如何突破應用程式邊界許可權控制來實現在不同的應用程式之間共享資料的呢?

Android應用程式元件

Android的一個核心特性就是一個應用程式可作為其他程式中的元素(那些允許這樣的程式提供)。例如,如果你的程式需要用滾動條顯示一些圖片,另一個程式已經開發出了合適的功能,並且可供其他程式使用,你就可以直接呼叫那個程式的功能,而不是自己再開發一個。你的程式不需要包含其他程式

Android應用程式元件的啟動方式

Activity,通過傳遞一個Intent物件給startActivity()或者startActivityForResult()啟動,該Intent物件帶有“動作”和該動作作用到的“資料”。Service,同樣需要一個帶有“動作”和“資料”的Intent物件,啟動用startService(),繫結用bin

Android應用程式元件介紹

應用程式元件是Android應用程式的基本構建單元。每個元件是系統進入你的應用程式的不同入口點。不是所有的元件對於使用者都是實際上的入口點,有些是互相依賴的,但是每個元件都有特定的作用——每個都是唯一的構建單元,這些構建單元定義你應用程式的全部行為 有四種不同型別的應用程式元件。每種都有不同的用處並且有不

Android應用程式與SurfaceFlinger服務的關係概述

        SurfaceFlinger服務負責繪製Android應用程式的UI,它的實現相當複雜,要從正面分析它的實現不是一件容易的事。既然不能從正面分析,我們就想辦法從側面分析。說到底,無論SurfaceFlinger服務有多複雜,它都是為Android應用程式服務的,因此,我們就從Android應

Android應用程式與SurfaceFlinger服務的關係概述和學習計劃

        SurfaceFlinger服務負責繪製Android應用程式的UI,它的實現相當複雜,要從正面分析它的實現不是一件容易的事。既然不能從正面分析,我們就想辦法從側面分析。說到底,無論SurfaceFlinger服務有多複雜,它都是為Android應用程式服務的

Android應用程式概述

一.    android應用程式開發方式         Android應用程式可以基於兩種方式開發:Android SDK和Android 原始碼 二、  Android應用程式概念性描述 1.     Android應用程式包含了工程檔案、程式碼和各種資源,主要有Jav

android四大元件android應用程式的組成)是什麼,功能分別是?

四大元件分別為activity、service、content provider、broadcast receiver。一、android四大元件詳解1、activity(1)一個Activity通常就是一個單獨的螢幕(視窗)。(2)Activity之間通過Intent進行通

Android 應用程式四大元件

開發十年,就只剩下這套架構體系了! >>>   

瀏覽器判別下載安裝/開啟Android應用程式

摘要: 通過手機瀏覽器直接開啟Android應用程式。 如果本地已經安裝了指定Android應用,就直接開啟它; 如果沒有安裝,則直接下載該應用的安裝檔案(也可以跳轉到下載頁面)。 之前寫過一篇blog,介紹如何通過點選手機瀏覽器中的連結,直接開啟本地Android App。 實現方式

Android應用程式框架講解

在我們的android的程式中會有很多的檔案,那麼這些檔案到底是有什麼作用呢? 我們編譯android專案,可以使用eclipse和AS,首先介紹一下eclipse中的框架 1、src檔案:存放的是應用程式使用到的java檔案 2、gen檔案:系統自動生成的目錄。不需要程式設計師進行

android應用程式的介面程式設計

要點 android的介面與view元件 view元件和viewgroup元件 android控制程式的三種方式 通過繼承view開發自定義view android常見的佈局管理器 文字框元件:textview和edittext 按鈕元件:button 特殊按鈕元件:radiobut

Android應用程式進行系統簽名

有時寫一個程式需要呼叫系統的庫,如果許可權不夠,是用不了庫裡面一些方法的 。這時就需要將apk進行系統簽名。  簡單常用的方法:                 1,在apk的AndroidMani

Android應用程式簽名打包(AS)

使用Android studio對Android應用簽名步驟: 第一步: 第二步: 第三步: 第四步: 數字證書建立完成後,點選OK----->點選Next------>Finish。 注意:生成後的數字證書千萬不能丟失,還有密碼也不能忘記了

怎麼獲取Android應用程式的上下文

前面我做了一個類似於騰訊QQ一樣的聊天應用,在這個應用裡面,有很多activity,而這些activity之間經常要進行互相啟動、往復跳轉、還有就是通過Notification啟動。當activity多了之後,如果設定他的模式為單例模式,或者不設定模式。在反覆啟動後會出現數據不同步、fc等各種未知的

Android 應用程式崩潰日誌捕捉

程式崩潰是應用迭代中不可避免的問題,即使有著5年或者10年經驗的程式猿也無法完全保證自己的程式碼沒有任何的bug導致崩潰,現在有一些第三方平臺可以幫助我們蒐集應用程式的崩潰,比如友盟,詳情如下圖 雖然能夠看到崩潰的日誌以及機型等,但還是不是很方便,如果需要精確定位的話需要使用者提供崩潰的時間點、機型

轉老羅 Android應用程式資源的查詢過程分析

原文地址  http://blog.csdn.net/luoshengyang/article/details/8806798   轉載請說明     我們知道,在Android系統中,每一個應用程式一般都會配置很多資源,用來適配不同密

轉自老羅 Android應用程式資源的編譯和打包過程分析

原文地址   http://blog.csdn.net/luoshengyang/article/details/8744683 轉載自老羅,轉載請說明   我們知道,在一個APK檔案中,除了有程式碼檔案之外,還有很多資原始檔。這些資原始檔是通過An

轉自 老羅 Android應用程式資源管理器(Asset Manager)的建立過程分析

原文地址在 http://blog.csdn.net/luoshengyang/article/details/8791064 原創老羅,轉載請說明     在前面一篇文章中,我們分析了Android應用程式資源的編譯和打包過程,最終得到的應用程式資源就與