mô-đun phương tiện

Android 10 trở lên bao gồm một số thành phần phương tiện có thể cập nhật cho phép cập nhật các thành phần khung thông qua cơ sở hạ tầng Cửa hàng Google Play hoặc thông qua cơ chế không dây (OTA) do đối tác cung cấp. Các thành phần phương tiện được đóng gói cùng nhau trong các mô-đun cho phép cung cấp các bản cập nhật bảo mật và cập nhật tính năng mà không yêu cầu cập nhật hình ảnh toàn bộ hệ thống.

Các thành phần phương tiện có thể cập nhật tồn tại trong các mô-đun sau.

Để biết chi tiết về cách thêm bộ giải mã và bộ giải mã tùy chỉnh, hãy xem Tùy chỉnh thành phần phương tiện .

Trình trích xuất phương tiện

Trong Android 9 trở xuống, trình giải nén được biên dịch thành một tệp libstagefright.so duy nhất. Trong Android 10 trở lên, trình trích xuất phương tiện là các thành phần riêng biệt. Mỗi trình trích xuất có tệp .so riêng với một điểm vào cung cấp chức năng đánh hơi để xác định xem trình trích xuất có thể xử lý tệp phương tiện đã cho hay không và một hàm xuất xưởng tạo phiên bản của trình trích xuất cho tệp phương tiện đã cho. Mỗi trình trích xuất được đặt tên (để trợ giúp gỡ lỗi) và được phiên bản để cho biết trình trích xuất nào là mới nhất.

Khung phương tiện tự động tải tất cả các tệp .so trình giải nén có sẵn, vì vậy bạn có thể tạo các trình giải nén của riêng mình bằng cách thêm tệp .so mới mà không cần sửa đổi libstagefright hoặc các thư viện khung phương tiện khác. Bạn cũng có thể đảm bảo rằng trình trích xuất tùy chỉnh được ưu tiên hơn trình trích xuất do Google cung cấp.

API MediaSession2

API MediaSession2 cho phép các ứng dụng đa phương tiện hiển thị các điều khiển truyền tải và thông tin phát lại của chúng cho các quy trình khác như khung Android và các ứng dụng khác. Thành phần này không thể được tùy chỉnh.

API MediaParser

API MediaParser cho phép ExoPlayer sử dụng hiệu quả các trình phân tích cú pháp bộ chứa phương tiện khung để trích xuất các mẫu phương tiện từ các bộ chứa phương tiện. MediaParser bao gồm những thay đổi sau đối với ranh giới mã nguồn:

  • frameworks/base/apex/media/framework/java/android/media/MediaParser.java . Triển khai API và lớp mỏng.

  • external/exoplayer/ . Các nguồn nguyên văn của Exoplayer mà MediaParser được xây dựng trên đó.

Không thể tùy chỉnh API MediaParser. Để kiểm tra MediaParser, hãy sử dụng các thử nghiệm trong cts/tests/tests/mediaparser/ .

Bộ giải mã phương tiện

Mô-đun Media Codecs bao gồm các thành phần Codec2 phần mềm có thể cập nhật. Hỗ trợ tùy chỉnh khác nhau giữa các bản phát hành:

  • Ở Android 11 trở lên (cụ thể là Google Play System Update v292100200 ), bạn có thể tùy chỉnh thông số phân bổ bộ nhớ ION (xem chi tiết bên dưới).

  • Trong Android 9 trở xuống, API codec OMX không thể cập nhật được nhưng bạn vẫn có thể sử dụng nó trong phân vùng nhà cung cấp.

Phân bổ bộ nhớ ION

Trong Android 11 trở lên và Bản cập nhật hệ thống Google Play v292100200 trở lên, bạn có thể tùy chỉnh các tham số sau để phân bổ bộ nhớ ION.

Tham số Giá trị mặc định Sự miêu tả
heapMask 0xFFFFFFFF Tất cả các loại heap được cho phép.
allocFlags 0 Không có cờ nào được đặt.
minAlignment 0 Không có sự liên kết.

Để ghi đè các tham số:

  1. Đăng ký dịch vụ android.hardware.media.c2 mặc định và cung cấp các thông số sử dụng ION tùy chỉnh.

  2. Thêm mã sau vào tệp kê khai thiết manifest.xml .

    <hal format="hidl">
        <name>android.hardware.media.c2</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IComponentStore</name>
            <instance>default</instance>
        </interface>
    </hal>
    

Định dạng và sự phụ thuộc

Mô-đun Media ( com.android.media ) và mô-đun Media Codec ( com.android.media.swcodec ) có định dạng APEX . Các thành phần phương tiện đi kèm chỉ dựa vào API NDK.

Cập nhật

Trong quá trình cập nhật, các thành phần khung trên thiết bị sẽ tải gói APEX chứa Java và mã gốc.

Cập nhật phương tiện

Hình 1. Luồng cập nhật thành phần phương tiện

Sau khi khung cài đặt gói APEX, thiết bị sẽ khởi động lại và gắn các tiến trình hệ thống phương tiện và hình ảnh đĩa ( media.extractormedia.codec ) tải các mô-đun đã cập nhật từ điểm gắn kết.