Trước đây, Android chỉ hỗ trợ kích thước trang bộ nhớ 4 KB, giúp tối ưu hoá hiệu suất bộ nhớ hệ thống cho tổng dung lượng bộ nhớ trung bình mà các thiết bị Android thường có. Kể từ Android 15, AOSP hỗ trợ các thiết bị được định cấu hình để sử dụng kích thước trang 16 KB (thiết bị 16 KB). Nếu ứng dụng của bạn sử dụng bất kỳ thư viện NDK nào, trực tiếp hoặc gián tiếp thông qua một SDK, thì bạn sẽ cần phải tạo lại ứng dụng để ứng dụng hoạt động trên các thiết bị 16 KB này.
Khi các nhà sản xuất thiết bị tiếp tục sản xuất thiết bị có bộ nhớ vật lý (RAM) lớn hơn, nhiều thiết bị trong số này sẽ áp dụng kích thước trang 16 KB (và cuối cùng là lớn hơn) để tối ưu hoá hiệu suất của thiết bị. Việc thêm khả năng hỗ trợ cho các thiết bị có kích thước trang 16 KB giúp ứng dụng của bạn chạy trên những thiết bị này và giúp ứng dụng của bạn hưởng lợi từ những điểm cải thiện hiệu suất liên quan. Nếu không được biên dịch lại, các ứng dụng sẽ không hoạt động trên các thiết bị 16 KB trong các bản phát hành Android sau này.
Để giúp bạn thêm tính năng hỗ trợ cho ứng dụng, chúng tôi đã cung cấp hướng dẫn về cách kiểm tra xem ứng dụng của bạn có bị ảnh hưởng hay không, cách tạo lại ứng dụng (nếu có) và cách kiểm thử ứng dụng trong môi trường 16 KB bằng trình mô phỏng (bao gồm cả hình ảnh hệ thống Android 15 cho Trình mô phỏng Android).
Lợi ích và hiệu suất tăng lên
Các thiết bị được định cấu hình với kích thước trang 16 KB sử dụng nhiều bộ nhớ hơn một chút trung bình, nhưng cũng có nhiều điểm cải tiến về hiệu suất cho cả hệ thống và ứng dụng:
- Giảm thời gian khởi chạy ứng dụng khi hệ thống chịu áp lực về bộ nhớ: Trung bình thấp hơn 3,16%, với mức cải thiện đáng kể hơn (lên đến 30%) đối với một số ứng dụng mà chúng tôi đã thử nghiệm
- Giảm mức tiêu thụ điện năng trong quá trình khởi chạy ứng dụng: trung bình giảm 4,56%
- Khởi động máy ảnh nhanh hơn: trung bình khởi động nóng nhanh hơn 4,48% và khởi động nguội nhanh hơn 6,60%
- Cải thiện thời gian khởi động hệ thống: trung bình cải thiện 8% (khoảng 950 mili giây)
Những cải tiến này dựa trên thử nghiệm ban đầu của chúng tôi và kết quả trên các thiết bị thực tế có thể sẽ khác. Chúng tôi sẽ phân tích thêm về những lợi ích có thể xảy ra đối với ứng dụng trong quá trình kiểm thử.
Kiểm tra xem ứng dụng của bạn có bị ảnh hưởng hay không
Nếu ứng dụng của bạn sử dụng mã gốc, thì bạn nên tạo lại ứng dụng để hỗ trợ các thiết bị 16 KB. Nếu không chắc chắn liệu ứng dụng của mình có dùng mã gốc hay không, bạn có thể dùng Công cụ phân tích APK để xác định xem có mã gốc nào hay không, sau đó kiểm tra mức căn chỉnh của các phân đoạn ELF cho mọi thư viện dùng chung mà bạn tìm thấy. Android Studio cũng cung cấp các tính năng giúp bạn tự động phát hiện các vấn đề về căn chỉnh.
Nếu ứng dụng của bạn chỉ dùng mã viết bằng ngôn ngữ lập trình Java hoặc Kotlin, bao gồm tất cả các thư viện hoặc SDK, thì ứng dụng của bạn đã hỗ trợ thiết bị 16 KB. Tuy nhiên, bạn nên kiểm thử ứng dụng trong môi trường 16 KB để xác minh rằng không có hồi quy không mong muốn nào trong hành vi của ứng dụng.
Ứng dụng có sử dụng mã gốc không?
Ứng dụng của bạn sử dụng mã gốc nếu có bất kỳ trường hợp nào sau đây:
- Ứng dụng của bạn sử dụng mã C/C++ (gốc) bất kỳ. Nếu ứng dụng của bạn sử dụng Android NDK, thì ứng dụng đó sẽ sử dụng mã gốc.
- Ứng dụng của bạn liên kết với mọi thư viện gốc hoặc phần phụ thuộc của bên thứ ba (chẳng hạn như SDK) sử dụng các thư viện gốc hoặc phần phụ thuộc đó.
- Ứng dụng của bạn được tạo bởi một trình tạo ứng dụng bên thứ ba sử dụng các thư viện gốc trên thiết bị.
Xác định thư viện gốc bằng Công cụ phân tích APK
Công cụ phân tích APK là một công cụ giúp bạn đánh giá nhiều khía cạnh của một tệp APK đã dựng. Cách kiểm tra xem ứng dụng của bạn có sử dụng mã gốc hay không (bất kể ứng dụng có tương thích với kích thước trang 16 KB hay không):
- Mở Android Studio, sau đó nhấp vào File > Open (Tệp > Mở) rồi chọn một dự án bất kỳ.
Trên thanh trình đơn, hãy nhấp vào Build > Analyze APK... (Tạo > Phân tích APK...)
Chọn tệp APK mà bạn muốn phân tích.
Tìm trong thư mục
lib
, thư mục này lưu trữ các tệp đối tượng dùng chung (.so
) (nếu có). Nếu có bất kỳ tệp đối tượng dùng chung nào, thì ứng dụng của bạn sẽ sử dụng mã gốc. Cột Alignment (Căn chỉnh) hiển thị thông báo cảnh báo cho mọi tệp có vấn đề về việc căn chỉnh. Nếu không có tệp đối tượng dùng chung hoặc không có thư mụclib
, thì ứng dụng của bạn không sử dụng mã gốc.
Phát hiện vấn đề về việc căn chỉnh bằng quy trình kiểm tra tự động
Android Studio sẽ chủ động cảnh báo bạn nếu các thư viện hoặc APK tạo sẵn của bạn không tuân thủ quy tắc 16 KB. Sử dụng công cụ APK Analyzer để xem xét những thư viện cần được cập nhật hoặc liệu có cần thay đổi mã hay không.

