天天看點

《Android應用開發攻略》——第2章 設計成功的應用程式 2.1 導言:設計成功的Android應用程式

colin wilcox

讨論

本章介紹編寫富于想象力而且實用的android應用的設計指導思想。有幾個攻略描述了成功設計的具體特征。本節将列出其他一些方面。

這一章的目的之一是解釋相對于其他在移動裝置上傳遞豐富内容的方法,原生java android應用程式開發的好處。

原生手機應用程式的要求

不管在何種平台上部署,成功傳遞任何手機應用程式都有許多關鍵的要求:

應用程式應該易于在裝置上安裝、删除和更新。

應該以引人入勝、獨特和優雅的方式處理使用者的需求。

應該具有豐富的特性,同時對新手和專家使用者來說都易于使用。

對于通過其他途徑(例如網站)通路相同資訊的使用者來說,應用程式應該很熟悉。

關鍵的功能區應該很容易通路。

應該與手機上的其他應用程式有共同的觀感,遵循目标平台的标準和風格指導方針。

應用程式應該穩定、可伸縮、易于使用并且反應靈敏。

應用程式應該得體地利用平台功能,為使用者帶來更加引人入勝的體驗。

android應用程式設計

在本章設計的android應用程式将利用android os平台的獨特功能。一般來說,這種應用程式是基于活動的解決方案,允許獨立和逐屏的受控資料通路。這種方法有助于使潛在的錯誤局部化,應用程式流程的各部分更加容易獨立于其餘部分進行更換或者改進。

導航方法将使用類似于apple iphone的解決方案,所有關鍵功能區都從一個導航欄控件通路。導航欄可以從應用程式中的任何位置通路,使用者可以自由地在應用程式中浏覽。

android解決方案将利用android裝置的固有功能,支援裝置的觸摸屏功能、可将應用程式切換到背景的硬體按鈕,以及應用程式切換功能。

android提供了回到應用程式切換點的能力。我們在設計中也盡可能支援這種功能。

應用程式将隻使用标準的android使用者界面控件,盡可能保持可移植性。主題或者自定義控件的使用超出了本章的範圍。

應用程式将設計為與一個rest風格的web服務薄層接口,由該服務提供json格式的資料。這個接口與apple iphone以及其他平台的應用程式使用的接口相同。

應用程式将盡可能采用android風格和設計指導方針,以便與裝置上的其他android應用程式保持一緻。

每個視圖的局部資料在視圖退出時将儲存,在視圖下次加載時,這些資料将自動恢複并重新填充對應的使用者界面控件。

在接下來的小節中,将讨論一些重要的裝置特性,這是開發中應該考慮的:

螢幕尺寸和密度:為了按照螢幕類型進行裝置分類,android定義了裝置的兩種特性:螢幕尺寸(螢幕的幾何尺寸)和螢幕密度(螢幕上的像素密度,或者dpi(點/英寸))。為了簡化不同類型的螢幕配置,android系統将它們歸納為精選的分組,以便更簡單地針對分組采取不同的措施。

設計人員在設計應用程式的時候,應該考慮選擇最恰當的螢幕尺寸和密度。

預設情況下,因為android系統會對ui布局和圖像資源進行相應的調整,應用程式可以相容所有螢幕尺寸和密度。但是,應該使用備選布局資源并在清單檔案中聲明應用所支援的螢幕尺寸,為特定的螢幕尺寸建立特定的布局,并為特定的螢幕密度提供專門的圖像。

輸入配置。許多裝置提供不同的使用者輸入機制,例如硬體鍵盤、軌迹球或5向導航闆。如果應用程式需要特殊的輸入硬體類型,就必須在androidmanifest.xml檔案中聲明,而且要知道一點:在缺乏這種特性的裝置上,android market應用将不會顯示應用程式。但是,應用程式需要特定輸入配置的情況很少。

裝置特性。在android裝置上存在(或者不存在)許多硬體和軟體特性,例如相機、光線傳感器、藍牙功能、某個版本的opengl或者觸摸屏精确度。絕不應該假定某種特性在所有android裝置上都可用(這和标準android程式庫的可用性不同)。

android應用程式将根據不同的情況,提供由android架構支援的兩種菜單:

選項菜單包含适用于目前活動的主要功能或者啟動相關活動的功能,一般由使用者按下硬體按鈕(通常是menu按鈕)來調用。選項菜單可用于目前活動的任何全局指令。

上下文菜單包含目前選中項的二級功能,通常由使用者長按(按下并保持)一個項目調用。和選項菜單類似,操作可以在目前或者另一個活動中進行。

選項菜單用于目前選擇所适用的任何指令。

長按一個項時在上下文菜單上顯示指令,這些指令在目前活動中按下該項時也應該出現。

将最常用的操作放在最前面。

隻有最重要的指令才應該作為螢幕上的按鈕;将其餘功能交給菜單完成。

系統會自動布局菜單,并為使用者提供标準的通路方式,確定應用程式遵循android使用者界面指導方針。從這個意義上說,對于使用者來說,菜單是所有應用程式中通路功能的熟悉和可靠手段。

android應用程式在activity對象之間傳遞資料時廣泛利用了google的意圖(intent)機制。意圖不僅用于在單個應用程式的視圖之間傳遞資料,而且允許資料(或者請求)傳遞到外部子產品。這樣,通過有目的的調用,android應用程式可以使用許多來自其他應用程式的嵌入式功能。意圖機制精簡了開發過程,并且在所有應用程式中保持了共同的觀感和功能表現。

資料饋送(feed)與饋送格式:直接與第三方資料源接口不是一個好主意;例如,在移動應用程式中使用type 3 jdbc驅動程式與伺服器上的資料庫直接交流的思路并不好。正常的方法應該是通過中間件從多種資料源,以多種資料格式遷移資料。然後,中間件通過一系列rest風格的web服務api,以json資料流的形式将資料傳遞給應用程式。

通常,資料以xml、soap或者其他xml派生表現形式提供。soap之類的表現形式是重量級的,将來自後端伺服器的資料轉換為這種格式顯著地增加了開發時間,因為将這種資料轉換為更加易于處理的格式由手機應用程式或者中間件伺服器上的一個對象負責。

通過中間件伺服器遷移資料還有助于打破應用程式和資料之間的依賴關系。這種依賴關系的不利之處在于,如果因為某種原因,資料的性質改變或者無法讀取,應用程式可能損壞且無法使用,這樣的變化可能要求重新釋出應用程式。如果資料遷移在中間件伺服器上進行,不管源資料是否存在,應用程式都能繼續正常工作(工作方式可能受到限制),應用程式和遷移後的資料之間的連接配接仍然保持。

繼續閱讀