[官方原文](https://developer.android.com/about/versions/jelly-bean.html)
## **果凍豆**
### **Android 4.1**
歡迎來到Android 4.1 Jelly Bean的第一個版本!
Android 4.1是Android最快和最流暢的版本。我們在整個平臺上進行了改進,并為用戶和開發人員添加了很多新的功能。本文檔提供了開發人員新功能的一瞥。
查看[Android 4.1 API](https://developer.android.com/about/versions/android-4.1.html)文檔詳細了解新的開發者API。
在 www.android.com 上查找更多關于Jelly Bean功能的信息。
#### **更快,更流暢,更有反應**
Android 4.1經過優化,可以在簡單直觀的用戶界面中提供Android的最佳性能和最低的觸摸延遲。
為了確保一致的幀率,Android 4.1擴展了由Android框架完成的所有繪圖和動畫的異步時序。一切運行在16毫秒vsync心跳上 - 應用程序渲染,觸摸事件,屏幕組成和顯示刷新 - 所以幀不會超前或落后。
Android 4.1還在圖形管道中增加了三重緩沖功能,以便更加一致地呈現,從滾動到分頁和動畫,使得一切都變得更加流暢。
Android 4.1不僅可以通過將觸摸同步到vsync時間來減少觸摸延遲,還可以通過實際預測屏幕刷新時手指的位置。這導致更加反應和均勻的觸摸響應。另外,經過一段時間不活動之后,Android會在下一次觸摸事件中應用CPU輸入提升,以確保沒有延遲。
工具可以幫助您從應用程序中獲得絕對最佳的性能。Android 4.1被設計為與稱為systrace的新工具一起工作,該工具直接從Linux內核收集數據以產生系統活動的總體圖。數據被表示為一組垂直堆疊的時間序列圖,以幫助隔離渲染中斷和其他問題。該工具現在可在[Android SDK](https://developer.android.com/tools/index.html)(Tools R20或更高版本)

#### **增強的可訪問性**
新的可訪問性服務API使您能夠在用戶通過屏幕上的元素和導航按鈕使用輔助功能手勢,配件和其他輸入來移動時處理手勢和管理輔助功能。對講系統和觸摸探索被重新設計,以便于使用易用性,并為開發人員提供一套完整的API。
輔助功能服務可將自己的教程鏈接到“輔助功能”設置中,以幫助用戶配置和使用其服務。
使用標準View組件的應用程序會自動繼承對新輔助功能的支持,而不會對其代碼進行任何更改。使用自定義視圖的應用程序可以使用新的輔助功能節點API來指示對輔助功能服務感興趣的視圖部分。
#### **支持國際用戶**
#### **雙向文本和其他語言支持**
通過支持TextView和EditText元素中的雙向文本,Android 4.1可以幫助您接觸更多的用戶。應用程序可以顯示文本,也可以在從左到右或從右到左的腳本中處理文本編輯。應用程序可以使用新的阿拉伯語和希伯來語語言環境和相關的字體。
其他類型的新語言支持包括:
其他印度語言:卡納達語,泰盧固語和馬拉雅拉姆語
來自Unicode版本6.0的新Emoji字符
日本用戶更好的字形支持(當系統語言設置為日語時,呈現日文特定版本的字形)
除了TextViews的阿拉伯文字形之外,阿拉伯字形還針對WebViews進行了優化
WebView中的垂直文本支持,包括Ruby文本和附加的垂直文本字形
Synthetic Bold現在可用于沒有專用粗體字形的所有字體
#### **用戶可安裝的鍵盤映射**
該平臺現在支持用戶可安裝的鍵盤映射,例如用于其他國際鍵盤和特殊布局類型。默認情況下,Android 4.1包含27個鍵盤的國際鍵盤映射,包括Dvorak。當用戶連接鍵盤時,他們可以轉到“設置”應用程序并選擇一個或多個要用于該鍵盤的鍵盤映射。鍵入時,用戶可以使用快捷鍵(ctrl-space)在鍵盤映射之間切換。
您可以創建一個應用程序來發布其他鍵盤映射到系統。APK將包含鍵盤布局資源,基于標準Android鍵盤映射格式。應用程序可以通過在其清單中聲明適當的ACTION_QUERY_KEYBOARD_LAYOUTS廣播接收器來為用戶提供額外的鍵盤布局。
#### **新的方法來創造美麗的用戶界面**
開發人員可以創建自定義通知樣式,如上例所示,以顯示豐富的內容和操作。
#### **可擴展的通知**
通知一直是Android上獨一無二的流行功能。開發人員可以使用它們將重要的或基于時間的信息放在應用程序正常用戶界面之外的通知欄中的用戶面前。
Android 4.1帶來了Android通知框架的重大更新。應用程序現在可以向用戶顯示更大,更豐富的通知,可以通過捏或輕掃進行展開和折疊。通知支持新類型的內容,包括照片,具有可配置的優先級,甚至可以包含多個操作。
通過改進的通知生成器,應用程序可以創建使用更大區域的通知,高度可達256 dp。有三種模板通知樣式可用:
* BigTextStyle - 包含多行TextView對象的通知。
* BigInboxStyle - 顯示任何類型的消息,標題等列表的通知。
* BigPictureStyle - 顯示視覺內容(如位圖)的通知。

開發人員可以創建自定義通知樣式,如上例所示,以顯示豐富的內容和操作。
除了模板化樣式之外,您還可以使用任何遠程視圖創建自己的通知樣式。
應用程序最多可以為通知添加三個操作,這些通知顯示在通知內容的下面。這些操作讓用戶以其他方式直接回應通知中的信息。如通過電子郵件或電話,而無需訪問應用程序。
借助可擴展的通知,應用程序可以輕松地按需向用戶提供更多信息。用戶保持控制,并可以長時間按任何通知來獲取有關發件人的信息,并可以選擇禁用來自應用程序的進一步通知。
應用小部件可以自動調整大小以適應主屏幕,并隨著尺寸的變化加載不同的內容。
#### **可調整大小的應用部件**
Android 4.1引入了改進的App Widget,可以根據用戶在主屏幕上的放置位置,用戶擴展的大小以及主屏幕上的可用空間量自動調整大小。新的應用程序小部件API讓您利用這個優化您的應用程序小部件內容隨著小部件大小的變化。
當小部件更改大小時,系統會通知主機應用程序的小部件提供程序,它可以根據需要重新加載小部件中的內容。例如,一個小部件可以顯示更大,更豐富的圖形或附加功能或選項。開發人員仍然可以保持對最大和最小大小的控制,并且可以隨時更新其他小部件選項。
您還可以為您的小部件提供單獨的橫向和縱向布局,當屏幕方向更改時,系統會根據情況適當膨脹。
應用程序小部件現在可以通過新的綁定Intent(AppWidgetManager.ACTION_APPWIDGET_BIND)顯示在第三方啟動器和其他主機應用程序中。

應用小部件可以自動調整大小以適應主屏幕,并隨著尺寸的變化加載不同的內容。
#### **簡化任務導航**
Android 4.1使您可以輕松管理應用內部用戶可用的“向上”導航,并有助于確保為用戶提供一致的體驗。
您可以通過在應用程序的清單文件中添加新的XML屬性來為UI的單個Activity組件定義預期的Up導航。在運行時,當活動啟動時,系統從清單文件中提取上導航樹,并自動在操作欄中創建上導航功能導航。在清單中聲明Up導航的開發人員不再需要在運行時通過回調來管理導航,盡管如果需要也可以這樣做。
另外還有一個新的TaskStackBuilder類,它可以讓您快速地將一個綜合任務堆棧放到一起,以便立即啟動或在從PendingIntent啟動一個Activity時使用。當用戶從遠程視圖(例如主屏幕小部件和通知)中啟動活動時,創建合成任務堆棧尤其有用,因為它可以讓開發人員在后退導航中提供托管的一致體驗。
#### **活動啟動簡單的動畫**
您可以使用新的助手類ActivityOptions來創建和控制啟動“活動”時顯示的動畫。通過輔助類,你可以指定在活動啟動時,或要求任何矩形開始您在屏幕上指定并選擇性的包括縮略圖位圖新的縮放動畫中使用自定義動畫資源。
#### **轉到熄燈和全屏模式**
在查看新的系統UI標志讓你干凈地從一個普通的應用程序UI轉換(有操作欄,導航欄和系統欄可見),以“熄燈模式”(與狀態欄和操作欄隱藏和導航欄變灰)或“全屏模式”(狀態欄,操作欄和導航欄全部隱藏)。
#### **新類型的可遠程視圖**
開發人員現在可以在主屏幕小部件和通知中使用GridLayout和ViewStub視圖。通過GridLayout,您可以構建遠程視圖的內容,并使用較淺的UI層次結構管理子視圖對齊。ViewStub是一個不可見的零大小的視圖,可以用來在運行時延遲布局資源。
#### **動態壁紙預覽**
Android 4.1使用戶更容易從包含它們的應用程序中查找并安裝動態壁紙。如果您的應用包含動態壁紙,則現在可以啟動一個活動(ACTION_CHANGE_LIVE_WALLPAPER),通過您的應用向用戶顯示動態壁紙的預覽。從預覽中,用戶可以直接加載動態壁紙。
#### **更高分辨率的聯系人照片**
使用Android 4.1,您可以存儲大小達720 x 720的聯系人照片,使聯系人更加豐富,更加個性化。應用程序可以存儲和檢索該尺寸的聯系照片或使用任何其他所需的尺寸。特定設備支持的最大照片大小可能會有所不同,因此應用程序應在運行時查詢內置聯系人提供程序以獲取當前設備的最大大小。
#### **新的輸入類型和功能**
#### **了解有關正在添加和刪除的設備**
應用程序可以通過USB,藍牙或任何其他連接類型進行注冊,以便在任何新的輸入設備連接時收到通知。他們可以根據需要使用這些信息來更改狀態或功能。例如,一個游戲可能會收到一個新的鍵盤或操縱桿被連接的通知,表明新玩家的存在。
#### **查詢輸入設備的功能**
Android 4.1包含API,可讓應用和游戲充分利用所有連接且可用的輸入設備。
應用程序可以查詢設備管理器來枚舉當前所連接的所有輸入設備,并了解每個輸入設備的功能。
#### **控制輸入設備上的振動器**
除了其他功能之外,應用程序現在可以使用與連接的輸入設備相關的任何振動器服務,例如用于Rumble Pak控制器。
### **動畫和圖形**
#### **Vsync的應用程序**
在Android框架中擴展vsync可以帶來更一致的幀率和流暢穩定的用戶界面。因此,應用程序也受益,Android 4.1 延伸vsync時間到由應用程序啟動的所有繪圖和動畫。這使他們能夠優化UI線程上的操作,并為同步提供穩定的時間基準。
應用程序可以通過Android的動畫框架免費使用vsync時間。動畫框架現在使用vsync timing來自動處理動畫師之間的同步。
對于專業用途,應用程序可以通過新的編排器類顯示的API訪問vsync時序。應用程序可以在下一個vsync框架上請求失效 - 在應用程序不使用動畫框架時調度動畫的好方法。對于更高級的用途,應用程序可以發布Choreographer類將在下一幀運行的回調。
#### **新的動畫動作和轉換類型**
現在,動畫框架允許您定義運行ViewPropertyAnimator動畫時要執行的開始和結束動作,以幫助將其與應用程序中的其他動畫或動作同步。該操作可以運行任何可運行的對象。例如,runnable可能會指定另一個動畫,以便在前一個動畫完成時啟動。
您現在也可以指定ViewPropertyAnimator在其動畫過程中使用一個圖層。以前,通過在開始動畫之前設置圖層,然后在動畫完成時處理onAnimationEnd()事件來移除圖層,這是最佳實踐。現在,ViewPropertyAnimator上的withLayer()方法通過一個方法調用簡化了這個過程。
LayoutTransition中新的轉換類型使您能夠響應ViewGroup中的所有布局更改來自動執行動畫。
#### **新的連接類型**
#### **Android Beam**
Android Beam是一款流行的基于NFC的技術,只需將兩臺NFC手機連接在一起,即可讓用戶即時分享。
在Android 4.1中,Android Beam通過利用藍牙進行數據傳輸,可以更輕松地共享圖像,視頻或其他有效載荷。當用戶觸發傳輸時,Android Beam從NFC切換到藍牙,使管理文件從一個設備到另一個設備的傳輸變得非常容易。
#### **Wi-Fi網絡服務發現**
Android 4.1引入了對基于DNS的多播服務發現的支持,它使應用程序能夠通過Wi-Fi網絡(包括移動設備,打印機,相機,媒體播放器等)查找并連接到由對等設備提供的服務。開發者可以利用Wi-Fi網絡服務發現來構建跨平臺或多人游戲和應用體驗。
使用服務發現API,應用程序可以創建和注冊任何類型的服務,以供任何其他支持NSD的設備發現。該服務通過使用人可讀的字符串標識符在網絡上進行廣播進行廣播,這使得用戶可以更容易地識別服務的類型。
消費者設備可以使用API來掃描和發現連接到本地Wi-Fi網絡的設備可用的服務。發現之后,應用程序可以使用API??將服務解析為可以建立套接字連接的IP地址和端口。
您可以利用此API在您的應用程序中構建新功能。例如,您可以讓用戶連接到支持Wi-Fi點對點連接的其他移動設備上的網絡攝像頭,打印機或應用程序。
#### **Wi-Fi P2P服務發現**
[Ice Cream Sandwich](https://developer.android.com/about/versions/android-4.0-highlights.html)(Android 4.0)推出了支持Wi-Fi對等(P2P)的技術,這種技術可以讓應用通過高帶寬的點對點連接直接發現和配對(遵循Wi-Fi聯盟的[Wi- Fi Direct? ](http://www.wi-fi.org/discover-and-learn/wi-fi-direct)認證程序)。Wi-Fi P2P是共享媒體,照片,文件和其他類型的數據和會話的理想方式,即使沒有可用的蜂窩網絡或Wi-Fi。
Android 4.1進一步進行Wi-Fi P2P,為預先關聯的服務發現添加API支持。預先關聯的服務發現功能可讓您的應用程序在嘗試連接之前從附近的設備獲取有關所支持服務的更多有用信息。應用程序可以啟動對特定服務的發現,并將發現的設備列表篩選為實際支持目標服務或應用程序的設備。
例如,這意味著您的應用只能發現“打印機”或具有特定游戲可用的設備,而不是發現所有附近的Wi-Fi P2P設備。另一方面,您的應用可以將其提供的服務通告給其他設備,這些設備可以發現該服務,然后協商連接。這極大地簡化了用戶的發現和配對,并讓應用更有效地利用Wi-Fi P2P。
借助Wi-Fi P2P服務發現,您可以創建可共享照片,視頻,游戲玩法,分數或其他任何內容的應用程序和多人游戲,而無需任何Internet或移動網絡。您的用戶只能使用直接的p2p連接進行連接,避免使用移動帶寬。
#### **網絡帶寬管理**
當設備連接到計量網絡時,Android 4.1可以幫助應用程序恰當地管理數據使用情況,包括連接到移動熱點。應用程序可以在開始大量下載之前查詢當前網絡是否被計量,否則對于用戶而言可能相對昂貴。通過API,您現在可以清楚地了解哪些網絡對數據使用敏感,并相應地管理您的網絡活動。
#### **新的媒體功能**
#### **媒體編解碼器訪問**
Android 4.1提供對平臺硬件和軟件編解碼器的低級訪問。應用程序可以查詢系統以發現設備上可用的低級別媒體編解碼器,然后以他們所需的方式使用它們。例如,您現在可以創建媒體編解碼器的多個實例,排隊輸入緩沖區,并接收輸出緩沖區。另外,媒體編解碼器框架支持受保護的內容。應用程序可以查詢可用的編解碼器,該編解碼器能夠使用設備上可用的DRM解決方案播放受保護的內容。
#### **USB音頻**
USB音頻輸出支持允許硬件供應商構建與Android設備接口的硬件,如音頻擴展塢。Android 開放配件開發工具包(ADK)也公開了此功能,為所有開發人員創建自己的硬件提供了機會。
#### **音頻記錄觸發**
Android現在可以讓您基于完成音頻播放軌道來觸發錄音。這對于回放提示音來提示用戶開始說話來錄制他們的聲音很有用。此功能可幫助您同步錄制,因此您不會錄制當前正在播放的音頻,也不會過早錄制。
#### **多聲道音頻**
Android 4.1支持通過HDMI端口輸出硬件多聲道音頻的設備上的多聲道音頻。多聲道音頻可讓您為游戲,音樂應用程序和視頻播放器等應用程序提供豐富的媒體體驗。對于沒有支持硬件的設備,Android會自動將音頻縮混為設備支持的通道數(通常為立體聲)。
Android 4.1還增加了對編碼/解碼AAC 5.1音頻的內置支持。
#### **音頻預處理**
開發人員可以對正在錄制的音頻應用預處理效果,比如應用噪聲抑制技術來改善語音錄制質量,回聲消除以及音量不一致的音頻自動增益控制。需要高質量和清晰錄音的應用程序將受益于這些預處理器。
#### **音頻鏈接**
MediaPlayer支持將音頻流鏈接在一起播放音頻文件而不會暫停。這對于需要音頻文件(如音樂播放器)之間無縫轉換的應用程序來說,可以播放連續曲目或游戲的專輯。
#### **媒體路由器**
新的API MediaRouter,MediaRouteActionProvider和MediaRouteButton提供了標準的機制和UI來選擇播放媒體的位置。支持內置有線耳機和A2DP藍牙耳機和揚聲器,您可以添加自己的路由選項,在自己的應用程序。
### **Renderscript計算**
Android 4.1擴展了Renderscript計算,給你更多的靈活性。您現在可以在Renderscript計算腳本中對紋理進行示例,并且可以使用新的編譯指示來定義腳本所需的浮點精度。這使您可以在CPU路徑上啟用NEON指令,例如快速矢量數學運算,否則在完整的IEEE 754-2008標準下是不可能的。
您現在可以在基于x86的仿真器和硬件設備上調試 Renderscript計算腳本。您也可以在一個Renderscript源文件中定義多個根樣式的內核。
#### **Android瀏覽器和WebView**
在Android 4.1中,Android Browser和WebViews包含以下增強功能:
更好的HTML5視頻用戶體驗,包括觸摸播放/暫停和從內嵌到全屏模式的平滑過渡。
提高了渲染速度,減少了內存占用,從而獲得更好的滾動和縮放性能。
改進了HTML5 / CSS3 / Canvas動畫的性能。
改進的文本輸入。
更新了JavaScript引擎(V8)以獲得更好的JavaScript性能。
支持更新的HTML5媒體捕捉規范(輸入類型=文件元素的“捕捉”屬性)。
#### **Google API和服務**
為了進一步擴展Android的功能,有幾款適用于Android的新服務。
#### **適用于Android的Google云消息傳遞**
Google Cloud Messaging(GCM)是一項服務,可讓開發者在Android設備上向其用戶發送短消息數據,而不需要專有的同步解決方案。
GCM處理排隊消息的所有細節并將其有效傳送到目標Android設備。它支持消息多播,并且可以通過一個請求同時連接多達1000個連接的設備。它還支持消息有效載荷,這意味著除了向設備上的應用程序發送癢感消息之外,開發人員還可以發送高達4K的數據。
Google Cloud Messaging 對于所有開發者來說都是完全免費的,注冊很容易。有關注冊,下載和文檔,請參閱[Google Cloud Messaging](https://developer.android.com/google/gcm/index.html)頁面。
#### **應用程序加密**
從Android 4.1開始,Google Play將通過使用設備專用密鑰加密所有付費應用,然后將其交付并存儲在設備上,從而幫助保護應用資產。
#### **智能應用更新**
智能應用更新是Google Play的一項新功能,它引入了向應用更新設備的更好方式。當開發者發布更新時,Google Play現在只會提供已更改為設備的位數,而不是整個APK。這使得大多數情況下更新更加輕量化,因此它們可以更快下載,節省設備的電量,并節省用戶移動數據計劃中的帶寬使用。平均而言,智能應用更新大約是完整APK更新的1/3。
#### **Google Play服務**
Google Play服務可幫助開發者將Google服務(如身份驗證和Google+)集成到通過Google Play提供的應用中。
Google Play服務是通過Google Play自動配置給最終用戶設備的,因此您只需要在應用中使用瘦客戶端庫。
由于您的應用只包含小型客戶端庫,因此您可以充分利用這些服務,而不會大大增加下載大小和存儲空間。另外,Google Play還會定期更新這些服務,而無需開發人員發布應用更新以利用這些更新。
### **Android 4.2**
歡迎來到安卓4.2,果凍豆的最新版本!
Android 4.2具有性能優化,刷新的系統UI以及用戶和開發人員的新功能。本文檔提供了開發人員新功能的一瞥??。
有關 詳細了解新開發人員API的信息,請參閱[Android 4.2 API](https://developer.android.com/about/versions/android-4.2.html)文檔。
在 www.android.com 上查找更多關于用戶的新Jelly Bean功能。
#### **更快,更流暢,更有反應**
Android 4.2基于已經包含在Jelly Bean中的性能改進 - vsync時序,三重緩沖, 減少的觸摸延遲和CPU輸入提升 - 并增加了新的優化,使Android更快。
硬件加速2D渲染器的改進使常見的動畫(如滾動和滑動更平滑和更快)。特別是繪圖針對圖層,裁剪和某些形狀(圓角矩形,圓形和橢圓形)進行了優化。
各種WebView渲染優化使得網頁滾動更平滑,沒有抖動和滯后。
Android的Renderscript Compute是第一個移植到移動設備GPU上的計算平臺。它會盡可能自動利用GPU計算資源,顯著提高圖形和圖像處理的性能。在受支持的設備上使用Renderscript的任何應用程序都可以立即從GPU集成中受益,而無需重新編譯。
運行Android 4.2的10英寸平板電腦
#### **精致,刷新的用戶界面**
Android 4.2改進了Jelly Bean用戶體驗,并為所有平板電腦帶來了熟悉的Android UI模式,例如狀態欄,系統欄和通知窗口。
現在,所有屏幕尺寸的狀態欄位于頂部,可通過下拉菜單訪問通知和新的“ 快速設置”菜單。熟悉的系統欄出現在底部,用任何一只手都可輕松訪問按鈕。該應用程序托盤,也適用于所有的屏幕尺寸。
#### **一個平板電腦,許多用戶**
現在,幾個用戶可以共享一個Android平板電腦,每個用戶都可以方便地訪問專用的用戶空間。用戶可以通過鎖定屏幕上的一鍵輕松切換到他們的空間。
在多用戶設備上,Android為每個用戶提供一個獨立的環境,包括用戶專用的模擬SD卡存儲。用戶也有他們自己的主屏幕,小部件,帳戶,設置,文件和應用程序,系統將這些獨立。所有用戶共享核心系統服務,但系統確保每個用戶的應用程序和數據保持隔離。實際上,多個用戶中的每一個都有他或她自己的Android設備。
用戶可以隨時在自己的環境中安裝和卸載應用程序。為了節省存儲空間,Google Play只有在設備上的其他用戶尚未安裝的情況下才能下載APK。如果應用已安裝,Google Play會以通常的方式記錄新用戶的安裝,但不會下載該應用的其他副本。多個用戶可以運行APK的相同副本,因為系統會為每個用戶創建一個新實例,其中包括用戶特定的數據目錄。
對于開發人員來說,多用戶支持是透明的 - 您的應用程序無需在多用戶環境中正常運行,也無需做任何特殊的事情,您現有的或發布的APK中無需進行任何更改。系統在每個用戶空間管理您的應用,就像在單用戶環境中一樣。
#### **吸引用戶的新方法**
#### **日歷鎖定屏幕小部件**
您可以擴展應用程序小部件以在鎖定屏幕上運行,以便即時訪問您的內容。
#### **鎖定屏幕小部件**
在Android 4.2中,用戶可以將應用程序小部件直接放置在鎖屏上,即時訪問喜歡的應用程序內容,而無需解鎖。用戶可以添加多達五個鎖屏小部件,從已安裝的應用程序提供的小部件中進行選擇。鎖定屏幕顯示每個小部件在自己的面板,讓用戶左右滑動查看不同的面板和他們的小部件。
像所有應用程序小部件一樣,鎖定小部件可以顯示任何類型的內容,并且可以接受直接的用戶交互。它們可以是完全獨立的,例如提供播放音樂控件的小部件,也可以讓用戶在需要時沿著解鎖方式直接跳到應用程序中的“活動”。
對于開發者來說,鎖屏小部件提供了一個吸引用戶的好方法。他們可以讓用戶將自己的內容放在他們經常看到的位置,并為用戶提供更多機會將用戶直接帶入應用。
您可以通過構建新的應用程序小部件或擴展現有的主屏幕小部件來利用此新功能。如果您的應用程序已經包含主屏幕小部件,您可以將其擴展到鎖屏,只需進行很少的更改。為了給用戶提供最佳體驗,您可以更新小部件,以便在可用時使用完整的鎖定屏幕區域,并在需要時在較小的屏幕上調整大小。您也可以添加功能到您的小部件,可能是特別有用或方便的鎖定屏幕上。

您可以擴展應用程序小部件以在鎖定屏幕上運行,以便即時訪問您的內容。
#### **夢話**
Daydream是一種交互式屏幕保護模式,在用戶設備停靠或充電時啟動。在這種模式下,系統將啟動一個白日夢 - 由安裝的應用程序提供的遠程內容服務 - 作為設備屏幕保護程序。用戶可以從“設置”應用啟用“白日夢”,然后選擇要顯示的白日夢。
白日夢將動態壁紙和主屏幕小部件的最佳功能相結合,但它們更強大。他們讓您可以在全新的環境中提供任何類型的內容,通過用戶互動(例如翻閱照片,播放音頻或視頻或直接跳入應用程序)。
由于白天可以在設備充電或停靠時自動啟動,因此它們也為您的應用提供了一種很好的方式來支持新的用戶體驗,例如后退或展示模式,演示或信息亭模式以及“吸引模式” - 所有這些都不需要特殊的硬件。
Daydream屏保模式
Daydream讓你創建強大的交互式屏幕保護程序,顯示任何類型的內容。
白日夢類似于活動,可以做任何活動可以做的事情 - 從渲染UI層次結構(不使用RemoteViews)直接使用畫布,OpenGL,SurfaceTexture,等等。他們可以播放視頻和音頻,他們甚至可以接受直接的用戶交互。然而,白日夢不是活動,所以他們不會影響后臺或出現在最近,他們不能直接從您的應用程序啟動。
實現一個白日夢很簡單,你可以利用已經為你的應用的其他部分創建的UI組件和資源。您可以在您的應用中提供多個白日夢,并且可以為每個白日夢提供獨特的內容和顯示設置。

Daydream讓你創建強大的交互式屏幕保護程序,顯示任何類型的內容。
#### **外部顯示支持**
Android 4.2引入了對外部顯示的平臺支持,遠遠超出了鏡像 - 應用程序現在可以將獨特內容鎖定到連接到Android設備的任何一個或多個顯示。應用程序可以在此基礎上為用戶提供新的交互和娛樂體驗。
#### **顯示管理器**
應用程序通過新的顯示管理器系統服務與顯示交互。您的應用程序可以枚舉顯示并檢查每個顯示的功能,包括大小,密度,顯示名稱,ID,安全視頻支持等等。當您的應用程序添加或刪除顯示或功能發生變化時,您的應用程序也可以收到回調,從而更好地管理外部顯示器上的內容。
#### **演示窗口**
為了便于在外部顯示器上顯示內容,該框架提供了一個稱為演示的新UI對象- 一種對話框,用于在特定外部顯示器上呈現應用內容的窗口。你的應用程序只是給顯示器使用,窗口的主題,以及任何獨特的內容顯示。演示文稿根據目標顯示器的特性來處理資源膨脹并呈現您的內容。

您可以使用演示文稿完全控制兩個或更多的獨立顯示。
演示文稿可讓您的應用完全控制遠程顯示窗口及其內容,并可根據用戶輸入事件(如按鍵,手勢,動作事件等)對其進行管理。您可以使用所有常規工具在演示文稿中創建UI和呈現內容,從構建任意視圖層次結構到使用SurfaceView或SurfaceTexture直接在流媒體內容或攝像機預覽的窗口中繪制。
#### **首選顯示選擇**
當多個外部顯示器可用時,您可以根據需要創建盡可能多的演示文稿,每個演示文稿在特定的顯示器上顯示唯一的內容。在很多情況下,您可能只想在單個外部顯示器上顯示您的內容 - 但始終在演示內容上最好。為此,該系統可以幫助您的應用程序選擇使用最好的顯示器。
要找到最佳顯示方式,您的應用程序可以查詢顯示管理器以獲取系統首選的演示顯示,并在顯示更改時接收回調。或者,您可以使用在Android 4.2中擴展的媒體路由器服務在系統視頻路由更改時接收通知。您的應用程序可以在主要活動中默認顯示內容,直到附加了首選的演示文稿顯示,屆時它可以自動切換到首選顯示的演示文稿內容。您的應用程序也可以使用媒體路由器的MediaRouteActionProvider和MediaRouteButton來提供標準的顯示選擇UI。
#### **受保護的內容**
對于處理受保護或加密內容的應用,顯示API現在可以報告所連接顯示器的安全視頻功能。您的應用程序查詢顯示屏,以確定它是否提供安全的視頻輸出或提供受保護的圖形緩沖區,然后選擇適當的內容流或解碼以使內容可見。為了提高SurfaceView對象的安全性,您的應用程序可以設置一個安全標志,以指示內容不應該出現在屏幕截圖或非安全顯示輸出中,即使在鏡像時也是如此。
#### **無線顯示**
從Android 4.2開始,受支持設備上的用戶可以使用Wi-Fi Display(符合Miracast?認證計劃的對等無線顯示解決方案),通過Wi-Fi連接到外部顯示器 。當連接無線顯示器時,用戶可以將任何類型的內容傳送到大屏幕上,包括照片,游戲,地圖等等。
應用程序可以像使用其他外部顯示器一樣利用無線顯示器,無需額外的工作。系統管理網絡連接,并根據需要將您的演示文稿或其他應用程序內容傳輸到無線顯示器。
#### **原生RTL支持**

現在開發人員可以將他們的布局鏡像為RTL語言。
Android 4.2引入了對RTL (從右到左)布局的全面本機支持,包括布局鏡像。通過本地RTL支持,您可以為所有用戶提供同樣出色的應用體驗,無論他們的語言使用的是從右向左閱讀的腳本還是從左向右閱讀的腳本。
當用戶將系統語言切換為從右至左的腳本時,系統現在提供對應用UI布局和所有視圖窗口小部件的自動鏡像,以及用于閱讀和字符輸入的文本元素的雙向鏡像。
您的應用程序可以在您的應用程序中盡可能利用RTL布局鏡像。如果您希望應用程序被鏡像,只需在您的應用程序清單中聲明一個新屬性,并將所有“左/右”布局屬性更改為新的“開始/結束”等價物。系統會根據需要處理您的用戶界面的鏡像和顯示。
為了精確控制您的應用程序UI,Android 4.2包含新的API,可讓您管理View組件中的布局方向,文本方向,文本對齊方式,重力和區域設置方向。您甚至可以在使用從右至左的腳本時創建自定義版式的布局,繪圖和其他資源。
為了幫助您調試和優化自定義的從右到左布局,HierarchyViewer工具現在允許您查看層次結構中所有視圖的開始/結束屬性,布局方向,文本方向和文本對齊方式。
#### **國際語言的增強**
Android 4.2 為國際用戶提供了各種字體和字符優化:
對于韓國用戶,提供了一種新的字體選項 - Nanum(????)Gothic,一種專門為韓文腳本設計的Unicode字體。
改進了對WebViews中顯示的日文垂直文本的支持。
改進了印度語,泰語,阿拉伯語和希伯來語默認字體的字體調整和定位。
默認的Android鍵盤還包含一組更新的字典:
改進的法語詞典(支持bigram),英語和俄語
丹麥語,希臘語,芬蘭語,立陶宛語,拉脫維亞語,波蘭語,斯洛維尼亞語,塞爾維亞語,瑞典語,土耳其語的新詞典
#### **創建漂亮的用戶界面的新方法**
#### **嵌套片段**
為了更好地控制你的UI組件,并使它們更加模塊化,Android 4.2允許你在Fragments中嵌套Fragments。對于任何片段,新的片段管理器允許您將其他片段作為子節點插入到View層次結構中。
您可以以各種方式使用嵌套的片段,但對于在自己動態且可重用的UI組件內部實現動態且可重用的UI組件尤其有用。例如,如果您使用ViewPager創建左右滑動的片段,則現在可以將片段插入視圖尋呼機的每個片段中。
為了讓您在應用中更廣泛地利用嵌套的片段,此功能將添加到Android支持庫的最新版本中。
#### **無障礙**
該系統現在在觸摸探索模式下幫助無障礙服務區分觸摸探索和無障礙手勢。當用戶觸摸屏幕時,系統通知服務一般觸摸交互已經開始。然后跟蹤觸摸交互的速度,并確定它是觸摸探索(緩慢)還是無障礙手勢(快速)并通知服務。當觸摸交互結束時,系統通知服務。
系統提供了新的全局可訪問性選項,可通過輔助功能服務根據用戶的操作打開“快速設置”菜單。在Android 4.2中還增加了一個新的盲文設備可訪問性反饋類型 。
為了使輔助功能服務能夠深入了解視圖的含義以實現可訪問性,框架提供了將視圖作為另一個視圖的標簽關聯的新API。每個視圖的標簽可通過AccessibilityNodeInfo提供給輔助功能服務。
#### **改進的HDR相機**
Android 4.2引入了一個新的相機硬件接口和管道,以提高性能。在支持的設備上,應用程序可以使用新的HDR相機場景模式使用高動態范圍成像技術來捕捉圖像。
此外,該框架現在提供了一個API來讓應用程序檢查是否可以禁用相機快門聲音。然后,應用程序可以讓用戶禁用聲音,或者選擇替代聲音來代替建議的標準快門聲音。
#### **Renderscript計算**
在Android 4.2中,Renderscript Compute引入了新的腳本功能,新的優化和直接GPU集成,以實現計算操作的最高性能。
#### **Filterscript**
Filterscript是Renderscript的一個子集,專注于優化廣泛的設備芯片組的圖像處理。開發人員可以使用標準的Renderscript運行時API在Filterscript中編寫圖像處理操作,但要在更嚴格的約束條件下進行,以確保更寬的兼容性,并改進跨CPU,GPU和DSP的優化。
對于硬件加速簡單的圖像處理和計算操作(例如可能為OpenGL ES片段著色器編寫的操作)而言,Filterscript非常適合。由于它在硬件上放置了一套寬松的約束條件,所以您的操作在更多類型的設備芯片組上進行了優化和加速。任何定位API級別17或更高的應用程序都可以使用Filterscript。
#### **腳本內在函數**
在Android 4.2中,Renderscript增加了對一組腳本內在函數的支持 - 預先實現的過濾原語,這些原語被加速以減少需要編寫的代碼量,并確保您的應用程序獲得最大的性能提升。
Intrinsics可用于混合,模糊,顏色矩陣,3x3和5x5卷積,每通道查找表,并將Android YUV緩沖區轉換為RGB。
#### **腳本組**
您現在可以創建一組Renderscript腳本,并使用一次調用就可以執行它們,就像它們是單個腳本的一部分一樣。這允許Renderscript以腳本獨立執行的方式來優化腳本的執行。

Renderscript圖像處理基準測試僅在Galaxy Nexus設備上的CPU上運行在不同的Android平臺版本(Android 4.0,4.1和4.2)上。

Renderscript圖像處理基準測試比較GPU + CPU運行的CPU和運行在同一個Nexus 10設備上的CPU。
如果有一個Renderscript操作的定向非循環圖可以運行,則可以使用構建器類來創建定義操作的腳本組。在執行時,Renderscript會優化運行順序以及這些操作之間的連接以獲得最佳性能。
#### **持續優化改進**
當您使用Renderscript進行計算操作時,您的應用程序將受益 于Renderscript引擎本身的持續性能和優化改進,而不會對您的應用程序代碼產生任何影響,也不需要重新編譯。
隨著優化的改進,您的操作在更快的速度和更多的芯片組上執行,而無需任何工作。右側的圖表突出顯示了通過在Android平臺的后續版本中進行的Renderscript優化改進所帶來的性能提升。
GPU計算
Renderscript Compute是第一個移植到移動設備GPU上的計算平臺。現在它會自動利用GPU計算資源來提高性能。通過GPU集成,即使是最復雜的圖形或圖像處理計算,也可以顯著提高性能。
在支持的設備上使用Renderscript的任何應用程序都可以立即從GPU集成中受益,而無需重新編譯。Nexus 10平板電腦是第一款支持這種集成的設備。
**新的內置開發人員選項**
Android 4.2系統包含各種新的開發者選項,使得創建出色的應用程序變得更加容易。新選項提供了用于從任何設備或仿真器調試和分析應用程序的功能。
在運行Android 4.2的設備上,默認情況下隱藏開發人員選項,有助于為用戶創造更好的體驗。您可以在任何兼容的Android設備上點擊“設置” >“ 關于手機” >“ 內部版本號”,隨時顯示開發人員選項。

新的開發人員選項為您提供了更多方式來在設備上進行配置和調試。
Android 4.2中的新開發人員選項包括:
采取錯誤報告 - 立即拍攝屏幕截圖并將設備狀態信息轉儲到本地文件存儲,然后將其附加到新的傳出電子郵件。
電源菜單錯誤報告 - 添加一個新的選項到設備的電源菜單和快速設置,以采取錯誤報告(見上文)。
通過USB驗證應用程序 - 允許您禁用通過USB端裝應用程序的應用程序檢查,同時仍然從其他來源(如瀏覽器)檢查應用程序。這可以加速開發過程,同時保持啟用安全功能。
顯示硬件層更新 - 在硬件層更新時閃爍。
顯示GPU透支 - 突出顯示GPU透支區域。
強制4x MSAA - 在Open GL ES 2.0應用程序中啟用4x MSAA。
模擬輔助顯示 - 在當前屏幕上創建一個或多個不安全的疊加窗口,以用作模擬遠程顯示。您可以控制模擬顯示器的大小和密度。
啟用OpenGL跟蹤 - 允許您在glGetError上使用Logcat,Systrace或callstack來跟蹤OpenGL的執行情況。
#### **新的平臺技術**
Android 4.2包括各種新的和增強的平臺技術,以支持廣泛的硬件設備中的創新通信用例。在大多數情況下,新的平臺技術和增強功能不會直接影響您的應用程序,因此您可以從中受益而不做任何修改。
#### **安全增強**
每個Android版本都包含數十個安全增強功能,以保護用戶。以下是Android 4.2中的一些增強功能:
應用程序驗證 - 用戶可以選擇啟用“驗證應用程序”,并在安裝前通過應用程序驗證程序篩選應用程序,應用程序驗證可以提醒用戶是否嘗試安裝可能有害的應用程序;如果應用程序特別糟糕,它可以阻止安裝。
高級短信的更多控制 - 如果應用程序嘗試將短信發送到使用可能會導致額外費用的高級服務的短代碼,Android將提供通知。用戶可以選擇允許應用程序發送消息還是阻止消息。
永遠在線的VPN - 可以對VPN進行配置,以便在建立VPN連接之前應用程序無法訪問網絡。這可以防止應用程序通過其他網絡發送數據。
證書鎖定 - libcore SSL實現現在支持證書鎖定。如果證書沒有鏈接到一組期望的證書,則被鎖定的域將收到證書驗證失敗。這樣可以防止證書頒發機構可能的妥協。
改進了Android權限的顯示 - 權限已被組織到用戶更容易理解的組中。在審查權限時,用戶可以單擊權限查看有關權限的更多詳細信息。
installd強化 - installd守護程序不會以root用戶身份運行,從而減少root權限升級的潛在攻擊面。
init腳本強化 - 初始化腳本現在應用O_NOFOLLOW語義來防止符號鏈接相關的攻擊。
FORTIFY_SOURCE - Android現在實現了FORTIFY_SOURCE。這被系統庫和應用程序用來防止內存損壞。
ContentProvider默認配置 - 針對API級別17的應用程序將默認情況下為每個ContentProvider設置“導出”為“false”,從而減少應用程序的默認攻擊面。
加密 - 修改了SecureRandom和Cipher.RSA的默認實現來使用OpenSSL。使用OpenSSL 1.0.1添加了對TLSv1.1和TLSv1.2的SSLSocket支持
安全修復 - 具有安全修復程序的升級的開源庫包括WebKit,libpng,OpenSSL和LibXML。Android 4.2還包含針對Android特定漏洞的修復程序。有關這些漏洞的信息已經提供給Open Handset Alliance成員,Android開放源代碼項目中提供了修復程序。為了提高安全性,一些早期版本的Android設備也可能包含這些修復程序。
#### **新的藍牙堆棧**
Android 4.2引入了一個新的藍牙堆棧,針對Android設備進行了優化。Google和Broadcom合作開發的新型藍牙堆棧取代了基于BlueZ的堆棧,并提供了更好的兼容性和可靠性。
#### **低延遲音頻**
Android 4.2改進了對低延遲音頻播放的支持,從使用OpenSL ES,Soundpool和音頻發生器API的Android 4.1發行版對音頻輸出延遲的改進開始。這些改進取決于硬件支持 - 提供這些低延遲音頻功能的設備可以通過硬件功能常數向應用宣傳其支持。提供了新的AudioManager API來查詢本地音頻采樣率和緩沖區大小,以用于聲稱此功能的設備上。
#### **新的相機硬件接口**
Android 4.2引入了相機堆棧的一個新的實現。攝像機子系統包括攝像機流水線中的組件的實現,例如帶有處理控制的突發模式捕獲。
#### **新的NFC硬件接口和控制器接口**
Android 4.2引入了對來自NFC論壇的基于NCI標準的控制器的支持。NCI提供NFC控制器(NFCC)和設備主機之間的標準通信協議,Google和Broadcom合作開發的新NFC協議棧支持它。
#### **Dalvik運行時優化**
Dalvik運行時包括在更廣泛的體系結構中對性能和安全性的增強:
* 來自Intel的x86 JIT支持和來自MIPS的MIPS JIT支持
* 針對大于512MB的設備優化垃圾收集參數
* SecureRandom和Cipher.RSA的默認實現現在使用OpenSSL
* SSLSocket支持通過OpenSSL 1.0.1的TLSv1.1和TLSv1.2
* 對StrictMath方法abs,min,max和sqrt的新內在支持
* BouncyCastle更新至1.47
* zlib更新到1.27
* dlmalloc更新到2.8.6
### **Android 4.3**
歡迎來到Android 4.3,一個更甜的版本的果凍豆!
Android 4.3為用戶和開發人員提供了性能優化和卓越的新功能。本文檔提供了開發人員新功能的一瞥??。
查看[Android 4.3 API](https://developer.android.com/about/versions/android-4.3.html) 文檔詳細了解新的開發者API。
在 www.android.com 上查找更多關于用戶的新Jelly Bean功能。
#### **更快,更流暢,更有反應**
Android 4.3基于已經包含在Jelly Bean - vsync時序,三重緩沖, 減少觸摸延遲,CPU輸入提升和 硬件加速2D渲染中的性能改進- 增加了新的優化,使Android更快。
為了提升圖形性能,硬件加速的2D渲染器現在 優化了繪圖命令流,通過重新排列和合并繪制操作,將其轉換為更高效的GPU格式。對于多線程處理,渲染器現在也可以跨多個CPU內核使用多線程來執行特定的任務。
Android 4.3還改進了形狀和文本的渲染。現在以更高效的方式提供更高質量的圓形和圓角矩形等形狀。對文本的優化包括使用多種字體或復雜字形集(CJK)時的性能提高,縮放文本時的渲染質量更高以及陰影渲染速度更快。
改進的窗口緩沖區分配可為您的應用程序分配更快的圖像緩沖區,從而減少創建窗口時開始渲染的時間。
為了獲得最高性能的圖形,Android 4.3引入了對OpenGL ES 3.0的支持, 并通過框架和本地API使應用程序可以訪問它。在支持的設備上,硬件加速2D渲染引擎利用OpenGL ES 3.0優化紋理管理并提高梯度渲染保真度。
#### **用于高性能圖形的OpenGL ES 3.0**
Android 4.3引入了[Khronos OpenGL ES 3.0](http://www.khronos.org/opengles/3_X/)的平臺支持,在支持的設備上為游戲和其他應用程序提供了最高性能的2D和3D圖形功能。您可以通過Android本機開發套件(NDK)使用框架API 或本機API綁定來利用OpenGL ES 3.0和相關的EGL擴展。
OpenGL ES 3.0中提供的關鍵新功能包括加速高級視覺效果,高質量的ETC2 / EAC紋理壓縮作為標準功能,具有整數和32位浮點支持的新版本GLSL ES著色語言,高級紋理渲染,和標準化的紋理尺寸和渲染緩沖區格式。
您可以使用OpenGL ES 3.0 API創建在各種兼容的Android設備上運行的高度復雜,高效的圖形,并且您可以在這些設備上支持單一的標準紋理壓縮格式。
OpenGL ES 3.0是一個可選功能,取決于底層的圖形硬件。Nexus 7(2013),Nexus 4和Nexus 10設備已經提供支持。
#### **增強的藍牙連接**
連接藍牙智能設備和傳感器
現在,您可以設計和構建與使用[藍牙智能技術](http://www.bluetooth.com/Pages/Bluetooth-Smart-Devices.aspx)的最新一代小型低功耗設備和傳感器進行交互的應用程序。

Android 4.3為您提供了一個用于與Bluetooth Smart設備交互的標準API。
Android 4.3引入了對Bluetooth Smart Ready的內置平臺支持,并提供了一組標準的API,應用程序可以使用這些API來發現附近的設備,查詢GATT服務以及讀/寫特性。
使用新的API,您的應用程序可以高效地掃描感興趣的設備和服務。對于每個設備,您可以通過UUID檢查支持的GATT服務,并通過設備ID和信號強度來管理連接。您可以連接到設備上托管的GATT服務器,讀取或寫入特征,或者注冊偵聽程序以在這些特征發生更改時接收通知。
您可以實現對任何GATT配置文件的支持。您可以根據需要讀取或寫入標準特性或添加對自定義特性的支持。您的應用程序可以作為客戶端或服務器,并可以在任一模式下傳輸和接收數據。這些API是通用的,因此您將能夠支持與各種設備(如鄰近標簽,手表,健身計,游戲控制器,遙控器,健康設備等)的交互。
在Nexus 7(2013)和Nexus 4設備上已經可以支持藍牙智能就緒,并且在未來幾個月內將會在越來越多的Android兼容設備中得到支持。
**AVRCP 1.3配置文件**
Android 4.3增加了對藍牙AVRCP 1.3的內置支持,因此您的應用程序可以支持與遠程流媒體設備進行更豐富的交互。媒體播放器等應用程序可以通過Android 4.0中引入的遠程控制客戶端API來利用AVRCP 1.3 。除了在通過藍牙連接的遠程設備上公開播放控件之外,應用程序現在還可以傳輸元數據,例如曲目名稱,作曲家和其他類型的媒體元數據。
AVRCP 1.3的平臺支持基于Google和Broadcom在Android 4.2中引入的Bluedroid藍牙協議棧。Nexus設備和其他Android兼容設備提供支持A2DP / AVRCP功能。
#### **支持受限配置文件**

平板電腦擁有者可以在“設置”中設置一個或多個受限制的配置文件并獨立管理它

您的應用可以提供限制,讓所有者在配置文件中運行時管理您的應用內容。
Android 4.3擴展了具有受限配置文件的平板電腦的多用戶功能,這是一種在單個設備上管理用戶及其功能的新方法。借助受限制的配置文件,平板電腦所有者可以為每個用戶快速設置 單獨的環境,并且可以在這些環境中提供的應用程序中管理更細粒度的限制。受限制的配置文件是朋友和家人,訪客用戶,信息亭,銷售點設備等的理想選擇。
每個受限制的配置文件都提供了一個隔離的安全空間,并擁有自己的本地存儲,主屏幕,小部件和設置。與用戶不同,配置文件是根據所有者安裝的應用程序和系統帳戶,從平板電腦所有者的環境創建的。所有者控制在新配置文件中啟用了哪些已安裝的應用程序,并且默認情況下禁止訪問所有者的帳戶。
需要訪問所有者帳戶的應用(登錄,首選項或其他用途)可以通過聲明清單屬性來選擇加入,并且所有者可以從配置文件配置設置中檢查和管理這些應用。
對于開發者來說,受限制的配置文件為用戶提供了更多的價值和控制權。您可以實施應用程序限制 - 應用程序支持的內容或功能控制 - 并在配置文件配置設置中將其通告給平板電腦所有者。
您可以使用預定義的布爾值,選擇和多選類型直接將應用限制添加到配置文件配置設置。如果您需要更多的靈活性,您甚至可以從配置文件配置設置啟動您自己的UI,以提供您想要的任何類型的限制。
當您的應用程序在配置文件中運行時,它可以檢查所有者配置的任何限制,并適當地執行它們。例如,媒體應用可能會提供一個限制,讓所有者為該配置文件設置成熟度級別。在運行時,應用程序可以檢查成熟度設置,然后根據首選的成熟度級別管理內容。
如果您的應用不適合在受限個人資料中使用,則可以選擇退出,以便您的應用無法在任何受限個人資料中啟用。
#### **優化的位置和傳感器功能**
[Google Play服務](https://developer.android.com/google/play-services/index.html) 提供了可在您的應用中使用的高級定位API。Android 4.3 在支持的設備上優化這些API,并具有最大限度減少電池使用的新硬件和軟件功能。
硬件geofencing通過在設備硬件中執行位置計算而不是在軟件中優化功率效率。在支持硬件地理圍欄的設備上,Google Play服務地理圍欄API將能夠利用此優化功能在設備移動時節省電量。
Wi-Fi只掃描模式是一種新的平臺優化,可讓用戶在不連接Wi-Fi網絡的情況下保持Wi-Fi掃描,以提高位置精度,同時節省電池。依靠Wi-Fi進行位置服務的應用程序現在可以要求用戶從Wi-Fi高級設置啟用“僅掃描”模式。Wi-Fi僅掃描模式不依賴于設備硬件,可作為Android 4.3平臺的一部分。
新的傳感器類型允許應用程序更好地管理傳感器讀數。一個游戲旋轉向量游戲開發者可感測裝置的旋轉,而不必擔心磁場干擾。 未校準的陀螺儀和未校準的磁力計傳感器報告原始測量值以及估計的應用偏差。
新的硬件功能已經在Nexus 7(2013)和Nexus 4設備上提供,任何設備制造商或芯片組供應商都可以將其構建到設備中。
#### **新的媒體功能**
#### **模塊化DRM框架**
為了滿足下一代媒體服務的需求,Android 4.3引入了模塊化DRM框架,使媒體應用程序開發人員能夠更加輕松地將DRM集成到自己的流媒體協議中,如MPEG DASH(基于HTTP的動態自適應流媒體,ISO / IEC 23009 -1)。
媒體DRM框架通過結合使用新API和現有API的增強功能,為管理許可和供應,訪問低級別編解碼器以及解碼加密媒體數據提供了一套完整的服務。新的MediaExtractor API可讓您獲取DASH媒體的PSSH元數據。使用媒體DRM框架的應用程序管理與許可證服務器的網絡通信,并處理來自內容庫的加密數據的流式傳輸。
#### **VP8編碼器**
Android 4.3引入了對VP8編碼的內置支持,可以從框架和本地API訪問。對于使用本地API的應用程序,該平臺包含OpenMAX 1.1.2擴展頭以支持VP8配置文件和級別。VP8編碼支持包括目標比特率,碼率控制,幀率,令牌分區,錯誤恢復,重構和環路濾波器的設置。平臺API以各種格式引入了VP8編碼器支持,因此您可以利用最適合您的內容的格式。
在運行Android 4.3的所有兼容設備上,軟件中都提供了VP8編碼。為了獲得最高性能,該平臺還支持在有能力的設備上進行硬件加速的VP8編碼。
#### **視頻編碼從表面**
從Android 4.3開始,您可以使用曲面作為視頻編碼器的輸入。例如,您現在可以將來自OpenGL ES表面的流引導到編碼器,而不必在緩沖區之間進行復制。
#### **媒體復合器**
應用程序可以使用新的媒體復用器API將基本音頻和視頻流合并到一個輸出文件中。目前,應用程序可以將單個MPEG-4音頻流和單個MPEG-4視頻流復用到一個MPEG-4輸出文件中。新的API是Android 4.2中引入的媒體多路分配API的對應物。
在遙控器客戶端播放進度和清理
由于Android 4.0,媒體播放器和類似的應用程序已經能夠提供遠程控制客戶端的回放控制,例如設備鎖定屏幕,通知和通過藍牙連接的遠程設備。從Android 4.3開始,這些應用程序現在可以通過遙控器客戶端顯示播放進度和速度,并接收命令跳轉到特定的播放位置。
#### **新的方法來建立美麗的應用程序**
#### **訪問通知**
通知一直是一個流行的Android功能,因為它們讓用戶可以在一個地方看到系統中的信息和更新。現在,在Android 4.3中,應用程序可以在用戶許可的情況下觀察通知流,并以任何他們想要的方式顯示通知,包括將通知發送到通過藍牙連接的附近設備。
您可以通過新的API訪問通知,這些API可以讓您注冊通知偵聽器服務并獲得用戶的許可,并可以在狀態欄中顯示通知。通知將全部提供給您,包括原始應用程序,發布時間,內容視圖和樣式以及優先級的所有詳細信息。您可以評估通知中感興趣的字段,處理或添加應用程序的上下文,并以您選擇的任何方式將其路由顯示。
當新的API添加,更新和刪除(或者因為用戶解雇了它或者原始應用程序撤銷了它),新的API會為您提供回調。您可以啟動附加到通知或其操作的任何意圖,也可以將其從系統中解除,從而允許您的應用程序提供完整的用戶界面來通知。
用戶仍然可以控制哪些應用可以接收通知。在任何時候,他們都可以在“設置”中查看哪些應用具有通知訪問權限,并根據需要啟用或禁用訪問權限。通知訪問在默認情況下是禁用的 - 應用程序可以使用新的Intent將用戶直接帶到“設置”以在安裝后啟用偵聽器服務。
#### **查看重疊**
現在,您可以在Views和ViewGroups之上創建透明疊加層,以呈現臨時View層次結構或瞬態動畫效果,而不會影響底層布局層次結構。當您要創建動畫(如在容器外滑動視圖或在屏幕上拖動項目而不影響視圖層次結構)時,疊加層特別有用。
#### **光學邊界布局模式**
新的布局模式可以讓您根據視域的光學邊界而不是視頻邊界來管理視圖內的視圖的位置。剪輯邊界表示一個小部件的實際外部邊界,而新的光學邊界描述了小部件在剪輯邊界內的位置。您可以使用光學邊界布局模式來正確對齊使用外部視覺效果(如陰影和發光)的小部件。
#### **自定義旋轉動畫類型**
應用程序現在可以在設備旋轉時定義窗口上使用的退出和輸入動畫類型。您可以設置窗口屬性以啟用 跳轉,交叉漸變或 標準窗口旋轉。當窗口是全屏時,系統使用自定義動畫類型,而不被其他窗口覆蓋。
#### **屏幕方向模式**
應用可以為“活動”設置新的方向模式,以確保在設備翻轉時它們以正確的方向顯示。另外,應用程序可以使用新模式將屏幕鎖定到當前的方向。這對于使用相機的應用程序 在拍攝視頻時要禁用旋轉很有用 。
#### **意圖處理快速響應**
Android 4.3引入了一個新的公共意圖,它允許任何應用程序處理快速響應 - 用戶響應來電時發送的短信,無需接聽電話或解鎖設備。您的應用程序可以偵聽意圖,并通過消息傳遞系統將消息發送給調用者。意圖包括收件人(調用者)以及消息本身。
#### **支持國際用戶**


Android 4.3的更多部分針對RTL語言進行了優化。
#### **RTL改進**
Android 4.3包括RTL性能增強和跨框架UI小部件(包括ProgressBar / Spinner和ExpandableListView)的更廣泛的RTL支持。通過uiautomatorviewer工具可以看到更多的調試信息 。此外,現在有更多的系統UI組件可以感知RTL,比如通知,導航欄和Action Bar。
為了在RTL腳本中提供更好的全系統體驗,更多的默認系統應用程序現在支持RTL布局,包括啟動器,快速設置,電話,人員,設置向導,時鐘,下載等等。
#### **本地化的公用事業**

偽區域可以更容易地測試您的應用程序的本地化。
Android 4.3還包括用于創建更好的RTL字符串和測試本地化用戶界面的新工具和API。一個新的BidiFormatter 類為包裝Unicode字符串提供了一個簡單的API,以便RTL腳本數據在LTR區域消息中按照預期顯示,反之亦然。為了讓您在應用程序中更廣泛地使用此實用程序,BidiFormatter API現在也可通過Android SDK中的支持包提供給更早的平臺版本。
為幫助您管理跨語言環境的日期格式,Android 4.3包含一個新的getBestDateTimePattern()方法,該方法自動為您指定的語言環境生成Unicode UTS日期的最佳本地化表單。這是為用戶提供更本地化體驗的一種便捷方式。
為了幫助您在其他語言環境中更輕松地測試您的應用,Android 4.3引入了偽區域作為新的開發人員選項。偽區域模擬與語言環境或語言組關聯的語言,腳本和顯示特征。目前,您可以使用Accented English的偽語言環境進行測試,通過該語言,您可以查看UI如何與各種歐洲語言中使用的腳本重音和字符配合使用。
#### **輔助功能和UI自動化**
從Android 4.3開始,輔助功能服務可以觀察和過濾關鍵事件,例如處理鍵盤快捷鍵或通過基于手勢的輸入提供導航奇偶校驗。該服務接收事件,并可以在傳遞給系統或其他安裝的應用程序之前根據需要處理它們。
輔助功能服務可以聲明新的功能屬性 來描述他們的服務可以做什么以及他們使用什么平臺功能。例如,他們可以聲明過濾關鍵事件,檢索窗口內容,啟用觸摸瀏覽或啟用Web輔助功能的功能。在某些情況下,服務必須聲明一個功能屬性,然后才能訪問相關的平臺功能。系統使用該服務的能力屬性為用戶生成一個選擇性對話框,以便他們在發布前可以看到并同意這些能力。
基于Android 4.3的可訪問性框架,新的UI自動化框架可以讓測試通過模擬用戶操作和反思屏幕內容來與設備的用戶界面進行交互。通過UI自動化框架,您可以執行基本操作,設置屏幕旋轉,生成輸入事件,截屏等等。這是在真實的用戶場景中自動進行測試的強大方式,包括跨多個應用程序的動作或序列。
#### **企業和安全**
#### **WPA2-Enterprise網絡的Wi-Fi配置**
應用程序現在可以配置連接到WPA2企業接入點所需的Wi-Fi憑據。開發人員可以使用新API為企業中使用的身份驗證方法配置可擴展身份驗證協議(EAP)和封裝的EAP(階段2)憑據。有權訪問和更改Wi-Fi的應用程序可以配置各種EAP和第2階段身份驗證方法的身份驗證憑據。
**用SELinux加強Android沙箱**
Android現在使用SELinux,Linux內核中的強制訪問控制(MAC)系統來擴充基于UID的應用程序沙箱。這可以保護操作系統免受潛在的安全漏洞影響。
**KeyChain增強功能**
KeyChain API現在提供了一種方法,允許應用程序確認系統級密鑰綁定到設備的硬件信任根。這提供了創建或存儲無法從設備導出的私鑰的地方 ,即使在根或內核受到損害的情況下也是如此。
**Android密鑰庫提供者**
Android 4.3引入了一個keystore提供者和API,允許應用程序創建專用密鑰。使用這些API,應用程序可以創建或存儲其他應用程序無法看到或使用的私鑰,并且可以將其添加到密鑰庫,而無需任何用戶交互。
Keystore提供程序提供了與KeyChain API為系統范圍的憑證提供的相同的安全性好處,例如將憑證綁定到設備。密鑰庫中的私鑰不能從設備中導出。
**從Android應用程序限制Setuid**
這個/system分區現在被安裝nosuid為zygote-spawned進程,阻止Android應用程序執行 setuid程序。這減少了根攻擊面和潛在的安全漏洞的可能性。
#### **分析績效的新方法**

Systrace使用新的命令語法,并允許您收集更多類型的分析數據。
#### **增強的Systrace日志記錄**
Android 4.3支持 更易于使用的Systrace工具的增強版本,使您可以訪問更多類型的信息來分析應用程序的性能。您現在可以從硬件模塊,內核函數, Dalvik VM(包括垃圾收集,資源加載等)收集跟蹤數據 。
Android 4.3還包含新的跟蹤API,您可以在您的應用程序中使用這些API來標記要使用Systrace 開始/結束事件跟蹤的特定代碼段。當代碼的標記部分執行時,系統將開始/結束事件寫入跟蹤日志。對應用程序性能的影響最小,因此所報告的時間可以準確地查看您的應用程序正在執行的操作。
您可以在Systrace輸出文件的時間線中可視化應用程序特定事件,并在其他內核和用戶空間跟蹤數據的上下文中分析事件。與現有的Systrace標簽一起,自定義應用程序部分可以為您提供了解應用程序的性能和行為的新方法。

Android 4.3中的屏幕GPU分析。

#### **屏幕上的GPU分析**
Android 4.3添加了新的開發人員選項,可幫助您分析應用程序的性能,并確定任何設備或模擬器上的渲染問題。
在配置文件GPU渲染選項中,您現在可以在應用程序運行時在屏幕上可視化您的應用程序的有效幀率。您可以選擇將分析數據顯示為屏幕上的條形圖或線形圖,其顏色表示繪制命令(藍色)所用的時間,發出命令(橙色)以及等待命令完成(黃色)。系統不斷更新屏幕圖形,顯示每個可見活動的圖形,包括導航欄和通知欄。
綠線突出顯示渲染操作的16ms閾值,因此您可以評估您的應用程序的有效幀率,相對于60 fps的目標(因為1/60秒等于大約16ms)。如果您看到跨越綠線的操作,則可以使用Systrace和其他工具進一步分析它們。
> 在運行Android 4.2及更高版本的設備上,默認情況下隱藏開發人員選項。您可以隨時 在任何兼容的Android設備上點擊“設置”>“關于手機”>“內部版本號” 7次以顯示這些內容。
**文件URI的StrictMode警告**
StrictMode工具的最新增加了一個策略約束,當您的應用程序file://向系統或其他應用程序公開URI 時會發出警告。在某些情況下,接收應用程序可能無法訪問file:// URI路徑,因此在應用程序之間共享文件時,content://應使用URI(具有適當的權限)。這個新的政策可以幫助你捕捉和修復這種情況。如果您正在尋找一種方便的方式來存儲文件并將其展示給其他應用程序,請嘗試使用[支持庫中](https://developer.android.com/tools/support-library/index.html) FileProvider提供的內容提供程序。
- 前言
- Google官網對Android API各版本的介紹
- jelly Bean(果凍豆)Android 4.1、4.2、4.3
- Android 4.1
- Android 4.2
- Android 4.3
- KitKat(Android 4.4.*)巧克力
- Android 4.4 APIS
- Lollipop(棒棒糖)Android 5.*
- Android 5.0 APIs
- Android 5.0 Changes(變更)
- Android 5.1APIs
- Marshmallow(棉花糖)Android 6.0
- Android 6.0 APIs
- Android 6.0 Changes(變更)
- Android 6.0 Samples
- Android 6.0 Testing
- Nougat(牛扎塘)Android 7.*
- Android 7.0
- API
- 行為變更
- 示例
- Android 7.1
- 開發者API
- 示例Sample
- Oreo(奧利奧)8.*
- Android 8.0
- 功能和 API
- Android 8.0 行為變更
- 向 Android 8.0 遷移應用
- Android 8.0 示例
- Android 8.1
- 后臺執行限制
- 后臺位置限制
- API指南
- Android 簡介
- 應用基礎知識
- 設備兼容性
- 系統權限
- 請求權限
- 定義權限
- 平臺架構
- Java8 概覽
- 在ART上驗證應用行為
- 應用組件
- Intent 和 Intent 過濾器(Google官網介紹)
- 通用intent
- Activity
- 任務和返回棧(官網譯文)
- 概覽屏幕
- 活動簡介
- 活動生命周期
- 活動狀態更改
- 進程和應用程序生命周期
- 包裹和捆綁
- 最近的屏幕
- 片段
- 加載器
- 服務Service
- 綁定服務
- AIDL
- 內容提供程序
- 內容提供程序基礎知識
- 創建內容提供程序
- 日歷提供程序
- 聯系人提供程序
- 存儲訪問框架
- 使用存儲訪問框架打開文件
- 創建自定義文檔提供程序
- 應用小部件
- 應用小部件主機
- 進程和線程
- 應用資源
- 概覽
- 提供資源
- 訪問資源
- 處理運行時變更
- 本地化
- ICU4J Android框架API
- Android上的國際化
- 語言和語言區域
- 復雜的XML資源
- 資源類型
- 動畫
- 顏色狀態列表
- 可繪制對象
- 布局
- 菜單
- 字符串
- 樣式
- 其他類型
- 應用清單
- <action>
- <activity>
- <activity-alias>
- <application>
- <category>
- <compatiable-screens>
- <data>
- <grant-uri-permission>
- <intent-filter>
- <manifest>
- <meta-data>
- <path-permission>
- <permission>
- <permission-group>
- <permission-tree>
- <provider>
- <receiver>
- <service>
- <supporte-gl-texture>
- <supports-screens>
- <uses-configuration>
- <uses-feature>
- <uses-library>
- <uses-permission>
- <uses-permission-sdk-23>
- <uses-sdk>
- 用戶界面
- 界面概覽
- 界面布局
- 線性布局
- 相對布局
- 列表視圖
- 網格視圖
- 回收站視圖
- 外觀和感覺
- 可下載的字體
- XML中的字體
- 表情符號兼容性
- 自動調整TextView
- 樣式和主題-
- 輸入控件
- 按鈕
- 文本字段
- 復選框
- 單選按鈕
- 切換按鈕
- 微調框
- 選取器
- 輸入事件
- 菜單Menu
- 設置
- 對話框
- 通知
- Toast
- 自適應圖標
- 應用快捷方式
- 搜索
- 創建搜索界面
- 添加近期查詢建議
- 添加自定義建議
- 可搜索配置
- 多窗口支持
- 拖放
- 無障礙功能
- 為應用設置無障礙功能
- 無障礙功能開發者檢查單
- 構建無障礙服務
- 讓應用更容易訪問
- 使用節點樹調試
- 構建可訪問自定義視圖
- 樣式和主題
- 自定義組件
- 動畫和圖形
- 概覽介紹
- 屬性動畫
- 視圖動畫
- 可繪制動畫
- 畫布和可繪制對象
- 基于物理的動畫
- Spring Animation
- Fling Animation
- OpenGL ES
- 硬件加速
- 計算
- RenderScript
- 高級RenderScript
- Runtime API Reference(參考)
- Numerical Types(數字類型)
- Object Types(對象類型)
- Conversion Functions(轉換函數)
- Mathematical Constants and Functions(數學常量和函數)
- Vector Math Functions(矢量數學函數)
- Matrix Functions(矩陣函數)
- Quaternion Functions(四元數函數)
- Atomic Update Functions(原子更新函數)
- Time Functions and Types(時間函數和類型)
- Allocation Data Access Functions(分配數據訪問函數)
- Object Characteristics Functions(對象特性函數)
- Kernel Invocation Functions and Types(內核調用函數和類型)
- Input/Output Functions(輸入輸出函數)
- Debugging Functions(調試函數)
- Graphics Functions and Types(圖形函數和類型)
- Index(索引)
- Media Apps(媒體應用)
- Media Apps Overview(媒體應用程序概述)
- Working with a Media Session(使用媒體會話)
- Building an Audio App(建立一個音頻應用)
- Building a Media Browser Service(構建媒體瀏覽器服務)
- Building a Media Browser Client(構建媒體瀏覽器客戶端)
- Media Session Callbacks(媒體會話回調)
- Building a Video App(建立一個視頻應用)
- Building a Video Player Activity(建立一個視頻播放器Activity)
- Media Session Callbacks-(媒體會話回調)
- Responding to Media Buttons(響應媒體按鈕)
- Handling Changes in Audio Output(處理音頻輸出的變化)
- Managing Audio Focus(管理音頻焦點)
- The Google Assistant and Media Apps(Google智能助理和媒體應用)
- 媒體和相機
- Supported Media Formats(支持的媒體格式)
- MediaPlayer(媒體播放器)
- MediaRecorder
- ExoPlayer
- Controller Amplitude with VolumeShaper(VolumeShaper控制器振幅)
- Media Routing(媒體路由)
- MediaRouter API
- MediaRouteProvider API
- Camera API(相機API)
- 位置和傳感器
- Location and Maps(位置和地圖)
- Location Strategies(位置策略)
- Sensors Overview(傳感器概覽)
- Motion Sensors(運動傳感器)
- Position Sensors(位置傳感器)
- Environment Sensors(環境傳感器)
- Raw GNSS Measurements(原始的GNSS測量)
- 連接
- Bluetooth
- Bluetooth Low Energy(藍牙低功耗)
- NFC
- NFC Basics(NFC基礎知識)
- Advanced NFC(高級NFC)
- Host-based Card Emulation(基于主機的卡模擬)
- Telecom(電信)
- Self-Managed ConnectionServices(自我管理的連接服務)
- Wi-Fi P2P
- Wi-Fi Aware
- Companion Device Pairing
- USB
- Accessory(配件)
- Host(主機)
- SIP
- 文本和輸入
- Autofill Framework(自動填充框架)
- Test your app with autofill(使用自動填充測試你的應用)
- Building autofill services(構建自動填充服務)
- Copy and Paste(復制和粘貼)
- Creating an IME(創建IME)
- Image Keyboard(圖像鍵盤)
- Spelling Checker(拼寫檢查程序)
- 數據存儲
- Storage Options(存儲選項)
- Data Backup(數據備份)
- Account Transfer API(賬戶轉移API)
- Auto Backup(自動備份)
- Key/Value Backup(鍵值備份)
- Testing Backup and Restore(測試備份和還原)
- App Install Location(應用安裝位置)
- 庫
- 支持庫
- 功能
- 修訂歷史記錄
- 庫設置
- 數據綁定庫
- 測試支持庫
- 管理
- 設備策略
- 網絡應用
- Supporting Different Screens in Web Apps(在網絡應用中支持不同屏幕)
- Building Web Apps in WebView(在WebView中構建網絡應用)
- Managing WebViews
- Migrating to WebView in Android 4.4(遷移到Android4.4中的WebView)
- Debugging Web Apps(調試網絡應用)
- Best Practices for Web Apps(網絡應用最佳做法)
- 最佳實踐
- Supporting Multiple Screens(支持多種屏幕)
- Distributing to Specific Screens(分配到特定屏幕)
- Screen Compatibility Mode(屏幕兼容性模式)
- Designing for Seamlessness
- Supporting Tablets and Handsets
- 培訓