Công cụ tìm lỗi mã nguồn trong Android Studio cũng làm nổi bật những thư viện gốc không được căn chỉnh 16 KB.

Kiểm tra việc căn chỉnh các phân đoạn ELF cho thư viện dùng chung
Đối với mọi thư viện dùng chung, hãy xác minh rằng các phân đoạn ELF của thư viện dùng chung được căn chỉnh đúng cách bằng cách sử dụng chế độ căn chỉnh ELF 16 KB. Nếu đang phát triển trên Linux hoặc macOS, bạn có thể sử dụng tập lệnh check_elf_alignment.sh
như mô tả trong phần sau. Bạn cũng có thể sử dụng trực tiếp các công cụ dòng lệnh.
Sử dụng tập lệnh check_elf_alignment.sh (Linux hoặc macOS)
Hãy làm theo các bước sau để kiểm tra việc căn chỉnh các phân đoạn ELF bằng tập lệnh check_elf_alignment.sh
:
Lưu tập lệnh
check_elf_alignment.sh
vào một tệp.Chạy tập lệnh trên tệp APK của ứng dụng:
check_elf_alignment.sh APK_NAME.apk
Tập lệnh này xuất ra
ALIGNED
hoặcUNALIGNED
cho tất cả các thư viện dùng chungarm64-v8a
.Nếu có thư viện dùng chung
arm64-v8a
hoặcx86_64
nào làUNALIGNED
, bạn cần cập nhật quy trình đóng gói cho các thư viện đó, sau đó biên dịch lại ứng dụng và kiểm thử lại bằng cách làm theo các bước trong phần này.
Dùng trực tiếp các công cụ dòng lệnh
Hãy làm theo các bước sau để kiểm tra việc căn chỉnh các phân đoạn ELF bằng cách sử dụng trực tiếp các công cụ dòng lệnh:
- Đảm bảo bạn đã cài đặt cả Công cụ bản dựng SDK Android phiên bản 35.0.0 trở lên và Android NDK bằng Trình quản lý SDK trong Android Studio hoặc công cụ dòng lệnh
sdkmanager
. Trích xuất tệp APK của ứng dụng:
Linux hoặc macOS
unzip APK_NAME.apk -d /tmp/my_apk_out
Windows (PowerShell)
Expand-Archive -Path .\APK_NAME.apk -DestinationPath ~\tmp\my_apk_out
Trong thư mục tạm thời mà bạn đã trích xuất tệp APK, hãy kiểm tra nội dung của thư mục
lib
để tìm các tệp đối tượng dùng chung (.so
). Đây là những tệp đối tượng dùng chung mà bạn đã thấy khi xác định thư viện gốc bằng Công cụ phân tích APK. Chạy lệnh sau trên mỗi tệp đối tượng dùng chung:Linux hoặc macOS
SDK_ROOT_LOCATION/Android/sdk/ndk/NDK_VERSION/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump -p SHARED_OBJECT_FILE.so | grep LOAD
Windows (PowerShell)
SDK_ROOT_LOCATION\Android\sdk\ndk\NDK_VERSION\toolchains\llvm\prebuilt\windows-x86_64\bin\llvm-objdump.exe -p SHARED_OBJECT_FILE.so | Select-String -Pattern "LOAD"
Trong đó,
SDK_ROOT_LOCATION
là đường dẫn đến thư mục nơi bạn đã cài đặt Android SDK,SHARED_OBJECT_FILE
là tên của tệp đối tượng dùng chung mà bạn đang kiểm tra vàNDK_VERSION
là phiên bản Android NDK mà bạn đã cài đặt (ví dụ:28.0.12433566
). Đầu ra sẽ có dạng như sau cho mỗi tệp bạn kiểm tra:LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**14 LOAD off 0x0000000000042a90 vaddr 0x0000000000043a90 paddr 0x0000000000043a90 align 2**14 LOAD off 0x0000000000046230 vaddr 0x0000000000048230 paddr 0x0000000000048230 align 2**14
Kiểm tra các dòng đầu ra để đảm bảo rằng các phân đoạn tải không có giá trị nhỏ hơn
2**14
. Nếu có phân đoạn tải nào là2**13
,2**12
hoặc có giá trị thấp hơn, bạn sẽ cần cập nhật quy trình đóng gói cho các thư viện đó, sau đó biên dịch lại ứng dụng và kiểm thử lại bằng cách làm theo các bước trong phần này.Tiếp theo, hãy chạy công cụ dòng lệnh
zipalign
trên tệp APK của ứng dụng:Linux hoặc macOS
SDK_ROOT_LOCATION/Android/sdk/build-tools/35.0.0/zipalign -v -c -P 16 4 APK_NAME.apk
Windows (PowerShell)
SDK_ROOT_LOCATION\Android\sdk\build-tools\35.0.0\zipalign.exe -v -c -P 16 4 APK_NAME.apk
Trong đó
SDK_ROOT_LOCATION
là đường dẫn đến thư mục mà bạn đã cài đặt Android SDK vàAPK_NAME
là tên của tệp APK ứng dụng. Dòng cuối cùng của đầu ra sẽ có nội dung "Verification successful" (Xác minh thành công) nếu tất cả các thư viện dùng chung đều được căn chỉnh đúng cách.Nếu quá trình xác minh không thành công, bạn cần điều chỉnh lại một số thư viện dùng chung. Vì vậy, bạn cần cập nhật quy trình đóng gói cho các thư viện đó, sau đó biên dịch lại ứng dụng và kiểm thử lại bằng cách làm theo các bước trong phần này.
Tạo ứng dụng có hỗ trợ các thiết bị 16 KB
Nếu ứng dụng của bạn dùng mã gốc, hãy hoàn tất các bước nêu trong các phần sau để đảm bảo ứng dụng hỗ trợ các thiết bị 16 KB:
- Cập nhật cách đóng gói thư viện dùng chung
- Biên dịch ứng dụng bằng chế độ căn chỉnh ELF 16 KB
- Sửa mã và giải quyết các vấn đề về thời gian chạy
- Kiểm tra xem các SDK có hỗ trợ 16 KB hay không
Cập nhật cách đóng gói thư viện dùng chung
Bạn nên nâng cấp lên AGP phiên bản 8.5.1 trở lên và sử dụng các thư viện dùng chung chưa nén.
AGP phiên bản 8.5.1 trở lên
Các thiết bị 16 KB yêu cầu những ứng dụng đi kèm với các thư viện dùng chung chưa nén phải căn chỉnh các thư viện đó trên ranh giới được căn chỉnh theo tệp zip 16 KB. Để làm việc này, bạn cần nâng cấp lên trình bổ trợ Android cho Gradle (AGP) phiên bản 8.5.1 trở lên. Hãy tham khảo phần Trợ lý nâng cấp trình bổ trợ Android cho Gradle để biết thông tin chi tiết về quy trình nâng cấp.
AGP phiên bản 8.5 trở xuống
Nếu không thể nâng cấp AGP lên phiên bản 8.5.1 trở lên, thì bạn có thể chuyển sang sử dụng các thư viện chia sẻ nén. Hãy cập nhật cấu hình Gradle để Gradle nén các thư viện dùng chung khi đóng gói ứng dụng nhằm tránh các vấn đề khi cài đặt ứng dụng có thư viện dùng chung không được điều chỉnh.
Groovy
Trong tệp build.gradle
, hãy thêm lựa chọn sau:
android {
...
packagingOptions {
jniLibs {
useLegacyPackaging true
}
}
}
Kotlin
Trong tệp build.gradle.kts
, hãy thêm lựa chọn sau:
android {
...
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
}
Biên dịch ứng dụng bằng chế độ căn chỉnh ELF 16 KB
Các thiết bị 16 KB yêu cầu các phân đoạn ELF của thư viện dùng chung phải được căn chỉnh đúng cách bằng cách sử dụng chế độ căn chỉnh ELF 16 KB để ứng dụng của bạn có thể chạy.
Đối với nhà phát triển trò chơi, nếu trò chơi của bạn chạy trên công cụ phát triển trò chơi Unity, hãy tham khảo hướng dẫn về Unity. Nếu trò chơi của bạn chạy trên công cụ chơi trò chơi Unreal, hãy tham khảo hướng dẫn về Unreal. Đối với các công cụ phát triển trò chơi gốc, hãy tiếp tục theo hướng dẫn này.
Để biên dịch ứng dụng bằng cách căn chỉnh ELF 16 KB, hãy hoàn tất các bước trong một trong các phần sau đây, tuỳ thuộc vào phiên bản Android NDK mà bạn đang sử dụng.
Android NDK r28 trở lên
NDK phiên bản r28 trở lên biên dịch 16 KB theo mặc định.
Android NDK r27
Để hỗ trợ biên dịch các thư viện dùng chung được căn chỉnh 16 KB bằng Android NDK phiên bản r27 trở lên, bạn cần cập nhật ndk-build
, build.gradle
, build.gradle.kts
hoặc các cờ trình liên kết như sau:
ndk-build
Trong Application.mk
:
APP_SUPPORT_FLEXIBLE_PAGE_SIZES := true
Groovy
Trong tệp build.gradle
, hãy đặt đối số -DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON
:
android {
...
defaultConfig {
...
// This block is different from the one you use to link Gradle
// to your CMake or ndk-build script.
externalNativeBuild {
// For ndk-build, instead use the ndkBuild block.
cmake {
// Passes optional arguments to CMake.
arguments "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON"
}
}
}
}
Kotlin
Trong tệp build.gradle.kts
, hãy đặt đối số -DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON
:
android {
...
defaultConfig {
...
// This block is different from the one you use to link Gradle
// to your CMake or ndk-build script.
externalNativeBuild {
// For ndk-build, instead use the ndkBuild block.
cmake {
// Passes optional arguments to CMake.
arguments += listOf("-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON")
}
}
}
}
Các hệ thống xây dựng khác
Chỉ định các cờ trình liên kết sau:
-Wl,-z,max-page-size=16384
Android NDK r26 trở xuống
Để hỗ trợ biên dịch các thư viện dùng chung được căn chỉnh 16 KB bằng Android NDK phiên bản r26 trở xuống, bạn cần cập nhật cấu hình ndk-build
hoặc cmake
như sau:
ndk-build
Cập nhật Android.mk
để bật chế độ căn chỉnh ELF 16 KB:
LOCAL_LDFLAGS += "-Wl,-z,max-page-size=16384"
CMake
Cập nhật CMakeLists.txt
để bật chế độ căn chỉnh ELF 16 KB:
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE "-Wl,-z,max-page-size=16384")
Android NDK r22 trở xuống
Ngoài bước được nêu cho NDK r26 trở xuống, bạn phải đặt common-page-size=16384
nếu đang sử dụng NDK r22 trở xuống. Bạn phải đặt common-page-size=16384
do lỗi trong các phiên bản trước của trình liên kết GNU ld và LLVM lld. Tuy nhiên, bạn nên cập nhật công cụ của mình lên phiên bản gần đây hơn để tránh hoàn toàn những lỗi này.
Để biên dịch các thư viện dùng chung tương thích 16 KB bằng Android NDK phiên bản r22 trở xuống, hãy cập nhật cấu hình ndk-build
hoặc cmake
như sau:
ndk-build
Cập nhật Android.mk
để tạo ELF tương thích với kích thước trang 16 KB:
LOCAL_LDFLAGS += "-Wl,-z,max-page-size=16384"
LOCAL_LDFLAGS += "-Wl,-z,common-page-size=16384"
CMake
Cập nhật CMakeLists.txt
để tạo ELF tương thích với kích thước trang 16 KB:
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE "-Wl,-z,max-page-size=16384")
target_link_options(${CMAKE_PROJECT_NAME} PRIVATE "-Wl,-z,common-page-size=16384")
Sửa mã và giải quyết các vấn đề khi bắt đầu chạy
Ngay cả khi ứng dụng của bạn được căn chỉnh 16 KB, ứng dụng vẫn có thể gặp lỗi nếu các vị trí trong mã của bạn giả định rằng thiết bị đang sử dụng một kích thước trang cụ thể. Để tránh tình trạng này, hãy hoàn tất các bước sau:
Xoá mọi phần phụ thuộc được mã hoá cứng tham chiếu đến hằng số
PAGE_SIZE
hoặc các thực thể trong logic mã của bạn giả định rằng kích thước trang của thiết bị là 4 KB (4096
).Thay vào đó, hãy sử dụng
getpagesize()
hoặcsysconf(_SC_PAGESIZE)
.Tìm các trường hợp sử dụng
mmap()
và các API khác yêu cầu đối số được căn chỉnh theo trang, rồi thay thế bằng các đối số thay thế nếu cần.
Trong một số trường hợp, nếu ứng dụng của bạn sử dụng PAGE_SIZE
làm giá trị thuận tiện không liên kết với kích thước trang cơ bản, thì điều này sẽ không khiến ứng dụng của bạn bị lỗi khi được dùng ở chế độ 16 KB. Tuy nhiên, nếu giá trị này được truyền đến nhân với mmap
mà không có MAP_FIXED
, thì nhân vẫn sử dụng toàn bộ trang, điều này gây lãng phí một số bộ nhớ. Vì những lý do này, PAGE_SIZE
không được xác định khi chế độ 16 KB được bật trên NDK r27 trở lên.
Nếu ứng dụng của bạn sử dụng PAGE_SIZE
theo cách này và không bao giờ truyền trực tiếp giá trị này đến nhân, thì thay vì sử dụng PAGE_SIZE
, hãy tạo một biến mới có tên mới để phản ánh rằng biến này được dùng cho các mục đích khác và không phản ánh một trang nhớ thực.
Kiểm tra xem các SDK có hỗ trợ 16 KB hay không
Nhiều SDK tương thích với kích thước trang 16 KB, đặc biệt là nếu bạn tự tạo hoặc nhận các bản dựng sẵn gần đây. Tuy nhiên, vì một số SDK được tạo sẵn hoặc phiên bản SDK không tương thích với 16 KB, nên bạn cần kiểm tra trang web của từng nhà cung cấp SDK để xác định phiên bản cần dùng với 16 KB.
Kiểm thử ứng dụng trong môi trường 16 KB
Sau khi tạo ứng dụng có hỗ trợ các thiết bị 16 KB, bạn nên kiểm thử ứng dụng trong môi trường 16 KB để xem ứng dụng có gặp phải bất kỳ lỗi nào hay không. Để thực hiện việc này, hãy làm theo các bước sau:
Thiết lập một trong các môi trường kiểm thử sau:
Khởi động thiết bị kiểm thử, sau đó chạy lệnh sau để xác minh rằng thiết bị đang sử dụng môi trường 16 KB:
adb shell getconf PAGE_SIZE
Lệnh này sẽ trả về giá trị
16384
.Chạy lệnh
zipalign
sau đây để xác minh rằng ứng dụng của bạn được căn chỉnh 16 KB, trong đó APK_NAME là tên của tệp APK của ứng dụng:zipalign -c -P 16 -v 4 APK_NAME.apk
Kiểm thử kỹ lưỡng ứng dụng của bạn, tập trung vào mọi khía cạnh có thể bị ảnh hưởng bởi việc thay đổi các thực thể mã tham chiếu đến kích thước trang cụ thể.
Thiết lập Trình mô phỏng Android bằng hình ảnh hệ thống Android 15 dựa trên 16 KB
Để thiết lập môi trường 16 KB bằng Trình mô phỏng Android, hãy làm theo các bước sau:
Hình ảnh hệ thống trình mô phỏng Android 15 dựa trên 16 KB tương thích với Android Studio Jellyfish | 2023.3.1 trở lên. Tuy nhiên, để có trải nghiệm tốt nhất khi làm việc với các thiết bị 16 KB, hãy sử dụng Android Studio Ladybug | 2024.2.1 trở lên.
Chúng tôi luôn nỗ lực phát triển các tính năng mới, vì vậy, hãy cân nhắc tải các phiên bản mới hơn hoặc phiên bản xem trước mới nhất của Android Studio khi chúng được phát hành.
Hãy nhớ rằng bạn có thể giữ nguyên phiên bản Android Studio hiện có, vì bạn có thể cài đặt song song nhiều phiên bản.
Trong Android Studio, hãy nhấp vào Tool (Công cụ) > SDK Manager (Trình quản lý SDK).
Trong thẻ SDK Platforms (Nền tảng SDK), hãy đánh dấu vào Show Package Details (Hiện chi tiết gói), sau đó mở rộng phần Android VanillaIceCream (Android VanillaIceCream) trở lên rồi chọn một hoặc cả hai hình ảnh hệ thống trình mô phỏng sau đây, tuỳ thuộc vào thiết bị ảo mà bạn muốn tạo:
- Hình ảnh hệ thống ARM 64 v8a có kích thước trang 16 KB của API Google thử nghiệm
- Hình ảnh hệ thống Google API Experimental 16 KB Page Size Intel x86_64 Atom
Nhấp vào Apply > OK (Áp dụng > OK) để tải bất kỳ hình ảnh hệ thống nào mà bạn đã chọn xuống.
Làm theo các bước để thiết lập một thiết bị ảo cho Android 15, rồi chọn ảnh hệ thống 16 KB mà bạn đã tải xuống khi được nhắc chọn ảnh hệ thống. Nếu hình ảnh hệ thống không được đề xuất tự động, bạn có thể tìm thấy hình ảnh hệ thống 16 KB trong thẻ Hình ảnh khác.
Các bước bổ sung cho một số phiên bản trình mô phỏng và hình ảnh hệ thống
Đối với Trình mô phỏng Android phiên bản 35.1.5 đến 35.1.20 và trước bản sửa đổi 4 của ảnh hệ thống Kích thước trang 16 KB Android 15.0 được cung cấp trong Trình quản lý SDK, để mô phỏng môi trường 16 KB trên hệ thống x86_64, bạn cũng cần hoàn tất các bước sau. Bạn không cần thực hiện các bước này sau phiên bản 35.1.21 và với bản sửa đổi 4 của hình ảnh hệ thống Kích thước trang 16 KB Android 15.0 trở lên.
- Trong Trình quản lý thiết bị, hãy nhấp vào biểu tượng 3 dấu chấm bên cạnh hình ảnh 16 KB, rồi nhấp vào Show on Disk (Hiển thị trên ổ đĩa).
- Trong thư mục này, hãy tìm tệp
config.ini
. Thêm dòng sau vào tệp
config.ini
rồi lưu các thay đổi:kernel.parameters = androidboot.page_shift=14
Để xác minh các thay đổi, hãy chạy lệnh sau. Lệnh này sẽ trả về
16384
:adb shell getconf PAGE_SIZE
Chạy trình mô phỏng
Sau khi bạn hoàn tất việc thiết lập Trình mô phỏng Android và các thiết bị ảo, hãy khởi chạy trình mô phỏng từ trình đơn thiết bị mục tiêu hoặc từ dòng lệnh.
Bật chế độ 16 KB trên thiết bị bằng cách sử dụng tuỳ chọn cho nhà phát triển

