Hacker News

Tìm hiểu sâu về định dạng tệp .car của Apple

Tìm hiểu sâu về định dạng tệp .car của Apple Cuộc thăm dò này đi sâu vào, xem xét tầm quan trọng và tác động tiềm tàng của nó. — Hệ điều hành kinh doanh Mewayz.

8 đọc tối thiểu

Mewayz Team

Editorial Team

Hacker News

Đi sâu vào định dạng tệp .car của Apple

Định dạng tệp .car của Apple — viết tắt của Compiled Asset Catalog Resource — là vùng chứa nhị phân mà Apple sử dụng để đóng gói, tối ưu hóa và phân phối nội dung ứng dụng trên toàn bộ hệ sinh thái nền tảng của mình. Việc hiểu định dạng này rất quan trọng đối với bất kỳ nhà phát triển iOS, macOS, tvOS hoặc watchOS nào muốn cung cấp các ứng dụng gọn gàng hơn, nhanh hơn và được tối ưu hóa tốt hơn.

Chính xác thì tệp .car là gì và tại sao Apple lại sử dụng nó?

Khi bạn xây dựng một dự án Xcode, danh mục Assets.xcassets của bạn sẽ được Trình biên dịch danh mục tài sản (actool) biên soạn thành tệp .car nhị phân được gửi bên trong gói ứng dụng của bạn. Thay vì phân phối các tệp PNG, PDF hoặc HEIC lỏng lẻo trong thời gian chạy, Apple gói mọi thứ vào tệp nhị phân có cấu trúc duy nhất này.

Động cơ đằng sau thiết kế này là có chủ ý và nhiều tầng lớp. Trình biên dịch thực hiện một số tối ưu hóa tại thời điểm xây dựng mà các tệp hình ảnh thô không thể thực hiện được:

Nén kết cấu được tối ưu hóa cho GPU — hình ảnh được chuyển đổi trước thành các định dạng như ASTC hoặc PVR mà GPU có thể sử dụng trực tiếp mà không cần phải giải mã CPU.

Cắt hệ số tỷ lệ — các biến thể @1x, @2x và @3x được lưu trữ và phân phối dựa trên mật độ màn hình của thiết bị đích.

Tích hợp Làm mỏng ứng dụng - App Store loại bỏ các biến thể nội dung không liên quan đến thiết bị tải xuống, giảm đáng kể kích thước cài đặt.

Quản lý không gian màu — nội dung được gắn thẻ và chuyển đổi cho Màn hình P3, sRGB hoặc không gian màu mở rộng nếu thích hợp.

Hỗ trợ màu sắc và ký hiệu được đặt tên - Biểu tượng SF và mã thông báo màu ngữ nghĩa được phân giải và nhúng cùng với dữ liệu raster.

💡 BẠN CÓ BIẾT?

Mewayz replaces 8+ business tools in one platform

CRM · Hóa đơn · Nhân sự · Dự án · Đặt chỗ · Thương mại điện tử · POS · Phân tích. Gói miễn phí vĩnh viễn có sẵn.

Bắt đầu miễn phí →

Thông tin chi tiết quan trọng: Định dạng .car không chỉ là một vùng chứa — nó là một quy trình tối ưu hóa đang hoạt động. Việc nâng hạng nặng diễn ra vào thời gian biên dịch để việc tải tài sản trong thời gian chạy trở nên gần như tức thời, đó là lý do cốt lõi khiến các ứng dụng gốc của Apple cảm thấy nhanh hơn so với các lựa chọn thay thế dựa trên web chạy các nội dung tương đương.

Cấu trúc bên trong của tệp .car được tổ chức như thế nào?

Apple chưa bao giờ công bố thông số kỹ thuật chính thức cho định dạng nhị phân .car, nhưng những nỗ lực kỹ thuật đảo ngược của cộng đồng — đáng chú ý nhất là các dự án như Asset Catalog Tinkerer và ThemeEngine — đã lập bản đồ bố cục của nó một cách chi tiết.

