歡迎來到Android4.1,果凍豆!
Android4.1是迄今為止最快、最流暢的Android版本,我們已經對整個平台進行了改進,並且為使用者和開發人員增加了大量的新功能。本文檔僅僅是Android4.1新功能的冰山一角。
詳情請參考Android4.1 APIs文檔來詳細瞭解最新的開發人員APIs。
更快、更流暢、更靈敏
最佳化的Android4.1能夠提供最好的展現形式和實現最低的觸摸延遲,提供一個簡單易用、容易操作的使用者介面
為了確保一致的幀頻,Android擴充了垂直同步調速(vsync timing)來實現Android架構處理所有的圖片和動畫。一切都運行在步調一致、16毫秒的垂直同步心跳機上——包括程式渲染、觸摸事件、螢幕構成和顯示重新整理——所以幀不會提前或者延後。
同時為了獲得更加一致的渲染,Android4.1在圖形管道上添加了三重緩衝(triple buffering)技術,能夠使一切感覺更順暢,比如從滾動到分頁和動畫。
增強協助工具功能-Enhanced Accessibility
Android4.1既通過同步觸摸vsync timing來減少觸摸延遲,又通過預測你的手指將在那裡來重新整理螢幕來減少觸摸延遲。這樣就可以得到更容易和更均勻的觸摸響應。。此外,在activity不活動之後,Android會申請一個CPU input boost 來確保在下次觸摸事件時沒有延遲。
Tooling可以協助你得到應用程式的完全的最佳效能,現在Android4.1的設計中,支援工作的一個新工具是systrace,它能夠直接從Linux核心採集資料來產生一個系統所有活動的整體的圖。採集來的資料被表示為一組垂直堆疊起來的時間順序圖表表,用來協助隔離渲染中斷和其他問題,現在這個工具在Android SDK中已經可用了(Tools R20 或者更高)。
支援國際使用者
雙向文本和其他語言支援
Android4.1通過在TextView and EditText 元素中支援雙向文本可以協助你贏得更多的使用者。應用程式可以按照從左至右或從右至左的指令碼顯示文本或者處理文本編輯。應用程式可以使用新的阿拉伯語、希伯來語地區及相關字型。
其他類型新語言的支援包括:
- 追加的印度語言:埃納德語,泰盧固語,馬拉雅拉姆
- 新繪文字字元的Unicode 6.0版
- 對日本使用者來說更好的字形支援(比如當系統語言設定為日語時對日本特有版本的字形的渲染)
- 阿拉伯語字形在WebViews上進行了最佳化,除了TextViews。
- 在WebViews中支援垂直文本,包括Ruby文本和其他垂直文本字形
- 合成粗體現在可以用於所有沒有專門粗體字形的字型
使用者可安裝的鍵盤對應
該平台現在支援使用者安裝鍵的盤映射。比如支援其他的國際鍵盤和特殊布局類型的鍵盤。在預設情況下,Android4.1包含27種國際鍵盤,包括Dvorak。當使用者串連一個鍵盤的時候,他們可以設定程式選擇一個或多個他們想用的鍵盤。當打字的時候,使用者可以使用快速鍵(比如Ctrl-Space)在鍵盤配置之間進行切換。 你可以建立一個鍵盤對應發布到系統中。這個APK應該包括鍵盤配置資源檔,基於標準的Android鍵盤對應格式。這個應用程式要想給使用者提供自訂的鍵盤配置需要在應用程式的manifest檔案中聲明一個合適的廣播接收器(ACTION_QUERY_KEYBOARD_LAYOUTS )。
構造更美的UI
擴充的通知功能
擴充的通知,讓你在顯示更多類型的通知內容。使用者可以用一個簡單的手勢展開他們。通知功能早已是Android上獨特並受歡迎的功能。在不影響應用程式的UI的情況下,開發人員可以在通知欄把重要的或基於時間的資訊,顯示給使用者。
Android 4.1對Android通知架構進行了重大的更新。應用程式現在可以通過點選展開或者摺疊來顯示更大,更豐富的通知。通知支援新的內容類型,包括照片,優先順序的配置,甚至可以包括多個動作。
通過改進通知的使用,應用程式可以建立的使用面積較大,高達256 DP的高度的通知資訊。三個模板的通知樣式可供選擇:
- BigTextStyle - 通知,其中包括一個多TextView的對象。
- BigInboxStyle - 通知顯示任何類型的訊息,標題等,如清單。
- BigPictureStyle - 如位元影像,展示視覺內容的通知。
除了模板的樣式,你可以使用任何遠程視圖建立你自己的通知顯示方式,。
應用程式在通知內容下,可以添加三個動作。讓使用者以替代辦法直接回應通知資訊。如不通過應用程式訪問電子郵件或電話。
使用可擴充的通知,應用程式可以輕鬆地提供更多的資訊給使用者。使用者還可以長按任何通知,以擷取有關通知寄件者的資訊,並選擇禁用應用程式的進一步通知。
通知的擴充,讓你看到更多類型的通知內容。使用者可以用一個簡單的手勢展開他們。
大小可調整的應用程式小組件
應用小工具,可以自動調整,以適應主畫面,其大小變化時載入不同的內容。Android的4.1引入了改進的應用小工具,可以按照使用者拖動到的主畫面的位置,主畫面上提供的總空間大小,自動調整大小。新的應用程式組件的API,讓你利用這一優勢,以最佳化您的應用程式組件大小的變化時,Widget的大小。
當一個組件的變化大小,系統通知主應用程式的組件供應商,可以重新在widget的內容需要。例如,一個widget可以顯示更大,更豐富的圖形或額外的功能或選項。開發人員仍然可以保持最大和最小尺寸的控制,並在需要時可以更新其他組件選項。
你的組件,還可以提供單獨的橫向和縱向布局,適當的螢幕方向改變時系統膨脹。
應用組件現在可以顯示在第三方發射器和其他宿主應用程式通過一個新的綁定意向書(AppWidgetManager.ACTION_APPWIDGET_BIND)的。
應用程式視窗小組件可以自動調整大小以適應主畫面,並可以載入不同的內容以適應其尺寸變化。
簡化的任務導航
Android 4.1使您更容易從您應用程式管理頂部導覽列,並有助於確保使用者一致的體驗。
在應用的manifest檔案添加新的XML屬性,可以實現頂部導覽列中定義UI中獨立的Activity組件功能。你可以。在運行時,隨著活動的推出,該系統manifest檔案中提取的最多的導航樹,並自動建立在操作欄中向上的啟示導航。開發誰申報清單導航不再需要管理導航在運行時的回調,但它們也可以這樣做,如果需要的話。
也可以是一個新的TaskStackBuilder類,讓你趕緊把一種人工合成的任務堆棧立即啟動或PendingIntent啟動時使用的一個活動。建立一個合成任務堆棧是特別有用的,當使用者從偏遠的意見,如從主畫面小組件和通知,推出的活動,因為它讓開發人員提供託管的,一致的體驗,回到導航。
Activity Lanuch 的簡易動畫
您可以使用一個新的helper類,ActivityOptions,建立和控制,動畫顯示,當您啟動您的活動。通過輔助類,你可以指定自訂動畫資源活動啟動時要使用的,或要求新的縮放動畫開始從任何你指定在螢幕上,並選擇性地包括一個縮圖位元影像的矩形。
燈輸出和全螢幕模式的轉換
新的系統UI視圖中的標誌,讓你乾淨的過渡,或從一個正常的應用程式介面(操作欄,導覽列,系統欄可見),“燈輸出模式”(狀態列和操作欄隱藏和導覽列變灰) “全螢幕模式”(狀態列,行動起來吧,所有隱藏的導覽列)。
新的remoteable Views 類型
開發人員現在可以使用GridLayout的ViewStub在主畫面小組件和通知的意見。GridLayout的讓你構建遠程意見的內容和管理與較淺的UI階層中,兒童的意見路線。ViewStub是一種無形的,零大小的視圖,可用於懶洋洋地膨脹在運行時的布局資源。
生活壁紙預覽
Android 4.1使得它更容易為使用者尋找和安裝現場壁紙,包括他們的應用程式。如果您的應用程式,包括現場壁紙,你現在可以開始一個活動(ACTION_CHANGE_LIVE_WALLPAPER),顯示了使用者從自己的應用程式的動態壁紙預覽。從預覽,使用者可以直接載入動態壁紙。
更高解析度的連絡人照片
與Android 4.1,你可以儲存連絡人的照片,如大型720×720,使接觸更豐富,更個人。應用程式可以在該大小的儲存和檢索連絡人的照片,或使用任何其他需要的大小。在特定裝置上支援最大的照片尺寸可能會有所不同,所以應用程式應該查詢內建的接觸供應商,在運行時獲得當前裝置的最大尺寸。
新的輸入類型和功能
弄清有關裝置添加和刪除的情況
當有新的裝置接進來的時候,比如通過USB,藍芽,或任何其他連線類型,應用程式會通過註冊的方式得到通知,他們可以使用這些資訊來改變狀態或需要的功能。比如說一個遊戲應用程式可能會接收到這樣一個通知:有一個新鍵盤或者搖杆接進來了,這表明一個新成員加入了。
查詢輸入裝置的功能
Android4.1包含很多輸入裝置功能的APIs,這些APIs能夠讓應用程式和遊戲充分利用那些接入並有效輸入裝置的功能。 應用程式可以查詢裝置管理員來枚舉當前串連的所有的輸入裝置,並瞭解每個的功能。
控制輸入裝置上的震動器
在其他功能中,應用程式現在可以使用任何一個接入的輸入裝置的相關震動服務,比如震動卡(Rumble Pak )控制器。
Animation and Graphics-動畫和圖形
應用程式中的的垂直同步(Vsync)技術
整個Android架構擴充VSYNC會產生一個更加一致的幀頻和流暢、穩定的UI。所有的app都將受益,因為Android4.1擴充的Vsync計時會影響到使用者引用程式初始化的繪圖和動畫。這能讓他們在UI線程上最佳化操作,並提供了一個穩定的同步基。
應用程式可以免費利用VSYNC計時的優勢,通過Android的動畫架構。動畫架構現在使用VSYNC計時自動處理整個動畫的同步。
需要特殊用途的話,應用程式可以通過Choreographer類的API訪問VSYNC計時功能。應用程式可以要求在下一個VSYNC幀進行驗證,這是不用動畫架構的情況下的一個很好的安排動畫的方式。更進階的用法是,應用程式可以再Choreographer類中傳遞迴調函數,這個會在下一幀中調用。
新動畫和過渡類型
現在的動畫架構允許你定義當開始和結束運行ViewPropertyAnimator動畫時採取的行動,協助他們與其他動畫或應用程式中的行動進行同步,可以運行任何Runnable對象。例如,該Runnable對象可以指定另一個動畫在前一個動畫完成後開始啟動。
你現在也可以指定一個ViewPropertyAnimator在動畫過程中使用一個層。在此之前,最好的做法是動畫完成前建立一個層,然後在onAnimationEnd()事件處理動畫時刪除層。現在,ViewPropertyAnimator中的withLayer()方法能夠簡化這個過程,每次只需要調用一個函數就行。
LayoutTransition中的一個新的過渡類型可以自動響應一個ViewGroup布局的變化動畫。
新的交流方式
Android Beam
Android Beam是一種流行的基於NFC的技術,它能夠讓使用者在兩個有NFC功能的電話接觸之時馬上分享資訊。
在Android4.1中,Android Beam使得圖片、視頻和其他需要藍芽來進行傳輸的資料分享變得更加容易。當使用者觸發傳輸時,Android Beam通過NFC到藍芽的傳輸方式,使得從一個裝置傳輸檔案到另一個裝置變得非常容易。
wifi網路服務發現
Android 4.1引入了支援基於組播DNS服務的發現,它可以讓應用程式尋找和串連到對端裝置通過Wi-Fi網路所提供的服務 - 包括行動裝置、印表機、數位相機、媒體播放器、以及其他服務。開發人員可以利用Wi-Fi網路服務發現的優勢,建立跨平台或多人遊戲和應用。
使用服務發現的API,應用程式可以為任何支援NSD的裝置建立和註冊任何種類的服務。服務通過組播在網路上使用方便可讀的字串標識符,它可以讓使用者更容易識別服務的類型。
消費電子裝置可以使用API進行掃描,發現當地的Wi-Fi網路連接的裝置提供的服務。發現後,應用程式可以使用API來得到服務的IP地址和連接埠,通過它可以建立一個通訊端串連。
你可以利用這個API的優勢,做成您的應用程式的新功能。例如,你可以做一個讓使用者串連到一個網路攝影機、印表機、或其他行動裝置支援的Wi-Fi對等連線應用程式程式。
WiFi的直接服務發現
Android冰淇淋三明治版本中引入wifi直連技術也就是讓應用程式發現和匹配高頻寬的對等串連的技術的支援。 Wi-Fi直連是一個理想的方式來共用媒體、照片、檔案和其他類型的資料和會話,即使那裡沒有行動電話通訊或Wi-Fi的可用。
在Android果凍豆版本中,Android進一步的提供Wi-Fi直連特性,增加相關服務發現API的支援。前相關的服務發現可以讓你的應用程式在跟附近裝置串連前獲得更多關於他們服務支援的的資訊。應用程式可以啟動特定服務的發現並篩選那些真正支援目標服務或應用程式的裝置列表。
例如,這意味著你的應用程式可以發現有列印功能或有一個特定的遊戲的裝置,而不是發現附近所有的Wi-Fi 直連裝置。另一方面,您的應用程式發行就緒到其他裝置的服務,其他裝置可以發現它,然後建立一個串連。這大大簡化了為使用者發現和配對,讓應用更有效利用Wi-Fi直連的優勢。
有了Wi-Fi直接服務發現,你可以建立可以共用所有照片、影片、遊戲、分數、或幾乎任何其他資料的無需任何互連網或移動網路的應用程式和多人遊戲。您的使用者可以使用只有一個直接的P2P串連,從而避免了使用移動頻寬串連。
網路頻寬管理
Android 4.1應用程式管理資料時使用適當的裝置串連到計量網路,包括行動熱點。應用程式可以查詢當前網路是否能開始大量下載,否則可能會給使用者帶來昂貴的網路費用。通過該API,您現在可以得到清晰的關於哪個網路是資料敏感的資訊,並相應地能夠管理您的網路活動。
全新的多媒體功能
多媒體解碼器訪問
Android 4.1提供低級的平台硬體和軟體解碼器訪問。App可以查詢系統,發現怎麼樣的低級的多媒體解碼器在裝置上是可用的。比如,你現在可以建立多個多媒體解碼器執行個體, 隊列進入輸入緩衝,並接收返回的輸出緩衝。而且,這多媒體解碼器架構支援被保護的內容。App可以通過裝置上的DRM方式查詢有訪問被保護內容許可權的解碼器。
USB音頻
USB音訊輸出支援硬體廠商生產像audio docks那樣的硬體,它與Android裝置對接。這個功能在ADK中同樣開放,所有的開發人員可以創造自己的硬體了。