Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release thay vì aosp-main để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Trình dọn dẹp là một nhóm các công cụ phân tích động giúp tìm lỗi trong các chương trình trong thời gian chạy thông qua các công cụ đo lường bổ sung do trình biên dịch chèn vào. Điều này bao gồm cả việc phát hiện các vấn đề về an toàn bộ nhớ. Android hỗ trợ và khuyên bạn nên sử dụng các trình dọn dẹp sau:
AddressSanitizer được hỗ trợ phần cứng (HWASan)
HWASan là trình dọn dẹp chính để phát hiện các vấn đề về an toàn bộ nhớ. API này yêu cầu ARM64 và có thể phát hiện:
Chặn tràn (overflow) hoặc chặn trống (underflow) cho ngăn xếp (stack) và bộ nhớ khối xếp (heap)
Sử dụng bộ nhớ khối xếp sau khi giải phóng
Sử dụng ngăn xếp sau phạm vi
Sử dụng ngăn xếp sau khi trả về
Giải phóng hai lần hoặc giải phóng bộ nhớ chưa được cấp phát trước đó
Trình dọn dẹp địa chỉ (ASan)
ASan là một công cụ tương tự như HWASan. API này hoạt động trên nhiều nền tảng hơn nhưng không được hỗ trợ trên Android.
Trình dọn dẹp KernelAddress (KASan)
KASan là phần tương ứng của hạt nhân với các công cụ không gian người dùng ở trên. Phương thức này có cùng cách triển khai trình biên dịch. KASan và ASan/HWASan bổ sung cho nhau vì một công cụ áp dụng cho nhân và một công cụ khác áp dụng cho không gian người dùng.
Bạn nên bật cả hai cùng một lúc để giảm số lượng cấu hình bản dựng và giảm ma trận kiểm thử.
Trình dọn dẹp UndefinedBehavior (UBSan)
UBSan thực hiện đo lường thời gian biên dịch để kiểm tra nhiều loại hành vi không xác định (không an toàn về bộ nhớ). Bao gồm cả việc kiểm tra tràn số nguyên đã ký và chưa ký (IntSan), kiểm tra giới hạn cho các mảng có kích thước tĩnh (BoundsSan) và nhiều loại hành vi không xác định khác. IntSan và BoundsSan cũng phù hợp để bật trong bản phát hành chính thức như một biện pháp giảm thiểu bảo mật.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Sanitizers\n\n| **Note:** This page talks about sanitizers for Android platform development. For sanitizers for app development, refer to the [NDK documentation](https://developer.android.com/ndk/guides/memory-debug).\n\nThe sanitizers are a group of dynamic analysis tools that find mistakes in\nprograms at runtime through additional instrumentation that was inserted by the\ncompiler. This includes detecting\n[memory safety](/docs/security/test/memory-safety) issues. Android supports\nand strongly recommends usage of the following sanitizers:\n\nHardware-assisted AddressSanitizer (HWASan)\n-------------------------------------------\n\n[HWASan](/docs/security/test/hwasan) is the main sanitizer to provide detection\nfor memory safety problems. It requires ARM64 and can detect:\n\n- Stack and heap buffer overflow or underflow\n- Heap use after free\n- Stack use after scope\n- Stack use after return\n- Double free or wild free\n\nAddress sanitizer (ASan)\n------------------------\n\n[ASan](/docs/security/test/asan) is a tool similar to HWASan. It works on more\nplatforms, but is unsupported on Android.\n\nKernelAddress sanitizer (KASan)\n-------------------------------\n\n[KASan](/docs/security/test/kasan) is the kernel counterpart of the userspace\ntools above. It shares the same compiler implementation. KASan and ASan/HWASan\nare complementary as one tool applies to the kernel and another to userspace.\nWe recommend enabling both at the same time to reduce the number of build\nconfigurations and to reduce the testing matrix.\n\nUndefinedBehavior sanitizer (UBSan)\n-----------------------------------\n\n[UBSan](/docs/security/test/ubsan) performs compile-time instrumentation to\ncheck for various types of (non memory-safety) undefined behavior. This includes\nsigned and unsigned integer overflow checking (IntSan), bounds checks for\nstatically-sized arrays (BoundsSan), and lots of other types of undefined\nbehavior. IntSan and BoundsSan are also suitable for enabling in production as a\nsecurity mitigation."]]