Ở cấp cao nhất, tệp .car được xây dựng trên hệ thống tệp BOM (Bill of Materials) - cùng định dạng mà Apple sử dụng cho các gói cài đặt. Trong cây BOM đó, bạn sẽ tìm thấy một số luồng được đặt tên:

Luồng RENDITIONS là luồng lớn nhất và quan trọng nhất, chứa tải trọng hình ảnh và dữ liệu thực tế được lập chỉ mục bằng một khóa hiển thị duy nhất. Luồng KEYFORMAT xác định lược đồ cho các khóa đó, mã hóa các thuộc tính như thành ngữ (iPhone, iPad, Mac), tỷ lệ, gam màu hiển thị và hình thức (sáng, tối). Các luồng FACETKEYSDB và FEATUREFLAGS chứa siêu dữ liệu về các nội dung được đặt tên và cờ khả năng tương ứng. Luồng EXTENDED_METADATA, được thêm vào trong các phiên bản SDK gần đây hơn, hỗ trợ những thứ như tên ký hiệu được bản địa hóa và ký hiệu có chiều rộng thay đổi.

Mỗi tải trọng hiển thị đều có cấu trúc riêng - nó mang tiêu đề mô tả kích thước pixel, không gian màu, kiểu nén và sau đó là dữ liệu nén thô. Đối với hình ảnh raster, đây có thể là các pixel thô được nén bằng LZFSE; đối với vectơ PDF, đó là byte PDF gốc; đối với nội dung dữ liệu, đó là bất kỳ blob nhị phân nào bạn đã lưu trữ.

Nhà phát triển có thể sử dụng công cụ nào để kiểm tra và trích xuất nội dung .car?

Vì các tệp .car là các tệp nhị phân được biên dịch nên bạn không thể đơn giản mở chúng trong Bản xem trước hoặc Finder. Apple cung cấp một số diện tích bề mặt chính thức thông qua các khuôn khổ riêng tư, nhưng để kiểm tra thực tế, bạn thường sử dụng công cụ của bên thứ ba.

Asset Catalog Tinkerer (của Guilherme Rambo) là công cụ GUI được sử dụng rộng rãi nhất — nó cho phép bạn duyệt, xem trước và xuất từng nội dung từ bất kỳ tệp .car nào. acextract là một tiện ích dòng lệnh cộng đồng giúp xây dựng lại cấu trúc thư mục lỏng lẻo từ một danh mục đã biên dịch. Lệnh assetsutil của riêng Apple, được cung cấp cùng với chuỗi công cụ của Xcode, có thể truy vấn siêu dữ liệu và danh mục bộ lọc cho các thiết bị cụ thể. Đối với hệ nhị phân sâu trong

Build Your Business OS Today

From freelancers to agencies, Mewayz powers 138,000+ businesses with 207 integrated modules. Start free, upgrade when you grow.

Create Free Account →

Dùng Thử Mewayz Miễn Phí

Nền tảng tất cả trong một cho CRM, hóa đơn, dự án, Nhân sự & hơn thế nữa. Không cần thẻ tín dụng.

Bắt đầu quản lý doanh nghiệp của bạn thông minh hơn ngay hôm nay.

Tham gia 30,000+ doanh nghiệp. Gói miễn phí vĩnh viễn · Không cần thẻ tín dụng.

Tìm thấy điều này hữu ích? Chia sẻ nó.

Sẵn sàng áp dụng vào thực tế?

Tham gia cùng 30,000+ doanh nghiệp đang sử dụng Mewayz. Gói miễn phí vĩnh viễn — không cần thẻ tín dụng.

Bắt đầu Dùng thử Miễn phí →

Sẵn sàng hành động?

Bắt đầu dùng thử Mewayz miễn phí của bạn ngay hôm nay

All-in-one business platform. No credit card required.

Bắt đầu miễn phí →

Dùng thử 14 ngày miễn phí · Không cần thẻ tín dụng · Hủy bất kỳ lúc nào