API 級別:21
Android 5.0 (LOLLIPOP) 也為使用者和應用程式開發人員提供了新功能本文件提供 介紹最著名的全新 API
如果您已發布應用程式,請務必查看 Android 5.0 行為 這些異動事項在應用程式中。這些行為變更 即使您未使用新的 API,Android 5.0 裝置上的應用程式仍可能受到影響 或是指定新功能
如需概略瞭解新的平台功能 請參閱 Android Lollipop 重點摘要。
立即開發
如要開始建構適用於 Android 5.0 的應用程式,您必須先將 取得 Android SDK。然後使用 SDK Manager 下載 Android 5.0 SDK 平台和系統映像檔
更新目標 API 級別
為了針對搭載 Android 5.0 的裝置進一步最佳化應用程式,
將「targetSdkVersion
」設為
"21"
,請在 Android 裝置上安裝您的應用程式
5.0 系統映像檔測試,然後發布更新過的應用程式。
這項變更。
你可以使用 Android 5.0 API,同時支援舊版 API
並在程式碼中新增要檢查系統 API 級別的條件。
執行 minSdkVersion
不支援的 API 之前。
如要進一步瞭解如何維持回溯相容性,請參閱支援
不同平台版本:
如要進一步瞭解 API 級別的運作方式,請參閱「什麼是 API? 關卡?
重要行為異動
如果您先前曾發布 Android 應用程式,請注意,Android 5.0 的異動可能會影響該應用程式。
如需完整資訊,請參閱 Android 5.0 變更。
使用者介面
Material Design 支援
Android 5.0 開始支援全新的 Material Design 。您可以運用 Material Design 製作視覺效果豐富的應用程式 會造成 UI 元素轉場效果,讓使用者覺得自然這項支援包括:
- 質感主題
- 查看陰影
RecyclerView
小工具- 可繪製動畫和樣式效果
- Material Design 動畫和活動轉換效果
- 根據檢視畫面狀態顯示檢視畫面屬性的動畫器
- 使用由您控制的調色盤自訂 UI 小工具和應用程式列
- 根據 XML 向量圖形建立動畫和非動畫可繪項目
如要進一步瞭解如何在應用程式中加入 Material Design 功能,請參閱 Material Design:
「最近使用」畫面中的並行文件和活動
在先前版本中,
最近螢幕
只能在使用者互動的每個應用程式中顯示一項工作
最新。現在應用程式可以視需要開啟更多工作
文件的並行活動這項功能有助於多工處理
可讓使用者在個別活動和文件之間快速切換
查看最近使用的畫面,並在所有應用程式間提供一致的切換體驗。
這類並行工作的範例包括網頁中開啟的分頁
以及效率提升應用程式中的文件,在
或訊息應用程式中的即時通訊應用程式可以管理工作
透過 ActivityManager.AppTask
類別移除物件。
插入邏輯中斷情形,讓系統將活動視為新活動
工作,請在下列情況下使用 FLAG_ACTIVITY_NEW_DOCUMENT
使用 startActivity()
啟動活動。您也可以透過設定
<活動>
將元素的 documentLaunchMode
屬性設為 "intoExisting"
,或
"always"
。
為避免「最近使用」畫面看起來雜亂無章,你可以設定
以及在應用程式中顯示的工作方法很簡單,只要將
<應用程式>
android:maxRecents
屬性。目前
每個使用者最多只能指定 50 項工作 (低 RAM 裝置則為 25 項)。
你可以將「最近使用」畫面中的工作設為在重新啟動後保留。為了控制
持續性行為時,請使用
android:persistableMode
屬性。你也可以變更
近期畫面中活動的視覺屬性,例如
呼叫
setTaskDescription()
方法。
WebView 更新
Android 5.0 更新 WebView
為 Chromium M37 導入多項功能,不但安全性和穩定性也有所提升,
並修正錯誤預設的
在 Android 5.0 上執行的 WebView
已
已更新,現在加入 37.0.0.0 版本編號。
這個版本導入了 PermissionRequest
類別。
,應用程式可以授予 WebView
權限
透過 Web API 存取相機和麥克風等受保護的資源
getUserMedia()。您的應用程式必須具備適當的
這些資源的 Android 權限,以便授予
WebView
。
使用新的 onShowFileChooser()
方法時
您現在可以使用 WebView
中的輸入表單欄位
然後啟動檔案選擇器,從 Android 裝置中選取圖片和檔案。
此外,這個版本支援 WebAudio、 WebGL 和 WebRTC 開放標準。 如要進一步瞭解此版本包含的新功能,請參閱 Android 版 WebView。
螢幕畫面擷取與共享功能
Android 5.0 版本支援螢幕擷取和螢幕畫面分享功能,
在應用程式中使用新的 android.media.projection
API。這項功能
舉例來說,如果您想啟用影片的分享螢幕畫面功能
會議通訊應用程式。
新的 createVirtualDisplay()
方法
允許應用程式擷取主畫面的內容 (這是預設選項)
顯示) 放入 Surface
物件中,
傳送的資料這個 API 僅允許擷取不安全的畫面
而非系統音訊如要開始擷取螢幕畫面,應用程式必須先行
使用
Intent
透過
createScreenCaptureIntent()
方法。
如需如何使用新 API 的範例,請參閱 MediaProjectionDemo
部分類別
通知
螢幕鎖定通知
Android 5.0 的螢幕鎖定功能可用於分享 通知。使用者可以透過「設定」選擇是否允許 顯示在安全的螢幕鎖定畫面上。
應用程式可控制要顯示的通知內容詳細程度
顯示在安全螢幕鎖定畫面上。如要控制瀏覽權限層級,請呼叫
「setVisibility()
」和
請指定下列其中一個值:
VISIBILITY_PRIVATE
: 顯示通知圖示等基本資訊,但隱藏 通知的完整內容VISIBILITY_PUBLIC
: 顯示通知的完整內容。VISIBILITY_SECRET
: 不會顯示任何內容,但不會顯示通知圖示。
如果顯示設定層級為 VISIBILITY_PRIVATE
,
也可以提供遮蓋過的通知
隱藏個人資訊的內容例如,簡訊應用程式可能會顯示
顯示「你有 3 則新簡訊」的通知但會隱藏訊息
內容與寄件者如要提供這則替代通知,請先建立
使用 Notification.Builder
進行替換通知。時間
即可建立私人通知物件
透過 kubectl 指令
setPublicVersion()
方法。
通知中繼資料
Android 5.0 會使用與應用程式通知相關聯的中繼資料
,以更聰明的方式排序通知。如要設定中繼資料,請呼叫
當您執行下列 Notification.Builder
中的方法時
建構通知:
setCategory()
:告知系統如何在以下情況發生時處理應用程式通知 裝置處於優先順序模式 (例如,如果通知代表 來電、即時訊息或鬧鐘)。setPriority()
: 將通知標示為與一般通知相比的重要性或較低。 通知,優先欄位設為PRIORITY_MAX
或PRIORITY_HIGH
出現在 小型浮動視窗 (如果通知也音效或震動)。addPerson()
:可讓您新增一或多位與通知相關的使用者。 應用程式可以使用此功能告知系統應歸為一組 來自指定使用者的通知,或將來自這些使用者的通知排名 因為不是比較重要
圖形
支援 OpenGL ES 3.1
Android 5.0 新增了 Java 介面和對 OpenGL 的原生支援 ES 3.1。OpenGL ES 3.1 提供的主要新功能包括:
- 運算著色器
- 分隔著色器物件
- 間接繪圖指令
- 多重取樣和模板紋理
- 改善著色語言
- 適用於進階混合模式和偵錯的擴充功能
- 與 OpenGL ES 2.0 和 3.0 回溯相容
我們在 Android 上提供適用於 OpenGL ES 3.1 的 Java 介面,
GLES31
。使用 OpenGL ES 3.1 時,請確定您
使用
<uses-feature>
標記和 android:glEsVersion
屬性。例如:
<manifest> <uses-feature android:glEsVersion="0x00030001" /> ... </manifest>
如需更多關於使用 OpenGL ES 的資訊,包括如何檢查 裝置支援的 OpenGL ES 版本,請參閱 OpenGL ES API 指南。
Android 擴充功能套件
除了 OpenGL ES 3.1 之外,這個版本還提供提供
Java 介面和對進階圖形功能的原生支援。這些
擴充功能會將 Android 視為單一套件。(如果
有 ANDROID_extension_pack_es31a
個擴充功能,則您的應用程式可
假設套件中的所有擴充功能都存在並啟用陰影語言
並透過單一 #extension
陳述式來標記功能)。
擴充功能包支援:
- 保證讓片段著色器支援著色器儲存空間緩衝區、圖片和 atomics (在 OpenGL ES 3.1 中不一定要支援片段著色器)。
- 茶敘和幾何著色器
- ASTC (LDR) 紋理壓縮格式
- 每樣本內插值和著色
- 框架緩衝區中每種色彩附件的各種混和模式
系統會透過
GLES31Ext
。您可以在應用程式資訊清單中宣告
應用程式只能安裝在支援擴充功能包的裝置上。
例如:
<manifest> <uses-feature android:name=“android.hardware.opengles.aep” android:required="true" /> ... </manifest>
媒體
具備進階相機功能的 Camera API
Android 5.0 導入了
android.hardware.camera2
協助您微調相片及處理圖片的 API。您現在可以
透過程式存取系統可存取的相機裝置
getCameraIdList()
並透過 VPN 連線至特定裝置
openCamera()
。
如要開始拍攝圖片,請建立 CameraCaptureSession
並指定 Surface
物件來傳送拍攝的圖片。
CameraCaptureSession
可設為
連拍單照或多張相片。
如要在新圖片拍攝時收到通知,請導入
CameraCaptureSession.CaptureCallback
聽眾
並在擷取要求中設定系統完成映像檔時
擷取要求,您的CameraCaptureSession.CaptureCallback
接聽程式時,
onCaptureCompleted()
,
取得圖片擷取中繼資料
CaptureResult
。
CameraCharacteristics
類別可讓您
應用程式會偵測裝置上可用的相機功能。物件的
INFO_SUPPORTED_HARDWARE_LEVEL
屬性代表相機的功能等級。
- 所有裝置至少支援
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY
硬體層級,具備相關功能 大致等同於已淘汰的Camera
也能使用 Google Cloud CLI 或 Compute Engine API - 支援
INFO_SUPPORTED_HARDWARE_LEVEL_FULL
硬體等級的裝置可手動進行 掌握拍攝和後置處理,以及拍攝高解析度圖片 因此遊戲能以高畫面更新率運作
想瞭解如何使用
相機
API,請參閱 Camera2Basic
和 Camera2Video
實作
樣本
音訊播放
此版本包含下列變更:
AudioTrack
:
- 您的應用程式現在可以提供浮點格式的音訊資料
(
ENCODING_PCM_FLOAT
)。這個 可允許更大的動態範圍、更加一致的精確度以及更大的進步空間。 在中間計算時,浮點算術特別實用。 播放端點針對音訊資料採用整數格式,位元深度較低。 (在 Android 5.0 中,部分內部管道尚未定案 浮點值) - 您的應用程式現在可以在以下位置,以
ByteBuffer
形式提供音訊資料: 與MediaCodec
提供的格式相同。 WRITE_NON_BLOCKING
這個選項可簡化部分應用程式的緩衝處理和多執行緒作業。
媒體播放控制項
使用新的通知和媒體 API,確保
系統 UI 會知道媒體播放,並可擷取及顯示專輯封面。
使用全新的
「MediaSession
」和
MediaController
類別。
新的 MediaSession
類別會取代
已淘汰的 RemoteControlClient
類別,並提供
一組用於處理傳輸控制項和媒體按鈕的回呼方法。
如果您的應用程式提供媒體播放功能,並在 Android 裝置上執行
電視節目或
Wear 平台,請使用
用於處理交通方式的 MediaSession
類別
控制項控制項,
您現在可以使用新版應用程式,打造自己的媒體控制器應用程式。
MediaController
類別。這個類別提供
透過符合執行緒安全的做法,從應用程式的 UI 程序監控及控制媒體播放。
建立控制器時,請指定 MediaSession.Token
物件,讓應用程式能與指定的 MediaSession
互動。
使用 MediaController.TransportControls
方法時
可以傳送 play()
、
stop()
,
skipToNext()
,
和 setRating()
控制該工作階段的媒體播放有了控制器
註冊 MediaController.Callback
物件
監聽工作階段的中繼資料和狀態變更
此外,你可以建立資訊豐富的通知,允許播放控制項
繫結於使用新版Notification.MediaStyle
的媒體工作階段
類別
媒體瀏覽
Android 5.0 推出了應用程式瀏覽媒體內容的功能
安裝新的應用程式庫
android.media.Browsing
也能使用 Google Cloud CLI 或
Compute Engine API如要在應用程式中公開媒體內容,請擴充
MediaBrowserService
類別。實作
「MediaBrowserService
」應提供存取權
MediaSession.Token
,這樣應用程式才能播放媒體內容
從你的服務中移除
如要與媒體瀏覽器服務互動,請使用
MediaBrowser
類別。指定元件
建立 MediaSession
名稱時
MediaBrowser
執行個體。使用該瀏覽器執行個體
您的應用程式就能連結至關聯服務,並取得
用來播放公開內容的 MediaSession.Token
物件
透過該服務取得您所需的資金
儲存空間
目錄選取
Android 5.0 擴充了 儲存空間存取架構 允許使用者選取整個目錄子樹狀結構,將讀取/寫入權限授予應用程式 ,無需使用者確認。
如要選取目錄子樹狀結構,請建構並傳送
OPEN_DOCUMENT_TREE
意圖。系統會顯示
DocumentsProvider
執行個體支援子樹狀結構選取功能
讓使用者瀏覽並選取目錄傳回的 URI 代表
可存取所選子樹狀結構接著,您可以使用 buildChildDocumentsUriUsingTree()
和buildDocumentUriUsingTree()
以及
query()
探索子樹狀結構
透過新的 createDocument()
方法,您可以在任何位置建立新的文件或目錄
然後在子樹狀結構底下。如要管理現有文件,請使用
「renameDocument()
」和
deleteDocument()
。
檢查 COLUMN_FLAGS
,在發出這類呼叫前,先確認供應商是否支援。
如果您要實作 DocumentsProvider
支援子樹狀結構選取功能,實作 isChildDocument()
並加入 FLAG_SUPPORTS_IS_CHILD
在您的 COLUMN_FLAGS
。
Android 5.0 還推出了新的套件專屬目錄
共用儲存空間,供應用程式存放媒體檔案
MediaStore
。而
getExternalMediaDirs()
會傳回這些路徑的路徑
所有共用儲存裝置中的目錄類似
getExternalFilesDir()
,
應用程式不需要其他權限即可存取傳回的路徑。
平台會定期掃描這些目錄中的新媒體,但您也可以
使用 MediaScannerConnection
明確掃描
內容。
無線與連線方式
多個網路連線
Android 5.0 提供全新的多網路 API,讓您的應用程式 能動態掃描具備特定功能的可用網路 建立關係當您的應用程式 需要特殊網路,例如 SUPL、MMS 或電信代扣網路。 或是想使用特定類型的傳輸通訊協定傳送資料
如要從應用程式動態選取網路並連線,請遵循下列步驟: 步驟:
- 建立
ConnectivityManager
。 - 使用
NetworkRequest.Builder
類別建立NetworkRequest
物件,然後指定網路功能 以及應用程式感興趣的傳輸類型 - 如要掃描合適的網路,請呼叫
requestNetwork()
或registerNetworkCallback()
,然後將NetworkRequest
物件以及ConnectivityManager.NetworkCallback
。使用requestNetwork()
方法,用於在偵測到裝置後主動切換至合適的網路;以便接收 僅顯示已掃描網路的通知,且不會主動切換,請使用registerNetworkCallback()
方法。
系統偵測到合適的網路時,就會連線至網路
會叫用
onAvailable()
回呼。您可以使用回呼中的 Network
物件,
取得網路的其他資訊,或引導流量使用
所選網路。
藍牙低功耗
Android 4.3 引進了多種平台的平台支援 藍牙低功耗 (藍牙 LE)。在 Android 5.0 中,Android 裝置現在可以 充當藍牙 LE 週邊裝置。應用程式可以使用這項功能 ,讓鄰近裝置知道其所在位置。例如,您可以建構應用程式 可讓裝置做為計步器或健康監測器運作,並能 與其他藍牙 LE 裝置分享資料。
新的 android.bluetooth.le
API 可讓您的應用程式廣播
透過附近的藍牙投放廣告、掃描回覆內容及建立連線
LE 裝置。如要使用新的廣告和掃描功能,請在
BLUETOOTH_ADMIN
權限。當使用者從 Play 商店更新或下載應用程式時
他們會要求將下列權限授予您的應用程式:
"藍牙連線資訊:允許應用程式控制藍牙
包括向附近的藍牙裝置廣播或取得相關資訊。」
開始透過藍牙 LE 廣告功能,讓其他裝置能偵測到
應用程式、呼叫
startAdvertising()
並傳入
AdvertiseCallback
類別。回呼物件
收到廣告營運成功或失敗的報表。
Android 5.0 導入了 ScanFilter
類別,因此
應用程式只能掃描
感興趣的特定類型的裝置開始掃描藍牙
LE 裝置,撥打 startScan()
並傳遞篩選器清單在方法呼叫中,您也必須提供
導入 ScanCallback
,以便在
發現藍牙 LE 廣告。
NFC 強化功能
Android 5.0 新增以下強化功能,以支援更多元和功能 NFC 的彈性使用方式:
- 「分享」選單現在可以使用 Android Beam。
- 應用程式可在使用者的裝置上叫用 Android Beam ,以便透過下列方式共用資料:
正在撥打
invokeBeam()
。 如此一來,使用者就不需要手動將裝置與其他裝置貼合 支援 NFC 的裝置以完成資料移轉。 - 您可以使用新的
createTextRecord()
方法建立包含 UTF-8 文字資料的 NDEF 記錄。 - 如果您開發的是付款應用程式,現在可以
呼叫
registerAidsForService()
。 您也可以使用setPreferredService()
來設定偏好卡片模擬服務 當特定活動在前景運作時。
Volta 專案
除了新功能外,Android 5.0 也著重於改善電池效能 生活。使用新的 API 和工具,瞭解並最佳化應用程式的強大效能 提高用量上限
排定工作
Android 5.0 提供全新 JobScheduler
可定義系統執行的工作,藉此最佳化電池續航力的 API
或在指定情況下 (例如當
裝置正在充電)。工作排程功能適用於下列情況:
- 應用程式有使用者以外的作業,您可以延後。
- 你想在裝置接上電源的情況下,讓應用程式支援這項功能。
- 這個應用程式有需要存取網路或 Wi-Fi 的工作 以獲得最佳效能和最安全的連線
- 應用程式有哪些工作會想定期批次執行 排程。
工作單位是由 JobInfo
物件封裝。
這個物件會指定排程條件。
使用 JobInfo.Builder
類別來設定
應會執行您可以排定工作在特定條件下執行
條件,例如:
- 裝置充電時啟動
- 裝置連上非計量付費網路時啟動
- 裝置閒置時啟動
- 請在指定期限前看完,或至少延遲
例如,您可以新增這類程式碼,在 非計量付費網路:
Kotlin
val uploadTask: JobInfo = JobInfo.Builder( jobId, serviceComponent /* JobService component */ ).run { setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED) build() } val jobScheduler = context.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler jobScheduler.schedule(uploadTask)
Java
JobInfo uploadTask = new JobInfo.Builder(jobId, serviceComponent /* JobService component */) .setRequiredNetworkCapabilities(JobInfo.NETWORK_TYPE_UNMETERED) .build(); JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); jobScheduler.schedule(uploadTask);
如果裝置電源穩定 (也就是說,裝置已接上電源以便接收更多電力) 而電池目前電量為 良好健康狀態), 系統就會執行準備好執行的已排定工作 期限尚未過期。
如要查看 JobScheduler
API 的使用範例,
請參閱這個版本中的 JobSchedulerSample
實作範例。
電池用量的開發人員工具
新的 dumpsys batterystats
指令會產生有趣的結果
裝置電池用量的統計資料,依不重複使用者 ID 分類
(UID)。統計資料包括:
- 電池相關事件記錄
- 裝置的全域統計資料
- 每個 UID 和系統元件的概略耗電量
- 每個封包的每個應用程式行動毫秒數
- 系統 UID 匯總統計資料
- 應用程式 UID 匯總統計資料
請使用--help
選項,瞭解
自訂輸出內容例如列印電池用量
從裝置上次充電後,執行指定應用程式套件的統計資料
指令:
$ adb shell dumpsys batterystats --charged <package-name>
您可以使用
Battery Historian
對 dumpsys
指令輸出內容執行工具
從記錄檔產生電源相關事件的 HTML 視覺化內容。這個
資訊可協助你輕鬆瞭解及診斷電池
相關問題。
在工作場所和教育環境中使用 Android
受管理的佈建作業
Android 5.0 提供在 企業環境A 罩杯 裝置管理員 啟動受管理的佈建程序,以便新增共同簡報,但另外 如果使用者已有個人帳戶,裝置就會受管理設定檔。 與受管理設定檔建立關聯的應用程式會顯示在旁邊 使用者透過啟動器、最近使用畫面和通知查看未受管理的應用程式。
如要啟動代管佈建程序,請傳送
Intent
中的 ACTION_PROVISION_MANAGED_PROFILE
。如果
呼叫成功後,系統就會觸發
onProfileProvisioningComplete()
回呼。
接著,您就能呼叫 setProfileEnabled()
到
啟用這個受管理的設定檔。
根據預設,受管理的設定檔只會啟用一小部分的應用程式。
如要安裝受管理設定檔中的其他應用程式,請呼叫
enableSystemApp()
。
如果您開發的是啟動器應用程式,可以使用新的 LauncherApps
類別取得可啟動的活動清單。
輸入來源和關聯啟動器可以
在圖示上加上工作徽章,讓受管理應用程式的外觀更加顯眼
可繪項目。如要擷取標記圖示,請呼叫
getUserBadgedIcon()
。
要瞭解如何使用新功能,請參閱
這個版本的 BasicManagedProfile
實作範例。
裝置擁有者
Android 5.0 推出了部署裝置擁有者應用程式的功能。一部裝置
擁有者是專門用來處理
裝置管理員
您可以建立及移除次要使用者,以及
在裝置上調整全域設定。裝置擁有者應用程式可以使用
DevicePolicyManager
類別中的方法
精細控管受管理裝置上的設定、安全性和應用程式。
每部裝置一次只能有一位使用中的裝置擁有者。
如要部署及啟用裝置擁有者,您必須執行 NFC 資料傳輸 從程式設計應用程式存取裝置至裝置 時間。這項資料移轉傳送的資訊與佈建意圖相同 相關說明。
螢幕固定
Android 5.0 版推出了全新的螢幕固定 API,可讓您暫時使用 禁止使用者離開您的工作或受到通知幹擾。 舉例來說,如果你開發一款教育應用程式 在 Android 上支援高風險評估要求,或支援單一用途 。應用程式啟用螢幕固定功能後,使用者就無法看到 通知、存取其他應用程式或返回主畫面 直到應用程式結束模式
啟用螢幕固定功能的方法有兩種:
- 手動:使用者可以啟用螢幕固定功能 設定 >安全性 >螢幕固定,然後選取所需工作 圖釘。
- 透過程式輔助方式:啟用螢幕固定功能
透過程式輔助方式呼叫
startLockTask()
即可。如果提出要求的應用程式不是裝置擁有者,系統會提示使用者 進行確認。裝置擁有者應用程式可將setLockTaskPackages()
方法,讓使用者不需確認步驟即可固定應用程式。
啟用任務鎖定功能時,會發生以下行為:
- 狀態列空白,使用者通知和狀態資訊 隱藏。
- 系統會隱藏「主畫面」和「最近使用的應用程式」按鈕。
- 其他應用程式無法啟動新活動。
- 目前的應用程式可以啟動新活動,前提是這麼做 建立新工作
- 裝置擁有者叫用螢幕固定時,使用者會保持鎖定狀態
直到應用程式呼叫
stopLockTask()
。 - 非裝置擁有者的其他應用程式啟用了螢幕固定功能,或 使用者直接按下「返回」和「最近」按鈕,即可退出。
列印架構
將 PDF 轉譯為點陣圖
您現在可以透過
使用新的 PdfRenderer
類別。您必須指定
可搜尋的 ParcelFileDescriptor
(即內容)
隨機存取),系統就會寫入可列印的內容。
您的應用程式可透過以下方式取得轉譯頁面:
openPage()
,然後撥號
render()
將開啟的 PdfRenderer.Page
轉換成點陣圖。個人中心
如果您只想轉換一部分的
轉換為點陣圖圖像 (例如,
並排顯示
即可放大文件)。
如需如何使用新 API 的範例,請參閱 PdfRendererBasic
樣本。
系統
應用程式使用統計資料
你現在可以透過以下程式,在 Android 裝置上存取應用程式使用記錄:
全新 android.app.usage
API。這個 API 提供更詳細的使用方式
大於
getRecentTasks()
方法。
如要使用這個 API,您必須先宣告
"android.permission.PACKAGE_USAGE_STATS"
權限。
使用者也必須透過「設定」頁面啟用這個應用程式的存取權。安全性 >應用程式
授予使用權限
系統會針對個別應用程式收集使用資料, 按月、每週、每月和每年間隔內的資料。時間長度上限 系統會保留資料如下:
- 每日資料:7 天
- 每週資料:4 週
- 每月資料:6 個月
- 每年資料:2 年
系統會記錄每個應用程式的下列資料:
- 上次使用應用程式的時間
- 在該時間間隔內,應用程式在前景運作的總時間長度 (按日、週、月或年)
- 擷取元件 (透過套件和活動名稱識別) 的時間戳記 1 天移至前景或背景
- 擷取裝置設定變更的時間戳記 (例如 裝置螢幕方向因旋轉而變更)
測試與無障礙功能
改善測試和無障礙功能
Android 5.0 新增下列測試支援 無障礙功能:
- 新的
getWindowAnimationFrameStats()
和getWindowContentFrameStats()
方法會擷取視窗動畫和內容的影格統計資料。這些方法 可用來撰寫檢測設備測試,評估應用程式是否轉譯 保持適當重新整理頻率,提供流暢的使用者體驗。 - 而
executeShellCommand()
方法可讓您透過檢測設備測試執行殼層指令。 指令執行與在主機中執行adb shell
類似 會連線至裝置,因此您可以使用 shell 式工具,例如dumpsys
、am
、content
和pm
。 - 無障礙服務和使用 Accessibility API 的測試工具
(例如
UiAutomator
) 現在可以擷取 可互動的螢幕使用者如要擷取AccessibilityWindowInfo
物件,則呼叫新的getWindows()
方法。 - 新的
AccessibilityNodeInfo.AccessibilityAction
類別可讓您定義要對應用程式執行的標準或自訂動作AccessibilityNodeInfo
。 新的AccessibilityNodeInfo.AccessibilityAction
類別會取代先前在AccessibilityNodeInfo
。 - Android 5.0 讓您更精細地控管文字轉語音合成功能
新的
Voice
類別可讓應用程式 使用與特定語言、品質和延遲時間相關聯的語音設定檔 評分和文字轉語音引擎專屬參數
輸入法編輯器
輕鬆切換輸入語言
從 Android 5.0 開始,使用者可以更輕鬆切換
所有輸入內容
方法編輯器 (IME)。執行指定的
切換動作 (通常輕觸螢幕鍵盤上的地球圖示)
經由所有這類輸入法編輯器這項行為改變是由
shouldOfferSwitchingToNextInputMethod()
方法。
此外,架構現在會檢查下一個 IME 是否包含
以及該 IME 是否支援
輸入法編輯器)。一個
具有切換機制的 IME 不會切換到沒有切換機制的輸入法編輯器。這個
行為變化是由
switchToNextInputMethod()
方法。
如需使用新版輸入法編輯器切換 API 的範例,請參閱 在這個版本中更新了螢幕鍵盤實作範例。如要進一步瞭解 如何實作 IME 切換機制,請參閱 建立輸入法。
資訊清單宣告
可宣告的必要功能
現在
<uses-feature>
敬上
元素,確保應用程式只安裝在已安裝應用程式的裝置上
提供應用程式所需的功能
FEATURE_AUDIO_OUTPUT
FEATURE_CAMERA_CAPABILITY_MANUAL_POST_PROCESSING
FEATURE_CAMERA_CAPABILITY_MANUAL_SENSOR
FEATURE_CAMERA_CAPABILITY_RAW
FEATURE_CAMERA_LEVEL_FULL
FEATURE_GAMEPAD
FEATURE_LIVE_TV
FEATURE_MANAGED_USERS
FEATURE_LEANBACK
FEATURE_OPENGLES_EXTENSION_PACK
FEATURE_SECURELY_REMOVES_USERS
FEATURE_SENSOR_AMBIENT_TEMPERATURE
FEATURE_SENSOR_HEART_RATE_ECG
FEATURE_SENSOR_RELATIVE_HUMIDITY
FEATURE_VERIFIED_BOOT
FEATURE_WEBVIEW
使用者權限
下列權限現已支援
<uses-permission>
敬上
元素,宣告應用程式存取特定 API 所需的權限。
BIND_DREAM_SERVICE
:指定 API 時 21 及以上等級,則需要這項權限才能執行 Daydream 服務、 藉此確保只有系統可以繫結至該資料夾。