Time of Update: 2018-12-03
啟動模式允許你定義一個新的Activity執行個體如何跟當前的任務進行關聯。以下兩種方法能夠定義不同的啟動模式:1. 使用資訊清單檔 當在資訊清單檔中聲明一個Activity時,你能夠指定這個Activity在啟動時應該如何跟任務進行關聯。2. 使用Intent標識 在調用startActivity()方法時,你能夠在Intent中包含一個標識,用來聲明這個新的Activity應該如何跟當前的任務進行關聯。因此,如果Activity A啟動Activity
Time of Update: 2018-12-03
Nine-patchNinePatchDrawable圖形是可展開的位元影像圖片,Android系統會根據View對象中的內容來自動的調整背景圖片。使用NinePatch圖片的一個例子就是標準Android按鈕的背景圖片---按鈕必鬚根據字串的長度來展開背景圖片。NinePathc圖形繪製的是一個標準的PNG圖片,它包含了一個像素寬的邊框。圖片檔案的副檔名必須是.9.png,並且要儲存到工程的res/drawable/目錄中。邊框被用於定義圖片的展開和靜態地區。通過在邊框的左邊和上邊(其他邊框的
Time of Update: 2018-12-03
你能夠通過把一個Intent對象(指定要啟動的服務)傳遞給StartService()方法,從一個Activity或其他的應用程式組件啟動服務。Android系統調用服務的onStartCommand()方法,並且給它傳遞Intent對象(你不應該直接調用onStartCommand()方法)例如,一個Activity能夠使用帶有明確的Intent對象的startService()方法來啟動一個服務:Intent intent = new Intent(this,
Time of Update: 2018-12-03
親緣關係是指Activity願意屬於哪個任務。預設,來自同一個應用程式的所有的Activity彼此有一個親緣關係。因此,預設情況下在同一個應用程式中的所有Activity都應該屬於同一個任務。但是,你能夠給一個Activity修改預設的親緣關係。Activity被定義在不同的應用程式中能夠共用一個親緣關係,或者Activity被定義在同一個應用程式中能夠跟不同任務的親緣關係進行關聯。你能夠使用<activity>元素的taskAffinity屬性來修改任意給定的Activity的親緣
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/graphics/hardware-accel.html從Android3.0(API Level 11)開始,Android
Time of Update: 2018-12-03
如果使用者長時間的離開一個任務,那麼系統會清除這個任務根Activity以外的所有Activity。當使用者再次返回這個任務時,只有根Activity被儲存。系統行為的這種方式是因為經過長時間以後,使用者在返回這個任務之前可能已經放棄它們的作業,而開始了某些新的任務。你能夠使用一些Activity屬性來修改這種行為:1. alwaysRetainTaskState如果這個屬性在一個任務的根Activity中被設定為“true”,那麼像上面描述的那樣的預設行為就不會發生。即使是長時間之後,這個任
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/graphics/hardware-accel.html判斷一個View對象是否被硬體加速有些時候,尤其是對於那些定製的View對象,應用程式知道當前的View對象是否被硬體加速是十分有益的。如果應用程式做了很多定製的繪圖操作,並且不是所有的操作都會被新的渲染管道所支援,那麼這種判斷就特別有用。有兩種不同的方法來檢查應用程式是否被硬體加速了:1. 如果一個View對象跟一個被硬體加速的視窗綁定,那麼Vi
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
不被硬體加速所支援的繪圖操作在硬體加速的時候,2D渲染管道支援大多數的通常用於Canvas的繪圖操作,以及一些很少使用的操作。被用於渲染應用程式的所有的繪圖操作都有發送給Android系統,預設的Widget和布局,以及一些常用的可視效果,如反射和瓷磚的紋理效果都是被支援的。以下列出了已知的不支援硬體加速的操作:1. CanvaschipPath()chipRegion()drawPicture()drawPosText()drawTextOnPath()drawVertives()2. Pai
Time of Update: 2018-12-03
一個Activity是提供給使用者的用於與程式進行互動的介面組件,如打電話、拍照片、發郵件、或看地圖等。每個Activity就是一個用來描畫使用者介面的介面,通常這個視窗時全屏的,但是也可以比螢幕小,並且可以浮動在其他視窗的上面。 一個應用程式通常由多個Activity組成,它們彼此鬆散的綁定到一起。通常,在一個應用程式中要指定一個Activity作為主Activity,當使用者啟動應用程式時,這個Activity首先表現給使用者。然後,每個Activity為了執行不同的行為,能夠啟動另一個A
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/graphics/hardware-accel.htmlView層在Android的所有版本中,通過使用View對象的繪圖緩衝,或使用Canvas.saveLayer()方法,View對象都具有在螢幕外緩衝區呈現的能力。螢幕外緩衝區或層由多種用途。在呈現複雜的動畫或使用組合效果時,它們能夠獲得更好的效能。例如,使用Canvas.saveLayer()方法暫時把一個View對象呈現在一個層中,然後使用不透
Time of Update: 2018-12-03
要建立一個服務,你必須建立一個Service類(或一個既存的Service子類)的子類。在你的實現中,你需要重寫一些處理服務生命週期關鍵特徵的回調方法,並且給組件提供一種合適的綁定服務的機制。需要重寫的重要的回調方法如下:onStartCommand()當一個組件通過調用startService()方法請求啟動一個服務時,系統會調用這個服務的onStartCommand()方法。一旦這個方法執行了,那麼這個服務就被啟動,並且在後台無限期的運行。如果你實現了這個方法,當服務的工作結束時,你有責任通
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/graphics/2d-graphics.html圖形繪製Android為繪製圖形和圖片提供了一個定製的2D圖形類庫。android.graphics.drawable包中能夠找到用於繪製二維圖形的共同的類。本文討論使用Drawable對象來繪製圖形的基礎知識,以及如何使用Drawable類的子類。關於使用Drawable對象來繪製幀動畫的資訊,請看繪製動畫文檔(http://developer.and
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/graphics/hardware-accel.htmlView層和動畫當應用程式被硬體加速的時候,硬體層能夠傳遞更快、更平滑的動畫。當播放具有複雜的繪圖操作的動畫時,以每秒60幀的速度播放不總是可能。這樣能夠通過使用硬體層把View對象呈現在硬體紋理中,可以緩解這種情況。硬體紋理能夠被用於動畫視圖,這樣在該View對象呈現動畫時,就可以消除View對象所需要的重繪操作。直到View對象的屬性發生變化時
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
一個啟動類型的服務是另一個組件通過調用startService()方法,產生一個調用服務的onStartCommand()方法而啟動的服務。當一個服務被啟動時,它有一個獨立與啟動它的組件的生命週期,並且這個服務能夠無限期的在後台運行,即使啟動它的組件被銷毀了。因此這個服務應該在工作結束時通過調用stopSelf()方法來終止自己,或者另一個組件通過調用stopService()方法也能終止這個服務。像Activity這樣的應用程式組件能夠通過調用startService()方法來啟動服務,並且給
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時,你想使用之前既存的執行個體(而不是在回退堆棧的頂部建立一個新的執行個體);或者你想在使用者離開這個任務時清除回