2011-01-02 25 views
37

Tôi chưa tìm thấy giải thích rõ ràng về cách hệ thống đồ họa Android hoạt động, cụ thể, nó có sử dụng máy chủ hiển thị hay không, dựa trên DirectFB hoặc X11, v.v.Android Graphics Internals

Từ những gì tôi đã quản lý để cùng nhau, Android phụ thuộc vào Linux frame buffer. Tôi đã không tìm thấy nhiều về những gì loại máy chủ hiển thị hoặc window manager Android sử dụng để truy cập multiplex vào framebuffer mặc dù, do đó, bất kỳ con trỏ sẽ được nhiều đánh giá cao!

Cuối cùng, từ những gì tôi hiểu tập lệnh ARM cung cấp hướng dẫn để tăng tốc OpenGL, nhưng cách tích hợp này với máy chủ hiển thị không rõ ràng, tức là. sao các ứng dụng của khách hàng thương lượng một bộ đệm chia sẻ bộ nhớ mà khách hàng viết trực tiếp?

Thư viện OpenGL có phải là nguồn mở cho nền tảng tăng tốc không? Tôi đã tìm thấy một số tài liệu tham khảo cho thấy chúng là các tệp nhị phân nguồn đóng. Một lần nữa, bất kỳ con trỏ nào cũng sẽ được đánh giá cao.

+0

+1. Rất hữu ích cho những người như tôi, những người đột nhiên đưa ra các vấn đề liên quan đến hiển thị .. :) bạn có thể vui lòng sửa đổi liên kết của bộ đệm khung linux. Nó đã thay đổi và không được hỗ trợ nhiều hơn. Cảm ơn trước .. –

Trả lời

38

Có hai phần cốt lõi cho đồ họa Android: SurfaceFlinger và Skia. SurfaceFlinger là trình phối hợp của Android, được trình quản lý cửa sổ sử dụng để tạo và hiển thị các cửa sổ (được gọi là bề mặt). SurfaceFlinger được cài đặt trên OpenGL ES 1.x hiện tại và cũng có thể sử dụng các kỹ thuật tăng tốc phần cứng khác khi có sẵn (MDP, T-Mobile G1 hoặc lớp phủ phần cứng trên Xoom.)

Mỗi ứng dụng sẽ hiển thị cửa sổ (hoặc bề mặt) bằng Skia chủ yếu. Skia là thư viện đồ họa 2D của Android. Bạn cũng có thể sử dụng OpenGL ES 1.x và 2.0 để hiển thị trên bề mặt.

Android không sử dụng DirectFB hoặc X11 hoặc bất kỳ giải pháp Linux hiện có nào khác.

+0

Và trình quản lý cửa sổ là một quá trình phân biệt được chia sẻ bởi tất cả các chương trình, tương tự như một máy chủ hiển thị truyền thống? Nó sở hữu độc quyền truy cập vào thiết bị hiển thị, vv – naasking

+0

Trình quản lý cửa sổ sống trong system_process nhưng SurfaceFlinger sở hữu thiết bị hiển thị chứ không phải trình quản lý cửa sổ. –

+0

Tôi tò mò về bình luận của bạn về DirectFB. Nếu bạn xem bản trình bày tại [bản trình bày của Jim Huang] (http://www.slideshare.net/jserv/design-and-concepts-of-android-graphics), bạn sẽ thấy một tham chiếu đến các bộ đệm khung trên các trang trình bày 30 và 31. Làm thế nào để những người khác nhau từ DirectFB? – CyberFonic

4

Romain Guy chắc chắn đúng. Nhưng mọi thứ đã thay đổi kể từ Android 3.0. Skia không còn quan trọng nữa, hầu hết các bản vẽ 2D được tăng tốc bằng cách sử dụng thành phần openGL, a.k.a HWUI.

+0

Điểm bắt đầu nào tốt để tìm hiểu ngăn xếp đồ họa Android? – control

+0

@ppu quảng cáo không biết xấu hổ của blog của tôi http://pierrchen.blogspot.com/, đã nói khá nhiều về đồ họa android nội bộ – pierrotlefou

+1

Tôi muốn gỡ lỗi HWUI nhưng tôi không biết cách thực hiện. Bất kỳ nhật ký nào cũng không thể đưa ra (PS: Bạn là người Trung Quốc và tôi cũng vậy. Vì vậy hãy đưa tay lên.) – kangear

Các vấn đề liên quan