編輯:關於Android編程
外加一個重要組件 intent的詳解。(主要來自於網絡)
1、Activity
一個Activity通常展現為一個可視化的用戶界面。例如,一個activity可能展現為一個用戶可以選擇的菜單項列表或者展現一些圖片以及圖 片的標題。一個消息服務應用程序可能包含一個顯示聯系人列表的activity,一個編寫信息的activity,以及其它一些查看信息和修改應用程序設 置的activity。雖然這些activity一起工作,共同組成了一個應用程序,但每一個activity都是相對獨立的。每一個activity都 是Activity(android.app.Activity)的子類。
一個應用程序可能只包含一個activity,或者像上面提到的消息服務程序一樣有多個activity。一個應用程序包含幾個activity以 及各個activity完成什麼樣的功能完全取決於應用程序以及它的設計。通常每個應用程序都包含一個在應用程序啟動後第一個展現給用戶的 activity。在當前展現給用戶的activity中啟動一個新的activity,可以實現從一個activity轉換到另外一個 activity。
每個activity都會有一個用於繪制用戶界面的窗口。通常這樣一個窗口會填充整個屏幕,當然這個窗口也可以比屏幕小並漂浮在其他窗口之上。 activity還可以使用一些額外的窗口,例如一個要求用戶響應的彈出式對話框,或者是當用戶在屏幕上選擇一個條目後向用戶展現一些重要信息的窗口。
展示activity窗口的可視化內容區域是一些具有層次關系(很像數據結構中的樹)的視圖,而視圖則是由類View的子類表示的。每個視圖控制窗 口中的一個矩形區域。父視圖包含一些子視圖並管理子視圖的布局。位於葉節點的視圖直接控制並響應用戶的動作。因此視圖就是activity與用戶交互的接 口。例如,一個顯示圖片的視圖,當用戶單擊的時候它可能會啟動一個動作。Android有許多開發人員可以直接使用的視圖,包括按鈕,文本域,滾動條,菜 單,復選框等。
通過調用Activity.setContentView()方法來設置展現activity的窗口的視圖。內容視圖則是視圖層次結構中的根節點視圖。
2、Service
Service是Android的四大組件之一,即Android系統的服務(不是一個線程,是主程序的一部分),與Activity不同,它是不能與用戶交互的,不能自己啟動的,需要調用Context.startService()來啟動,運行後台,如果我們退出應用時,Service進程並沒有結束,它仍然在後台行。
service沒有用戶界面,但它會在後台一直運行。例如,service可能在用戶處理其它事情的時候播放背景音樂,或者從網絡上獲取數據,或者執行一些運算,並把運算結構提供給activity展示給用戶。每個service都擴展自類Serivce。
多媒體播放器播放音樂是應用service的一個非常好的例子。多媒體播放器程序可能含有一個或多個activity,用戶通過這些 activity選擇並播放音樂。然而,音樂回放並不需要一個activity來處理,因為用戶可能會希望音樂一直播放下去,即使退出了播放器去執行其它 程序。為了讓音樂一直播放,多媒體播放器activity可能會啟動一個service在後台播放音樂。Android系統會使音樂回放service一 直運行,即使在啟動這個service的activity退出之後。
應用程序可以連接到一個正在運行中的service。當連接到一個service後,可以使用這個service向外暴露的接口與這個service進行通信。對於上面提到的播放音樂的service,這個接口可能允許用戶暫停,停止或重新播放音樂。
與activity以及其它組件一樣,service同樣運行在應用程序進程的主線程中。所以它們不能阻塞其它組件或用戶界面,通常需要為這些service派生一個線程執行耗時的任務。
3、Broadcase receiver
1、BroadcastReceiver 用於異步接收廣播Intent。主要有兩大類,用於接收廣播的:
正常廣播 Normal broadcasts(用 Context.sendBroadcast()發送)是完全異步的。它們都運行在一個未定義的順序,通常是在同一時間。這樣會更有效,但意味著receiver不能包含所要使用的結果或中止的API。
有序廣播 Ordered broadcasts(用 Context.sendOrderedBroadcast()發送)每次被發送到一個receiver。所謂有序,就是每個receiver執行後可以傳播到下一個receiver,也可以完全中止傳播--不傳播給其他receiver。 而receiver運行的順序可以通過matched intent-filter 裡面的android:priority來控制,當priority優先級相同的時候,Receiver以任意的順序運行。
2、廣播接收器是一個專注於接收廣播通知信息,並做出對應處理的組件。很多廣播是源自於系統代碼的──比如,通知時區改變、電池電量低、拍攝了一張照片或者用戶改變了語言選項。應用程序也可以進行廣播──比如說,通知其它應用程序一些數據下載完成並處於可用狀態。
3、應用程序可以擁有任意數量的廣播接收器以對所有它感興趣的通知信息予以響應。所有的接收器均繼承自BroadcastReceiver基類。
4、廣播接收器沒有用戶界面。然而,它們可以啟動一個activity來響應它們收到的信息,或者用NotificationManager來通知用戶。通知可以用很多種方式來吸引用戶的注意力──閃動背燈、震動、播放聲音等等。一般來說是在狀態欄上放一個持久的圖標,用戶可以打開它並獲取消息。
4、Content provider
ContentProvider(內容提供者)是Android中的四大組件之一。主要用於對外共享數據,也就是通過ContentProvider把應用中的數據共享給其他應用訪問,其他應用可以通過ContentProvider對指定應用中的數據進行操作。ContentProvider分為系統的和自定義的,系統的也就是例如聯系人,圖片等數據。
5、intent
第一步是配置:在gradle下配置apply plugin: 'com.android.application'android { compileS
ActiveAndroid作為輕量級的ORM框架,在快速開發中,使用很簡單,滿足大部分對數據庫操作不復雜的應用。一,配置添加依賴build.gradle中添加:repos
第8節 橫屏的播放界面在設備旋轉成橫屏的時候,視頻將自動進行全屏播放。8.1 播放器橫屏布局我們要為全屏播放界面設置一個新的布局,這個布局裡面只用來播放視頻,不需要顯示任
官網地址詳解分析:http://developer.android.com/guide/components/aidl.html一)什麼是AIDL –》 應用