Time of Update: 2018-12-03
指標指標被反射到位於<project_root>/gen/package/name/ScriptC_renderscript_filename的指令碼類中。你能夠給給結構體或其他任何Renderscript支援的型別宣告指標,但是結構體不能夠包含指標或嵌套數組。例如,如果你聲明了下列的指向struct和int32_t的指標:typedef struct Point { float2 position; float size;} Point_t; Point_t
Time of Update: 2018-12-03
1.建立.aidl檔案AIDL使用簡單的文法來聲明帶有多個方法的介面,這個些方法能夠帶有參數和傳回值。參數和傳回值可以是任意類型的,甚至是其他AIDL產生的介面。必須使用Java程式設計語言來構建.aidl檔案。每個.aidl檔案必須定義一個單一的介面,並要求只有介面聲明和方法簽名。預設情況下,AIDL支援下列資料類型:1.Java語言中所有的未經處理資料類型(如int,long,char,boolean等);2.String3.CharSequence4.List
Time of Update: 2018-12-03
繪圖對象的座標映射在Android裝置上顯示圖形中的基本問題之一就是它們的螢幕可能是各種尺寸和形狀的。OpenGL會假設一個方形地區,統一的座標地區,並且在預設情況下,在一些方形的螢幕能夠像在方形地區一樣,完美的繪製這些座標。圖1. 預設的OpenGL座標系統(左)被映射到一個典型的Android裝置螢幕(右)。上面的插圖示範了如何把左邊的OpenGL的統一座標系統映射到右邊橫屏裝置的實際座標上。使用GpenGL的投影模式,可以解決這個問題,並且照相視圖(Camera
Time of Update: 2018-12-03
調用Renderscript代碼你能夠通過由執行個體化的類(ScriptC_script_name)來建立一個Renderscript對象從Android架構代碼中調用Renderscript。這個類包含了一個forEach_root()方法,它會調用rsForeach()方法。你能夠傳遞給它與Renderscript運行時層級調用相同的參數。這種技術允許你的Android應用程式把高精度的數學計算轉交給Renderscript。在Android架構層次調用Renderscript的方法:1.
Time of Update: 2018-12-03
在IPC通道上傳遞對象如果要通過IPC介面把一個類從一個進程發送到另一個進程,這是可以做到的。但是必須確保該類的代碼對應IPC通道另一側的進程是可用的,並且該類必須支援Parcelable介面。支援Parcelable介面是重要的,因為它允許Android系統把對象分解成能夠跨進程進行編組的原始類型。必須按照以下步驟來建立一個支援Parcelable協議的類:1. 要讓該類實現Parcelable介面;2. 實現writeToParcel介面,它會攜帶該對象的目前狀態並把它寫入Parcel;3.
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/renderscript/advanced.html因為利用Renderscript的應用程式依然運行在Android虛擬機器(VM)內部,所以能夠訪問所有你熟悉的架構API,但也可在適當的時機利用Renderscript。為了促進Renderscript運行時和架構之間的相互作用,利用中介層代碼來幫。助兩個代碼層之間的通訊和記憶體管理。本文深入討論不同代碼層的更多細節,以及Android
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/graphics/opengl.html在OpenGL ES 2.0中的投影和照相視圖在ES 2.0的API中,首先要通過把一個矩陣成員添加給繪圖物件頂部的著色器(Vertex Shaders)來使用投影和照相視圖。然後,這個被添加的矩陣成員能夠產生並把投影和照相視圖應用給繪圖物件。1. 給頂層著色器(Vertex
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/graphics/opengl.html#compatibilityOpenGL版本和裝置相容性Android系統從1.0開始就支援OpenGL ES 1.0和1.1規範,從Android2.2(API Level 8)開始,架構支援OpenGL ES 2.0 API規範。OpenGL ES 2.0被大多數Android裝置支援,並且推薦新的應用程式用OpenGL來開發。對於支援給定OpenGL
Time of Update: 2018-12-03
把資料放入資料庫通過把ContentValues對象傳入instert()方法把資料插入資料庫:// Gets the data repository in write mode SQLiteDatabase db = mDbHelper.getWritableDatabase(); // Create a new map of values, where column names are the keys ContentValues values = new ContentValues();
Time of Update: 2018-12-03
要管理Activity中Fragment,需要使用FragmentManager對象,在Activity中調用getFragmentManager()方法能夠獲得這個對象。FragmentManager對象能夠做以下事情:1. 獲得Activity中既存的Fragment,用findFragmentById()獲得Activity布局中提供UI的Fragment,或用findFragmentByTag()方法獲得沒有提供UI的Fragment;2. 使用popBackStack()方法從回退堆棧
Time of Update: 2018-12-03
這一節描述了在Android應用程式中如何使用裝載器,使用裝載器的應用程式通常包括以下內容:1. 一個Activity或Fragment;2. 一個LoaderManager執行個體;3. 一個用於載入通過ContentProvider儲存的資料的CursorLoader對象,也可以是你自己實現的用於載入其他類型資料的Loader或AsyncTaskLoader類的子類。4. 一個LoaderManager.LoaderCallbacks相關的實現,這是你建立新的裝載器和管理既存裝載器引
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/guide/topics/graphics/prop-animation.html屬性動畫系統是一個健壯的架構,它幾乎可以允許把任何對象變成動畫。可以根據時間的推移來改變任何對象的屬性來定義一個動畫,而不用關心該對象是否要繪製在螢幕上。屬性動畫是在指定的時間長度上改變一個屬性(對象中的一個成員欄位)的值。要讓某些對象變成動畫,就要給該對象指定想要的動畫屬性,如果對象在螢幕上的位置、動畫的停留時間以及動畫之間的值等。屬性動畫系統可
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/training/basics/intents/sending.htmlAndroid的重要特性之一就是基於要執行的特定的“action”把使用者帶入另外一個應用程式。例如,如果你的應用程式有一個要在地圖上顯示的地址,你不必在你的應用程式建立一個用於顯示地圖的Activity。相反,你可以使用Intent對象給地圖應用程式的View建立一個請求,然後Android系統就會啟動對應的應用程式,病在地圖上顯示你給出的地址。在講解第一
Time of Update: 2018-12-03
在Activity中使用有關Fragment的添加、刪除、替換以及用它們執行其他響應使用者互動行為的能力是一項偉大的功能。你提交給Activity的每組改變集合被叫做一個事務,並且你能使用FragmentTransaction中APIs來執行它。也能夠把每個事務儲存到被Activity管理的回退堆棧中,並允許使用者通過Fragment改變來向後導航(類似同Activity的向後導航)。 你能夠從FragmentManager對象中擷取一個FragmentTransaction對象的執行個體,例如
Time of Update: 2018-12-03
儘管Fragment是作為一個獨立於Activity來實現的一個對象,並且能夠在多個Activity內部使用,但是一個給定的Fragment執行個體直接被捆綁包含它的Activity中。特別是Fragment能夠使用getActivity()方法訪問Activity的執行個體,並且很容易執行如在Activity布局中查詢檢視表的任務:View listView =
Time of Update: 2018-12-03
LoaderManager.LoaderCallbacks是一個讓客戶與LoadManager進行互動的回調介面。裝載器,尤其是CursorLoader裝載器,被期望用來儲存被終止後的資料,這樣就允許應用程式在Activity之間或Fragment的onStop()和onStart()方法之間進行切換時儲存資料,以便在使用者返回應用程式時,它們不需要因資料重載而等待。使用LoaderManager.LoaderCallbacks()的回調方法就知道在什麼時候要建立一個新的裝載器,並且告訴應用程式
Time of Update: 2018-12-03
Fragment通過實現onCreateOptionsMenu()方法給Activity的可選菜單(包括動作欄)提供功能表項目,但是為了這個方法能夠接受調用,必須在onCreate()方法中調用setHasOptionsMenu()方法來指示這個Fragment應該作為可選菜單的添加項(否則,這個Fragment不接受對onCreateOptionsMenu()方法的調用)。然後,你把來自Fragment的要添加到可選菜單中項目追加到既存的菜單中。當功能表項目被選擇時,這個Fragment也接受
Time of Update: 2018-12-03
本文譯自:http://developer.android.com/training/basics/intents/result.html啟動另外一個Activity並不都是單向的,你也可以啟動另外一個Activity,並接受被啟動的Activity所返回的結果,這需要調用startActivityForResult()方法,而不是startActivity()方法。例如,你的應用程式可以啟動一個Camera應用程式,並把該應用程式拍攝的照片作為結果來接收。或者為了讓使用者選擇連絡人,你可以啟動
Time of Update: 2018-12-03
回退堆棧在Fragment中被編輯的事務能夠放在它自己的Activity中回退堆棧內。當使用者在該Activity中按下返回按鈕時,在回退堆棧中的任何事務在Activity自己被結束之前會被彈出堆棧。例如,執行個體化一個帶有整數參數的簡單的Fragment對象,並且把這個整數顯示在它的UI的一個TextView中:publicstaticclassCountingFragmentextendsFragment{ int mNum; /** * Create a new
Time of Update: 2018-12-03
作為已連線的服務端當你想要串連兩個裝置時,一個必須通過持有一個開啟的BluetoothServerSocket對象來作為服務端。服務通訊端的用途是監聽輸入的串連請求,並且在一個串連請求被接收時,提供一個BluetoothSocket連線物件。在從BluetoothServerSocket對象中擷取BluetoothSocket時,BluetoothServerSocket能夠(並且也應該)被廢棄,除非你想要接收更多的串連。以下是建立服務通訊端和接收一個串連的基本過程。1. 調用listenUsi