AOSP cung cấp một số công cụ và bộ thử nghiệm để thử nghiệm các phần khác nhau trong quá trình triển khai của bạn. Trước khi tiếp tục phần này, bạn nên làm quen với các thuật ngữ sau:
- Thiết bị tương thích với Android
- Một thiết bị có thể chạy bất kỳ ứng dụng nào của bên thứ ba do nhà phát triển bên thứ ba viết bằng SDK Android và NDK. Các thiết bị tương thích với Android phải tuân thủ các yêu cầu của Tài liệu định nghĩa tương thích (CDD) và vượt qua Bộ kiểm tra tương thích (CTS) . Các thiết bị tương thích với Android đủ điều kiện tham gia vào hệ sinh thái Android, bao gồm giấy phép tiềm năng cho Cửa hàng Google Play, giấy phép tiềm năng cho bộ ứng dụng và API của Google Mobile Services (GMS) cũng như việc sử dụng nhãn hiệu Android. Bất kỳ ai cũng có thể sử dụng mã nguồn Android nhưng để được coi là một phần của hệ sinh thái Android, thiết bị phải tương thích với Android.
- hiện vật
- Cấu phần phần mềm là nhật ký liên quan đến bản dựng cho phép khắc phục sự cố cục bộ.
- Tài liệu định nghĩa khả năng tương thích (CDD)
- Tài liệu liệt kê các yêu cầu về phần mềm và phần cứng dành cho thiết bị tương thích với Android.
- Bộ kiểm tra khả năng tương thích (CTS)
Bộ thử nghiệm cấp thương mại, miễn phí, có sẵn để tải xuống dưới dạng nhị phân hoặc dưới dạng nguồn trong AOSP. CTS là một tập hợp các bài kiểm tra đơn vị được thiết kế để tích hợp vào quy trình làm việc hàng ngày của bạn. Mục đích của CTS là tiết lộ những điểm không tương thích và đảm bảo rằng phần mềm vẫn tương thích trong suốt quá trình phát triển.
CTS và thử nghiệm nền tảng không loại trừ lẫn nhau. Dưới đây là một số hướng dẫn chung:
- Nếu một thử nghiệm khẳng định tính chính xác của các chức năng hoặc hành vi của API khung và nó phải được thực thi trên các đối tác OEM thì thử nghiệm đó phải có trong CTS.
- Nếu thử nghiệm nhằm mục đích phát hiện các hiện tượng hồi quy trong quá trình phát triển nền tảng và có thể yêu cầu quyền đặc quyền để thực hiện cũng như có thể phụ thuộc vào chi tiết triển khai (như được phát hành trong AOSP), thì đó phải là thử nghiệm nền tảng.
- Dịch vụ di động của Google (GMS)
Bộ sưu tập các ứng dụng và API của Google có thể được cài đặt sẵn trên thiết bị.
- GoogleTest (GTest)
GTest là một khung thử nghiệm và mô phỏng C++. Các tệp nhị phân GTest thường truy cập các lớp trừu tượng cấp thấp hơn hoặc thực hiện IPC thô đối với các dịch vụ hệ thống khác nhau. Phương pháp thử nghiệm GTest thường được kết hợp chặt chẽ với dịch vụ đang được thử nghiệm. CTS chứa khung GTest.
- kiểm tra thiết bị đo đạc
Kiểm thử thiết bị đo lường cung cấp một môi trường thực thi kiểm thử đặc biệt do lệnh
am instrument
khởi chạy, trong đó quy trình ứng dụng mục tiêu được khởi động lại và khởi tạo với ngữ cảnh ứng dụng cơ bản, đồng thời một luồng thiết bị đo lường được khởi động bên trong máy ảo quy trình ứng dụng. CTS chứa các bài kiểm tra thiết bị đo đạc.- logcat
Logcat là một công cụ dòng lệnh tạo nhật ký các thông báo hệ thống, bao gồm dấu vết ngăn xếp khi thiết bị gặp lỗi và các thông báo mà bạn đã viết từ ứng dụng của mình bằng lớp
Log
.- khai thác gỗ
Ghi nhật ký đề cập đến việc sử dụng nhật ký để theo dõi các sự kiện của hệ thống máy tính, chẳng hạn như lỗi. Việc đăng nhập vào Android rất phức tạp do sự kết hợp của các tiêu chuẩn được sử dụng được kết hợp trong công cụ Logcat.
- bài kiểm tra sau khi gửi
Các thử nghiệm gửi lại của Android được thực hiện khi một bản vá mới được cam kết cho một nhánh hạt nhân chung. Bằng cách nhập
aosp_kernel
làm tên nhánh một phần, bạn có thể xem danh sách các nhánh kernel với kết quả có sẵn. Ví dụ: bạn có thể tìm thấy kết quả choandroid-mainline
tại https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid .- nộp bài kiểm tra trước
Các bài kiểm tra gửi trước được sử dụng để ngăn chặn các lỗi được đưa vào các hạt nhân thông thường.
- Liên đoàn Thương mại
Liên đoàn Thương mại, còn được gọi là Tradefed, là một khung thử nghiệm liên tục được thiết kế để chạy thử nghiệm trên thiết bị Android. Ví dụ: Tradefed được sử dụng để chạy thử nghiệm Bộ kiểm tra tương thích và Bộ kiểm tra nhà cung cấp.
- Bộ thử nghiệm nhà cung cấp (VTS)
Bộ thử nghiệm nhà cung cấp Android (VTS) cung cấp các khả năng mở rộng để thử nghiệm Android, thúc đẩy quá trình phát triển dựa trên thử nghiệm và tự động hóa thử nghiệm hạt nhân HAL và hệ điều hành.
Các loại thử nghiệm nền tảng
Kiểm thử nền tảng thường tương tác với một hoặc nhiều lớp dịch vụ hệ thống Android hoặc lớp trừu tượng phần cứng (HAL), thực hiện các chức năng của đối tượng được kiểm thử và khẳng định tính chính xác của kết quả kiểm thử. Một thử nghiệm nền tảng có thể:
- (loại 1) Thực hiện API khung bằng khung Android. Các API cụ thể đang được thực hiện có thể bao gồm:
- API công khai dành cho ứng dụng của bên thứ ba
- API ẩn dành cho các ứng dụng đặc quyền, cụ thể là API hệ thống hoặc API riêng tư (
@hide
, or
protected,
gói riêng tư`)
- (loại 2) Gọi trực tiếp các dịch vụ hệ thống Android bằng cách sử dụng proxy thô hoặc proxy IPC.
- (loại 3) Tương tác trực tiếp với HAL bằng giao diện API hoặc IPC cấp thấp.
Thử nghiệm loại 1 và 2 thường là thử nghiệm thiết bị đo đạc, trong khi thử nghiệm loại 3 thường là GTest.
Cái gì tiếp theo?
Sau đây là danh sách các tài liệu tiếp theo mà bạn có thể đọc:
Nếu bạn chưa nghiên cứu kiến trúc Android, hãy xem Tổng quan về kiến trúc .
Nếu bạn đang tạo một thiết bị tương thích với Android, hãy xem tổng quan về chương trình tương thích với Android .
Để tích hợp các thử nghiệm máy chủ đo lường, chức năng, số liệu và máy chủ JAR vào dịch vụ thử nghiệm liên tục trên nền tảng, hãy xem Quy trình phát triển thử nghiệm .
Để phát hiện và tăng cường bảo mật cho thiết bị của bạn trước các lỗ hổng, hãy xem Kiểm tra bảo mật .
Để tìm hiểu về việc kiểm tra quá trình triển khai HAL và kernel của bạn, hãy xem Bộ kiểm tra nhà cung cấp (VTS) và cơ sở hạ tầng .
Để thử nghiệm ứng dụng, hãy đọc Nguyên tắc cơ bản về thử nghiệm ứng dụng Android và tiến hành Android nâng cao trong Kotlin 05.1: Kiến thức cơ bản về thử nghiệm bằng cách sử dụng các mẫu được cung cấp.
Tìm hiểu về thử nghiệm gửi trước cơ bản có sẵn cho bạn thông qua repo hook. Những hook này có thể được sử dụng để chạy linters, kiểm tra định dạng và kích hoạt các bài kiểm tra đơn vị trước khi tiếp tục, chẳng hạn như tải lên một cam kết. Các hook này bị tắt theo mặc định. Để biết thêm thông tin, hãy xem Móc cài sẵn AOSP .
Để đọc thêm về ghi nhật ký, hãy xem Tìm hiểu về ghi nhật ký .
Để hiểu cách gỡ lỗi mã Android, hãy xem Gỡ lỗi mã nền tảng gốc .