Android 1.6 r2
Google Inc.
compatibility@android.com
Mục lục
1. Giới thiệu ................................................................................................................... 4
2. Tài nguyên ...................................................................................................................... 4
3. Phần mềm ......................................................................................................................... 5
3.1. Khả năng tương thích với API được quản lý ................................................................................... 5
3.2. Khả năng tương thích mềm của API ............................................................................................ 6
3.2.1. Quyền...................................................................................................... 6
3.2.2. Tham số bản dựng ............................................................................................. 6
3.2.3. Khả năng tương thích với ý định................................................................................. 8
3.2.3.1. Ý định ứng dụng cốt lõi ........................................................................... 8
3.2.3.2. Ghi đè ý định ......................................................................................... 8
3.2.3.3. Không gian tên ý định.................................................................................... 8
3.2.3.4. Truyền tin ý định ...................................................................................... 9
3.3. Khả năng tương thích với API gốc ........................................................................................ 9
3.4. Khả năng tương thích với API web ........................................................................................... 9
3.5. Khả năng tương thích hành vi của API................................................................................ 10
3.6. Không gian tên API................................................................................................... 10
3.7. Khả năng tương thích với máy ảo ............................................................................. 11
3.8. Khả năng tương thích với giao diện người dùng ................................................................................ 11
3.8.1. Tiện ích ........................................................................................................... 11
3.8.2. Thông báo ................................................................................................... 12
3.8.3. Tìm kiếm ............................................................................................................. 12
3.8.4. Thông báo ngắn.............................................................................................................. 12
4. Khả năng tương thích với phần mềm tham khảo ............................................................................. 12
5. Khả năng tương thích của tính năng đóng gói ứng dụng ........................................................................ 13
6. Khả năng tương thích đa phương tiện............................................................................................ 13
7. Khả năng tương thích với công cụ dành cho nhà phát triển..................................................................................... 14
8. Khả năng tương thích với phần cứng .............................................................................................. 15
8.1. Màn hình ................................................................................................................... 15
8.1.1. Cấu hình màn hình chuẩn ................................................................. 15
8.1.2. Cấu hình màn hình không chuẩn ................................................................ 16
8.1.3. Chỉ số về Mạng Hiển thị............................................................................................... 16
8.2. Bàn phím ............................................................................................................... 16
8.3. Điều hướng không chạm .......................................................................................... 16
8.4. Hướng màn hình................................................................................................ 17
8.5. Nhập bằng màn hình cảm ứng................................................................................................ 17
8.6. USB ........................................................................................................................ 17
8.7. Phím điều hướng .................................................................................................... 17
8.8. Wi-Fi ........................................................................................................................ 17
8.9. Máy ảnh .................................................................................................................. 18
8.9.1. Máy ảnh không có tính năng tự động lấy nét ............................................................................... 18
8.10. Gia tốc kế..................................................................................................... 18
8.11. La bàn ............................................................................................................. 19
8.12. GPS ...................................................................................................................... 19
8.13. Điện thoại............................................................................................................ 19
8.14. Điều khiển âm lượng.................................................................................................. 19
9. Khả năng tương thích về hiệu suất................................................................................. 19
10. Khả năng tương thích với mô hình bảo mật ................................................................................... 20
10.1. Quyền ................................................................................................................ 20
10.2. Cách tách biệt người dùng và quy trình ............................................................................... 20
10.3. Quyền hệ thống tệp..................................................................................... 21
11. Bộ kiểm thử khả năng tương thích ........................................................................................... 21
12. Liên hệ với chúng tôi ................................................................................................................. 21
Phụ lục A: Ý định ứng dụng bắt buộc ................................................................... 22
Phụ lục B: Ý định truyền tin bắt buộc ....................................................................... 0
Phụ lục C: Những điều cần cân nhắc trong tương lai................................................................ 0
1. Thiết bị không phải điện thoại ........................................................................................... 30
2. Khả năng tương thích với Bluetooth .......................................................................................... 30
3. Thành phần phần cứng bắt buộc................................................................................ 30
4. Ứng dụng mẫu ............................................................................................................... 30
5. Màn hình cảm ứng ......................................................................................................... 30
6. Hiệu suất............................................................................................................. 31
1. Giới thiệu
Tài liệu này liệt kê các yêu cầu phải đáp ứng để điện thoại di động
tương thích với Android 1.6. Định nghĩa này giả định bạn đã quen thuộc với Chương trình tương thích của Android
[Tài nguyên, 1].
Việc sử dụng các từ khoá "phải", "không được", "bắt buộc", "sẽ", "sẽ không", "nên", "không nên", "nên dùng",
"có thể" và "không bắt buộc" là theo tiêu chuẩn IETF được xác định trong RFC2119 [Tài nguyên, 2].
Trong tài liệu này, "người triển khai thiết bị" hoặc "người triển khai" là một người hoặc tổ chức phát triển
giải pháp phần cứng/phần mềm chạy Android 1.6. "Triển khai thiết bị" hoặc "triển khai" là giải pháp phần cứng/phần mềm
được phát triển.
Để được coi là tương thích với Android 1.6, việc triển khai thiết bị phải:
1. PHẢI đáp ứng các yêu cầu nêu trong Định nghĩa về khả năng tương thích này, bao gồm mọi tài liệu
được đưa vào thông qua tham chiếu.
2. PHẢI vượt qua Bộ kiểm thử tính tương thích với Android (CTS) có trong Dự án nguồn mở Android
[Tài nguyên, 3]. CTS kiểm thử hầu hết, nhưng không phải tất cả, các thành phần được nêu trong tài liệu
này.
Trong trường hợp định nghĩa này hoặc CTS không đề cập, không rõ ràng hoặc chưa đầy đủ, thì người triển khai
thiết bị có trách nhiệm đảm bảo khả năng tương thích với các phương thức triển khai hiện có. Vì lý do này, Dự án nguồn mở
Android [Tài nguyên, 4] là cả phương thức triển khai tham chiếu và ưu tiên của Android. Những người triển khai
thiết bị nên triển khai dựa trên mã nguồn "nguồn cấp trên"
có trong Dự án nguồn mở Android. Mặc dù có thể giả định rằng một số thành phần có thể được thay thế
bằng cách triển khai thay thế, nhưng bạn không nên thực hiện phương pháp này vì việc vượt qua các bài kiểm thử CTS sẽ trở nên
khó khăn hơn đáng kể. Người triển khai có trách nhiệm đảm bảo khả năng tương thích đầy đủ về hành vi với
cách triển khai Android chuẩn, bao gồm cả Bộ kiểm thử khả năng tương thích.
2. Tài nguyên
Định nghĩa về khả năng tương thích này tham chiếu đến một số tài nguyên có thể lấy tại đây.
1. Tổng quan về Chương trình tương thích của Android: https://sites.google.com/a/android.com/compatibility/
how-it-works
2. Các cấp độ yêu cầu của IETF RFC2119: http://www.ietf.org/rfc/rfc2119.txt
3. Bộ kiểm thử khả năng tương thích: http://sites.google.com/a/android.com/compatibility/compatibility-test-
suite--cts
4. Dự án nguồn mở Android: http://source.android.com/
5. Định nghĩa và tài liệu về API: http://developer.android.com/reference/packages.html
6. Trình cung cấp nội dung: http://code.google.com/android/reference/android/provider/package-
summary.html
7. Tài nguyên có sẵn: http://code.google.com/android/reference/available-resources.html
8. Tệp kê khai Android: http://code.google.com/android/devel/bblocks-manifest.html
9. Tài liệu tham khảo về Quyền trên Android: http://developer.android.com/reference/android/
Manifest.permission.html
10. Biến hằng bản dựng: http://developer.android.com/reference/android/os/Build.html
11. WebView: http://developer.android.com/reference/android/webkit/WebView.html
12. Tiện ích trình duyệt Gears: http://code.google.com/apis/gears/
13. Thông số kỹ thuật của Máy ảo Dalvik, có trong thư mục dalvik/docs của một quy trình thanh toán mã nguồn
; cũng có tại http://android.git.kernel.org/?p=platform/
dalvik.git;a=tree;f=docs;h=3e2ddbcaf7f370246246f9f03620a7caccbfcb12;hb=HEAD
14. AppWidgets: http://developer.android.com/guide/practices/ui_guidelines/widget_design.html
15. Thông báo: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
16. Hướng dẫn về phong cách biểu tượng Thanh trạng thái: http://developer.android.com/guide/practices/ui_guideline
/icon_design.html#statusbarstructure
17. Trình quản lý tìm kiếm: http://developer.android.com/reference/android/app/SearchManager.html
18. Thông báo ngắn: http://developer.android.com/reference/android/widget/Toast.html
19. Apps For Android: http://code.google.com/p/apps-for-android
20. Nội dung mô tả tệp apk Android: http://developer.android.com/guide/topics/fundamentals.html
21. Cầu gỡ lỗi Android (adb): http://code.google.com/android/reference/adb.html
22. Dịch vụ giám sát gỡ lỗi Dalvik (ddms): http://code.google.com/android/reference/ddms.html
23. Monkey: http://developer.android.com/guide/developing/tools/monkey.html
24. Tài liệu về tính độc lập của màn hình:
25. Hằng số cấu hình: http://developer.android.com/reference/android/content/res/
Configuration.html
26. Chỉ số hiển thị: http://developer.android.com/reference/android/util/DisplayMetrics.html
27. Máy ảnh: http://developer.android.com/reference/android/hardware/Camera.html
28. Không gian toạ độ cảm biến: http://developer.android.com/reference/android/hardware/
SensorEvent.html
29. Tài liệu tham khảo về Quyền và bảo mật trên Android: http://developer.android.com/guide/topics/security/
security.html
Nhiều tài nguyên trong số này được lấy trực tiếp hoặc gián tiếp từ SDK Android 1.6 và sẽ có chức năng
giống hệt với thông tin trong tài liệu của SDK đó. Trong mọi trường hợp, nếu
Định nghĩa về khả năng tương thích này không đồng ý với tài liệu SDK, thì tài liệu SDK được coi là
có thẩm quyền. Mọi thông tin kỹ thuật được cung cấp trong tài liệu tham khảo ở trên đều được xem là một phần của Định nghĩa về khả năng tương thích này
.
3. Phần mềm
Nền tảng Android bao gồm cả một nhóm API được quản lý ("cứng") và một nhóm API được gọi là "mềm"
chẳng hạn như hệ thống Ý định, API mã gốc và API ứng dụng web. Phần này trình bày chi tiết về các API cứng và
mềm không thể thiếu đối với khả năng tương thích, cũng như một số hành vi
liên quan khác về kỹ thuật và giao diện người dùng. Việc triển khai thiết bị PHẢI tuân thủ tất cả các yêu cầu trong phần này.
3.1. Khả năng tương thích với API được quản lý
Môi trường thực thi được quản lý (dựa trên Dalvik) là phương tiện chính cho các ứng dụng Android.
Giao diện lập trình ứng dụng (API) Android là tập hợp các giao diện nền tảng Android hiển thị cho các ứng dụng
chạy trong môi trường máy ảo được quản lý. Việc triển khai thiết bị PHẢI cung cấp các phương thức triển khai
hoàn chỉnh, bao gồm tất cả hành vi được ghi nhận, của mọi API được ghi nhận mà SDK Android
1.6 hiển thị, chẳng hạn như:
1. Các API ngôn ngữ Java cốt lõi của Android [Tài nguyên, 5].
2. Nhà cung cấp nội dung [Tài nguyên, 6].
3. Tài nguyên [Tài nguyên, 7].
4. Các phần tử và thuộc tính AndroidManifest.xml [Tài nguyên, 8].
Quá trình triển khai thiết bị KHÔNG ĐƯỢC bỏ qua bất kỳ API nào được quản lý, thay đổi giao diện hoặc chữ ký API, sai
khỏi hành vi được ghi nhận hoặc bao gồm các thao tác không hoạt động, ngoại trừ trường hợp được Định nghĩa
về Khả năng tương thích này cho phép cụ thể.
3.2. Khả năng tương thích với API mềm
Ngoài các API được quản lý trong Phần 3.1, Android cũng bao gồm một API
"mềm" quan trọng chỉ trong thời gian chạy, dưới dạng các yếu tố như Ý định, quyền và các khía cạnh tương tự của ứng dụng Android
không thể được thực thi tại thời điểm biên dịch ứng dụng. Phần này trình bày chi tiết về các API "mềm" và hành vi
hệ thống cần thiết để tương thích với Android 1.6. Việc triển khai thiết bị PHẢI đáp ứng tất cả các yêu cầu
được trình bày trong phần này.
3.2.1. Quyền
Người triển khai thiết bị PHẢI hỗ trợ và thực thi tất cả hằng số quyền như được ghi nhận trong
trang tham khảo về Quyền [Tài nguyên, 9]. Xin lưu ý rằng Mục 10 liệt kê các yêu cầu bổ sung liên quan đến
mô hình bảo mật Android.
3.2.2. Tham số bản dựng
Các API Android bao gồm một số hằng số trên lớp android.os.Build [Resources, 10] dùng để mô tả thiết bị hiện tại.
Để cung cấp các giá trị nhất quán và có ý nghĩa trên các hoạt động triển khai
thiết bị, bảng dưới đây bao gồm các quy định hạn chế bổ sung về định dạng của các giá trị này mà hoạt động triển khai
thiết bị PHẢI tuân thủ.
Thông số
Ghi chú
Phiên bản của hệ thống Android đang thực thi, ở định dạng dễ đọc
android.os.Build.VERSION.RELEASE
. Đối với Android 1.6, trường này PHẢI có giá trị chuỗi
"1.6".
Phiên bản của hệ thống Android đang thực thi, ở định dạng
android.os.Build.VERSION.SDK
mà mã ứng dụng bên thứ ba có thể truy cập. Đối với Android 1.6, trường này
PHẢI có giá trị số nguyên là 4.
Giá trị do người triển khai thiết bị chọn để chỉ định bản dựng cụ thể
của hệ thống Android đang thực thi, ở định dạng mà con người có thể đọc được.
KHÔNG ĐƯỢC sử dụng lại giá trị này cho các bản dựng khác nhau được gửi đến người dùng
android.os.Build.VERSION.INCREMENTAL. Trường này thường được dùng để cho biết số bản dựng hoặc giá trị nhận dạng thay đổi trong việc kiểm soát nguồn
được dùng để tạo bản dựng. Không
có yêu cầu nào về định dạng cụ thể của trường này, ngoại trừ việc trường này
KHÔNG ĐƯỢC rỗng hoặc chuỗi trống ("").
Giá trị do người triển khai thiết bị chọn để xác định phần cứng
nội bộ cụ thể mà thiết bị sử dụng, ở định dạng mà con người có thể đọc được. Bạn có thể sử dụng
android.os.Build.BOARD
của trường này để cho biết bản sửa đổi cụ thể của bảng điều khiển cung cấp năng lượng cho thiết bị
. Không có yêu cầu nào về định dạng cụ thể của trường này,
ngoại trừ việc trường này KHÔNG ĐƯỢC rỗng hoặc chuỗi trống ("").
Giá trị do người triển khai thiết bị chọn để xác định tên của công ty, tổ chức, cá nhân, v.v.
android.os.Build.BRAND
đã sản xuất thiết bị, ở định dạng
mà con người có thể đọc được. Bạn có thể sử dụng trường này để cho biết nhà sản xuất thiết bị gốc
và/hoặc nhà mạng đã bán thiết bị. Không có yêu cầu nào về định dạng
cụ thể của trường này, ngoại trừ việc trường này KHÔNG ĐƯỢC rỗng hoặc chuỗi
trống ("").
Một giá trị do người triển khai thiết bị chọn để xác định cấu hình
hoặc bản sửa đổi cụ thể của phần thân (đôi khi được gọi là "thiết kế
android.os.Build.DEVICE
công nghiệp") của thiết bị. Không có yêu cầu nào về định dạng cụ thể
của trường này, ngoại trừ việc trường này KHÔNG ĐƯỢC rỗng hoặc chuỗi trống ("").
Một chuỗi nhận dạng duy nhất bản dựng này. Tên này PHẢI
hợp lý và con người có thể đọc được. Tên này PHẢI tuân theo mẫu sau:
$(PRODUCT_BRAND)/$(PRODUCT_NAME)/$(PRODUCT_DEVICE)/
$(TARGET_BOOTLOADER_BOARD_NAME):$(PLATFORM_VERSION)/
$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_VARIANT)/
android.os.Build.FINGERPRINT
$(BUILD_VERSION_TAGS)
Ví dụ: acme/mydevicel/generic/generic:Donut/ERC77/
3359:userdebug/test-keys
Mã nhận dạng KHÔNG ĐƯỢC chứa dấu cách. Nếu các trường khác có trong mẫu
ở trên có dấu cách, thì bạn PHẢI thay thế các trường đó bằng ký tự dấu gạch dưới ASCII
("_") trong vân tay số.
Một chuỗi nhận dạng duy nhất máy chủ lưu trữ mà bản dựng được tạo, ở định dạng
android.os.Build.HOST
mà con người có thể đọc được. Không có yêu cầu nào về định dạng cụ thể của trường
này, ngoại trừ việc trường này KHÔNG ĐƯỢC để trống hoặc chuỗi trống ("").
Giá trị nhận dạng do người triển khai thiết bị chọn để tham chiếu đến một bản phát hành
cụ thể, ở định dạng mà con người có thể đọc được. Trường này có thể giống với
android.os.Build.VERSION.INCREMENTAL, nhưng PHẢI là một giá trị
android.os.Build.ID
có ý nghĩa đối với người dùng cuối. Không có yêu cầu
nào về định dạng cụ thể của trường này, ngoại trừ việc trường này KHÔNG ĐƯỢC
rỗng hoặc chuỗi trống ("").
Giá trị do người triển khai thiết bị chọn, chứa tên của thiết bị
mà người dùng cuối biết. Tên này PHẢI giống với tên
android.os.Build.MODEL
mà thiết bị được tiếp thị và bán cho người dùng cuối. Không có
yêu cầu nào về định dạng cụ thể của trường này, ngoại trừ việc trường này KHÔNG ĐƯỢC
rỗng hoặc chuỗi trống ("").
Giá trị do người triển khai thiết bị chọn, chứa tên
phát triển hoặc tên mã của thiết bị. PHẢI là tên mà con người có thể đọc được, nhưng không nhất thiết phải là
android.os.Build.PRODUCT
dành cho người dùng cuối xem. Không có yêu cầu
về định dạng cụ thể của trường này, ngoại trừ việc trường này KHÔNG ĐƯỢC rỗng hoặc
chuỗi trống ("").
Danh sách các thẻ được phân tách bằng dấu phẩy do người triển khai thiết bị chọn,
sẽ giúp phân biệt thêm bản dựng. Ví dụ: "unsigned,debug". Trường này
android.os.Build.TAGS
KHÔNG ĐƯỢC rỗng hoặc chuỗi trống (""), nhưng một thẻ duy nhất (chẳng hạn như
"release") là được.
android.os.Build.TIME
Một giá trị biểu thị dấu thời gian của thời điểm bản dựng xảy ra.
Giá trị do trình triển khai thiết bị chọn, chỉ định cấu hình thời gian chạy
của bản dựng. Trường này PHẢI có một trong các giá trị
android.os.Build.TYPE
tương ứng với 3 cấu hình thời gian chạy Android thông thường: "user",
"userdebug" hoặc "eng".
Tên hoặc mã nhận dạng người dùng của người dùng (hoặc người dùng tự động) đã tạo bản dựng
android.os.Build.USER
. Không có yêu cầu về định dạng cụ thể của trường này,
ngoại trừ trường này KHÔNG ĐƯỢC rỗng hoặc chuỗi trống ("").
3.2.3. Khả năng tương thích với ý định
Android sử dụng Ý định để tích hợp một cách lỏng lẻo giữa các ứng dụng. Phần này mô tả các yêu cầu
liên quan đến mẫu Ý định mà các hoạt động triển khai thiết bị PHẢI tuân thủ.
"Được tôn trọng" có nghĩa là người triển khai thiết bị PHẢI cung cấp một Hoạt động, Dịch vụ Android hoặc thành phần
khác chỉ định một bộ lọc Ý định phù hợp, đồng thời liên kết và triển khai hành vi chính xác cho mỗi mẫu Ý định
đã chỉ định.
3.2.3.1. Ý định ứng dụng cốt lõi
Dự án ngược dòng Android xác định một số ứng dụng cốt lõi, chẳng hạn như trình quay số điện thoại, lịch,
sổ địa chỉ, trình phát nhạc, v.v. Người triển khai thiết bị CÓ THỂ thay thế các ứng dụng này bằng
các phiên bản thay thế.
Tuy nhiên, mọi phiên bản thay thế như vậy PHẢI tuân thủ cùng một mẫu Ý định do dự án
thượng nguồn cung cấp. (Ví dụ: nếu một thiết bị chứa trình phát nhạc thay thế, thì thiết bị đó vẫn phải tuân thủ mẫu Ý định
do các ứng dụng bên thứ ba phát hành để chọn một bài hát.) Các hoạt động triển khai thiết bị PHẢI hỗ trợ tất cả mẫu Ý định
liệt kê trong Phụ lục A.
3.2.3.2. Ghi đè ý định
Vì Android là một nền tảng có thể mở rộng, nên người triển khai thiết bị PHẢI cho phép các ứng dụng bên thứ ba ghi đè từng mẫu Ý định được mô tả trong
Phụ lục A. Theo mặc định, dự án nguồn mở Android thượng nguồn
cho phép việc này; người triển khai thiết bị KHÔNG ĐƯỢC đính kèm các đặc quyền đặc biệt vào việc
ứng dụng hệ thống sử dụng các mẫu Ý định này hoặc ngăn ứng dụng bên thứ ba liên kết và giả định quyền kiểm soát
các mẫu này. Nghiêm cấm cụ thể việc tắt giao diện người dùng "Công cụ chọn" cho phép
người dùng chọn giữa nhiều ứng dụng đều xử lý cùng một mẫu Ý định.
3.2.3.3. Không gian tên ý định
Người triển khai thiết bị KHÔNG ĐƯỢC đưa bất kỳ thành phần Android nào tuân thủ bất kỳ mẫu Ý định mới hoặc
Ý định truyền tin nào bằng cách sử dụng ACTION, CATEGORY hoặc chuỗi khoá khác trong không gian tên android.*.
Người triển khai thiết bị KHÔNG ĐƯỢC đưa bất kỳ thành phần Android nào tuân thủ bất kỳ mẫu Ý định mới hoặc
Ý định truyền tin nào bằng cách sử dụng ACTION, CATEGORY hoặc chuỗi khoá khác trong không gian gói
thuộc về một tổ chức khác. Người triển khai thiết bị KHÔNG ĐƯỢC thay đổi hoặc mở rộng bất kỳ mẫu Ý định
nào được liệt kê trong Phụ lục A hoặc B.
Nghiêm cấm này tương tự như quy định cấm đối với các lớp ngôn ngữ Java trong Mục 3.6.
3.2.3.4. Truyền tin về Ý định
Các ứng dụng bên thứ ba dựa vào nền tảng để truyền tin về một số Ý định nhất định nhằm thông báo cho ứng dụng về những thay đổi trong môi trường phần cứng hoặc phần mềm
. Các thiết bị tương thích với Android PHẢI truyền phát Ý định
phát sóng công khai để phản hồi các sự kiện hệ thống thích hợp. Danh sách Ý định truyền tin bắt buộc được cung cấp trong
Phụ lục B; tuy nhiên, xin lưu ý rằng SDK có thể xác định các ý định truyền tin bổ sung, và bạn cũng PHẢI
tuân thủ các ý định đó.
3.3. Khả năng tương thích với API gốc
Mã được quản lý chạy trong Dalvik có thể gọi vào mã gốc được cung cấp trong tệp .apk của ứng dụng dưới dạng tệp ELF
.so được biên dịch cho cấu trúc phần cứng thiết bị thích hợp. Việc triển khai thiết bị PHẢI bao gồm
tính năng hỗ trợ cho mã chạy trong môi trường được quản lý để gọi vào mã gốc, sử dụng ngữ nghĩa
Giao diện gốc Java (JNI) chuẩn. Mã gốc phải có các API sau:
• libc (thư viện C)
• libm (thư viện toán học)
• giao diện JNI
• libz (nén Zlib)
• liblog (ghi nhật ký Android)
• Hỗ trợ tối thiểu cho C++
• OpenGL ES 1.1
Các thư viện này PHẢI tương thích với nguồn (tức là tương thích với tiêu đề) và tương thích với tệp nhị phân (đối với một cấu trúc bộ xử lý
nhất định) với các phiên bản do dự án Nguồn mở Android cung cấp trong Bionic. Vì
các phương thức triển khai Bionic không hoàn toàn tương thích với các phương thức triển khai khác như thư viện GNU C
, nên người triển khai thiết bị PHẢI sử dụng phương thức triển khai Android. Nếu người triển khai thiết bị sử dụng một cách triển khai khác
của các thư viện này, họ phải đảm bảo khả năng tương thích của tiêu đề và tệp nhị phân.
Khả năng tương thích với mã gốc là một thách thức. Vì lý do này, chúng tôi muốn nhắc lại rằng những người triển khai thiết bị
RẤT nên sử dụng các phương thức triển khai thượng nguồn của các thư viện nêu trên để giúp
đảm bảo khả năng tương thích.
3.4. Khả năng tương thích với API web
Nhiều nhà phát triển và ứng dụng dựa vào hành vi của lớp android.webkit.WebView [Tài nguyên,
11] cho giao diện người dùng của họ, vì vậy, việc triển khai WebView phải tương thích với các hoạt động triển khai Android
. Cách triển khai nguồn mở Android sử dụng phiên bản công cụ kết xuất WebKit để
triển khai WebView.
Vì không thể phát triển một bộ kiểm thử toàn diện cho trình duyệt web, nên người triển khai thiết bị
PHẢI sử dụng bản dựng thượng nguồn cụ thể của WebKit trong quá trình triển khai WebView. Cụ thể:
• WebView PHẢI sử dụng bản dựng WebKit 528.5 trở lên từ cây nguồn mở Android ngược dòng cho
Android 1.6. Bản dựng này bao gồm một bộ sửa lỗi bảo mật và chức năng cụ thể cho WebView.
• Chuỗi tác nhân người dùng do WebView báo cáo PHẢI ở định dạng này:
Mozilla/5.0 (Linux; U; Android 1.6; <language>-<country>; <device
name>; Build/<build ID>) AppleWebKit/528.5+ (KHTML, like Gecko)
Version/3.1.2 Mobile Safari/525.20.1
◦ Chuỗi "<device name>" PHẢI giống với giá trị của
android.os.Build.MODEL
◦ Chuỗi "<build ID>" PHẢI giống với giá trị của android.os.Build.ID.
◦ Chuỗi "<language>" và "<country>" PHẢI tuân theo các quy ước thông thường cho
mã quốc gia và ngôn ngữ, đồng thời PHẢI tham chiếu đến ngôn ngữ hiện tại của thiết bị tại
thời điểm yêu cầu.
Các phương thức triển khai CÓ THỂ gửi một chuỗi tác nhân người dùng tuỳ chỉnh trong ứng dụng Trình duyệt độc lập. Hơn nữa, Trình duyệt độc lập CÓ THỂ dựa trên công nghệ trình duyệt thay thế (chẳng hạn như Firefox,
Opera, v.v.)
Tuy nhiên, ngay cả khi một ứng dụng Trình duyệt thay thế được vận chuyển, thành phần WebView
được cung cấp cho các ứng dụng bên thứ ba PHẢI dựa trên WebKit, như trên.
Ứng dụng Trình duyệt độc lập PHẢI hỗ trợ Gears [Tài nguyên, 12] và CÓ THỂ
hỗ trợ một số hoặc tất cả HTML5.
3.5. Khả năng tương thích hành vi của API
Hành vi của từng loại API (được quản lý, mềm, gốc và web) phải nhất quán với
cách triển khai Android ưu tiên có trong Dự án nguồn mở Android.
Một số khía cạnh cụ thể về khả năng tương thích là:
• Thiết bị KHÔNG ĐƯỢC thay đổi hành vi hoặc ý nghĩa của một Ý định chuẩn
• Thiết bị KHÔNG ĐƯỢC thay đổi vòng đời hoặc ngữ nghĩa vòng đời của một loại thành phần
hệ thống cụ thể (chẳng hạn như Dịch vụ, Hoạt động, ContentProvider, v.v.)
• Thiết bị KHÔNG ĐƯỢC thay đổi ngữ nghĩa của một quyền cụ thể
Danh sách trên chưa đầy đủ và trách nhiệm thuộc về những người triển khai thiết bị để đảm bảo khả năng tương thích
về hành vi. Vì lý do này, người triển khai thiết bị NÊN sử dụng mã nguồn có sẵn thông qua
Dự án nguồn mở Android (AOSP) nếu có thể, thay vì triển khai lại các phần quan trọng của hệ thống.
Bộ kiểm thử tính tương thích (CTS) kiểm thử các phần quan trọng của nền tảng để xác định khả năng tương thích về hành vi,
nhưng không phải tất cả. Bên triển khai có trách nhiệm đảm bảo khả năng tương thích về hành vi với Dự án nguồn mở
của Android.
3.6. Không gian tên API
Android tuân theo các quy ước về không gian tên gói và lớp do ngôn ngữ lập trình Java xác định.
Để đảm bảo khả năng tương thích với các ứng dụng bên thứ ba, người triển khai thiết bị KHÔNG ĐƯỢC thực hiện
bất kỳ sửa đổi bị cấm nào (xem bên dưới) đối với các không gian tên gói sau:
• java.*
• javax.*
• sun.*
• android.*
• com.android.*
Các nội dung sửa đổi bị cấm bao gồm:
• Quá trình triển khai thiết bị KHÔNG ĐƯỢC sửa đổi các API được công khai trên nền tảng Android
bằng cách thay đổi bất kỳ phương thức hoặc chữ ký lớp nào, hoặc bằng cách xoá các lớp hoặc trường lớp.
• Người triển khai thiết bị CÓ THỂ sửa đổi cách triển khai cơ bản của các API, nhưng những nội dung sửa đổi
như vậy KHÔNG ĐƯỢC ảnh hưởng đến hành vi đã nêu và chữ ký ngôn ngữ Java của bất kỳ
API nào được công khai.
• Người triển khai thiết bị KHÔNG ĐƯỢC thêm bất kỳ phần tử nào được hiển thị công khai (chẳng hạn như các lớp hoặc giao diện
, hoặc các trường hoặc phương thức vào các lớp hoặc giao diện hiện có) vào các API ở trên.
"Phần tử hiển thị công khai" là bất kỳ cấu trúc nào không được trang trí bằng điểm đánh dấu "@hide" trong mã nguồn Android thượng nguồn
. Nói cách khác, người triển khai thiết bị KHÔNG ĐƯỢC hiển thị các API mới hoặc
thay đổi các API hiện có trong không gian tên nêu trên. Người triển khai thiết bị CÓ THỂ thực hiện các sửa đổi
chỉ dành cho nội bộ, nhưng KHÔNG ĐƯỢC quảng cáo hoặc hiển thị các sửa đổi đó cho nhà phát triển.
Người triển khai thiết bị CÓ THỂ thêm API tuỳ chỉnh, nhưng mọi API như vậy KHÔNG ĐƯỢC nằm trong không gian tên do
một tổ chức khác sở hữu hoặc tham chiếu đến. Ví dụ: nhà triển khai thiết bị KHÔNG ĐƯỢC thêm API vào
com.google.* hoặc không gian tên tương tự; chỉ Google mới được làm như vậy. Tương tự, Google KHÔNG ĐƯỢC thêm API vào
không gian tên của các công ty khác.
Nếu người triển khai thiết bị đề xuất cải thiện một trong các không gian tên gói ở trên (chẳng hạn như bằng cách thêm
chức năng mới hữu ích vào một API hiện có hoặc thêm một API mới), thì người triển khai NÊN truy cập vào
source.android.com và bắt đầu quy trình đóng góp thay đổi và mã, theo
thông tin trên trang web đó.
Lưu ý rằng các quy định hạn chế ở trên tương ứng với các quy ước đặt tên API tiêu chuẩn trong ngôn ngữ lập trình Java
; mục đích của phần này chỉ là củng cố các quy ước đó và ràng buộc các quy ước đó
bằng cách đưa vào định nghĩa về khả năng tương thích này.
3.7. Khả năng tương thích với máy ảo
Thiết bị Android tương thích phải hỗ trợ đầy đủ thông số kỹ thuật mã byte Dalvik Executable (DEX) và
ngữ nghĩa của Máy ảo Dalvik [Tài nguyên, 13].
3.8. Khả năng tương thích với giao diện người dùng
Nền tảng Android bao gồm một số API dành cho nhà phát triển cho phép nhà phát triển kết nối với giao diện người dùng
của hệ thống. Việc triển khai thiết bị PHẢI kết hợp các API giao diện người dùng chuẩn này vào giao diện người dùng tuỳ chỉnh
mà họ phát triển, như giải thích bên dưới.
3.8.1. Tiện ích
Android xác định một loại thành phần và API tương ứng cũng như vòng đời cho phép các ứng dụng hiển thị
"AppWidget" cho người dùng cuối [Tài nguyên, 14]. Bản phát hành tham khảo nguồn mở Android bao gồm một ứng dụng
Launcher (Trình chạy) có các thành phần giao diện người dùng cho phép người dùng thêm, xem và xoá
AppWidgets khỏi màn hình chính.
Người triển khai thiết bị CÓ THỂ thay thế một Trình chạy thay thế cho Trình chạy tham chiếu (tức là màn hình chính).
Trình chạy thay thế PHẢI có tính năng hỗ trợ tích hợp cho AppWidgets và hiển thị các thành phần giao diện người dùng
để thêm, xem và xoá AppWidgets ngay trong Trình chạy. Trình chạy thay thế CÓ THỂ
bỏ qua các thành phần giao diện người dùng này; tuy nhiên, nếu bỏ qua, thì người triển khai thiết bị PHẢI cung cấp một
ứng dụng riêng có thể truy cập được từ Trình chạy, cho phép người dùng thêm, xem và xoá
AppWidgets.
3.8.2. Thông báo
Android bao gồm các API cho phép nhà phát triển thông báo cho người dùng về các sự kiện đáng chú ý [Tài nguyên, 15]. Người triển khai
thiết bị PHẢI hỗ trợ từng lớp thông báo được xác định; cụ thể: âm thanh,
chế độ rung, ánh sáng và thanh trạng thái.
Ngoài ra, quá trình triển khai PHẢI hiển thị chính xác và tất cả tài nguyên (biểu tượng, tệp âm thanh, v.v.)
được cung cấp trong API [Tài nguyên, 7] hoặc trong Hướng dẫn về kiểu biểu tượng Thanh trạng thái [Tài nguyên, 16]. Nhà triển khai
thiết bị CÓ THỂ cung cấp trải nghiệm người dùng thay thế cho thông báo so với trải nghiệm do
triển khai tham chiếu nguồn mở Android; tuy nhiên, các hệ thống thông báo thay thế như vậy PHẢI
hỗ trợ các tài nguyên thông báo hiện có, như trên.
3.8.3. Tìm kiếm
Android bao gồm API [Tài nguyên, 17] cho phép nhà phát triển tích hợp tính năng tìm kiếm vào ứng dụng của họ,
và hiển thị dữ liệu của ứng dụng vào tính năng tìm kiếm hệ thống toàn cầu. Nhìn chung, chức năng này
bao gồm một giao diện người dùng duy nhất trên toàn hệ thống, cho phép người dùng nhập truy vấn, hiển thị nội dung đề xuất
khi người dùng nhập và hiển thị kết quả. Các API Android cho phép nhà phát triển sử dụng lại giao diện này để cung cấp tính năng
tìm kiếm trong ứng dụng của riêng họ, đồng thời cho phép nhà phát triển cung cấp kết quả cho giao diện
tìm kiếm chung của người dùng.
Việc triển khai thiết bị PHẢI bao gồm một giao diện người dùng tìm kiếm chung, trên toàn hệ thống, có thể
đề xuất theo thời gian thực để phản hồi dữ liệu đầu vào của người dùng. Việc triển khai thiết bị PHẢI triển khai các API
cho phép nhà phát triển sử dụng lại giao diện người dùng này để cung cấp tính năng tìm kiếm trong ứng dụng của riêng họ.
Các hoạt động triển khai thiết bị PHẢI triển khai các API cho phép ứng dụng bên thứ ba thêm nội dung đề xuất
vào hộp tìm kiếm khi hộp tìm kiếm chạy ở chế độ tìm kiếm toàn cầu. Nếu không có ứng dụng bên thứ ba nào được cài đặt
sử dụng chức năng này, thì hành vi mặc định PHẢI là hiển thị kết quả của công cụ tìm kiếm trên web và
đề xuất.
Các hoạt động triển khai thiết bị CÓ THỂ cung cấp giao diện người dùng tìm kiếm thay thế, nhưng PHẢI bao gồm một nút tìm kiếm chuyên dụng
cứng hoặc mềm, có thể được sử dụng bất cứ lúc nào trong bất kỳ ứng dụng nào để gọi khung tìm kiếm,
với hành vi được cung cấp trong tài liệu API.
3.8.4. Thông báo ngắn
Các ứng dụng có thể sử dụng API "Toast" (được xác định trong [Tài nguyên, 18]) để hiển thị các chuỗi ngắn không phải phương thức cho người dùng cuối
, các chuỗi này sẽ biến mất sau một khoảng thời gian ngắn. Việc triển khai thiết bị PHẢI hiển thị thông báo ngắn từ các ứng dụng
cho người dùng cuối theo một cách dễ thấy.
4. Khả năng tương thích của phần mềm tham chiếu
Người triển khai thiết bị PHẢI kiểm thử khả năng tương thích của quá trình triển khai bằng các ứng dụng
mã nguồn mở sau:
• Bộ tính tiền (có trong SDK)
• Máy hạ cánh trên mặt trăng (có trong SDK)
• ApiDemos (có trong SDK)
• Các ứng dụng "Ứng dụng cho Android" [Tài nguyên, 19]
Mỗi ứng dụng ở trên PHẢI khởi chạy và hoạt động chính xác trong quá trình triển khai để quá trình triển khai được
xem là tương thích.
5. Khả năng tương thích đóng gói ứng dụng
Việc triển khai thiết bị PHẢI cài đặt và chạy các tệp ".apk" của Android do công cụ "aapt" tạo
có trong SDK Android chính thức [Tài nguyên, 20].
Việc triển khai thiết bị KHÔNG ĐƯỢC mở rộng định dạng tệp .apk, Tệp kê khai Android hoặc mã byte Dalvik
theo cách ngăn các tệp đó cài đặt và chạy chính xác trên các thiết bị
tương thích khác. Người triển khai thiết bị NÊN sử dụng phương thức triển khai ngược dòng tham chiếu của Dalvik,
và hệ thống quản lý gói của phương thức triển khai tham chiếu.
6. Khả năng tương thích đa phương tiện
Thiết bị Android tương thích phải hỗ trợ các bộ mã hoá và giải mã đa phương tiện sau. Tất cả các bộ mã hoá và giải mã này đều được
cung cấp dưới dạng các phương thức triển khai phần mềm trong phương thức triển khai Android ưu tiên từ Dự án
nguồn mở Android [Tài nguyên, 4].
Xin lưu ý rằng cả Google và Liên minh điện thoại mở đều không đưa ra tuyên bố nào rằng các bộ mã hoá và giải mã
này không bị ràng buộc bởi các bằng sáng chế của bên thứ ba. Những người có ý định sử dụng mã nguồn này trong phần cứng hoặc
các sản phẩm phần mềm nên lưu ý rằng việc triển khai mã này, bao gồm cả trong phần mềm nguồn mở hoặc
phần mềm chia sẻ, có thể yêu cầu giấy phép bằng sáng chế từ các chủ sở hữu bằng sáng chế liên quan.
Tên
Âm thanh
Thông tin chi tiết về bộ mã hoá bộ giải mã
Các tệp được hỗ trợ
Nội dung đơn âm/âm thanh nổi trong bất kỳ
3GPP (.3gp) và
kết hợp tốc độ bit chuẩn nào
MPEG-4 (.mp4, .m4a)
AAC LC/LTP
X
tốc độ lấy mẫu và tệp tối đa 160 kbps. Không hỗ trợ tệp thô
từ 8 đến 48 kHz
AAC (.aac)
Nội dung đơn kênh/nổi trong bất kỳ
3GPP (.3gp) và
HE-AACv1
kết hợp tốc độ bit chuẩn
MPEG-4 (.mp4, .m4a)
X
(AAC+)
tối đa 96 kbps và tốc độ lấy mẫu tệp. Không hỗ trợ
thô từ 8 đến 48 kHz
AAC (.aac)
Nội dung đơn kênh/nổi trong bất kỳ
HE-AACv2
3GPP (.3gp) và
kết hợp tốc độ bit chuẩn
(nâng cao
MPEG-4 (.mp4, .m4a)
X
tối đa 96 kbps và tốc độ lấy mẫu
AAC+)
tệp. Không hỗ trợ tệp thô
từ 8 đến 48 kHz
AAC (.aac)
AMR-NB
4,75 đến 12,2 kbps lấy mẫu @
tệp 3GPP (.3gp)
X
X
8 kHz
AMR-WB
9 tốc độ từ 6,60 kbit/giây đến 23,85
-tệp 3GPP (.3gp)
X
kbit/giây lấy mẫu @ 16 kHz
MP3
tệp MP3 (.mp3) đơn kênh/nổi 8-320 Kb/giây
X
(CBR) hoặc tốc độ bit thay đổi (VBR)
Loại 0 và 1 (.mid, .xmf,
MIDI Loại 0 và 1. DLS Phiên bản 1
MIDI
X
.mxmf). Ngoài ra, RTTTL/RTX
và 2. XMF và XMF dành cho thiết bị di động.
(.rtttl, .rtx), OTA (.ota),
Hỗ trợ các định dạng nhạc chuông
và iMelody (.imy)
RTTTL/RTX, OTA và iMelody
Ogg Vorbis
.ogg
X
PCM tuyến tính 8 và 16 bit (tốc độ lên
PCM
X
WAVE
đến giới hạn của phần cứng)
Hình ảnh
Tệp
Tên
Thông tin chi tiết về bộ mã hoá bộ giải mã
Được hỗ trợ
JPEG
X
X
base+progressive
GIF
X
PNG
X
X
BMP
X
Video
Tệp
Tên
Thông tin chi tiết về bộ mã hoá bộ giải mã
Được hỗ trợ
3GPP (.3gp)
H.263
X
X
tệp
3GPP (.3gp)
H.264
X
và MPEG-4
(.mp4)
MPEG4
X
tệp 3GPP (.3gp)
SP
7. Khả năng tương thích với công cụ dành cho nhà phát triển
Việc triển khai thiết bị PHẢI hỗ trợ Công cụ dành cho nhà phát triển Android được cung cấp trong SDK Android.
Cụ thể, các thiết bị tương thích với Android PHẢI tương thích với:
• Cầu gỡ lỗi Android hoặc adb [Tài nguyên, 21]
Việc triển khai thiết bị PHẢI hỗ trợ tất cả các chức năng adb như được ghi nhận trong SDK
Android. Trình nền adb phía thiết bị PHẢI ở trạng thái không hoạt động theo mặc định, nhưng PHẢI có cơ chế mà người dùng có thể truy cập được
để bật Cầu gỡ lỗi Android.
• Dalvik Debug Monitor Service (Dịch vụ giám sát gỡ lỗi Dalvik) hoặc ddms [Tài nguyên, 22]
Việc triển khai thiết bị PHẢI hỗ trợ tất cả tính năng ddms như được ghi nhận trong SDK Android.
Vì ddms sử dụng adb, nên tính năng hỗ trợ ddms NÊN ở trạng thái không hoạt động theo mặc định, nhưng PHẢI được hỗ trợ
bất cứ khi nào người dùng đã kích hoạt Cầu gỡ lỗi Android, như trên.
• Monkey [Tài nguyên, 23]
Việc triển khai thiết bị PHẢI bao gồm khung Monkey và cung cấp khung này cho các ứng dụng
sử dụng.
8. Khả năng tương thích với phần cứng
Android được thiết kế để hỗ trợ những người triển khai thiết bị tạo ra các kiểu dáng và cấu hình sáng tạo.
Đồng thời, các nhà phát triển Android mong đợi một số phần cứng, cảm biến và API nhất định trên tất cả thiết bị Android
. Phần này liệt kê các tính năng phần cứng mà tất cả thiết bị tương thích với Android 1.6 phải hỗ trợ. Trong
Android 1.6, hầu hết các tính năng phần cứng (chẳng hạn như WiFi, la bàn và gia tốc kế) đều bắt buộc.
Nếu một thiết bị có một thành phần phần cứng cụ thể có API tương ứng cho nhà phát triển
bên thứ ba, thì việc triển khai thiết bị PHẢI triển khai API đó như được xác định trong tài liệu
SDK Android.
8.1. Hiển thị
Android 1.6 bao gồm các cơ sở thực hiện một số thao tác tự động về việc chuyển đổi và điều chỉnh theo tỷ lệ trong
một số trường hợp, để đảm bảo rằng các ứng dụng bên thứ ba chạy khá tốt trên cấu hình
phần cứng mà không nhất thiết phải được thiết kế rõ ràng [Tài nguyên, 24]. Thiết bị PHẢI
triển khai đúng cách các hành vi này, như mô tả chi tiết trong phần này.
8.1.1. Cấu hình màn hình tiêu chuẩn
Bảng này liệt kê các cấu hình màn hình tiêu chuẩn được coi là tương thích với Android:
Đường chéo
Kích thước màn hình
Mật độ màn hình
Loại màn hình
Chiều rộng (Pixel)
Chiều cao (Pixel)
Dải chiều dài
Nhóm
Nhóm
(inch)
QVGA
240
320
2,6 – 3,0
Nhỏ
Thấp
WQVGA
240
400
3,2 – 3,5
Bình thường
Thấp
FWQVGA
240
432
3,5 – 3,8
Bình thường
Thấp
HVGA
320
480
3,0 – 3,5
Bình thường
Trung bình
WVGA
480
800
3,3 – 4,0
Bình thường
Cao
FWVGA
480
854
3,5 – 4,0
Bình thường
Cao
WVGA
480
800
4,8 – 5,5
Lớn
Trung bình
FWVGA
480
854
5,0 – 5,8
Lớn
Trung bình
Việc triển khai thiết bị tương ứng với một trong các cấu hình tiêu chuẩn ở trên PHẢI được định cấu hình
để báo cáo kích thước màn hình đã chỉ định cho các ứng dụng thông qua lớp android.content.res.Configuration [Tài nguyên,
25].
Một số gói .apk có tệp kê khai không xác định rằng các gói đó hỗ trợ một phạm vi mật độ cụ thể.
Khi chạy các ứng dụng như vậy, các quy tắc ràng buộc sau đây sẽ áp dụng:
• Việc triển khai thiết bị PHẢI diễn giải mọi tài nguyên hiện có theo mặc định là
"medium" (được gọi là "mdpi" trong tài liệu SDK.)
• Khi hoạt động trên màn hình có mật độ "thấp", việc triển khai thiết bị PHẢI giảm tỷ lệ tài sản mdpi trung bình/
xuống theo hệ số 0,75.
• Khi hoạt động trên màn hình có mật độ "cao", việc triển khai thiết bị PHẢI tăng tỷ lệ tài sản mdpi trung bình/
lên hệ số 1,5.
• Việc triển khai thiết bị KHÔNG ĐƯỢC điều chỉnh tỷ lệ thành phần trong một phạm vi mật độ và PHẢI điều chỉnh tỷ lệ thành phần
theo đúng các hệ số này giữa các phạm vi mật độ.
8.1.2. Cấu hình màn hình không chuẩn
Cấu hình màn hình không khớp với một trong các cấu hình chuẩn được liệt kê trong Mục 8.2.1 yêu cầu
thêm cân nhắc và nỗ lực để tương thích. Người triển khai thiết bị PHẢI liên hệ với Nhóm tương thích
của Android như được nêu trong Mục 12 để nhận được các phân loại cho nhóm kích thước màn hình, mật độ
và hệ số tỷ lệ. Khi được cung cấp thông tin này, việc triển khai thiết bị PHẢI triển khai các thông tin đó
theo quy định.
Xin lưu ý rằng một số cấu hình màn hình (chẳng hạn như màn hình rất lớn hoặc rất nhỏ và một số tỷ lệ khung hình)
về cơ bản không tương thích với Android 1.6; do đó, những người triển khai thiết bị nên
liên hệ với Nhóm tương thích Android càng sớm càng tốt trong quá trình phát triển.
8.1.3. Chỉ số hiển thị
Hoạt động triển khai thiết bị PHẢI báo cáo giá trị chính xác cho tất cả các chỉ số hiển thị được xác định trong
android.util.DisplayMetrics [Tài nguyên, 26].
8.2. Bàn phím
Triển khai thiết bị:
• PHẢI hỗ trợ Khung quản lý đầu vào (cho phép nhà phát triển
bên thứ ba tạo Công cụ quản lý đầu vào – tức là bàn phím mềm) như được nêu chi tiết tại
developer.android.com
• PHẢI cung cấp ít nhất một phương thức triển khai bàn phím mềm (bất kể có bàn phím
cứng hay không)
• CÓ THỂ bao gồm các phương thức triển khai bàn phím mềm khác
• CÓ THỂ bao gồm bàn phím phần cứng
• KHÔNG ĐƯỢC bao gồm bàn phím phần cứng không khớp với một trong các định dạng được chỉ định
trong android.content.res.Configuration [Tài nguyên, 25] (tức là QWERTY hoặc 12 phím)
8.3. Điều hướng không chạm
Cách triển khai thiết bị:
• CÓ THỂ bỏ qua các tuỳ chọn điều hướng không chạm (tức là có thể bỏ qua bi xoay, bàn phím định hướng 5 chiều hoặc
bánh xe)
• PHẢI báo cáo thông qua android.content.res.Configuration [Tài nguyên, 25] giá trị chính xác cho phần cứng của thiết bị
8.4.
Hướng màn hình
Các thiết bị tương thích PHẢI hỗ trợ hướng động của các ứng dụng theo hướng màn hình dọc hoặc ngang
. Tức là thiết bị phải tuân theo yêu cầu của ứng dụng về hướng
màn hình cụ thể. Việc triển khai thiết bị CÓ THỂ chọn hướng dọc hoặc ngang làm hướng mặc định.
Thiết bị PHẢI báo cáo đúng giá trị cho hướng hiện tại của thiết bị, bất cứ khi nào được truy vấn thông qua
android.content.res.Configuration.orientation, android.view.Display.getOrientation() hoặc các API khác.
8.5. Đầu vào màn hình cảm ứng
Cách triển khai thiết bị:
• PHẢI có màn hình cảm ứng
• CÓ THỂ có màn hình cảm ứng điện dung hoặc điện trở
• PHẢI báo cáo giá trị của android.content.res.Configuration [Tài nguyên, 25] phản ánh
tương ứng với loại màn hình cảm ứng cụ thể trên thiết bị
8.6. USB
Cách triển khai thiết bị:
• PHẢI triển khai ứng dụng khách USB, có thể kết nối với máy chủ USB bằng cổng USB-A tiêu chuẩn
• PHẢI triển khai Cầu gỡ lỗi Android qua USB (như mô tả trong Phần 7)
• PHẢI triển khai ứng dụng khách bộ nhớ khối lượng lớn USB cho bộ nhớ phương tiện/có thể tháo rời có trong thiết bị
• NÊN sử dụng hệ số hình dạng USB vi mô ở phía thiết bị
• NÊN triển khai tính năng hỗ trợ cho quy cách Bộ nhớ khối lượng lớn USB (để có thể truy cập vào bộ nhớ cố định hoặc có thể tháo rời trên thiết bị từ máy tính lưu trữ)
• CÓ THỂ bao gồm cổng không chuẩn ở phía thiết bị, nhưng nếu có, PHẢI vận chuyển kèm theo cáp có thể
kết nối chân cắm tuỳ chỉnh với cổng USB-A tiêu chuẩn
8.7.
Phím điều hướng
Các chức năng Màn hình chính, Trình đơn và Quay lại là thiết yếu đối với mô hình điều hướng của Android. Việc triển khai
thiết bị PHẢI cung cấp các hàm này cho người dùng mọi lúc, bất kể trạng thái
ứng dụng. Bạn NÊN triển khai các hàm này thông qua các nút chuyên dụng. Bạn CÓ THỂ triển khai các tính năng này
bằng phần mềm, cử chỉ, bảng cảm ứng, v.v., nhưng nếu có, bạn PHẢI luôn truy cập được và không che khuất hoặc
can thiệp vào khu vực hiển thị ứng dụng hiện có.
Nhà triển khai thiết bị CŨNG NÊN cung cấp một khoá tìm kiếm chuyên dụng. Nhà triển khai thiết bị CŨNG CÓ THỂ
cung cấp khoá gửi và kết thúc cho cuộc gọi điện thoại.
8.8. WiFi
Việc triển khai thiết bị PHẢI hỗ trợ 802.11b và 802.11g, đồng thời CÓ THỂ hỗ trợ 802.11a.
8.9. Máy ảnh
Các hoạt động triển khai thiết bị PHẢI bao gồm máy ảnh. Máy ảnh đi kèm:
• PHẢI có độ phân giải tối thiểu 2 megapixel
• NÊN có tính năng tự động lấy nét phần cứng hoặc tự động lấy nét phần mềm được triển khai trong trình điều khiển
máy ảnh (trong suốt đối với phần mềm ứng dụng)
• CÓ THỂ có phần cứng lấy nét cố định hoặc EDOF (độ sâu trường ảnh mở rộng)
• CÓ THỂ có đèn flash. Nếu Máy ảnh có đèn flash, thì đèn flash KHÔNG ĐƯỢC sáng trong khi một thực thể
android.hardware.Camera.PreviewCallback đã được đăng ký trên nền tảng
xem trước của Máy ảnh.
Các hoạt động triển khai thiết bị PHẢI triển khai các hành vi sau đây cho các API liên quan đến máy ảnh
[Tài nguyên, 27]:
1. Nếu một ứng dụng chưa bao giờ gọi android.hardware.Camera.Parameters.setPreviewFormat(int),
thì thiết bị PHẢI sử dụng android.hardware.PixelFormat.YCbCr_420_SP cho dữ liệu xem trước
được cung cấp cho các lệnh gọi lại của ứng dụng.
2. Nếu một ứng dụng đăng ký một thực thể android.hardware.Camera.PreviewCallback và hệ thống
gọi phương thức onPreviewFrame() khi định dạng xem trước là YCbCr_420_SP, thì dữ liệu
trong byte[] được truyền vào onPreviewFrame() phải ở định dạng mã hoá NV21.
(Đây là định dạng mà gia đình phần cứng 7k sử dụng theo cách gốc.) Tức là NV21 PHẢI là giá trị mặc định.
8.9.1. Máy ảnh không tự động lấy nét
Nếu thiết bị thiếu máy ảnh tự động lấy nét, thì người triển khai thiết bị PHẢI đáp ứng các yêu cầu bổ sung trong
phần này. Việc triển khai thiết bị PHẢI triển khai toàn bộ API Máy ảnh có trong tài liệu SDK Android 1.6
theo cách hợp lý, bất kể chức năng của phần cứng máy ảnh thực tế là gì.
Đối với Android 1.6, nếu máy ảnh thiếu tính năng tự động lấy nét, thì việc triển khai thiết bị PHẢI tuân thủ những điều sau:
1. Hệ thống PHẢI bao gồm một thuộc tính hệ thống chỉ có thể đọc có tên là "ro.workaround.noautofocus"
với giá trị là "1". Giá trị này dành cho các ứng dụng như Android Market để
xác định có chọn lọc các chức năng của thiết bị và sẽ được thay thế trong một phiên bản Android trong tương lai bằng một
API mạnh mẽ.
2. Nếu một ứng dụng gọi android.hardware.Camera.autoFocus(), thì hệ thống PHẢI gọi phương thức gọi lại
onAutoFocus() trên mọi thực thể
android.hardware.Camera.AutoFocusCallback đã đăng ký, ngay cả khi không có hoạt động lấy nét nào
thực sự xảy ra. Điều này giúp tránh các ứng dụng hiện có bị gián đoạn do phải chờ mãi một lệnh gọi lại
tự động lấy nét sẽ không bao giờ đến.
3. Lệnh gọi đến phương thức AutoFocusCallback.onAutoFocus() PHẢI do trình điều khiển hoặc khung
kích hoạt trong một sự kiện mới trên luồng Looper của khung chính. Tức là Camera.autoFocus()
KHÔNG ĐƯỢC gọi trực tiếp AutoFocusCallback.onAutoFocus() vì điều này vi phạm mô hình tạo luồng khung Android
và sẽ làm hỏng ứng dụng.
8.10. Gia tốc kế
Việc triển khai thiết bị PHẢI bao gồm gia tốc kế 3 trục và PHẢI có thể phân phối sự kiện ở tốc độ ít nhất là 50 Hz. Hệ toạ độ mà gia tốc kế sử dụng PHẢI tuân thủ hệ toạ độ cảm biến Android
như được nêu chi tiết trong [Tài nguyên, 28] của API Android.
8.11. La bàn
Việc triển khai thiết bị PHẢI bao gồm la bàn 3 trục và PHẢI có thể phân phối sự kiện ở tốc độ ít nhất là
10 Hz. Hệ toạ độ mà la bàn sử dụng PHẢI tuân thủ hệ toạ độ
của cảm biến Android như được xác định trong API Android [Tài nguyên, 28].
8.12. GPS
Việc triển khai thiết bị PHẢI bao gồm GPS và NÊN bao gồm một số hình thức kỹ thuật "GPS hỗ trợ"
để giảm thiểu thời gian khoá GPS.
8.13. Điện thoại
Cách triển khai thiết bị:
• PHẢI bao gồm điện thoại GSM hoặc CDMA
• PHẢI triển khai các API thích hợp như được nêu chi tiết trong tài liệu SDK Android tại
developer.android.com
Lưu ý rằng yêu cầu này ngụ ý rằng các thiết bị không phải điện thoại không tương thích với Android 1.6; thiết bị Android
1.6 PHẢI có phần cứng điện thoại. Vui lòng xem Phụ lục C để biết thông tin về các thiết bị
không phải điện thoại.
8.14. Nút điều khiển âm lượng
Thiết bị tương thích với Android PHẢI có cơ chế cho phép người dùng tăng và giảm
âm lượng âm thanh. Việc triển khai thiết bị PHẢI cung cấp các hàm này cho người dùng mọi lúc,
bất kể trạng thái ứng dụng. Bạn CÓ THỂ triển khai các hàm này bằng cách sử dụng các phím phần cứng thực,
phần mềm, cử chỉ, bảng cảm ứng, v.v., nhưng các hàm này PHẢI luôn truy cập được và không che khuất hoặc can thiệp
vào khu vực hiển thị ứng dụng hiện có (xem Màn hình ở trên).
Khi các nút này được sử dụng, BẮT BUỘC phải tạo và gửi các sự kiện phím tương ứng đến ứng dụng
ở nền trước. Nếu ứng dụng không chặn và chìm sự kiện, thì việc triển khai thiết bị
PHẢI xử lý sự kiện đó dưới dạng một chế độ điều khiển âm lượng hệ thống.
9. Khả năng tương thích về hiệu suất
Một trong những mục tiêu của Chương trình tương thích Android là đảm bảo trải nghiệm ứng dụng nhất quán cho
người dùng. Việc triển khai tương thích không chỉ phải đảm bảo rằng các ứng dụng chạy chính xác trên
thiết bị, mà còn phải đảm bảo các ứng dụng đó chạy với hiệu suất hợp lý và mang lại trải nghiệm người dùng tốt tổng thể.
Việc triển khai thiết bị PHẢI đáp ứng các chỉ số hiệu suất chính của một thiết bị tương thích với Android 1.6,
như trong bảng dưới đây:
Chỉ số
Ngưỡng hiệu suất
Ghi chú
Đây là nội dung được kiểm thử bằng CTS.
Các ứng dụng sau
Thời gian khởi chạy được đo bằng tổng thời gian để
sẽ khởi chạy trong
hoàn tất việc tải hoạt động mặc định cho
Ứng dụng
thời gian đã chỉ định.
ứng dụng, bao gồm cả thời gian cần thiết để bắt đầu
Thời gian khởi chạy
Trình duyệt: dưới 1300 mili giây
quá trình Linux, tải gói Android vào
MMS/SMS: dưới 700 mili giây
máy ảo Dalvik và gọi onCreate.
AlarmClock: dưới 650 mili giây
Nhiều ứng dụng sẽ được
Kiểm thử bởi CTS.
chạy. Việc chạy lại
Ứng dụng đầu tiên đồng thời sẽ
Ứng dụng
hoàn tất trong thời gian ngắn hơn
thời gian chạy ban đầu.
10. Khả năng tương thích với mô hình bảo mật
Việc triển khai thiết bị PHẢI triển khai một mô hình bảo mật nhất quán với mô hình bảo mật
của nền tảng Android như được xác định trong tài liệu tham khảo về Quyền và bảo mật trong các API [Tài nguyên, 29] trong tài liệu
dành cho nhà phát triển Android. Việc triển khai thiết bị PHẢI hỗ trợ việc cài đặt các ứng dụng
tự ký mà không yêu cầu thêm bất kỳ quyền/giấy chứng nhận nào từ bên thứ ba/cơ quan nào.
Cụ thể, các thiết bị tương thích PHẢI hỗ trợ các cơ chế bảo mật sau:
10.1. Quyền
Việc triển khai thiết bị PHẢI hỗ trợ mô hình quyền của Android như được xác định trong tài liệu dành cho nhà phát triển Android
[Tài nguyên, 9]. Cụ thể, quá trình triển khai PHẢI thực thi từng quyền
được xác định như mô tả trong tài liệu SDK; không được bỏ qua, thay đổi hoặc bỏ qua quyền nào.
Quá trình triển khai CÓ THỂ thêm các quyền khác, miễn là chuỗi mã nhận dạng quyền mới không nằm trong không gian tên
android.*.
10.2. Cách triển khai thiết bị PHẢI hỗ trợ mô hình hộp cát ứng dụng Android, trong đó mỗi ứng dụng
chạy dưới dạng một UID kiểu Unix duy nhất và trong một quy trình riêng biệt.
Việc triển khai thiết bị PHẢI hỗ trợ chạy nhiều ứng dụng dưới cùng một mã nhận dạng người dùng Linux, miễn là
các ứng dụng đó được ký và tạo đúng cách, như được xác định trong tài liệu tham khảo
về Bảo mật và Quyền [Tài nguyên, 29].
10.3. Quyền đối với hệ thống tệp
Việc triển khai thiết bị PHẢI hỗ trợ mô hình quyền truy cập vào tệp của Android như được xác định trong as
được xác định trong tài liệu tham khảo về Bảo mật và Quyền [Tài nguyên, 29].
11. Bộ kiểm thử khả năng tương thích
Việc triển khai thiết bị PHẢI vượt qua Bộ kiểm thử khả năng tương thích với Android (CTS) [Tài nguyên, 3] có sẵn
từ Dự án nguồn mở Android, bằng cách sử dụng phần mềm vận chuyển chính thức trên thiết bị. Ngoài ra,
những người triển khai thiết bị NÊN sử dụng phương thức triển khai tham chiếu trong cây Nguồn mở Android
nhiều nhất có thể và PHẢI đảm bảo khả năng tương thích trong trường hợp không rõ ràng trong CTS và đối với mọi
hoạt động triển khai lại các phần của mã nguồn tham chiếu.
CTS được thiết kế để chạy trên một thiết bị thực. Giống như mọi phần mềm khác, chính CTS cũng có thể chứa lỗi.
CTS sẽ được tạo phiên bản độc lập với Định nghĩa về khả năng tương thích này và nhiều bản sửa đổi của CTS
có thể được phát hành cho Android 1.6. Tuy nhiên, các bản phát hành như vậy sẽ chỉ khắc phục các lỗi hành vi trong kiểm thử CTS
và sẽ không áp dụng bất kỳ kiểm thử, hành vi hoặc API mới nào cho một bản phát hành nền tảng nhất định.
12. Liên hệ với chúng tôi
Bạn có thể liên hệ với Nhóm tương thích Android theo địa chỉ compatibility@android.com để làm rõ các vấn đề liên quan đến
Định nghĩa về khả năng tương thích này và để gửi ý kiến phản hồi về Định nghĩa này.
Phụ lục A: Ý định ứng dụng bắt buộc
LƯU Ý: danh sách này là tạm thời và sẽ được cập nhật trong tương lai.
Hành động ứng dụng
Các kiểu MIME của lược đồ
(không có)
văn bản/trơn
http
văn bản/html
Trình duyệt
android.intent.action.VIEW
https
ứng dụng/xhtml+xml
ứng dụng/
vnd.wap.xhtml+xml
(không có)
android.intent.action.WEB_SEARCH
http
(không có)
https
android.media.action.IMAGE_CAPTURE
android.media.action.STILL_IMAGE_CAMERA
Máy ảnh
android.media.action.VIDEO_CAMERA
android.media.action.VIDEO_CAPTURE
vnd.android.cursor.dir/
android.intent.action.VIEW
hình ảnh
android.intent.action.GET_CONTENT
vnd.android.cursor.dir/
android.intent.action.PICK
băng hình
android.intent.action.ATTACH_DATA
hình ảnh/*
băng hình/*
android.intent.action.VIEW
rtsp
video/mp4
video/3gp
android.intent.action.VIEW
http
video/3gpp
video/3gpp2
android.intent.action.DIAL
Điện thoại /
android.intent.action.VIEW
điện thoại
Liên hệ
android.intent.action.CALL
android.intent.action.DIAL
vnd.android.cursor.dir/
android.intent.action.VIEW
người
vnd.android.cursor.dir/
người
vnd.android.cursor.dir/
android.intent.action.PICK
điện thoại
vnd.android.cursor.dir/
địa chỉ bưu chính
vnd.android.cursor.item/
người
vnd.android.cursor.item/
android.intent.action.GET_CONTENT
điện thoại
vnd.android.cursor.item/
địa chỉ bưu chính
văn bản/trơn
android.intent.action.GỬI
hình ảnh/*
băng hình/*
android.intent.action.VIEW
gửi thư đến
android.intent.action.GỬI ĐẾN
tin nhắn
android.intent.action.VIEW
tin nhắn
SMS / MMS android.intent.action.SENDTO
mms
mmsto
âm thanh/*
ứng dụng/ogg
Âm nhạc
android.intent.action.VIEW
tài liệu
ứng dụng/x-ogg
ứng dụng/itunes
âm thanh/mp3
âm thanh/x-mp3
android.intent.action.VIEW
http
âm thanh/mpeg
âm thanh/mp4
âm thanh/mp4a-latm
vnd.android.cursor.dir/
album nghệ sĩ
vnd.android.cursor.dir/
album
vnd.android.cursor.dir/
android.intent.action.PICK
đang phát
vnd.android.cursor.dir/
theo dõi
nd.android.cursor.dir/
danh sách phát
vnd.android.cursor.dir/
băng hình
phương tiện truyền thông/*
âm thanh/*
android.intent.action.GET_CONTENT
ứng dụng/ogg
ứng dụng/x-ogg
băng hình/*
nội dung
Bưu kiện
android.intent.action.VIEW
tài liệu
Trình cài đặt
bưu kiện
tài liệu
android.intent.action.PACKAGE_INSTALL
http
https
android.intent.action.ALL_APPS
android.cài đặt.CÀI ĐẶT
android.settings.CÀI ĐẶT KHÔNG DÂY
android.settings.AIRPLANE_MODE_SETTINGS
android.cài đặt.WIFI_SETTINGS
android.cài đặt.APN_SETTINGS
android.settings.CÀI ĐẶT BLUETOOTH
android.settings.CÀI ĐẶT_NGÀY
android.settings.LOCALE_SETTINGS
Cài đặt
android.settings.INPUT_METHOD_SETTINGS
com.android.settings.SOUND_SETTINGS
com.android.settings.DISPLAY_SETTINGS
android.settings.CÀI ĐẶT_BẢO_MẬT
android.settings.CÀI ĐẶT NGUỒN_VỊ TRÍ
android.settings.INTERNAL_STORAGE_SETTINGS
android.settings.CÀI ĐẶT THẺ NHỚ
android.intent.action.SET_WALLPAPER
Tìm kiếm
android.intent.action.TÌM KIẾM
truy vấn
android.intent.action.SEARCH_LONG_PRESS
Tiếng nói
android.intent.action.LỆNH_GIỌNG_THEO
Quản lý danh bạ
Ý định Hành động
Sự miêu tả
Bắt đầu một Hoạt động cho phép người dùng chọn
ĐÍNH KÈM HÌNH ẢNH
một địa chỉ liên lạc để đính kèm hình ảnh.
Sử dụng
EXTRA_CREATE_DESCRIPTION
với SHOW_OR_CREATE_CONTACT để
chỉ định nội dung mô tả chính xác sẽ
hiển thị khi nhắc người dùng về
tạo một người liên hệ mới.
Sử dụng
với SHOW_OR_CREATE_CONTACT để
EXTRA_FORCE_CREATE
buộc tạo một người liên hệ mới nếu không tìm thấy
người liên hệ trùng khớp.
Đây là ý định được kích hoạt khi người dùng nhấp vào một
SEARCH_SUGGESTION_CLICKED
đề xuất tìm kiếm.
Đây là ý định được kích hoạt khi người dùng nhấp vào một đề xuất tìm kiếm
SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED để tạo
người liên hệ.
Đây là ý định được kích hoạt khi người dùng nhấp vào
SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED
đề xuất tìm kiếm để quay số
.
Lấy URI dữ liệu có mailto:
SHOW_OR_CREATE_CONTACT
hoặc lược đồ tel: làm dữ liệu đầu vào.
Phụ lục B: Ý định truyền tin bắt buộcLƯU Ý: danh sách này là tạm thời và sẽ được
cập nhật trong tương lai.
Thao tác theo ý định
Mô tả
Thao tác truyền tin: Thao tác này được truyền một lần, sau khi hệ thống
ACTION_BOOT_COMPLETED
hoàn tất quá trình khởi động.
Broadcast Action (Thao tác truyền tin): Thao tác này được truyền một lần khi nhận được lệnh gọi
ACTION_CALL_BUTTON
.
Broadcast Action (Hành động truyền tin): "Nút máy ảnh" đã được
ACTION_CAMERA_BUTTON
nhấn.
Broadcast Action (Thao tác truyền tin): Cấu hình (hướng, ngôn ngữ, v.v.) của thiết bị
ACTION_CONFIGURATION_CHANGED
hiện tại đã
thay đổi.
ACTION_DATE_CHANGED
Hành động truyền tin: Ngày đã thay đổi.
Thao tác truyền tin: Cho biết tình trạng bộ nhớ thấp
ACTION_DEVICE_STORAGE_LOW
trên thiết bị
Thao tác truyền tin: Cho biết tình trạng bộ nhớ thấp
ACTION_DEVICE_STORAGE_OK
trên thiết bị không còn tồn tại
Thao tác truyền tin: Tai nghe có dây được cắm hoặc
ACTION_HEADSET_PLUG
đã rút.
Thao tác truyền tin: Một phương thức nhập đã được
ACTION_INPUT_METHOD_CHANGED
thay đổi.
Broadcast Action: External media was removed
ACTION_MEDIA_BAD_REMOVAL
from SD card slot, but mount point was not
unmounted.
Broadcast Action (Thao tác truyền tin): "Media Button" (Nút đa phương tiện) đã được
ACTION_MEDIA_BUTTON
nhấn.
Broadcast Action: Có phương tiện bên ngoài và
đang được kiểm tra ổ đĩa. Đường dẫn đến điểm gắn cho
ACTION_MEDIA_CHECKING
phương tiện đang kiểm tra nằm trong trường
Intent.mData.
Broadcast Action (Hành động truyền tin): Người dùng đã bày tỏ mong muốn
ACTION_MEDIA_EJECT
xoá phương tiện bộ nhớ ngoài.
Broadcast Action (Thao tác truyền tin): Có phương tiện bên ngoài và
ACTION_MEDIA_MOUNTED
được gắn tại điểm gắn.
Hành động truyền tin: Có nội dung nghe nhìn ngoài, nhưng
đang sử dụng fs không tương thích (hoặc trống) Đường dẫn đến
ACTION_MEDIA_NOFS
điểm gắn cho nội dung nghe nhìn đang kiểm tra là
có trong trường Intent.mData.
Broadcast Action: External media has been
ACTION_MEDIA_REMOVED
removed.
Hành động truyền tin: Trình quét nội dung nghe nhìn đã hoàn tất
ACTION_MEDIA_SCANNER_FINISHED
quét một thư mục.
Broadcast Action (Thao tác truyền tin): Yêu cầu trình quét nội dung nghe nhìn
ACTION_MEDIA_SCANNER_SCAN_FILE
quét một tệp và thêm tệp đó vào cơ sở dữ liệu nội dung nghe nhìn.
Hành động truyền tin: Trình quét nội dung đa phương tiện đã bắt đầu
ACTION_MEDIA_SCANNER_STARTED
quét một thư mục.
Thao tác truyền tin: Đã tháo phương tiện bên ngoài
ACTION_MEDIA_SHARED
vì phương tiện này đang được chia sẻ qua bộ nhớ khối lượng lớn USB.
Broadcast Action (Hành động truyền tin): Có phương tiện bên ngoài nhưng không thể gắn
ACTION_MEDIA_UNMOUNTABLE
.
Broadcast Action (Hành động truyền tin): Có phương tiện bên ngoài, nhưng
ACTION_MEDIA_UNMOUNTED
không được gắn tại điểm gắn.
Broadcast Action (Thao tác truyền tin): Một cuộc gọi đi sắp được
ACTION_NEW_OUTGOING_CALL
đặt.
Broadcast Action (Thao tác truyền tin): Một gói ứng dụng mới đã được
ACTION_PACKAGE_ADDED
cài đặt trên thiết bị.
Broadcast Action (Thao tác truyền tin): Một gói ứng dụng hiện có
ACTION_PACKAGE_CHANGED
đã được thay đổi (ví dụ: một thành phần đã được
bật hoặc tắt.
Hành động truyền tin: Người dùng đã xoá dữ liệu của
một gói. Trước đó, bạn phải
đặt ACTION_PACKAGE_RESTARTED, sau đó
ACTION_PACKAGE_DATA_CLEARED
tất cả dữ liệu ổn định của gói sẽ bị xoá và thông báo
này sẽ được gửi. Xin lưu ý rằng gói đã xoá
không nhận được thông báo truyền tin này. Dữ liệu này chứa
tên của gói.
Thao tác truyền tin: Một gói ứng dụng hiện có
đã bị xoá khỏi thiết bị. Dữ liệu
ACTION_PACKAGE_REMOVED
chứa tên của gói. Gói
đang được cài đặt không nhận được Ý định này.
Broadcast Action (Thao tác thông báo): Phiên bản mới của gói ứng dụng
ACTION_PACKAGE_REPLACED
đã được cài đặt, thay thế phiên bản
hiện có đã được cài đặt trước đó.
Hành động truyền tin: Người dùng đã khởi động lại một gói
và tất cả các quy trình của gói đó đã bị tắt.
Tất cả trạng thái thời gian chạy liên kết với gói đó (quy trình,
ACTION_PACKAGE_RESTARTED
báo thức, thông báo, v.v.) sẽ bị xoá. Xin lưu ý
rằng gói đã khởi động lại không nhận được thông báo truyền tin
này. Dữ liệu này chứa tên của gói
.
Broadcast Action (Thao tác truyền tin): Một số nhà cung cấp nội dung có
các phần trong không gian tên của họ, nơi họ phát hành các sự kiện
ACTION_PROVIDER_CHANGED
mới hoặc các mục mà người dùng có thể đặc biệt
quan tâm.
ACTION_SCREEN_OFF
Hành động truyền tin: Được gửi sau khi màn hình tắt.
ACTION_SCREEN_ON
Hành động truyền tin: Được gửi sau khi màn hình bật.
Broadcast Action: A user ID has been removed
ACTION_UID_REMOVED
from the system.
Broadcast Action (Thao tác truyền tin): Thiết bị đã chuyển sang chế độ Bộ nhớ khối lượng lớn
ACTION_UMS_CONNECTED
qua USB.
Thao tác truyền tin: Thiết bị đã thoát khỏi chế độ Bộ nhớ khối lượng lớn USB
ACTION_UMS_DISCONNECTED
.
Thao tác truyền tin: Được gửi khi người dùng hiện diện
ACTION_USER_PRESENT
sau khi thiết bị thức dậy (ví dụ: khi màn hình khoá
biến mất).
Thao tác truyền tin: Hình nền hệ thống hiện tại
ACTION_WALLPAPER_CHANGED
đã thay đổi.
ACTION_TIME_CHANGED
Broadcast Action (Thao tác truyền tin): Thời gian đã được đặt.
ACTION_TIME_TICK
Broadcast Action (Thao tác truyền tin): Thời gian hiện tại đã thay đổi.
ACTION_TIMEZONE_CHANGED
Hành động truyền tin: Múi giờ đã thay đổi.
Hành động truyền tin: Trạng thái sạc hoặc mức pin
ACTION_BATTERY_CHANGED
đã thay đổi.
Broadcast Action (Thao tác truyền tin): Cho biết tình trạng pin yếu
ACTION_BATTERY_LOW
trên thiết bị. Thông báo truyền tin này tương ứng với hộp thoại hệ thống
"Cảnh báo pin yếu".
Hành động truyền tin: Cho biết pin hiện đã ổn
sau khi yếu. Lệnh này sẽ được gửi
ACTION_BATTERY_OKAY
sau khi ACTION_BATTERY_LOW khi pin
đã trở lại trạng thái ổn định.
Trạng thái mạng
Thao tác theo ý định
Mô tả
Phát đi thao tác theo ý định cho biết trạng thái
NETWORK_STATE_CHANGED_ACTION
của kết nối Wi-Fi đã thay đổi.
Hành động truyền tin ý định cho biết rằng
RSSI_CHANGED_ACTION
RSSI (cường độ tín hiệu) đã thay đổi.
Hành động truyền tin về ý định cho biết rằng
SUPPLICANT_STATE_CHANGED_ACTION
kết nối với trình cấp phép đã được
thiết lập hoặc bị mất.
Hành động ý định truyền tin cho biết Wi-Fi
WIFI_STATE_CHANGED_ACTION
đã được bật, tắt, đang bật,
tắt hoặc không xác định.
Mã nhận dạng mạng của các mạng đã định cấu hình
NETWORK_IDS_CHANGED_ACTION
có thể đã thay đổi.
Hành động truyền tin về ý định cho biết rằng chế độ cài đặt ACTION_BACKGROUND_DATA_SETTING_CHANGED cho việc sử dụng dữ liệu ở chế độ nền đã thay đổi giá trị.
Phát đi ý định cho biết đã có thay đổi về khả năng kết nối mạng
CONNECTIVITY_ACTION
.
Broadcast Action (Hành động truyền tin): Người dùng đã chuyển điện thoại
ACTION_AIRPLANE_MODE_CHANGED
sang hoặc ra khỏi Chế độ trên máy bay.
Phụ lục C: Những điểm cần cân nhắc trong tương lai Phụ lục này làm rõ một số phần nhất định của Định nghĩa về khả năng tương thích với Android
1.6 và trong một số trường hợp, thảo luận về các thay đổi dự kiến hoặc dự định dành cho
phiên bản nền tảng Android trong tương lai. Phụ lục này chỉ dành cho mục đích cung cấp thông tin và lập kế hoạch, đồng thời
không phải là một phần của Định nghĩa về khả năng tương thích cho Android 1.6.
1. Thiết bị không phải điện thoại
Android 1.6 chỉ dành cho điện thoại; chức năng điện thoại là không bắt buộc. Các phiên bản trong tương lai
của nền tảng Android dự kiến sẽ không bắt buộc phải có tính năng điện thoại (và do đó cho phép các thiết bị
Android không phải điện thoại), nhưng chỉ điện thoại mới tương thích với Android 1.6.
2. Khả năng tương thích với Bluetooth
Bản phát hành Android 1.6 không hỗ trợ API Bluetooth, vì vậy, từ góc độ tương thích
Bluetooth không áp đặt bất kỳ điều gì cần cân nhắc cho phiên bản nền tảng này. Tuy nhiên, một phiên bản Android
trong tương lai sẽ giới thiệu các API Bluetooth. Tại thời điểm đó, việc hỗ trợ Bluetooth sẽ trở thành bắt buộc để có khả năng tương thích
.
Do đó, bạn nên sử dụng Bluetooth trên thiết bị Android 1.6 để các thiết bị này
tương thích với các phiên bản Android trong tương lai yêu cầu Bluetooth.
3. Thành phần phần cứng bắt buộc
Tất cả thành phần phần cứng trong Mục 8 (bao gồm cả Wi-Fi, la bàn/máy đo từ trường, gia tốc kế, v.v.) là
bắt buộc và không được bỏ qua. Các phiên bản Android trong tương lai dự kiến sẽ đưa ra một số (nhưng không phải tất cả)
các thành phần này ở chế độ không bắt buộc, cùng với các công cụ tương ứng để nhà phát triển bên thứ ba xử lý các thay đổi
này.
4. Ứng dụng mẫu
Tài liệu định nghĩa về khả năng tương thích cho phiên bản Android trong tương lai sẽ bao gồm danh sách ứng dụng
đại diện và rộng rãi hơn so với danh sách được liệt kê trong Phần 4 ở trên. Đối với Android 1.6, bạn phải kiểm thử các ứng dụng
được liệt kê trong Phần 4.
5. Màn hình cảm ứng
Các phiên bản sau này của Định nghĩa về khả năng tương thích có thể cho phép hoặc không cho phép thiết bị bỏ qua màn hình cảm ứng.
Tuy nhiên, hiện tại, phần lớn hoạt động triển khai khung Android đều giả định có màn hình cảm ứng
; việc bỏ qua màn hình cảm ứng sẽ làm hỏng đáng kể tất cả ứng dụng Android của bên thứ ba hiện tại,
vì vậy, trong Android 1.6, bạn phải có màn hình cảm ứng để đảm bảo khả năng tương thích.
6. Hiệu suất
Các phiên bản CTS trong tương lai cũng sẽ đo lường mức sử dụng CPU và hiệu suất của các thành phần
sau đây trong quá trình triển khai:
• Đồ hoạ 2D
• Đồ hoạ 3D
• Phát video
• Phát âm thanh
• Phát Bluetooth A2DP
Đường viền tài liệu
- 1. Giới thiệu
- 2. Tài nguyên
- 3. Phần mềm
- 3.1. Khả năng tương thích với API được quản lý
- 3.2. Khả năng tương thích mềm của API
- 3.3. Khả năng tương thích với API gốc
- 3.4. Khả năng tương thích với API web
- 3.5. Khả năng tương thích về hành vi của API
- 3.6. Không gian tên API
- 3.7. Khả năng tương thích với máy ảo
- 3.8. Khả năng tương thích với giao diện người dùng
- 4. Khả năng tương thích với phần mềm tham chiếu
- 5. Khả năng tương thích của tính năng đóng gói ứng dụng
- 6. Khả năng tương thích với nội dung đa phương tiện
- 7. Khả năng tương thích với công cụ dành cho nhà phát triển
- 8. Khả năng tương thích với phần cứng
- 9. Khả năng tương thích về hiệu suất
- 10. Khả năng tương thích của mô hình bảo mật
- 11. Bộ kiểm thử khả năng tương thích
- 12. Liên hệ với chúng tôi
- Phụ lục A: Ý định ứng dụng bắt buộc