Anti android network toolkit hướng dẫn
API RenderScript sẽ không còn được dùng nữa kể từ phiên bản Android 12. Các API này sẽ tiếp tục hoạt động, nhưng nhà sản xuất thiết bị và thành phần sẽ từng bước ngừng cung cấp dịch vụ hỗ trợ tăng tốc phần cứng. Để tận dụng tối đa tính năng tăng tốc GPU, bạn nên di chuyển tập lệnh của mình sang Vulkan hoặc sử dụng bộ công cụ thay thế của chúng tôi để di chuyển khỏi hàm nội tại. Show Sau khi RenderScript trong nền tảng Android không được sử dụng nữa, chúng tôi cũng sẽ ngừng hỗ trợ RenderScript trong trình bổ trợ Android cho Gradle. Kể từ trình bổ trợ Android cho Gradle 7.2, API RenderScript không được dùng nữa. Các API đó sẽ vẫn hoạt động nhưng kết quả trả về khi gọi sẽ là các lời nhắc nhở và sẽ bị xoá hoàn toàn trong các phiên bản AGP sau này. Hướng dẫn này giải thích cách di chuyển từ RenderScript. Di chuyển từ hàm nội tạiMặc dù các hàm nội tại RenderScript sẽ tiếp tục hoạt động sau khi RenderScript không dùng được nữa, các hàm này sẽ chỉ có thể thực thi trên CPU thay vì GPU. Nếu ứng dụng sử dụng các hàm nội tại riêng biệt, bạn có thể sử dụng thư viện thay thế độc lập; các bài kiểm thử của chúng tôi cho thấy việc này nhanh hơn so với việc triển khai CPU RenderScript hiện nay. Bộ công cụ này bao gồm các hàm sau:
Để biết đầy đủ thông tin chi tiết và các hạn chế, hãy xem tệp Thực hiện các bước sau để tải xuống, thêm và sử dụng thư viện:
Ví dụ về việc di chuyển từ hàm ScriptIntrinsicBlurĐể thay thế hàm
Nếu đối tượng là Android 12 (API cấp độ 31) trở lên, hãy cân nhắc sử dụng lớp Di chuyển từ tập lệnhĐể khai thác tối đa việc tăng tốc GPU, bạn nên chuyển các tập lệnh RenderScript sang API Vulkan nhiều nền tảng. Mặc dù các tập lệnh sẽ tiếp tục chạy ngay cả khi bạn không di chuyển, các tập lệnh đó có thể thực thi trên CPU thay vì GPU tuỳ thuộc vào tình trạng sẵn sàng của các trình điều khiển. Để hiểu rõ hơn về cách di chuyển chức năng, hãy xem lại phần ứng dụng mẫu. Ứng dụng mẫu hướng dẫn cách làm mờ bitmap và chuyển đổi ma trận màu trong RenderScript, đồng thời có mã tương đương trong Vulkan. Nếu ứng dụng cần hỗ trợ
nhiều bản phát hành, hãy sử dụng RenderScript cho các thiết bị chạy Android 6 (API cấp 23) trở xuống và Vulkan cho Android 7 (API cấp 24) trở lên. Nếu Vulkan không cung cấp API Kotlin hoặc Java, do đó, giữa RenderScript và Vulkan không có liên kết trực tiếp. Bạn cần phải viết mã Vulkan bằng NDK và tạo các hàm JNI để truy cập mã này từ Kotlin hoặc Java. Các phần sau trình bày các khía cạnh của việc di chuyển từ RenderScript. Ứng dụng mẫu triển khai hầu hết các khía cạnh này. Để hiểu rõ hơn, hãy so sánh mã tương đương giữa RenderScript và Vulkan. Khởi chạyThay vì tạo đối tượng ngữ cảnh RenderScript trong Kotlin hoặc Java, hãy thực hiện các bước sau để tạo một ngữ cảnh Vulkan bằng NDK.
Bạn có thể tuỳ ý thiết lập các lớp xác thực Vulkan trên Android để tăng tốc độ phát triển ứng dụng bằng Vulkan. Ứng dụng mẫu minh hoạ cách khởi chạy ngữ cảnh Vulkan trong Lớp truyền dữ liệu giữa các nhân (Allocation)Bạn có thể di chuyển một lớp truyền dữ liệu giữa các nhân RenderScript sang hình ảnh lưu trữ Vulkan hoặc vùng đệm lưu trữ Vulkan. Để có hiệu suất tốt hơn với hình ảnh chỉ đọc, hãy sử dụng hình ảnh được lấy mẫu có thao tác tìm nạp dưới dạng trình lấy mẫu ảnh kết hợp hoặc với trình lấy mẫu riêng và liên kết hình ảnh mẫu. Các
tài nguyên Vulkan được phân bổ trong Vulkan. Để tránh tình trạng bộ nhớ sao chép các tập hợp tài nguyên gián tiếp khi tương tác với các thành phần khác của Android, hãy cân nhắc sử dụng tiện ích Ứng dụng mẫu minh hoạ cách tạo tài nguyên Vulkan trong Tập lệnhTập lệnh RenderScript phải được chuyển đổi sang chương trình đổ bóng Vulkan điện toán. Bạn cũng có thể cần điều chỉnh mã tuỳ thuộc vào việc sử dụng các tập lệnh RenderScript toàn cục. Viết chương trình đổ bóng Vulkan điện toánChương trình đổ bóng Vulkan điện toán thường được viết bằng Ngôn ngữ tạo bóng OpenGL (GLSL) và sau đó được biên dịch sang định dạng Đại diện trung gian di động tiêu chuẩn-V (SPIR-V). Để biết thông tin chi tiết và hướng dẫn tích hợp chương trình đổ bóng vào ứng dụng, hãy xem phần trình biên dịch đổ bóng của Vulkan trên Android. Điều chỉnh tập lệnh toàn cụcDựa trên các đặc điểm của tập lệnh toàn cục, các tập lệnh toàn cục không được chỉnh sửa trong chương trình đổ bóng nên sử dụng hằng số đặc biệt, hằng số đẩy hoặc đối tượng đệm đồng nhất:
Đối với các tập lệnh toàn cục được thay đổi trong chương trình đổ bóng, bạn có thể sử dụng hình ảnh lưu trữ Vulkan hoặc vùng đệm lưu trữ Vulkan. Tính toánBạn sẽ cần tạo một quy trình điện toán Vulkan để yêu cầu GPU thực thi chương trình đổ bóng điện toán. Tạo quy trình điện toán VulkanTệp Để sử dụng chương trình đổ bóng SPIR-V được biên dịch trong Vulkan, hãy tạo quy trình điện toán Vulkan như sau:
Để biết thêm thông tin, hãy xem phần Quy trình điện toán trong tài liệu thông số kỹ thuật Vulkan. Bắt đầu tính toánĐể bắt đầu tính toán bằng quy trình điện toán, hãy thực hiện các bước sau:
Để liên kết nhiều nhân với nhau (ví dụ: để di chuyển mã bằng Ứng dụng mẫu minh hoạ hai tác vụ điện toán:
Để tìm hiểu thêm về các vùng đệm lệnh hoặc rào cản bộ nhớ, hãy tham khảo các phần trong tài liệu thông số kỹ thuật Vulkan, gọi là Vùng đệm lệnh và Rào cản bộ nhớ. |