Bật/tắt lựa chọn cho nhà phát triển Khởi động với kích thước trang 16 KB để khởi động thiết bị ở chế độ 16 KB.
Kể từ Android 15 QPR1, bạn có thể sử dụng tuỳ chọn dành cho nhà phát triển có trên một số thiết bị để khởi động thiết bị ở chế độ 16 KB và thực hiện kiểm thử trên thiết bị. Trước khi sử dụng tuỳ chọn cho nhà phát triển, hãy chuyển đến phần Cài đặt > Hệ thống > Bản cập nhật phần mềm rồi áp dụng mọi bản cập nhật hiện có.
Tuỳ chọn cho nhà phát triển này có trên các thiết bị sau:
Pixel 8 và Pixel 8 Pro (chạy Android 15 QPR1 trở lên)
Cảnh báo: Do một vấn đề đã biết với Android 15 QPR2 Beta 3, màn hình cảm ứng không hoạt động trên các thiết bị Pixel 8 sau khi cài đặt Android 15 QPR2 Beta 3 và khởi động thiết bị ở chế độ 16 KB. Vấn đề này không ảnh hưởng đến các thiết bị Pixel 8 Pro.
Pixel 8a (chạy Android 15 QPR1 trở lên)
Cảnh báo: Do một vấn đề đã biết với Android 15 QPR2 Beta 3, màn hình cảm ứng không hoạt động trên các thiết bị Pixel 8a sau khi cài đặt Android 15 QPR2 Beta 3 và khởi động thiết bị ở chế độ 16 KB.
Pixel 9, 9 Pro và 9 Pro XL (chạy Android 15 QPR2 Beta 2 trở lên)
Yêu cầu về khả năng tương thích của Google Play
Khi các nhà sản xuất thiết bị trang bị cho thiết bị nhiều RAM hơn để tối ưu hoá hiệu suất, nhiều thiết bị sẽ áp dụng kích thước trang lớn hơn như 16 KB. Để chuẩn bị cho việc ra mắt những thiết bị sắp tới này, Google Play sẽ đưa ra một yêu cầu mới về khả năng tương thích: kể từ ngày 1 tháng 11 năm 2025, tất cả ứng dụng mới và bản cập nhật cho ứng dụng hiện có được gửi đến Google Play và nhắm đến các thiết bị chạy Android 15 (API cấp 35) trở lên đều phải hỗ trợ kích thước trang 16 KB.
Để đọc thêm về yêu cầu tương thích này, hãy xem bài đăng này trên blog.