Cấp độ API: 9
Đối với nhà phát triển, Android 2.3
(GINGERBREAD
)nền tảng có sẵn dưới dạng
thành phần có thể tải xuống cho SDK Android. Nền tảng có thể tải xuống bao gồm thư viện Android và hình ảnh hệ thống, cũng như một bộ giao diện trình mô phỏng và nhiều nội dung khác. Để bắt đầu phát triển hoặc kiểm thử trên Android 2.3, hãy sử dụng Trình quản lý SDK Android để tải nền tảng xuống SDK của bạn.
Tổng quan về API
Các phần dưới đây cung cấp thông tin tổng quan về kỹ thuật của những tính năng mới dành cho nhà phát triển trong 2.3, bao gồm các tính năng mới và các thay đổi trong khung API kể từ phiên bản trước.
VoIP dựa trên SIP
Nền tảng này hiện bao gồm ngăn xếp giao thức SIP và API khung cho phép các nhà phát triển xây dựng các ứng dụng điện thoại internet. Khi sử dụng API này, các ứng dụng có thể cung cấp các tính năng gọi thoại mà không cần quản lý các phiên, giao tiếp cấp truyền tải hoặc âm thanh. Các tính năng này được API SIP và các dịch vụ của nền tảng xử lý một cách minh bạch.
API SIP có trong gói android.net.sip
. Lớp khoá là SipManager
, các ứng dụng sử dụng lớp này để thiết lập và quản lý hồ sơ SIP, sau đó bắt đầu cuộc gọi âm thanh và nhận cuộc gọi âm thanh. Sau khi thiết lập cuộc gọi âm thanh, các ứng dụng có thể tắt tiếng cuộc gọi, bật chế độ loa, gửi âm DTMF, v.v. Các ứng dụng cũng có thể sử dụng SipManager
để tạo các kết nối SIP chung.
Các dịch vụ và ngăn xếp SIP cơ bản của nền tảng này có trên các thiết bị tại
tuỳ ý của nhà sản xuất và nhà mạng liên kết. Vì lý do này,
ứng dụng nên dùng phương thức isApiSupported()
để kiểm tra xem có hỗ trợ SIP hay không trước khi
tiết lộ chức năng gọi cho người dùng.
Để sử dụng API SIP, ứng dụng phải yêu cầu người dùng cấp quyền chậm nhất vào ngày
khai báo <uses-permission
android:name="android.permission.INTERNET">
và <uses-permission
android:name="android.permission.USE_SIP">
trong tệp kê khai.
Ngoài ra, nhà phát triển có thể yêu cầu lọc trên Google Play, sao cho
ứng dụng của họ không thể phát hiện được đối với người dùng có thiết bị không bao gồm
ngăn xếp SIP và các dịch vụ của nền tảng. Để yêu cầu lọc, hãy thêm <uses-feature
android:name="android.software.sip"
android:required="true">
và <uses-feature
android:name="android.software.sip.voip">
vào tệp kê khai ứng dụng.
Để biết thêm thông tin, hãy đọc hướng dẫn dành cho nhà phát triển về SIP.
Giao tiếp phạm vi gần (NFC)
Android 2.3 bao gồm một ngăn xếp NFC và API khung cho phép nhà phát triển đọc thẻ NDEF được phát hiện khi người dùng chạm vào một thiết bị hỗ trợ NFC để gắn thẻ các phần tử được nhúng trong hình dán, áp phích thông minh và thậm chí là các thiết bị khác.
Nền tảng này cung cấp các dịch vụ NFC cơ bản hoạt động với phần cứng của thiết bị để khám phá thẻ khi thẻ đó nằm trong phạm vi. Khi khám phá một thẻ, nền tảng thông báo cho các ứng dụng bằng cách truyền phát một Ý định, thêm Thông báo NDEF đến Ý định dưới dạng dữ liệu bổ sung. Các ứng dụng có thể tạo Bộ lọc ý định để nhận dạng và xử lý các thẻ và thư được nhắm mục tiêu. Ví dụ: sau khi nhận được theo Ý định, ứng dụng trích xuất thông báo NDEF, lưu trữ chúng, cảnh báo người dùng hoặc xử lý chúng theo những cách khác.
NFC API có trong gói android.nfc
. Có các lớp chính:
NfcAdapter
, đại diện cho phần cứng NFC trên thiết bị.NdefMessage
, đại diện cho một thông báo dữ liệu NDEF, định dạng chuẩn trong đó "bản ghi" mang dữ liệu được truyền giữa thiết bị và thẻ. Ứng dụng có thể nhận các thông báo này từ Ý địnhACTION_TAG_DISCOVERED
.NdefRecord
, phân phối trong khoảngNdefMessage
, mô tả loại dữ liệu được chia sẻ và tự mang dữ liệu.
Giao tiếp NFC dựa vào công nghệ không dây trong phần cứng của thiết bị, vì vậy, việc hỗ trợ các tính năng NFC của nền tảng trên các thiết bị cụ thể là do nhà sản xuất thiết bị xác định. Để xác định tính năng hỗ trợ NFC trên thiết bị hiện tại, các ứng dụng có thể gọi isEnabled()
để truy vấn NfcAdapter
. API NFC luôn xuất hiện,
tuy nhiên, bất kể hỗ trợ phần cứng cơ bản là gì.
Để sử dụng NFC API, ứng dụng phải yêu cầu người dùng cấp quyền bằng cách khai báo <uses-permission
android:name="android.permission.NFC">
trong tệp kê khai.
Ngoài ra, nhà phát triển có thể yêu cầu lọc trên Google Play, sao cho
ứng dụng của họ không thể phát hiện được đối với người dùng có thiết bị không hỗ trợ
Công nghệ Giao tiếp phạm vi gần (NFC). Để yêu cầu lọc, hãy thêm
<uses-feature android:name="android.hardware.nfc"
android:required="true">
vào tệp kê khai của ứng dụng.
Để xem xét ứng dụng mẫu sử dụng API NFC, hãy xem Bản minh hoạ về NFC.
Con quay hồi chuyển và các cảm biến khác
Android 2.3 bổ sung tính năng hỗ trợ nền tảng và API cho một số loại đọc cảm biến mới – con quay hồi chuyển, vectơ xoay, gia tốc tuyến tính, trọng lực và áp kế. Các nhà phát triển có thể sử dụng các chỉ số cảm biến mới để tạo ra các ứng dụng phản hồi các thay đổi chính xác về vị trí và chuyển động của thiết bị một cách nhanh chóng và trơn tru. Chiến lược phát hành đĩa đơn API cảm biến báo cáo con quay hồi chuyển và các thay đổi khác đối với cảm biến đối với các ứng dụng, cho dù chúng đang chạy trên khung ứng dụng hay trong ứng dụng gốc .
Xin lưu ý rằng bộ cảm biến phần cứng cụ thể có trên thiết bị bất kỳ sẽ thay đổi tuỳ theo quyết định của nhà sản xuất thiết bị.
Nhà phát triển có thể yêu cầu lọc trên Google Play để người dùng không tìm thấy ứng dụng của họ nếu thiết bị của người dùng không có cảm biến con quay hồi chuyển. Để thực hiện việc này, hãy thêm <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
vào tệp kê khai ứng dụng.
Để biết thông tin chi tiết về API, hãy xem Sensor
.
Hỗ trợ nhiều camera
Giờ đây, các ứng dụng có thể sử dụng mọi máy ảnh có trên thiết bị để chụp ảnh hoặc quay video. Camera
cho phép các ứng dụng truy vấn số lượng máy ảnh có sẵn và các đặc điểm riêng biệt của từng máy ảnh.
- Lớp
Camera.CameraInfo
mới sẽ lưu trữ thông tin của một máy ảnh đặc điểm vị trí (hướng, mặt trước hoặc mặt sau). - Các phương thức
getNumberOfCameras()
vàgetCameraInfo()
mới trong lớpCamera
cho phép các ứng dụng truy vấn các máy ảnh có sẵn và mở máy ảnh mà chúng cần. - Phương thức
get()
mới cho phép các ứng dụng truy xuấtCamcorderProfile
của một máy ảnh cụ thể. getJpegEncodingQualityParameter()
mới cho phép các ứng dụng lấy cấp chất lượng chụp ảnh tĩnh cho một máy ảnh cụ thể.
Để xem mã mẫu truy cập vào máy ảnh mặt trước, hãy xem CameraPreview.java trong ứng dụng mẫu ApiDemos.
API Máy ảnh cũng thêm:
- Các thông số mới cho máy ảnh, bao gồm khoảng cách lấy nét, chế độ lấy nét và
fps tối đa/tối thiểu xem trước.
getFocusDistances()
,getPreviewFpsRange()
vàgetSupportedPreviewFpsRange()
mới để lấy các tham số máy ảnh, cũng nhưsetPreviewFpsRange()
để đặt tốc độ khung hình xem trước.
Hiệu ứng âm thanh có thể kết hợp
Khung nội dung đa phương tiện của nền tảng này hỗ trợ thêm các hiệu ứng âm thanh mới cho mỗi bản nhạc hoặc hiệu ứng âm thanh chung, bao gồm tăng âm trầm, ảo hoá tai nghe, cân bằng âm thanh và hiệu ứng dội lại.
- Gói
android.media.audiofx
mới cung cấp API để truy cập vào các hiệu ứng âm thanh. AudioEffect
mới là lớp cơ sở để kiểm soát hiệu ứng âm thanh do khung âm thanh của Android cung cấp.- Mã phiên âm thanh mới cho phép ứng dụng liên kết một tập hợp âm thanh
hiệu ứng với bản sao
AudioTrack
hoặcMediaPlayer
. - Hàm khởi tạo lớp
AudioTrack
mới cho phép bạn tạo mộtAudioTrack
có mã phiên cụ thể.attachAuxEffect()
,getAudioSessionId()
vàsetAuxEffectSendLevel()
mới . - Các phương thức
attachAuxEffect()
,getAudioSessionId()
,setAudioSessionId(int)
vàsetAuxEffectSendLevel()
mới cũng như các loại hỗ trợ.
Để xem mã mẫu cho hiệu ứng âm thanh, hãy xem AudioFxDemo.java trong ứng dụng mẫu ApiDemos.
Khung nội dung nghe nhìn cũng thêm:
- Hỗ trợ mới cho thẻ độ cao trong siêu dữ liệu EXIF cho tệp JPEG. Phương thức mới
getAltitude()
phương thức đến truy xuất giá trị của thẻ độ cao EXIF. - Phương thức
setOrientationHint()
mới cho phép ứng dụng choMediaRecorder
biết hướng trong quá trình quay video.
Trình quản lý tải xuống
Nền tảng này bao gồm một dịch vụ hệ thống DownloadManager
mới giúp xử lý các lượt tải xuống HTTP diễn ra trong thời gian dài. Các ứng dụng có thể yêu cầu tải một URI xuống một tệp đích cụ thể. DownloadManager
sẽ tiến hành tải xuống trong nền, xử lý các tương tác HTTP
và thử tải xuống lại sau khi không thành công hoặc qua các thay đổi về khả năng kết nối và hệ thống
khởi động lại.
- Các ứng dụng có thể lấy một thực thể của lớp
DownloadManager
bằng cách gọigetSystemService(String)
và truyềnDOWNLOAD_SERVICE
. Các ứng dụng yêu cầu tải xuống thông qua API này phải đăng ký một broadcast receiver choACTION_NOTIFICATION_CLICKED
để xử lý thích hợp khi người dùng nhấp vào một tệp tải xuống đang chạy trong thông báo hoặc từ giao diện người dùng Tải xuống. - Lớp
DownloadManager.Request
cho phép ứng dụng cung cấp tất cả thông tin cần thiết để yêu cầu tải xuống mới, chẳng hạn như URI yêu cầu và đích tải xuống. URI yêu cầu là yếu tố bắt buộc duy nhất . Xin lưu ý rằng đích tải xuống mặc định là một phương tiện dùng chung mà hệ thống có thể xoá tệp của bạn nếu cần lấy lại dung lượng để sử dụng hệ thống. Để lưu trữ liên tục của một tệp tải xuống, chỉ định một đích tải xuống trên bộ nhớ (xemsetDestinationUri(Uri)
). - Lớp
DownloadManager.Query
cung cấp các phương thức cho phép truy vấn ứng dụng và lọc các nội dung tải xuống đang hoạt động.
StrictMode
Để giúp nhà phát triển theo dõi và cải thiện hiệu suất của ứng dụng, nền tảng này cung cấp một cơ sở hệ thống mới có tên là StrictMode
.
Khi được triển khai trong một ứng dụng, StrictMode sẽ nắm bắt và thông báo cho
nhà phát triển ổ đĩa hoặc hoạt động mạng vô tình có thể làm suy giảm ứng dụng
hiệu suất, chẳng hạn như hoạt động diễn ra trên luồng chính của ứng dụng
(nơi nhận các thao tác trên giao diện người dùng và cũng diễn ra ảnh động).
Nhà phát triển có thể đánh giá các vấn đề về mức sử dụng mạng và ổ đĩa được nêu trong StrictMode và khắc phục các vấn đề đó nếu cần, giúp luồng chính phản hồi nhanh hơn và ngăn người dùng thấy hộp thoại ANR.
StrictMode
là lớp cốt lõi và là điểm tích hợp chính với hệ thống và máy ảo. Lớp này cung cấp các phương thức thuận tiện để quản lý luồng và chính sách máy ảo áp dụng cho thực thể.StrictMode.ThreadPolicy
vàStrictMode.VmPolicy
lưu giữ các chính sách mà bạn xác định và áp dụng cho luồng và thực thể máy ảo.
Để biết thêm thông tin về cách sử dụng StrictMode để tối ưu hoá ứng dụng, hãy xem tài liệu về lớp và mã mẫu tại android.os.StrictMode
.
Khung giao diện người dùng
- Hỗ trợ cuộn quá mức
- Hỗ trợ mới cho tính năng cuộn xuống trong Khung hiển thị và Tiện ích. Trong Khung hiển thị, ứng dụng có thể bật/tắt tính năng cuộn quá mức cho một khung hiển thị cụ thể, đặt chế độ ghi đè, kiểm soát khoảng cách cuộn quá mức và xử lý kết quả của việc cuộn quá mức.
- Trong tiện ích, các ứng dụng có thể kiểm soát các đặc điểm cuộn quá mức như ảnh động, hồi phục và khoảng cách cuộn quá mức. Để biết thêm thông tin, hãy xem
android.view.View
vàandroid.widget.OverScroller
. ViewConfiguration
cũng cung cấp các phương thứcgetScaledOverflingDistance()
vàgetScaledOverscrollDistance()
.overScrollMode
,overScrollFooter
mới và Thuộc tínhoverScrollHeader
cho các phần tử<ListView>
, để kiểm soát hành vi cuộn quá mức.
- Hỗ trợ lọc thao tác chạm
- Hỗ trợ mới cho tính năng lọc thao tác chạm, cho phép ứng dụng cải thiện tính bảo mật của Khung hiển thị cung cấp quyền truy cập vào chức năng nhạy cảm. Ví dụ: tính năng lọc thao tác chạm là phù hợp để đảm bảo tính bảo mật của các hành động của người dùng, chẳng hạn như cấp yêu cầu cấp quyền, mua hàng hoặc nhấp vào quảng cáo. Để biết thông tin chi tiết, hãy xem lớp Xem lớp .
- Thuộc tính
filterTouchesWhenObscured
mới cho các phần tử thành phần hiển thị, khai báo việc có lọc thao tác chạm khi cửa sổ của thành phần hiển thị bị che khuất bởi một cửa sổ hiển thị khác hay không. Khi được đặt thành"true"
, thành phần hiển thị sẽ không nhận được thao tác chạm bất cứ khi nào một thông báo ngắn, hộp thoại hoặc cửa sổ khác xuất hiện phía trên cửa sổ của thành phần hiển thị. Tham khảo phần Xem khả năng bảo mật để biết thông tin chi tiết.
Để xem mã mẫu về tính năng lọc thao tác chạm, hãy xem SecureView.java trong ứng dụng mẫu Apidemos.
- Quản lý sự kiện được cải tiến
- Lớp cơ sở mới cho các sự kiện đầu vào,
InputEvent
. Lớp cung cấp các phương thức cho phép ứng dụng xác định ý nghĩa của sự kiện, chẳng hạn như như bằng cách truy vấn InputDevice mà sự kiện đã khởi tạo.KeyEvent
vàMotionEvent
là các lớp con củaInputEvent
. - Lớp cơ sở mới cho thiết bị đầu vào,
InputDevice
. Lớp này lưu trữ thông tin về các chức năng của một thiết bị đầu vào cụ thể và cung cấp các phương thức cho phép ứng dụng xác định cách diễn giải các sự kiện từ thiết bị đầu vào.
- Lớp cơ sở mới cho các sự kiện đầu vào,
- Sự kiện chuyển động được cải thiện
- API
MotionEvent
được mở rộng để bao gồm thông tin "mã con trỏ", cho phép các ứng dụng theo dõi từng ngón tay khi chúng di chuyển lên và xuống. Lớp này thêm nhiều phương thức cho phép ứng dụng hoạt động hiệu quả với các sự kiện chuyển động. - Hệ thống đầu vào nay có logic để tạo các sự kiện chuyển động bằng thông tin ID con trỏ, tổng hợp các giá trị nhận dạng dưới dạng con trỏ mới bị gián đoạn. Chiến lược phát hành đĩa đơn hệ thống theo dõi riêng từng mã con trỏ trong một sự kiện chuyển động, và đảm bảo tính liên tục thích hợp của con trỏ bằng cách đánh giá ở khoảng cách giữa tập hợp con trỏ cuối cùng và tiếp theo.
- API
- Chế độ điều khiển lựa chọn văn bản
- Phương thức
setComposingRegion
mới cho phép ứng dụng đánh dấu vùng văn bản dưới dạng soạn thảo văn bản, duy trì kiểu hiện tại. Phương thứcgetSelectedText
trả về văn bản đã chọn cho ứng dụng. Các phương thức này có trongBaseInputConnection
,InputConnection
vàInputConnectionWrapper
. textSelectHandle
mới,textSelectHandleLeft
,textSelectHandleRight
vàtextSelectHandleWindowStyle
cho<TextView>
, để tham chiếu các đối tượng có thể vẽ sẽ dùng để hiển thị các neo lựa chọn văn bản và kiểu cho vùng chứa cửa sổ.
- Phương thức
- Kiểm soát hoạt động
ActivityInfo
thêm các hằng số mới để quản lý Hướng hoạt động:SCREEN_ORIENTATION_FULL_SENSOR
!SCREEN_ORIENTATION_REVERSE_LANDSCAPE
,SCREEN_ORIENTATION_REVERSE_PORTRAIT
!SCREEN_ORIENTATION_SENSOR_LANDSCAPE
, vàSCREEN_ORIENTATION_SENSOR_PORTRAIT
.- Hằng số mới
IMPORTANCE_PERCEPTIBLE
cho trườngimportance
trongActivityManager.RunningAppProcessInfo
. Giá trị cho biết rằng một quy trình cụ thể đang chạy một quy trình nào đó được coi là mà người dùng dễ nhận biết. Ví dụ: một ứng dụng thực hiện việc phát nhạc ở chế độ nền. - Phương thức Activity.setPersistent(boolean) để đánh dấu một Hoạt động là liên tục hiện không được dùng nữa và việc triển khai không có tác dụng.
- Kiểu văn bản thông báo và biểu tượng
TextAppearance.StatusBar.EventContent
,TextAppearance.StatusBar.EventContent.Title
,TextAppearance.StatusBar.Icon
vàTextAppearance.StatusBar.Title
mới để quản lý kiểu thông báo.
- Thêm các phương thức OpenGL ES 2.0 còn lại
glDrawElements()
vàglVertexAttribPointer()
trong lớpandroid.opengl.GLES20
. - Thêm tính năng hỗ trợ định dạng pixel
YV12
, định dạng YCrCb 4:2:0 phẳng. - Lớp trình cung cấp
AlarmClock
mới để đặt chuông báo hoặc xử lý chuông báo. Trình cung cấp chứa một Ý địnhACTION_SET_ALARM
hành động và tiện ích khác có thể được dùng để bắt đầu một Hoạt động nhằm đặt báo thức mới trong một ứng dụng đồng hồ báo thức. Ứng dụng muốn nhận Ý địnhSET_ALARM
phải tạo một hoạt động yêu cầu quyền SET_ALARM. Các ứng dụng muốn tạo chuông báo mới nên sử dụngContext.startActivity()
để người dùng có thể chọn ứng dụng đồng hồ báo thức nào để sử dụng. MediaStore
hỗ trợ một thao tác theo ý định (PLAY_FROM_SEARCH
) mới, cho phép ứng dụng tìm kiếm nội dung nghe nhìn và tự động phát nội dung từ kết quả khi có thể. Ví dụ: một ứng dụng có thể kích hoạt Ý định này do lệnh nhận dạng giọng nói để nghe nhạc.MediaStore
cũng thêm một cờMEDIA_IGNORE_FILENAME
mới để thông báo cho nội dung đa phương tiện trình quét để bỏ qua nội dung đa phương tiện trong thư mục chứa và các thư mục con của thư mục đó. Nhà phát triển có thể sử dụng tính năng này để tránh việc đồ hoạ xuất hiện trong Thư viện và cũng ngăn âm thanh và nhạc của ứng dụng xuất hiện trong ứng dụng Nhạc.- Trình cung cấp
Settings
thêm các thao tác mới của Hoạt độngAPPLICATION_DETAILS_SETTINGS
vàMANAGE_ALL_APPLICATIONS_SETTINGS
, cho phép ứng dụng hiển thị thông tin chi tiết màn hình cho một ứng dụng cụ thể hoặc hiển thị màn hình Quản lý ứng dụng. - Nhà cung cấp
ContactsContract
sẽ thêm loại dữ liệuContactsContract.CommonDataKinds.SipAddress
, cho lưu trữ địa chỉ SIP (điện thoại Internet) của một địa chỉ liên hệ. LocationManager
hiện theo dõi các yêu cầu của ứng dụng dẫn đến khoá chế độ thức hoặc khoá wifi theoWorkSource
, một lớp do hệ thống quản lý giúp xác định ứng dụng.LocationManager
theo dõi tất cả ứng dụng yêu cầu cập nhật định kỳ và thông báo cho các nhà cung cấp về các ứng dụng đó dưới dạng tham sốWorkSource
khi đặt thời gian cập nhật tối thiểu. Nhà cung cấp vị trí mạng sử dụngWorkSource
để theo dõi các khoá chế độ thức và wifi do ứng dụng khởi tạo, đồng thời thêm khoá đó vào mức sử dụng pin của ứng dụng được báo cáo trong phần Quản lý ứng dụng.LocationManager
thêm một số phương thức mới cho phép một hoạt động đăng ký để nhận thông tin cập nhật vị trí định kỳ hoặc một lần dựa trên dựa trên các tiêu chí cụ thể (xem bên dưới).- Lớp
Criteria
mới cho phép ứng dụng chỉ định một nhóm tiêu chí để chọn nhà cung cấp vị trí. Ví dụ: nhà cung cấp có thể được sắp xếp theo độ chính xác, mức sử dụng năng lượng, khả năng báo cáo cao độ, tốc độ, cũng như chi phí tài chính. - Android 2.3 thêm một
StorageManager
mới hỗ trợ các tệp OBB (Opaque Binary Blob). Mặc dù hỗ trợ nền tảng cho OBB là có trong Android 2.3, các công cụ phát triển để tạo và quản lý tệp OBB sẽ không có sẵn cho đến đầu năm 2011. - Nền tảng Android 2.3 bổ sung tính năng hỗ trợ chính thức cho các thiết bị không có thẻ SD (mặc dù cung cấp phân vùng Thẻ SD ảo khi không có thẻ SD thực). Một phương thức tiện lợi,
isExternalStorageRemovable()
, cho phép các ứng dụng xác định xem có thẻ SD thực hay không. - Hằng số mới để khai báo các tính năng phần cứng và phần mềm. Xem danh sách trong phần New Feature Constants (Hằng số tính năng mới) ở bên dưới.
PackageInfo
thêm các trườngfirstInstallTime
vàlastUpdateTime
mới để lưu trữ thời gian của cài đặt gói và cập nhật lần cuối.- Phương thức
getProviderInfo()
mới để truy xuất tất cả thông tin đã biết một lớp trình cung cấp nội dung cụ thể. TelephonyManager
thêm hằng sốNETWORK_TYPE_EVDO_B
để chỉ định loại mạng CDMA EVDO Rev B.- Phương thức
getPsc()
mới trả về mã hoá chính của ô phân phát trên mạng UMTS. NativeActivity
là một loại lớp Hoạt động mới, trong đó các lệnh gọi lại vòng đời được triển khai trực tiếp trong mã gốc. ĐápNativeActivity
và mã gốc cơ bản chạy trong hệ thống giống như các Hoạt động khác — đặc biệt là chúng chạy trong Android quy trình hệ thống của ứng dụng và thực thi trên luồng giao diện người dùng chính của ứng dụng, và chúng sẽ nhận được phương thức gọi lại trong vòng đời tương tự như các Hoạt động khác.- Lớp
InputQueue
và giao diện gọi lại mới cho phép mã gốc quản lý việc xếp hàng sự kiện. - Giao diện
SurfaceHolder.Callback2
mới cho phép mã gốc quản lýSurfaceHolder
. - Các phương thức
takeInputQueue
vàtakeSurface()
mới trongWindow
cho phép mã gốc quản lý các sự kiện và nền tảng. dalvik.system
xoá một số lớp đã ngừng hoạt động trước đây.- Thư viện lõi Dalvik:
- Bộ sưu tập mới:
ArrayDeque
,NavigableMap
,ConcurrentSkipListMap
,LinkedBlockingDeque
- Các tiện ích
Arrays
mới:binarySearch()
,copyOf()
,copyOfRange()
và các tiện ích khác. CookieManager
choHttpURLConnection
.- Các API mạng hoàn chỉnh hơn:
InterfaceAddress
,NetworkInterface
vàIDN
- Các chế độ điều khiển đọc và ghi
File
String.isEmpty()
Normalizer
vàNormalizer.Form
- Cải thiện ổ cắm máy chủ
javax.net.ssl
.
- Bộ sưu tập mới:
- Thuộc tính
xlargeScreens
mới cho<supports-screens>
để cho biết ứng dụng có hỗ trợ hay không cho màn hình lớn. Để biết thông tin chi tiết, hãy xem phần Hỗ trợ nhiều màn hình. - Giá trị mới cho thuộc tính
android:screenOrientation
của Phần tử<activity>
:"reverseLandscape"
— Hoạt động muốn có màn hình theo hướng ngang, xoay theo hướng ngược lại so với bình thường ngang."reversePortrait"
— Hoạt động muốn có màn hình theo hướng dọc, xoay theo hướng ngược lại so với thông thường dọc."sensorLandscape"
– Hoạt động muốn có màn hình ở hướng ngang, nhưng có thể sử dụng cảm biến để thay đổi hướng màn hình."sensorPortrait"
— Hoạt động muốn có màn hình theo hướng dọc nhưng có thể sử dụng cảm biến để thay đổi hướng màn hình đang hiển thị."fullSensor"
– Hướng được xác định bằng cảm biến hướng vật lý: màn hình sẽ xoay theo cách người dùng di chuyển thiết bị. Chế độ này cho phép bất kỳ hướng xoay nào trong số 4 hướng có thể xoay, bất kể thiết bị thường làm gì (ví dụ: một số thiết bị thường không sử dụng chế độ xoay 180 độ).
com.android.permission.SET_ALARM
– Cho phép ứng dụng truyền phát một Ý định để đặt chuông báo cho người dùng. Hoạt động xử lý thao tác theo ý địnhSET_ALARM
sẽ yêu cầu quyền này.android.permission.USE_SIP
– Cho phép ứng dụng sử dụngSIP API
để thực hiện hoặc nhận cuộc gọi qua Internet.android.permission.NFC
– Cho phép ứng dụng sử dụngNFC API
để đọc thẻ NFC.android.hardware.audio.low_latency
– Ứng dụng sử dụng độ trễ thấp đường ống âm thanh trên thiết bị, đồng thời nhạy cảm với độ trễ khi đầu vào âm thanh hoặc đầu ra.android.hardware.camera.front
— Ứng dụng sử dụng giao diện người dùng máy ảnh trên thiết bị.android.hardware.nfc
— Ứng dụng sử dụng tính năng vô tuyến NFC trong thiết bị.android.hardware.sensor.barometer
– Ứng dụng sử dụng khí áp kế của thiết bị.android.hardware.sensor.gyroscope
– Ứng dụng sử dụng cảm biến con quay hồi chuyển của thiết bị.android.software.sip
– Ứng dụng sử dụng API SIP trên thiết bị.android.software.sip.voip
– Ứng dụng sử dụng VoIP dựa trên SIP trên thiết bị.android.hardware.touchscreen.multitouch.jazzhand
— Ứng dụng sử dụng chức năng cảm ứng đa điểm nâng cao trên màn hình thiết bị để theo dõi hoàn toàn độc lập với 5 điểm trở lên.
Màn hình cực lớn
Nền tảng hiện hỗ trợ các kích thước màn hình cực lớn, chẳng hạn như các kích thước có thể tìm thấy trên thiết bị máy tính bảng. Nhà phát triển có thể cho biết rằng ứng dụng của họ được thiết kế để hỗ trợ kích thước màn hình cực lớn bằng cách thêm phần tử <supports
screens ... android:xlargeScreens="true">
vào tệp kê khai. Các ứng dụng có thể sử dụng bộ hạn định tài nguyên mới, xlarge
, để gắn thẻ các tài nguyên dành riêng cho màn hình cực lớn. Để biết thông tin chi tiết về cách hỗ trợ kích thước màn hình cực lớn và các kích thước màn hình khác, hãy xem phần Hỗ trợ nhiều màn hình.
Đồ hoạ
Trình cung cấp nội dung
Vị trí
Bộ nhớ
Trình quản lý gói
Điện thoại
Quyền truy cập gốc vào Vòng đời hoạt động, cửa sổ
Android 2.3 hiển thị một loạt API cho các ứng dụng sử dụng mã gốc . Các lớp khung được quan tâm cho các ứng dụng như vậy bao gồm:
Để biết toàn bộ thông tin về cách xử lý mã gốc hoặc tải NDK xuống, hãy xem trang Android NDK.
Thời gian chạy Dalvik
Phần tử và thuộc tính mới trong tệp kê khai
Quyền mới
Hằng số tính năng mới
Nền tảng này bổ sung một số tính năng phần cứng mới mà nhà phát triển có thể khai báo trong tệp kê khai ứng dụng là bắt buộc đối với ứng dụng của họ. Điều này cho phép nhà phát triển kiểm soát cách ứng dụng của họ được lọc khi phát hành trên Google Play.
Để biết toàn bộ thông tin về cách khai báo các tính năng và sử dụng chúng
lọc, hãy xem tài liệu về <uses-feature>
.
Báo cáo sự khác biệt về API
Để có cái nhìn chi tiết về tất cả thay đổi đối với API trong Android 2.3 (API Cấp 9), hãy xem API Báo cáo điểm khác biệt.
Cấp độ API:
Nền tảng Android 2.3 cung cấp phiên bản cập nhật của API khung. API Android 2.3 được gán một mã nhận dạng bằng số nguyên — 9 – tức là được lưu trữ trong chính hệ thống. Giá trị nhận dạng này, được gọi là "Cấp độ API", cho phép hệ thống xác định chính xác xem một ứng dụng có tương thích với hệ thống hay không trước khi cài đặt ứng dụng.
Để sử dụng các API được giới thiệu trong Android 2.3 trong ứng dụng của bạn,
bạn cần biên dịch ứng dụng dựa trên thư viện Android được cung cấp trong
nền tảng SDK Android 2.3. Tuỳ thuộc vào nhu cầu, bạn cũng có thể cần thêm thuộc tính android:minSdkVersion="9"
vào phần tử <uses-sdk>
trong tệp kê khai của ứng dụng. Nếu ứng dụng của bạn được thiết kế để chỉ chạy trên Android 2.3 trở lên, thì việc khai báo thuộc tính này sẽ ngăn ứng dụng được cài đặt trên các phiên bản nền tảng trước đó.
Để biết thêm thông tin, hãy đọc bài viết API là gì Cấp độ?