Cải Thiện Hiệu Suất Của Trò Chơi | Android Developers
Có thể bạn quan tâm
Thông tin cơ bản - Xây dựng trải nghiệm AI
- Tạo ứng dụng Android sử dụng AI bằng các Gemini API và nhiều công cụ khác.
- Bắt đầu
- Bắt đầu
- Bắt đầu bằng cách tạo ứng dụng đầu tiên, sau đó tìm hiểu sâu hơn thông qua các khoá đào tạo của chúng tôi hoặc tự mình khám phá hoạt động phát triển ứng dụng.
- Hello world
- Khoá đào tạo
- Hướng dẫn
- Compose cho các nhóm
- Kotlin cho Android
- Kiếm tiền với Play ↗️
- Xác minh nhà phát triển Android
- Mở rộng theo thiết bị
- Tạo các ứng dụng mang đến cho người dùng trải nghiệm liền mạch từ điện thoại đến máy tính bảng, đồng hồ, tai nghe và nhiều thiết bị khác.
- Ứng dụng thích ứng
- Android XR
- Wear OS
- Android cho Ô tô
- Android TV
- ChromeOS
- Tạo ứng dụng theo danh mục
- Làm theo hướng dẫn định sẵn và có quy tắc của Google để tìm hiểu cách tạo ứng dụng sao cho phù hợp với trường hợp sử dụng của bạn.
- Trò chơi
- Camera và nội dung nghe nhìn
- Mạng xã hội và nhắn tin
- Sức khoẻ và thể dục
- Năng suất
- Ứng dụng dành cho doanh nghiệp
- Nắm bắt thông tin mới nhất
- Theo dõi các bản phát hành mới nhất trong suốt cả năm, tham gia các chương trình dùng thử và góp ý cho chúng tôi.
- Thông tin mới nhất
- Thông tin cập nhật về thử nghiệm
- Bản xem trước Android Studio
- Thư viện Jetpack và Compose
- Bản phát hành cho Wear OS
- Hộp cát về quyền riêng tư ↗️
- Trải nghiệm xuất sắc
- Tạo trải nghiệm tối ưu cho những người dùng tốt nhất của bạn.
- Tìm hiểu thêm
- Thiết kế giao diện người dùng
- Thiết kế giao diện người dùng đẹp mắt bằng cách sử dụng các phương pháp hay nhất về Android.
- Thiết kế dành cho Android
- Thiết bị di động
- Giao diện người dùng thích ứng
- Thiết bị đeo đầu XR và kính thông minh XR
- Kính AI
- Tiện ích
- Wear OS
- Android TV
- Android cho Ô tô
- Cấu trúc
- Thiết kế logic và các dịch vụ mạnh mẽ, có thể kiểm thử và bảo trì cho ứng dụng.
- Giới thiệu
- Thư viện
- Thao tác
- Mô-đun hoá
- Kiểm thử
- Kotlin Multiplatform
- Chất lượng
- Lập kế hoạch về chất lượng ứng dụng và điều chỉnh cho phù hợp với nguyên tắc của Cửa hàng Play.
- Tổng quan
- Giá trị cốt lõi
- Trải nghiệm người dùng
- Hỗ trợ tiếp cận
- Chất lượng kỹ thuật
- Trải nghiệm xuất sắc
- Bảo mật
- Bảo vệ người dùng khỏi các mối đe doạ và đảm bảo trải nghiệm Android an toàn.
- Tổng quan
- Quyền riêng tư
- Quyền
- Danh tính
- Biện pháp chống lừa đảo
- Gemini trong Android Studio
- Người bạn đồng hành AI giúp bạn phát triển các ứng dụng Android.
- Tìm hiểu thêm
- Tải Android Studio
- Lĩnh vực cốt lõi
- Nhận mẫu và tài liệu về những tính năng bạn cần.
- Mẫu
- Giao diện người dùng
- Hoạt động chạy trong nền
- Dữ liệu và tệp
- Khả năng kết nối
- Tất cả các lĩnh vực cốt lõi ⤵️
- Công cụ và quy trình công việc
- Dùng IDE để viết và tạo ứng dụng hoặc tạo quy trình của riêng bạn.
- Viết và gỡ lỗi mã
- Xây dựng dự án
- Kiểm thử ứng dụng
- Hiệu suất
- Công cụ dòng lệnh
- API trình bổ trợ Gradle
- Công nghệ của thiết bị
- Viết mã cho các hệ số hình dạng. Kết nối thiết bị và chia sẻ dữ liệu.
- Giao diện người dùng thích ứng
- Wear OS
- Android XR
- Sức khoẻ trên Android
- Android cho Ô tô
- Android TV
- Tất cả các thiết bị ⤵️
- Thư viện
- Duyệt xem tài liệu tham khảo API có đầy đủ thông tin chi tiết.
- Nền tảng Android
- Thư viện Jetpack
- Thư viện Compose
- Dịch vụ Google Play ↗️
- Chỉ mục SDK của Google Play ↗️
- Play Console
- Xuất bản ứng dụng hoặc trò chơi và phát triển hoạt động kinh doanh của bạn trên Google Play.
- Chuyển đến Play Console
- Tìm hiểu thêm ↗️
- Nguyên tắc cơ bản
- Tìm hiểu cách thu hút người dùng, kiếm tiền và bảo mật ứng dụng của bạn.
- Kiếm tiền trên Play
- API Tính toàn vẹn của Play
- Chính sách của Play
- Các chương trình của Play ↗️
- Trung tâm dành cho nhà phát triển trò chơi
- Phát triển và phân phối trò chơi. Tải các công cụ, nội dung tải xuống và mẫu.
- Tổng quan
- Play Asset Delivery
- Dịch vụ trò chơi của Play
- Play Games trên máy tính
- Tất cả hướng dẫn về Play ⤵️
- Thư viện
- Duyệt xem tài liệu tham khảo API có đầy đủ thông tin chi tiết.
- Play Feature Delivery
- Bản cập nhật trong ứng dụng trên Play
- Bài đánh giá trong ứng dụng trên Play
- Play Install Referrer
- Dịch vụ Google Play ↗️
- Chỉ mục SDK của Google Play ↗️
- Tất cả thư viện Play ⤵️
- Công cụ và tài nguyên
- Các công cụ để xuất bản, quảng bá và quản lý ứng dụng của bạn.
- Android App Bundle
- Thương hiệu và tiếp thị
- Play Console API ↗️
- English
- Deutsch
- Español – América Latina
- Français
- Indonesia
- Italiano
- Polski
- Português – Brasil
- Tiếng Việt
- Türkçe
- Русский
- עברית
- العربيّة
- فارسی
- हिंदी
- বাংলা
- ภาษาไทย
- 中文 – 简体
- 中文 – 繁體
- 日本語
- 한국어
- Games dev center
- Thông tin cơ bản
- Xem thêm
- Thiết kế và lập kế hoạch
- Xem thêm
- Phát triển
- Xem thêm
- Google Play
- Xem thêm
- Tổng quan
- Google tại GDC
- Nội dung đã tải xuống
- Mẫu
- Hướng dẫn
- Tài liệu tham khảo
- Cộng đồng
- Cộng đồng
- Android Studio
- Bắt đầu
- Kiến thức cơ bản về việc phát triển trò chơi
- Nguyên tắc của chương trình Level Up của Google Play Games
- Bản dùng thử cho nhà phát triển
- Ghi chú phát hành
- Báo cáo lỗi
- Phát triển
- Giới thiệu về công cụ phát triển trò chơi
- Dùng công cụ phát triển trò chơi
- Giới thiệu về công cụ phát triển trò chơi
- Phát triển bằng Defold
- Cài đặt và định cấu hình dự án cho Android
- Hỗ trợ nhiều kích cỡ màn hình và kiểu dáng
- Xuất sang Android
- Phát triển bằng Godot
- Cài đặt và định cấu hình dự án cho Android
- Các tuỳ chọn trong trình kết xuất Godot
- Hỗ trợ nhiều kích cỡ màn hình và kiểu dáng
- Xuất sang Android
- Phát triển bằng Cocos
- Các bước Tạo trò chơi cho Android trong Cocos Creator
- Xuất bản trò chơi dưới dạng ứng dụng Google Play Instant trong Cocos Creator
- Xuất bản trò chơi bằng Android App Bundle trong Cocos Creator
- Gỡ lỗi từ xa trên Android
- Phát triển bằng Unity
- Unity trên Android
- Bắt đầu phát triển trò chơi trên Unity
- Nhận các đề xuất về API đồ hoạ tại thời điểm chạy bằng trình bổ trợ công cụ Unity vkQuality
- Tạo Android App Bundle bằng Unity
- Tích hợp Play Asset Delivery
- Tích hợp API Tính toàn vẹn của Play
- Tích hợp tính năng Cập nhật trong ứng dụng của Play
- Tích hợp tính năng Bài đánh giá trong ứng dụng trên Play
- Ánh sáng Unity trong trò chơi di động
- Dùng Android Performance Tuner
- Tổng quan
- Bật API
- Tích hợp trình bổ trợ
- Khởi chạy thư viện và xác minh hoạt động
- Xác định chú thích, thông số về độ chân thực và mức chất lượng
- Thêm hàm ghi thời gian tải
- Bao gồm các cảnh Addressable
- Chạy ứng dụng giám sát
- Rà soát và phát hành
- Khắc phục các lỗi thường gặp
- Tài liệu tham khảo
- Gỡ lỗi lỗi ANR cho trò chơi Unity
- Lỗi ANR thường gặp đối với trò chơi Unity
- Gỡ lỗi LMK cho trò chơi Unity
- Thay thế sự cố và lỗi ứng dụng không phản hồi (ANR) trên Android bằng biểu tượng cho trò chơi Unity
- Làm quen với Memory Advice API cho trò chơi Unity
- ADPF Unity Adaptive Performance và nhà cung cấp Android
- Trải nghiệm trò chơi tuyệt vời trên mọi kiểu dáng
- Phát triển bằng Unreal
- Unreal cho Android
- Trình bổ trợ ADPF Unreal Engine
- Yêu cầu cấp quyền truy cập dữ liệu
- Tạo hoặc mở rộng công cụ phát triển trò chơi
- Giới thiệu về công cụ phát triển trò chơi tuỳ chỉnh
- Bắt đầu với GameActivity
- Giới thiệu về thư viện GameActivity
- Làm quen với GameActivity
- Dùng tính năng nhập văn bản của trò chơi
- Di chuyển từ NativeActivity
- Định cấu hình đồ hoạ
- Tìm hiểu về vòng lặp trò chơi trên Android
- Xử lý sự kiện nhập
- Thêm hỗ trợ cảm ứng
- Hỗ trợ nhập bằng văn bản
- Thêm chế độ hỗ trợ chuột
- Hỗ trợ nhập bằng cảm biến
- Tối ưu hoá tốc độ khung hình
- Giới thiệu về thư viện Frame Pacing (Tốc độ khung hình)
- Tốc độ khung hình trong OpenGL ES
- Tích hợp
- Cập nhật chế độ cài đặt bản dựng
- Thêm hàm tốc độ khung hình
- Xác minh việc cải thiện tốc độ khung hình
- Tốc độ khung hình trong Vulkan
- Tích hợp
- Cập nhật chế độ cài đặt bản dựng
- Thêm hàm tốc độ khung hình
- Xác minh việc cải thiện tốc độ khung hình
- Tài liệu tham khảo Frame Pacing API (API Tốc độ khung hình)
- Tích hợp Android Performance Tuner
- Giới thiệu về Android Performance Tuner
- Chạy ứng dụng minh hoạ APT
- Bật Android Performance Parameters API (API Tham số hiệu suất trên Android)
- Cập nhật chế độ cài đặt bản dựng
- Xác định chú thích, thông số về độ chân thực và các chế độ cài đặt
- Thêm hàm thời gian kết xuất khung hình
- Thêm hàm ghi thời gian tải
- Xác thực, đóng gói và phát hành tệp APK
- Khắc phục các lỗi thường gặp
- Cách sử dụng nâng cao
- Tài liệu tham khảo Performance Tuner API (API Trình theo dõi hiệu suất)
- Phát triển cho nhiều kiểu dáng
- Kiến trúc 64 bit
- Loại màn hình
- Vulkan xoay trước
- Âm thanh đầu ra
- Giới thiệu về thư viện âm thanh Oboe
- Cập nhật phần cài đặt bản dựng
- Âm thanh có độ trễ thấp
- Tạo luồng âm thanh
- Xem mã mẫu Oboe
- Xem hướng dẫn cho nhà phát triển Oboe
- Quản lý bộ nhớ
- Giới thiệu về hoạt động quản lý bộ nhớ
- Gỡ lỗi sử dụng bộ nhớ gốc
- Phân phối thành phần
- Phát hiện và chẩn đoán sự cố
- Android Game Development Kit (AGDK)
- Giới thiệu về AGDK
- Tải AGDK
- Ghi chú phát hành AGDK
- Android Game Development Extension (AGDE) cho Visual Studio
- Giới thiệu về AGDE
- Làm quen với AGDE
- Định cấu hình dự án của bạn
- Gỡ lỗi dự án
- Gỡ lỗi hỏng bộ nhớ bằng Address Sanitizer
- Đo lường hiệu suất của ứng dụng
- Tối ưu hoá theo hướng dẫn của hồ sơ (PGO)
- Tổng quan
- Định cấu hình chế độ Tối ưu hoá dựa trên hiệu năng
- Xem mã mẫu AGDE
- Ghi chú phát hành AGDE
- Dịch vụ trò chơi của Google Play
- Giới thiệu về Dịch vụ trò chơi của Google Play
- Bắt đầu
- Thiết lập Google Play Console
- Thiết lập Dịch vụ trò chơi của Google Play
- Bật các tính năng trong Dịch vụ trò chơi của Play
- Quản lý phần cài đặt dự án trong Google Cloud
- Bật tài khoản để thử nghiệm
- Phát hành thông qua Google Play Console
- Khái niệm trò chơi
- Xác thực nền tảng
- Mã nhận dạng người chơi thế hệ mới
- Lưu vào đám mây
- Khôi phục liền mạch
- Mức độ truy lại
- Bảng trợ giúp Play Games
- Thành tích
- Tổng quan
- Tích hợp thành tích
- Bảng xếp hạng
- Sự kiện
- Bạn bè
- Lối tắt ứng dụng
- Chuyển sang phiên bản 2
- Giới thiệu về việc di chuyển
- Di chuyển sang phiên bản 2 (Java hoặc Kotlin)
- Di chuyển sang phiên bản 2 (Unity)
- Dùng API
- Java
- Bắt đầu
- Xác thực và quyền riêng tư trên nền tảng
- Xác thực nền tảng
- Cấp quyền truy cập phía máy chủ
- Chống vi phạm bản quyền
- Thêm tính năng
- Thành tích
- Trò chơi lưu được tiến trình chơi
- Bảng xếp hạng
- Sự kiện
- Bạn bè
- Số liệu thống kê về người chơi
- Trình bổ trợ cho Unity
- Giới thiệu về trình bổ trợ Google Play Games cho Unity
- Thiết lập Google Play Games cho Unity
- Thêm tính năng
- Thành tích
- Trò chơi lưu được tiến trình chơi
- Bảng xếp hạng
- Sự kiện
- Bạn bè
- Số liệu thống kê về người chơi
- SDK gốc
- Bắt đầu
- Thiết lập Google Play Games cho SDK gốc
- Cấp quyền truy cập phía máy chủ
- Thêm tính năng
- Thành tích
- Recall API
- Publishing API (API Phát hành)
- Giới thiệu về Publishing API (API Phát hành)
- Bắt đầu
- Tải hình ảnh lên
- API Quản lý
- Khắc phục sự cố
- Java
- Xem lại danh sách kiểm tra và nguyên tắc
- Danh sách kiểm tra chất lượng
- Nguyên tắc sử dụng thương hiệu
- Hạn mức và hạn mức về giá
- Các yêu cầu về việc tiết lộ dữ liệu
- Điều khoản dịch vụ
- Nội dung đã tải xuống
- Yêu cầu hỗ trợ
- Tài liệu tham khảo
- API Android GMS
- API REST của web
- API C++
- API Quản lý
- Publishing API (API Phát hành)
- Google Play Games trên máy tính
- Giới thiệu về Google Play Games trên máy tính
- Bắt đầu
- Quy trình xem xét
- Thiết lập
- Tải trình mô phỏng xuống
- Thiết lập trò chơi để tương thích với máy tính
- Định cấu hình đồ hoạ
- Đầu vào của thiết bị
- Thiết lập đầu vào
- Thiết lập đầu vào chuột
- SDK Đầu vào
- Giới thiệu về SDK Đầu vào
- Làm quen với SDK Đầu vào
- Hướng dẫn di chuyển
- Tổng quan
- Nâng cấp phiên bản SDK Đầu vào từ 1.0 lên 1.1 cho Java/Kotlin
- Nâng cấp phiên bản SDK Đầu vào từ 1.0 lên 1.1 cho Unity
- Nâng cấp phiên bản SDK Đầu vào từ 0.0.4 lên 1.0 cho Java/Kotlin
- Nâng cấp phiên bản SDK Đầu vào từ 0.0.4 lên 1.0 cho Unity
- Chơi trên nhiều thiết bị
- Giới thiệu về tính liên tục khi chơi trên nhiều thiết bị
- Giới thiệu về các yêu cầu đối với tính liên tục
- Xác minh tính tuân thủ của trò chơi
- Liên kết dịch vụ nhận dạng
- Đăng nhập bên thứ ba
- Kiểm thử
- Kiểm thử trò chơi
- Dùng trình mô phỏng dành cho nhà phát triển
- Dùng thiết bị ChromeOS
- Khắc phục sự cố với trình mô phỏng dành cho nhà phát triển
- Xác thực trò chơi của bạn trong Google Play Games trên máy tính
- Phát hành và triển khai
- Phát hiện các tính năng của nền tảng Google Play Games trên máy tính
- Gửi trò chơi
- Cập nhật trò chơi
- Bảo vệ tính toàn vẹn
- Thu nạp người dùng
- Mẫu và trình bổ trợ
- Câu hỏi thường gặp
- Đa nền tảng
- Giới thiệu về kiểu dáng thiết bị
- Giúp trò chơi của bạn tương thích với mọi kiểu dáng thiết bị
- Hỗ trợ đổi kích thước màn hình lớn
- Bật phương thức nhập tự nhiên trên tất cả hệ số hình dạng
- Dùng tay điều khiển trò chơi
- Tổng quan
- API Android gốc (Java/Kotlin)
- Xử lý thao tác của bộ điều khiển
- Thêm tính năng hỗ trợ cho nhiều bộ điều khiển
- Các tính năng bổ sung của tay điều khiển
- Hỗ trợ bộ điều khiển trên các phiên bản Android
- Thư viện Tay điều khiển trò chơi (C++)
- Tổng quan
- Dùng thư viện tay điều khiển trò chơi
- Dùng các mục ánh xạ thiết bị điều khiển tuỳ chỉnh
- Kiểm thử khả năng hỗ trợ bộ điều khiển
- Trạng thái hiển thị trên Cửa hàng Play
- Vulkan
- Tổng quan
- Hỗ trợ công cụ phát triển trò chơi
- Công cụ gốc và công cụ độc quyền
- Mẫu, Lớp học lập trình, video và câu chuyện của nhà phát triển
- Công cụ và tính năng nâng cao
- Quản lý, gỡ lỗi và lập hồ sơ trong Android Studio
- Tối ưu hoá
- Android Vitals
- Tổng quan
- ANR
- Số sự cố
- Số phiên bị chậm
- Mô-đun tắt ứng dụng khi bộ nhớ thấp (LMK)
- Giới thiệu về công cụ tối ưu hoá
- Định cấu hình tính năng theo dõi hệ thống
- Giảm kích thước trò chơi
- Android GPU Inspector (AGI)
- Giới thiệu về AGI
- Bắt đầu nhanh
- Thiết bị được hỗ trợ
- Lập hồ sơ hệ thống
- Giới thiệu về tính năng lập hồ sơ hệ thống
- Xem hồ sơ hệ thống
- Bộ đếm hiệu suất GPU
- Phân tích hồ sơ hệ thống
- Thời gian xử lý khung hình
- Hiệu suất của bộ nhớ
- Mức sử dụng băng thông bộ nhớ kết cấu
- Mức sử dụng băng thông bộ nhớ Vertex
- Lên lịch cho luồng
- Lập hồ sơ khung hình
- Giới thiệu về tính năng lập hồ sơ khung hình
- Phân tích hồ sơ khung hình
- Lượt kết xuất tốn kém nhất
- Định dạng Vertex
- Hiệu suất đổ bóng
- Giao diện người dùng trình phân tích tài nguyên khung hình
- Ngăn hiệu suất
- Ngăn lệnh
- Ngăn đệm khung hình
- Ngăn hình học
- Ngăn báo cáo
- Ngăn đổ bóng
- Ngăn bộ nhớ
- Ngăn trạng thái
- Ngăn cấu trúc
- Ngăn hoạ tiết
- Ngăn xem quy trình
- Các tiện ích Vulkan được hỗ trợ
- Khắc phục sự cố với AGI
- Android Performance Tuner (APT)
- Android Dynamic Performance Framework (Khung hiệu suất động Android – ADPF)
- Tổng quan
- API Nhiệt
- Game Mode (API Chế độ trò chơi) và Game State API (API Trạng thái trò chơi)
- Giới thiệu về Game Mode API (API Chế độ trò chơi) và các biện pháp can thiệp
- Dùng Game Mode API (API Chế độ trò chơi)
- Sử dụng các biện pháp can thiệp vào Chế độ trò chơi
- Tổng quan về tính năng điều tiết FPS (khung hình/giây)
- Game State API (API Trạng thái trò chơi)
- Chế độ hiệu suất cố định
- Hỗ trợ công cụ phát triển trò chơi
- Mẫu, lớp học lập trình và Câu chuyện của nhà phát triển
- Các phương pháp hay nhất cho ADPF
- Tối ưu hoá các tài sản 3D
- Các phương pháp hay nhất về hoạ tiết
- Quản lý dữ liệu dạng đỉnh (vertex)
- Tối ưu hoá chất liệu và chương trình đổ bóng
- Tối ưu hoá hiệu suất pin
- Các phương pháp hay nhất về Vulkan trên Android
- Tối ưu hoá khi độ chính xác giảm
- Memory Advice API
- Giới thiệu về Memory Advice API (API Thông báo bộ nhớ)
- Làm quen với Memory Advice API (API Thông báo bộ nhớ)
- Trang tổng quan trò chơi
- Giới thiệu về Trang tổng quan trò chơi
- Thành phần
- Tối ưu hoá tốc độ làm mới
- Android Vitals
- Xuất bản
- Giới thiệu về hoạt động phân phối bằng Google Play
- Phát hành trò chơi
- Xây dựng trải nghiệm AI
- Bắt đầu
- Bắt đầu
- Hello world
- Khoá đào tạo
- Hướng dẫn
- Compose cho các nhóm
- Kotlin cho Android
- Kiếm tiền với Play ↗️
- Xác minh nhà phát triển Android
- Mở rộng theo thiết bị
- Ứng dụng thích ứng
- Android XR
- Wear OS
- Android cho Ô tô
- Android TV
- ChromeOS
- Tạo ứng dụng theo danh mục
- Trò chơi
- Camera và nội dung nghe nhìn
- Mạng xã hội và nhắn tin
- Sức khoẻ và thể dục
- Năng suất
- Ứng dụng dành cho doanh nghiệp
- Nắm bắt thông tin mới nhất
- Thông tin mới nhất
- Thông tin cập nhật về thử nghiệm
- Bản xem trước Android Studio
- Thư viện Jetpack và Compose
- Bản phát hành cho Wear OS
- Hộp cát về quyền riêng tư ↗️
- Trải nghiệm xuất sắc
- Tìm hiểu thêm
- Thiết kế giao diện người dùng
- Thiết kế dành cho Android
- Thiết bị di động
- Giao diện người dùng thích ứng
- Thiết bị đeo đầu XR và kính thông minh XR
- Kính AI
- Tiện ích
- Wear OS
- Android TV
- Android cho Ô tô
- Cấu trúc
- Giới thiệu
- Thư viện
- Thao tác
- Mô-đun hoá
- Kiểm thử
- Kotlin Multiplatform
- Chất lượng
- Tổng quan
- Giá trị cốt lõi
- Trải nghiệm người dùng
- Hỗ trợ tiếp cận
- Chất lượng kỹ thuật
- Trải nghiệm xuất sắc
- Bảo mật
- Tổng quan
- Quyền riêng tư
- Quyền
- Danh tính
- Biện pháp chống lừa đảo
- Gemini trong Android Studio
- Tìm hiểu thêm
- Tải Android Studio
- Lĩnh vực cốt lõi
- Mẫu
- Giao diện người dùng
- Hoạt động chạy trong nền
- Dữ liệu và tệp
- Khả năng kết nối
- Tất cả các lĩnh vực cốt lõi ⤵️
- Công cụ và quy trình công việc
- Viết và gỡ lỗi mã
- Xây dựng dự án
- Kiểm thử ứng dụng
- Hiệu suất
- Công cụ dòng lệnh
- API trình bổ trợ Gradle
- Công nghệ của thiết bị
- Giao diện người dùng thích ứng
- Wear OS
- Android XR
- Sức khoẻ trên Android
- Android cho Ô tô
- Android TV
- Tất cả các thiết bị ⤵️
- Thư viện
- Nền tảng Android
- Thư viện Jetpack
- Thư viện Compose
- Dịch vụ Google Play ↗️
- Chỉ mục SDK của Google Play ↗️
- Play Console
- Chuyển đến Play Console
- Tìm hiểu thêm ↗️
- Nguyên tắc cơ bản
- Kiếm tiền trên Play
- API Tính toàn vẹn của Play
- Chính sách của Play
- Các chương trình của Play ↗️
- Trung tâm dành cho nhà phát triển trò chơi
- Tổng quan
- Play Asset Delivery
- Dịch vụ trò chơi của Play
- Play Games trên máy tính
- Tất cả hướng dẫn về Play ⤵️
- Thư viện
- Play Feature Delivery
- Bản cập nhật trong ứng dụng trên Play
- Bài đánh giá trong ứng dụng trên Play
- Play Install Referrer
- Dịch vụ Google Play ↗️
- Chỉ mục SDK của Google Play ↗️
- Tất cả thư viện Play ⤵️
- Công cụ và tài nguyên
- Android App Bundle
- Thương hiệu và tiếp thị
- Play Console API ↗️
- Android Developers
- Google Play
- Games dev center
- Hướng dẫn
Bạn có thể định cấu hình tính năng theo dõi hệ thống để chụp hồ sơ CPU và luồng của ứng dụng trong một khoảng thời gian ngắn. Sau đó, bạn có thể sử dụng báo cáo kết quả của tính năng theo dõi hệ thống để cải thiện hiệu suất của trò chơi.
Thiết lập tính năng theo dõi hệ thống dựa trên trò chơi
Công cụ Systrace được cung cấp theo 2 cách:
- Chương trình dòng lệnh
- Dịch vụ trên thiết bị
Systrace là công cụ cấp chi tiết:
- Cung cấp thông tin thực tế. Systrace thu thập dữ liệu đầu ra trực tiếp từ hạt nhân, do đó chỉ số mà công cụ này thu thập gần giống với chỉ số mà loạt lệnh gọi hệ thống sẽ báo cáo.
- Tiêu thụ ít tài nguyên. Systrace gây ra mức hao tổn rất thấp trên thiết bị, thường nhỏ hơn 1%, vì công cụ này truyền dữ liệu vào bộ đệm trong bộ nhớ.
Chế độ cài đặt tối ưu
Bạn cần cung cấp cho công cụ này một bộ đối số hợp lý:
- Danh mục: Bộ danh mục phù hợp nhất để bật tính năng theo dõi hệ thống dựa trên trò chơi là: {sched, freq, idle, am, wm, gfx, view, sync, binder_driver, hal, dalvik}.
Dung lượng bộ nhớ đệm: Quy tắc chung là dung lượng bộ nhớ đệm 10 MB trên mỗi lõi CPU cho phép theo dõi dấu vết dài khoảng 20 giây. Ví dụ: Nếu một thiết bị có 2 CPU 4 nhân (tổng cộng 8 nhân), giá trị thích hợp để truyền vào chương trình systrace là 80.000 KB (80 MB).
Nếu trò chơi đòi hỏi chuyển đổi ngữ cảnh nhiều, hãy tăng bộ đệm lên 15 MB cho mỗi lõi CPU.
Lưu ý: Để đòi hỏi dung lượng bộ nhớ đệm lớn, thiết bị phải có đủ bộ nhớ cho tất cả các lõi và mỗi bộ nhớ trên lõi phải được cấp phát kề nhau. Ví dụ: Nếu bạn cố gắng thu thập dấu vết hệ thống trên thiết bị 8 lõi có dung lượng bộ nhớ đệm là 80 MB, thì thiết bị đó phải còn trống 640 MB và mỗi 80 MB của bộ nhớ còn trống phải tạo thành một phân đoạn liền kề.Sự kiện tuỳ chỉnh: Nếu bạn xác định sự kiện tuỳ chỉnh để thu thập trong trò chơi, hãy bật cờ -a để cho phép Systrace đưa các sự kiện tuỳ chỉnh này vào báo cáo kết quả.
Nếu bạn đang sử dụng chương trình dòng lệnh systrace, hãy sử dụng lệnh sau để thu thập dấu vết hệ thống có áp dụng các phương pháp hay nhất cho bộ danh mục, dung lượng bộ nhớ đệm và sự kiện tuỳ chỉnh:
python systrace.py -a com.example.myapp -b 80000 -o my_systrace_report.html \ sched freq idle am wm gfx view sync binder_driver hal dalvikNếu bạn đang sử dụng ứng dụng hệ thống Systrace trên một thiết bị, hãy hoàn thành các bước sau để thu thập dấu vết hệ thống có áp dụng các phương pháp hay nhất cho bộ danh mục, dung lượng bộ nhớ đệm và sự kiện tuỳ chỉnh:
Bật tuỳ chọn Trace debuggable applications (Truy vết các ứng dụng có thể gỡ lỗi).
Để sử dụng chế độ cài đặt này, thiết bị phải còn trống 256 MB hoặc 512 MB (tuỳ thuộc vào việc CPU có 4 hay 8 lõi) và mỗi 64 MB của bộ nhớ còn trống phải tạo thành một phân đoạn liền kề.
Chọn Categories (Danh mục), rồi bật các danh mục trong danh sách sau:
- am: Trình quản lý hoạt động
- binder_driver: Trình điều khiển hạt nhân Binder
- dalvik: Máy ảo Dalvik
- freq: Tần suất của CPU
- gfx: Đồ hoạ
- hal: Mô-đun phần cứng
- idle: CPU rảnh
- sched: Lập lịch CPU
- sync: Đồng bộ hoá
- view: Hệ thống chế độ xem
- wm: Trình quản lý cửa sổ
Bật tính năng Record tracing (Ghi lại dấu vết).
Tải trò chơi.
Tương tác trong trò chơi theo cách chơi mà bạn muốn đo lường hiệu suất thiết bị.
Ngay sau khi bạn gặp hành vi không mong muốn trong trò chơi, hãy tắt tính năng theo dõi hệ thống.
Bạn đã thu thập được số liệu thống kê cần thiết về hiệu suất để phân tích thêm về vấn đề này.
Để tiết kiệm dung lượng ổ đĩa, hoạt động theo dõi hệ thống trên thiết bị sẽ lưu tệp ở định dạng dấu vết nén (*.ctrace). Để giải nén tệp này khi tạo báo cáo, hãy sử dụng chương trình dòng lệnh và bao gồm tuỳ chọn --from-file:
python systrace.py --from-file=/data/local/traces/my_game_trace.ctrace \ -o my_systrace_report.htmlCải thiện các lĩnh vực hiệu suất cụ thể
Mục này nêu bật một số mối lo ngại thường gặp về hiệu suất trong trò chơi dành cho thiết bị di động và mô tả cách xác định cũng như cải thiện các khía cạnh này của trò chơi.
Tốc độ tải
Người chơi muốn nhập cuộc chơi nhanh nhất có thể, vì vậy, bạn cần giảm thời gian tải của trò chơi nhiều nhất có thể. Các biện pháp sau thường giúp giảm thời gian tải:
- Tải từng phần. Nếu bạn sử dụng cùng tài sản cho các cấp độ hoặc cảnh liên tiếp trong trò chơi, hãy chỉ tải các tài sản này một lần.
- Giảm dung lượng của tài sản. Bằng cách đó, bạn có thể nhóm các phiên bản không nén của các tài sản này với APK của trò chơi.
- Sử dụng phương thức nén tiết kiệm dung lượng ổ đĩa. Ví dụ về phương thức đó là zlib.
- Sử dụng IL2CPP thay vì đơn âm. (Chỉ áp dụng nếu bạn đang sử dụng Unity.) IL2CPP mang lại hiệu suất thực thi tốt hơn cho các tập lệnh C#.
- Đặt trò chơi ở chế độ đa luồng. Để biết thêm thông tin chi tiết, hãy xem phần tính nhất quán về tốc độ khung hình.
Tính nhất quán về tốc độ khung hình
Một trong những yếu tố quan trọng nhất của trải nghiệm chơi trò chơi là đạt được tốc độ khung hình nhất quán. Để đạt được mục tiêu này một cách dễ dàng hơn, hãy làm theo các kỹ thuật tối ưu hoá được nhắc đến trong mục này.
Đa luồng
Khi phát triển cho nhiều nền tảng, ta thường đặt tất cả hoạt động trong trò chơi vào một luồng duy nhất. Dù là cách thực thi đơn giản trong nhiều công cụ phát triển trò chơi, song đây không phải phương thức tối ưu khi chạy trên các thiết bị Android. Do đó, trò chơi đơn luồng thường tải chậm và không có tốc độ khung hình nhất quán.
Systrace trong Hình 1 hiển thị hành vi điển hình của trò chơi chỉ chạy trên một CPU tại một thời điểm:
Để cải thiện hiệu suất của trò chơi, hãy đặt trò chơi ở chế độ đa luồng. Thông thường, mô hình tốt nhất là có 2 luồng:
- Một luồng trò chơi chứa mô-đun chính của trò chơi và gửi lệnh kết xuất.
- Một luồng kết xuất nhận lệnh kết xuất và thông dịch thành lệnh đồ hoạ mà GPU của thiết bị có thể sử dụng để hiển thị cảnh.
API Vulkan mở rộng trên mô hình này, dựa trên khả năng đẩy song 2 bộ đệm chung. Bạn có thể sử dụng tính năng này để phân phối nhiều luồng kết xuất trên nhiều CPU, từ đó cải thiện thời gian kết xuất của cảnh.
Bạn cũng có thể thực hiện một số thay đổi cụ thể theo công cụ để nâng cao hiệu suất đa luồng của trò chơi:
- Nếu bạn đang phát triển trò chơi bằng cách sử dụng công cụ phát triển trò chơi Unity, hãy bật các tuỳ chọn Multithreaded Rendering (Kết xuất đa luồng) và GPU Skinning (Tạo giao diện GPU).
- Nếu bạn đang sử dụng một công cụ kết xuất tuỳ chỉnh, hãy đảm bảo rằng dòng lệnh kết xuất và dòng lệnh đồ hoạ được căn chỉnh chính xác; nếu không, bạn có thể gây ra độ trễ khi hiển thị cảnh trò chơi.
Sau khi áp dụng các thay đổi này, bạn sẽ thấy trò chơi chiếm đồng thời ít nhất 2 CPU, như trong Hình 2:
Tải thành phần trên giao diện người dùng
Khi tạo một trò chơi có nhiều tính năng, bạn sẽ muốn hiển thị nhiều tuỳ chọn và hành động cho người chơi cùng lúc. Tuy nhiên, để duy trì tốc độ khung hình nhất quán, bạn nên cân nhắc đến kích thước tương đối nhỏ của màn hình di động và giữ cho giao diện người dùng càng đơn giản càng tốt.
Báo cáo Systrace trong Hình 3 là ví dụ về khung giao diện người dùng đang cố gắng kết xuất quá nhiều thành phần so với khả năng của thiết bị di động.
Bạn nên hướng tới việc giảm thời gian cập nhật giao diện người dùng xuống còn 2–3 mili giây. Bạn có thể làm được điều này bằng cách thực hiện các bước tối ưu hoá tương tự như sau:
- Chỉ cập nhật các thành phần đã di chuyển trên màn hình.
- Giới hạn số lượng hoạ tiết và lớp giao diện người dùng. Cân nhắc kết hợp các lệnh gọi đồ hoạ, chẳng hạn như chương trình đổ bóng và hoạ tiết sử dụng cùng một vật liệu.
- Hoãn thao tác động của thành phần cho GPU.
- Tăng cường lọc các đối tượng nằm ngoài tầm nhìn và bị che khuất.
- Nếu có thể, thực hiện các thao tác vẽ bằng API Vulkan. Mức hao tổn cho hàm gọi vẽ trên Vulkan là thấp hơn.
Mức tiêu thụ điện năng
Ngay cả sau khi thực hiện các kỹ thuật tối ưu hoá trong mục trước, bạn vẫn có thể thấy tốc độ khung hình của trò chơi giảm trong vòng 45–50 phút đầu tiên khi chơi. Hơn nữa, thiết bị có thể bắt đầu nóng lên và tiêu thụ nhiều pin hơn theo thời gian.
Trong nhiều trường hợp, tổ hợp nhiệt lượng và mức tiêu thụ điện năng không mong muốn này có liên quan đến cách phân phối khối lượng công việc trong trò chơi trên CPU của thiết bị. Để tăng hiệu quả tiêu thụ điện năng của trò chơi, hãy áp dụng các phương pháp hay nhất được trình bày trong các mục sau.
Giữ các luồng tốn bộ nhớ trên một CPU
Trên nhiều thiết bị di động, bộ nhớ đệm L1 nằm trên các CPU cụ thể còn bộ nhớ đệm L2 nằm trên tập hợp CPU dùng chung một đồng hồ. Để tăng tối đa kết quả tìm kiếm trong bộ nhớ đệm L1, tốt nhất bạn nên giữ cho luồng chính và mọi luồng tốn bộ nhớ khác chạy trên một CPU duy nhất.
Hoãn công việc thời lượng ngắn cho CPU công suất thấp
Hầu hết công cụ phát triển trò chơi, bao gồm cả Unity, đều biết cách hoãn thao tác luồng worker lên một CPU khác với luồng chính của trò chơi. Tuy nhiên, công cụ này không nhận biết được cấu trúc cụ thể của thiết bị và không thể dự đoán khối lượng công việc của trò chơi chính xác như bạn.
Hầu hết thiết bị hệ thống trên một chip đều có ít nhất 2 đồng hồ chung, một dành cho CPU nhanh và một dành cho CPU chậm của thiết bị. Hệ quả của cấu trúc này là nếu một CPU nhanh cần hoạt động ở tốc độ tối đa, tất cả CPU nhanh khác cũng hoạt động ở tốc độ tối đa.
Báo cáo ví dụ được minh hoạ trong Hình 4 cho thấy một trò chơi tận dụng CPU nhanh. Tuy nhiên, mức độ hoạt động cao này tạo ra rất nhiều năng lượng và nhanh chóng sinh nhiệt.
Để giảm mức sử dụng điện năng nói chung, tốt nhất bạn nên đề xuất cho trình lập lịch biểu hoãn các công việc có thời lượng ngắn hơn (chẳng hạn như tải âm thanh, chạy các luồng chạy và thực thi (trình biên đạo) choreographer cho bộ CPU chậm trên thiết bị. Bạn có thể chuyển nhiều công việc này nhất có thể cho CPU chậm trong khi vẫn duy trì tốc độ khung hình mong muốn.
Hầu hết thiết bị đều liệt kê CPU chậm trước CPU nhanh, nhưng bạn không thể cho rằng SOC của thiết bị sử dụng thứ tự này. Để kiểm tra, hãy chạy các lệnh tương tự như lệnh như trong báo cáo khám phá cấu trúc liên kết CPU này mã trên GitHub.
Sau khi biết CPU nào là CPU chậm trên thiết bị, bạn có thể khai báo thông tin về nơi chạy của các luồng thời lượng ngắn mà trình lập lịch biểu của thiết bị sẽ tuân theo. Để làm như vậy, hãy thêm mã sau vào mỗi luồng:
#include<sched.h> #include<sys/types.h> #include<unistd.h> pid_tmy_pid;// PID of the process containing your thread. // Assumes that cpu0, cpu1, cpu2, and cpu3 are the "slow CPUs". cpu_set_tmy_cpu_set; CPU_ZERO(&my_cpu_set); CPU_SET(0,&my_cpu_set); CPU_SET(1,&my_cpu_set); CPU_SET(2,&my_cpu_set); CPU_SET(3,&my_cpu_set); sched_setaffinity(my_pid,sizeof(cpu_set_t),&my_cpu_set); Lưu ý: Trong những trường hợp nâng cao, trong đó bạn có tải công việc tải song ở mức cao, bạn có thể muốn quản lý các luồng này theo cách sao cho CPU chậm vẫn hoạt động thường xuyên nhất có thể. Việc lập lịch biểu CPU với mức độ chi tiết cao giúp duy trì tốc độ khung hình cho trò chơi.Ứng suất nhiệt
Khi trở nên quá nóng, thiết bị có thể điều tiết CPU và/hoặc GPU, gây ảnh hưởng không mong muốn đến trò chơi. Các trò chơi tích hợp đồ hoạ phức tạp, tác vụ tính toán nặng hoặc hoạt động mạng được duy trì liên tục có nhiều khả năng gặp phải vấn đề hơn.
Sử dụng API thermal để theo dõi sự thay đổi nhiệt độ trên thiết bị và hành động để duy trì mức sử dụng điện năng thấp hơn cũng như nhiệt độ thiết bị mát hơn. Khi thiết bị báo cáo ứng suất nhiệt, hãy dừng các hoạt động đang diễn ra để giảm mức sử dụng năng lượng. Ví dụ: giảm tốc độ khung hình hoặc lưới đa giác.
Trước tiên, hãy khai báo đối tượng PowerManager và khởi động đối tượng đó trong phương thức onCreate(). Thêm một trình nghe trạng thái nhiệt cho đối tượng.
Kotlin
classMainActivity:AppCompatActivity(){ lateinitvarpowerManager:PowerManager overridefunonCreate(savedInstanceState:Bundle?){ powerManager=getSystemService(Context.POWER_SERVICE)asPowerManager powerManager.addThermalStatusListener(thermalListener) } }Java
publicclass MainActivityextendsAppCompatActivity{ PowerManagerpowerManager; @Override protectedvoidonCreate(BundlesavedInstanceState){ ... powerManager=(PowerManager)getSystemService(Context.POWER_SERVICE); powerManager.addThermalStatusListener(thermalListener); } }Xác định các hành động cần thực hiện khi trình nghe phát hiện một thay đổi trạng thái. Nếu trò chơi sử dụng C/C++, hãy thêm mã vào các mức trạng thái nhiệt trong onThermalStatusChanged() để gọi vào mã trò chơi gốc của bạn bằng JNI hoặc sử dụng API Thermal gốc.
Kotlin
valthermalListener=object:PowerManager.OnThermalStatusChangedListener(){ overridefunonThermalStatusChanged(status:Int){ when(status){ PowerManager.THERMAL_STATUS_NONE->{ // No thermal status, so no action necessary } PowerManager.THERMAL_STATUS_LIGHT->{ // Add code to handle light thermal increase } PowerManager.THERMAL_STATUS_MODERATE->{ // Add code to handle moderate thermal increase } PowerManager.THERMAL_STATUS_SEVERE->{ // Add code to handle severe thermal increase } PowerManager.THERMAL_STATUS_CRITICAL->{ // Add code to handle critical thermal increase } PowerManager.THERMAL_STATUS_EMERGENCY->{ // Add code to handle emergency thermal increase } PowerManager.THERMAL_STATUS_SHUTDOWN->{ // Add code to handle immediate shutdown } } } }Java
PowerManager.OnThermalStatusChangedListenerthermalListener= newPowerManager.OnThermalStatusChangedListener(){ @Override publicvoidonThermalStatusChanged(intstatus){ switch(status) { casePowerManager.THERMAL_STATUS_NONE: // No thermal status, so no action necessary break; casePowerManager.THERMAL_STATUS_LIGHT: // Add code to handle light thermal increase break; casePowerManager.THERMAL_STATUS_MODERATE: // Add code to handle moderate thermal increase break; casePowerManager.THERMAL_STATUS_SEVERE: // Add code to handle severe thermal increase break; casePowerManager.THERMAL_STATUS_CRITICAL: // Add code to handle critical thermal increase break; casePowerManager.THERMAL_STATUS_EMERGENCY: // Add code to handle emergency thermal increase break; casePowerManager.THERMAL_STATUS_SHUTDOWN: // Add code to handle immediate shutdown break; } } };Độ trễ từ lúc nhấn đến lúc hiển thị
Các trò chơi kết xuất khung hình nhanh nhất có thể sẽ rơi vào tình huống bị ràng buộc bởi GPU, khi đó bộ đệm khung sẽ bị quá tải. CPU cần phải chờ GPU, gây ra độ trễ đáng kể giữa đầu vào của người chơi và hiệu ứng từ đầu vào trên màn hình.
Để xác định xem bạn có thể cải thiện tốc độ khung hình của trò chơi hay không, hãy hoàn thành các bước sau:
- Tạo báo cáo Systrace bao gồm các danh mục gfx và input. Các danh mục này bao gồm các phép đo đặc biệt hữu ích để xác định độ trễ từ lúc nhấn đến lúc hiển thị.
Kiểm tra mục SurfaceView trong báo cáo Systrace. Bộ đệm bị quá tải sẽ khiến số lượng bộ đệm đang chờ xử lý dao động trong khoảng từ 1 đến 2, như được hiển thị trong Hình 5:
Hình 5. Báo cáo Systrace hiển thị một bộ đệm quá tải, thường xuyên quá đầy nên không thể nhận lệnh vẽ
Để giảm thiểu tính không nhất quán về tốc độ khung hình này, hãy làm những việc được mô tả trong các mục sau:
Tích hợp API Android Frame Pacing vào trò chơi
API Android Frame Pacing giúp bạn thực hiện hoán đổi khung hình và xác định khoảng thời gian hoán đổi để trò chơi duy trì tốc độ khung hình nhất quán hơn.
Giảm độ phân giải của các tài sản không phải giao diện người dùng trong trò chơi
Các màn hình trên thiết bị di động hiện đại chứa nhiều pixel hơn so với lượng trình phát có thể xử lý, vì vậy bạn có thể lấy mẫu xuống mức một mảng 5 hoặc thậm chí 10 pixel đều chứa một màu. Với cấu trúc của hầu hết bộ nhớ đệm hiển thị, tốt nhất bạn chỉ nên giảm độ phân giải theo một chiều kích thước.
Tuy nhiên, bạn không được giảm độ phân giải của các thành phần trên giao diện người dùng của trò chơi. Điều quan trọng là duy trì độ dày của đường trên các thành phần này để duy trì kích thước đích nhấn đủ lớn cho tất cả người chơi.
Lưu ý: Vì GPU cần một khoảng thời gian để đổi kích thước tài sản, nên tốt nhất bạn nên thực hiện mọi thao tác giảm độ phân giải ở bước hậu xử lý trong trò chơi, nếu có.Độ mượt khi kết xuất
Khi SurfaceFlinger kết nối với bộ đệm hiển thị để hiển thị một cảnh trong trò chơi, hoạt động của CPU sẽ tăng lên trong giây lát. Nếu mức tăng đột biến về hoạt động của CPU này xảy ra không đồng đều, bạn có thể thấy hiện tượng kết xuất gián đoạn trong trò chơi. Sơ đồ trong Hình 6 mô tả lý do tại sao điều này xảy ra:
Nếu một khung hình bắt đầu vẽ quá muộn, dù chỉ một vài mili giây, khung đó có thể bỏ lỡ cửa sổ hiển thị tiếp theo. Sau đó, khung hình phải đợi đến khi Vsync tiếp theo được hiển thị (33 mili giây khi chạy trò chơi ở tốc độ 30 FPS), điều này gây ra độ trễ đáng kể từ góc nhìn của người chơi.
Để giải quyết trường hợp này, hãy sử dụng API Android Frame Pacing. API này luôn hiển thị khung mới trên mặt sóng VSync.
Trạng thái bộ nhớ
Khi bạn chạy trò chơi trong một khoảng thời gian dài, thiết bị có thể gặp lỗi hết bộ nhớ.
Trong trường hợp này, hãy kiểm tra hoạt động của CPU trong báo cáo Systrace và xem tần suất hệ thống thực hiện các lệnh gọi tới trình nền kswapd. Nếu có nhiều lệnh gọi trong quá trình thực thi trò chơi, tốt nhất bạn nên xem xét kỹ hơn cách trò chơi đang quản lý và dọn dẹp bộ nhớ.
Để biết thêm thông tin, hãy xem bài viết Quản lý hiệu quả bộ nhớ trong trò chơi.
Trạng thái luồng
Khi di chuyển qua các thành phần điển hình của báo cáo Systrace, bạn có thể xem khoảng thời gian mà một luồng cụ thể dành cho từng trạng thái luồng có thể xảy ra bằng cách chọn luồng trong báo cáo như trong Hình 7:
Trong Hình 7, bạn có thể thấy rằng các luồng trò chơi không ở trạng thái "đang chạy" hoặc "có thể chạy" thường xuyên như bình thường. Danh sách sau đây cho thấy một số lý do phổ biến khiến một luồng nhất định có thể định kỳ chuyển đổi sang trạng thái bất thường:
- Nếu một luồng ngủ trong một khoảng thời gian dài, luồng đó có thể bị tranh chấp khoá hoặc đang chờ hoạt động GPU.
- Nếu một luồng liên tục bị chặn trên I/O, thì tức là bạn đang đọc quá nhiều dữ liệu từ ổ đĩa cùng một lúc hoặc trò chơi đang bị đơ.
Tài nguyên khác
Để tìm hiểu thêm về cách cải thiện hiệu suất của trò chơi, hãy xem các tài nguyên bổ sung sau:
Video
- Bài thuyết trình Systrace cho trò chơi từ hội nghị Nhà phát triển trò chơi trên Android năm 2018
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: 2026-02-27 UTC.
Bạn muốn chia sẻ thêm với chúng tôi? [[["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: 2026-02-27 UTC."],[],[]]-
X Theo dõi @AndroidDev trên X
-
YouTube Xem Android Developers trên YouTube -
LinkedIn Connect with the Android Developers community on LinkedIn
-
Tìm hiểu thêm về Android
- Android
- Android dành cho doanh nghiệp
- Bảo mật
- Source
- Tin tức
- Blog
- Podcast
-
Khám phá
- Trò chơi
- Công nghệ máy học
- Sức khoẻ và thể dục
- Camera và nội dung nghe nhìn
- Quyền riêng tư
- 5G
-
Thiết bị Android
- Màn hình lớn
- Wear OS
- Thiết bị ChromeOS
- Android cho Ô tô
- Android TV
-
Bản phát hành
- Android 15
- Android 14
- Android 13
- Android 12
- Android 11
- Android 10
- Pie
-
Tài liệu và nội dung tải xuống
- Hướng dẫn về Android Studio
- Hướng dẫn cho nhà phát triển
- Tham chiếu API
- Tải Studio xuống
- Android NDK
-
Hỗ trợ
- Báo cáo lỗi nền tảng
- Báo cáo lỗi tài liệu
- Google Play support
- Tham gia nghiên cứu
- Android
- Chrome
- Firebase
- Google Cloud Platform
- Tất cả sản phẩm
- Quyền riêng tư
- Giấy phép
- Nguyên tắc về thương hiệu
- Manage cookies
- Xem tin tức và các mẹo qua email Đăng ký
- English
- Deutsch
- Español – América Latina
- Français
- Indonesia
- Italiano
- Polski
- Português – Brasil
- Tiếng Việt
- Türkçe
- Русский
- עברית
- العربيّة
- فارسی
- हिंदी
- বাংলা
- ภาษาไทย
- 中文 – 简体
- 中文 – 繁體
- 日本語
- 한국어
Từ khóa » Cách để Cpu Chạy Hết Công Suất Android
-
5 Cách Tăng Tốc điện Thoại Android Trong Nháy Mắt - Kỷ Nguyên Số
-
Cách để CPU Chạy Hết Công Suất Android - Bí Quyết Xây Nhà
-
Cách Tăng Hiệu Suất CPU Android - Thả Rông
-
11 Thủ Thuật Giúp điện Thoại Android Không Bị "rùa Bò" - VietTimes
-
Cách ép Xung CPU Android Không Cần Root Chi Tiết Từ AZ
-
Tối ưu Hiệu Suất Android Bằng Tùy Chọn Trong Cài đặt Cho Người ...
-
17 Cách Tăng Tốc Android Cực Dễ Và Hiệu Quả Mà Bạn Nên Biết
-
9 Cách Tăng Tốc điện Thoại Android Chạy Nhanh Như Vừa Mới Mua
-
Cách Ép Xung Tối ưu CPU, GPU, GFX, FPS + Tăng Tốc Internet + ...
-
Chia Sẻ: Bật Mí Cách ép Xung Cpu Android Hiệu Quả Nhất
-
Cách Tăng Hiệu Suất Chơi Game Trên điện Thoại Android đón Năm Mới
-
10 ứng Dụng Tăng Hiệu Suất Smartphone ít Người Biết! - Hcare
-
5 Mẹo Tăng Tốc độ điện Thoại Android Hiệu Quả Nhất Dành Cho Bạn
-
▷ Cách ép Xung Trên Android - Matchstix