快速瞭解Android平台的一種方式是查看Java包的結構。因為Android源於標準的JDK發布版,所以瞭解受支援的內容和不受支援的內容非常重要。下面簡短介紹一下Android SDK中重要的包。
android.app:實現Android的應用程式模型。主要的類包括Application(表示開始和結束語義),以及眾多與Activity相關的類、控制項、對話方塊、提醒和通知。
android.bluetooth:提供一些類來處理藍芽功能。主要的類包括BluetoothAdapter、BluetoothDevice、 BluetoothSocket、BluetoothServerSocket和BluetoothClass。可以使用 BluetoothAdapter控制在本地安裝的藍芽適配器。例如,可以啟用它、禁用它和啟動發現流程。BluetoothDevice表示所串連的遠程藍牙裝置。兩個藍芽通訊端用於在裝置之間建立通訊。BluetoothClass表示所串連的藍牙裝置的類型。
android.content:實現ContentProvider概念。ContentProvider將資料訪問從資料存放區中抽象出來。這個包還實現了一些圍繞Intent和Android URI(Uniform Resource Identifiers,統一資源識別項)的核心理念。
android.content.pm:實現與包管理器相關的類。包管理器知道各種許可權、安裝的包、安裝的提供者、安裝的服務、安裝的組件(比如Activity)和安裝的應用程式。
android.content.res:用於訪問結構化和非結構化資源檔。主要的類包括AssetManager(用於結構化資源)和Resources。
android.database:實現抽象資料庫的理念。主要的介面是Cursor介面。
android.database.sqlite:實現android.database包中的概念,該包將SQLite用作物理資料庫。主要的類包括 SQLiteCursor、SQLiteDatabase、SQLiteQuery、SQLiteQueryBuilder和 SQLiteStatement。但是,大部分互動操作將會與抽象android.database包中的類進行。
android.gesture:此包包含處理使用者定義的手勢所需的所有類和介面。主要的類包括Gesture、GestureLibrary、 GestureOverlayView、GestureStore、GestureStroke和GesturePoint。Gesture是 GestureStrokes和GesturePoints的集合。手勢都收集在GestureLibrary中。手勢庫儲存在GestureStore 中。手勢都具有名稱,這樣可以將其標識為動作。
android.graphics:包含類Bitmap、Canvas、Camera、Color、Matrix、Movie、Paint、Path、Rasterizer、Shader、SweepGradient和TypeFace。
android.graphics.drawable:實現繪製協議和背景映像,支援可繪製對象動畫。
android.graphics.drawable.shapes:實現各種形狀,包括ArcShape、OvalShape、PathShape、RectShape和RoundRectShape。
android.hardware:實現與物理照相機相關的類。照相機指的是照相機硬體,而android.graphics.Camera表示一種圖形概念,與物理照相機完全無關。
android.location:包含類Address、GeoCoder、Location、LocationManager和LocationProvider。Address類表示簡化的XAL(Extensible Address Language,可擴充地址語言)。GeoCoder可用於擷取給定地址的緯度/經度座標或給定緯度/經度座標處的地址。Location表示緯度/經度。
android.media:包含類MediaPlayer、MediaRecorder、Ringtone、AudioManager和 FaceDetector。MediaPlayer支援流媒體,用於播放音頻和視頻。MediaRecorder用於錄製音頻和視頻。Ringtone類用於播放可用作鈴聲和提示音的短聲音片段。AudioManager負責控制音量。可以使用FaceDetector在位元影像中檢測人臉。
android.net:實現基本的通訊端級網路API。主要的類包括Uri、ConnectivityManager、LocalSocket和 LocalServerSocket。這裡需要注意,Android在瀏覽器級和網路級提供了HTTPS支援。Android還支援在其瀏覽器中使用 JavaScript。
android.net.wifi:管理WiFi串連。主要的類包括WifiManager和WifiConfiguration。WifiManager負責列出已配置的網路和目前處於活動狀態的WiFi網路。
android.opengl:包含圍繞OpenGL ES操作的公用程式類。主要的OpenGL ES類在來自JSR 239的一組不同的包中實現。這些包是javax.microedition.khronos.opengles、 javax.microedition.khronos.egl和javax.microedition.khronos.nio。這些包都是圍繞 OpenGL ES的Khronos實現的瘦封裝器,是使用C和C++編寫的。
android.os:表示可通過Java程式設計語言訪問的作業系統服務。一些重要的類包括BatteryManager、Binder、 FileObserver、Handler、Looper和PowerManager。Binder類支援處理序間通訊。FileObserver監視對檔案的更改。Handler類用於運行與訊息線程有關的任務,Looper用於運行訊息線程。
android.preference:使應用程式能夠讓使用者以統一的方式管理它們針對該應用程式的喜好設定。主要的類包括 PreferenceActivity、PreferenceScreen和各種由喜好設定派生出來的類,比如CheckBoxPreference和 SharedPreferences。
android.provider:包含一組附加到android.content.ContentProvider介面的預先構建的 CntentProvider。ContentProvider包括Contacts、MediaStore、Browser和Settings。這一組介面和類儲存底層資料結構的中繼資料。
android.sax:包含一組高效的SAX(Simple API for XML,XML簡單API)解析公用程式類。主要的類包括Element、RootElement和許多ElementListener介面。
android.speech:包含用於語音辨識的常量。這個包只在1.5版和更新版本中提供。
android.speech.tts:提供從文字轉換語音的支援。主要的類是TextToSpeech。擷取文本後,可以請求此類的一個執行個體來對要轉換為語音的文本進行排隊。可以使用大量回調來監控語音何時結束。Android使用來自SVOX的Pico TTS(Text to Speech,文字轉換語音)引擎。
android.telephony:包含類CellLocation、PhoneNumberUtils和TelephonyManager。Telep- honyManager可用於確定手機位置、電話號碼、網路電訊廠商名稱、網路類型、電話類型和SIM(Subscriber Identity Module,使用者身份模組)序號。
android.telephony.gsm:可用於根據基站來收集手機位置,還包含負責處理SMS訊息的類。這個包名為GSM,是因為全球移動通訊系統是最初定義SMS資料訊息標準的技術。
android.telephony.cdma:提供對CDMA電話的支援。
android.text:包含文本處理類。
android.text.method:提供為各種控制項輸入文本的類。
android.text.style:為各種文本提供多種樣式設定機制。
android.utils:包含類Log、DebugUtils、TimeUtils和Xml。
android.view:包含類Menu、View、ViewGroup以及一系列監聽器和回調。
android.view.animation:提供對補間動畫的支援。主要的類包括Animation、一系列動畫插值器,以及一組特定的動畫繪製類,包括AlphaAnimation、ScaleAnimation、TranslationAnimation和RotationAnimation。
android.view.inputmethod:實現輸入方法架構架構。這個包僅在1.5版及更新版本中提供。
android.webkit:包含表示Web瀏覽器的類。主要的類包括WebView、CacheManager和CookieManager。
android.widget:包含通常派生自View類的所有UI控制項。主要的組件包括Button、Checkbox、Chronometer、 AnalogClock、DatePicker、DigitalClock、EditText、ListView、FrameLayout、 GridView、ImageButton、MediaController、ProgressBar、RadioButton、RadioGroup、 RatingButton、Scroller、ScrollView、Spinner、TabWidget、TextView、TimePicker、 VideoView和ZoomButton。
com.google.android.maps:包含類MapView、MapController和MapActivity,它們在本質上是處理Google地圖所需的類。
以上是一些重要的Android包。從這個列表可以看到Android核心平台的深度。
說明 總體而言,Android Java API包含40多個包和700多個類。
此外,Android還提供了java.*命名空間中的許多包。它們包括awt.font、io、lang、lang.annotation、 lang.ref、lang.reflect、math、net、nio、nio.channels、nio.channels.spi、 nio.charset、security、security.acl、security.cert、security.interfaces、 security.spec、sql、text、util、util.concurrent、util.concurrent.atomic、 util.concurrent.locks、util.jar、util.logging、util.prefs、util.regex和 util.zip。Android還包含javax命名空間中的以下包:crypto、crypto.spec、 microedition.khronos.egl、microedition.khronos.opengles、net、net.ssl、 security.auth、security.auth.callback、security.auth.login、 security.auth.x500、security.cert、sql、xml和xmlparsers。除了這些以外,它還包含來自 org.apache.http.*的許多包以及org.json、org.w3c.dom、org.xml.sax、org.xml.sax.ext、 org.xml.sax.helpers、org.xmlpull.v1和org.xmlpull.v1.sax2。總而言之,無數的包為針對手持功能編寫應用程式提供了一個功能豐富的計算平台。