Time of Update: 2018-12-03
啟動模式允許你定義一個新的Activity執行個體如何跟當前的任務進行關聯。以下兩種方法能夠定義不同的啟動模式:1. 使用資訊清單檔 當在資訊清單檔中聲明一個Activity時,你能夠指定這個Activity在啟動時應該如何跟任務進行關聯。2. 使用Intent標識 在調用startActivity()方法時,你能夠在Intent中包含一個標識,用來聲明這個新的Activity應該如何跟當前的任務進行關聯。因此,如果Activity A啟動Activity
Time of Update: 2018-12-03
親緣關係是指Activity願意屬於哪個任務。預設,來自同一個應用程式的所有的Activity彼此有一個親緣關係。因此,預設情況下在同一個應用程式中的所有Activity都應該屬於同一個任務。但是,你能夠給一個Activity修改預設的親緣關係。Activity被定義在不同的應用程式中能夠共用一個親緣關係,或者Activity被定義在同一個應用程式中能夠跟不同任務的親緣關係進行關聯。你能夠使用<activity>元素的taskAffinity屬性來修改任意給定的Activity的親緣
Time of Update: 2018-12-03
被啟動類型的服務必須管理它自己的生命週期。也就是說除非系統要回收系統記憶體,否則系統不會終止或銷毀這個服務,在onStartCommand()方法返回後,這個服務會繼續運行。因此而這種類型的服務必須通過調用stopSelf()方法或另一個組件通過調用stopService()方法才能終止。一旦用stopSelf()方法或stopService()方法請求終止服務,那麼系統一有可能就會銷毀這個服務。但是,如果你的服務同時處理多個對onStartCommand()方法的請求,那麼在你完成請求啟動過程
Time of Update: 2018-12-03
綁定類型的服務允許應用程式組件通過調用bindService()方法與服務建立一個長期的關聯(通常不允許組件通過調用startService()方法來啟動它)。在你想要Activity以及應用程式中的其他組件跟服務進行互動時,或者要把應用程式中的某些功能通過處理序間通訊(IPC)暴露給其他應用程式時,就需要建立一個綁定類型的服務。要建立綁定類型的服務,你必須實現返回IBinder對象的onBind()回調方法,IBinder對象定義了跟服務進行通訊的介面。然後其他應用程式組件能夠調用bindSe
Time of Update: 2018-12-03
你能夠通過用“android.intent.action.MAIN”和“android.intent.category.LAUNCHER”分別給Intent過濾器指定行為和類別,從而建立一個Activity作為一個任務的入口。例如:<activity ... > <intent-filter ... > <action android:name="android.intent.action.MAIN" />
Time of Update: 2018-12-03
服務一旦運行,就能夠使用廣播通知(Toast Notifications)或狀態列通知(Status Bar
Time of Update: 2018-12-03
上面的例子顯示了怎樣把Fragment作為UI的一部分添加到Activity上,但是,你也能夠使用Fragment只提供一個後台行為,而沒有額外的UI展現。要添加一個沒有UI的Fragment,需要在Activity中使用add(Fragment,String)(給Fragment提供一個唯一的字串“tag”,而不是視圖ID)方法來添加Fragment。但是,因為這樣添加的Fragment沒有跟Activity布局中的視圖關聯,它不接受對onCreateView()方法的調用,因此你不需要實現這
Time of Update: 2018-12-03
要建立一個服務,你必須建立一個Service類(或一個既存的Service子類)的子類。在你的實現中,你需要重寫一些處理服務生命週期關鍵特徵的回調方法,並且給組件提供一種合適的綁定服務的機制。需要重寫的重要的回調方法如下:onStartCommand()當一個組件通過調用startService()方法請求啟動一個服務時,系統會調用這個服務的onStartCommand()方法。一旦這個方法執行了,那麼這個服務就被啟動,並且在後台無限期的運行。如果你實現了這個方法,當服務的工作結束時,你有責任通
Time of Update: 2018-12-03
Android提供幾種儲存持久化應用程式資料的選擇。依賴具體的需求來選擇解決適合的方案,如資料應該是應用程式私人的還是共用的,以及資料所需要的儲存空間等。以下是可選擇的資料存放區方案:共用偏好(Shared Preferences)用鍵---值對的形式儲存私人的未經處理資料。內部儲存(Internal Storage)在裝置的記憶體上儲存私人的資料。外部儲存(External
Time of Update: 2018-12-03
像Activity(和其他的組件)一樣,所有的服務都必須在應用程式的資訊清單檔中聲明。要聲明服務就要給<application>元素添加一個<service>子項目,例如:<manifest ... > ... <application ... > <service android:name=".ExampleService" /> ...
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/graphics/opengl.htmlAndroid系統包含了OpenGL(Open Graphics Library),從而給2D和3D圖形提供了高效能的支援,尤其是OpenGL ES API。OpenGL是一個跨平台圖形API,它給3D圖形處理指定了一個標準的軟體介面。OpenGL ES是一種用於嵌入式裝置的OpenGL規範。從Android1.0開始,就提供了對OpenGL
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/graphics/opengl.htmlOpenGL 包一旦使用GLSurfaceView和GLSurfaceView.Renderer類給OpenGL建立了一個View容器,那麼就可以開始使用以下的類來調用OpenGL的API:1. OpenGL ES 1.0/1.1 API 包android.opengl------這個包給OpenGL ES
Time of Update: 2018-12-03
因為大多被啟動類型的服務不需要同時處理多個請求(這實際是一個危險的多線程情境),因此使用IntentService類來實現自己的服務可能是最好的。IntentService類執行以下操作:1. 建立一個獨立與應用程式主線程的預設背景工作執行緒,執行所有的給onStartCommand()方法Intent的處理;2. 建立一個工作隊列,以便每次只給你的onHandleIntent()方法實現傳遞一個Intent,因此你不必擔心多線程的問題;3. 所有的啟動請求都被處理之後終止這個服務,因此你
Time of Update: 2018-12-03
Android通過把所有的已啟動的Activity依次放到同一個後進先出的堆棧裡來進行管理,對於大多數應用程式來說這種方法能夠很好的工作,並且你不必擔心Activity是如何跟任務關聯的或者他們是如何存在回退堆棧中的。但是,你可能決定要打破這種通常的行為。或許你想要應用程式中的一個Activity在啟動的時候開啟一個新的任務(而不是放在當前的任務中);或者當你啟動一個Activity時,你想使用之前既存的執行個體(而不是在回退堆棧的頂部建立一個新的執行個體);或者你想在使用者離開這個任務時清除回
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/graphics/drawable-animation.html繪圖動畫會讓你依次的載入一系列的繪圖資源來建立一個動畫。這種動畫是一種傳統動畫,它是用不同的圖片序列來建立並依次播放的,看上去像放電影。AnimationDrawable類是繪圖動畫的基類。你能夠使用AnimationDrawable類的API在代碼中定義動畫的幀,但是,用一個單獨的定義了組成動畫幀的列表的XML來完成動畫會更加簡單。這種類
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/renderscript/compute.html#creating-renderscript渲染指令碼(Renderscript)提供用C語言(C99標準)編寫的原生級高效能的計算API。Renderscript讓你的應用程式有能力跨越所有可用的處理器核心來自動的平行的運行各種操作。它還提供了對不同類型的處理的支援,如CPU、GPU或DSP等。Renderscript對於圖形處理、數學模型或其他任何需
Time of Update: 2018-12-03
Android平台提供了廣泛的UI可視組件---widget,把這些小的可視的構件組合到一起,就可以給使用者提供複雜而有用的介面。但是,應用程式經常需要一些進階可視組件,要滿足這樣的需求,並要達到高效的目的,可以把一些標準的widget組合成一個新的可複用的組件。例如,包含一個進度條和一個取消按鈕的操作進度表示組件;包含兩個按鈕的面板(取消和確認操作);帶有一個表徵圖、標題和說明的面板等等。通過編寫定製的View類能夠很容易的建立UI組件,但是使用XML會更加容易。在Android
Time of Update: 2018-12-03
建立RenderscriptRenderscript擴大了裝置上可用的處理器核心的範圍。這種能力是通過名叫rsForEach()(或者是Android架構層級下的forEach_root()方法)方法來獲得的。它會自動的區分訪問裝置裝置上可用的處理器核心的工作。目前,Renderscript只能利用CPU核心的優勢,但是在將來,它們會能夠運行在其他類型的處理器上,如GPU和DSP等。實現一個Renderscript要涉及建立一個包含Renderscript代碼的.rs檔案和在Android架構層
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/training/basics/data-storage/shared-preferences.html如果你有一個相對較小的要儲存的鍵-值對的集合,那麼就應該使用SharePreferencesAPIs。SharePreferences對象指向一個包含鍵-值對的檔案,並且提供簡單的讀寫方法。每個SharePreferences檔案是由架構來管理的,並可以是私人或共用的。本節課向你講述如何使用SharePreferences
Time of Update: 2018-12-03
註:本文譯自:http://developer.android.com/guide/topics/graphics/2d-graphics.htmlAndroid架構API提供了一組2D描畫API,使用這些API能夠在一個畫布(canvas)上渲染自己的定製圖形,也能夠修改那些既存的View對象,來定製它們的外觀和視覺效果。在繪製2D圖形時,通常要使用以下兩種方法中的一種:1. 把圖形或動畫繪製到布局中的一個View對象中。在這種方式中,圖形的繪製是由系統通常的繪製View層次資料的過程來處理的