Hacker News

เจาะลึกเกี่ยวกับรูปแบบไฟล์ .car ของ Apple

เจาะลึกเกี่ยวกับรูปแบบไฟล์ .car ของ Apple การสำรวจนี้จะเจาะลึกลงไป โดยพิจารณาถึงความสำคัญและผลกระทบที่อาจเกิดขึ้น — ระบบปฏิบัติการธุรกิจ Mewayz

1 นาทีอ่าน

Mewayz Team

Editorial Team

Hacker News

เจาะลึกรูปแบบไฟล์ .car ของ Apple

รูปแบบไฟล์ .car ของ Apple ซึ่งย่อมาจาก Compiled Asset Catalog Resource คือคอนเทนเนอร์ไบนารีที่ Apple ใช้ในการจัดทำแพ็กเกจ เพิ่มประสิทธิภาพ และส่งมอบสินทรัพย์ของแอปทั่วทั้งระบบนิเวศของแพลตฟอร์ม การทำความเข้าใจรูปแบบนี้มีความสำคัญสำหรับนักพัฒนา iOS, macOS, tvOS หรือ watchOS ที่ต้องการจัดส่งแอพพลิเคชั่นที่บางลง เร็วขึ้น และปรับให้เหมาะสมยิ่งขึ้น

ไฟล์ .car คืออะไร และเหตุใด Apple จึงใช้มัน

เมื่อคุณสร้างโปรเจ็กต์ Xcode แค็ตตาล็อก Assets.xcassets ของคุณจะถูกคอมไพล์โดย Asset Catalog Compiler (actool) ให้เป็นไฟล์ไบนารี .car ที่จัดส่งภายใน App Bundle ของคุณ แทนที่จะส่งไฟล์ PNG, PDF หรือ HEIC แบบหลวมๆ ขณะรันไทม์ Apple รวมทุกอย่างไว้ในไบนารีที่มีโครงสร้างเดียวนี้

แรงจูงใจเบื้องหลังการออกแบบนี้เกิดขึ้นโดยเจตนาและซ้อนกันหลายชั้น คอมไพลเลอร์ทำการปรับปรุงหลายอย่าง ณ เวลาสร้างซึ่งเป็นไปไม่ได้กับไฟล์รูปภาพดิบ:

การบีบอัดพื้นผิวที่ปรับให้เหมาะสมโดย GPU — รูปภาพจะถูกแปลงเป็นรูปแบบล่วงหน้า เช่น ASTC หรือ PVR ซึ่ง GPU สามารถใช้งานได้โดยตรงโดยไม่ต้องเปลืองค่าใช้จ่ายในการถอดรหัส CPU

การแบ่งส่วนสเกลแฟคเตอร์ — @1x, @2x และ @3x จะถูกจัดเก็บและให้บริการตามความหนาแน่นของหน้าจอของอุปกรณ์เป้าหมาย

การผสานรวม App Thinning — App Store จะแยกสินทรัพย์ที่ไม่เกี่ยวข้องกับอุปกรณ์ดาวน์โหลดออก ช่วยลดขนาดการติดตั้งลงอย่างมาก

การจัดการพื้นที่สี — เนื้อหาจะถูกแท็กและแปลงสำหรับ Display P3, sRGB หรือปริภูมิสีแบบขยายตามความเหมาะสม

การรองรับสีและสัญลักษณ์ที่มีชื่อ — สัญลักษณ์ SF และโทเค็นสีเชิงความหมายได้รับการแก้ไขและฝังไว้ข้างข้อมูลแรสเตอร์

💡 คุณรู้หรือไม่?

Mewayz ทดแทนเครื่องมือธุรกิจ 8+ รายการในแพลตฟอร์มเดียว

CRM · การออกใบแจ้งหนี้ · HR · โปรเจกต์ · การจอง · อีคอมเมิร์ซ · POS · การวิเคราะห์ แผนฟรีใช้ได้ตลอดไป

เริ่มฟรี →

ข้อมูลเชิงลึกที่สำคัญ: รูปแบบ .car ไม่ใช่แค่คอนเทนเนอร์เท่านั้น แต่ยังเป็นไปป์ไลน์การปรับให้เหมาะสมที่ใช้งานอยู่อีกด้วย การยกของหนักเกิดขึ้นในเวลาคอมไพล์ ดังนั้นการโหลดรันไทม์แอสเซทแทบจะในทันที ซึ่งเป็นเหตุผลหลักว่าทำไมแอปเนทีฟของ Apple จึงรู้สึกว่าเร็วกว่าแอปอื่นบนเว็บที่ใช้แอสเซทที่เทียบเท่ากัน

โครงสร้างภายในของไฟล์ .car มีการจัดระเบียบอย่างไร

Apple ไม่เคยเผยแพร่ข้อกำหนดอย่างเป็นทางการสำหรับรูปแบบ .car binary แต่ความพยายามด้านวิศวกรรมย้อนกลับโดยชุมชน โดยเฉพาะโครงการที่สะดุดตาที่สุด เช่น Asset Catalog Tinkerer และ ThemeEngine ได้แมปเค้าโครงของมันในรายละเอียดที่สำคัญ

ที่ระดับบนสุด ไฟล์ .car ถูกสร้างขึ้นบนระบบไฟล์ BOM (Bill of Materials) ซึ่งเป็นรูปแบบเดียวกับที่ Apple ใช้สำหรับแพ็คเกจการติดตั้ง ภายในแผนผัง BOM นั้น คุณจะพบสตรีมที่มีชื่อหลายรายการ:

สตรีม RENDITIONS เป็นสตรีมที่ใหญ่ที่สุดและสำคัญที่สุด โดยมีเพย์โหลดรูปภาพและข้อมูลจริงที่จัดทำดัชนีโดยคีย์เรนดิชั่นที่ไม่ซ้ำกัน สตรีม KEYFORMAT จะกำหนดสคีมาสำหรับคีย์เหล่านั้น การเข้ารหัสคุณลักษณะต่างๆ เช่น สำนวน (iPhone, iPad, Mac) ขนาด ขอบเขตการแสดงผล และรูปลักษณ์ (สว่าง มืด) สตรีม FACETKEYSDB และ FEATUREFLAGS เก็บข้อมูลเมตาเกี่ยวกับสินทรัพย์ที่มีชื่อและแฟล็กความสามารถตามลำดับ สตรีม EXTENDED_METADATA ที่เพิ่มเข้ามาใน SDK เวอร์ชันล่าสุด รองรับสิ่งต่างๆ เช่น ชื่อสัญลักษณ์ที่แปลแล้ว และสัญลักษณ์ความกว้างแปรผัน

เพย์โหลดการเรนเดอร์แต่ละรายการมีโครงสร้างในตัวมันเอง โดยมีส่วนหัวที่อธิบายขนาดพิกเซล พื้นที่สี ประเภทการบีบอัด และจากนั้นข้อมูลดิบที่บีบอัด สำหรับภาพแรสเตอร์ นี่อาจเป็นพิกเซลดิบที่บีบอัดด้วย LZFSE สำหรับเวกเตอร์ PDF มันเป็นไบต์ PDF ดั้งเดิม สำหรับสินทรัพย์ข้อมูลจะเป็นไบนารีหยดใดก็ตามที่คุณเก็บไว้

นักพัฒนาสามารถใช้เครื่องมือใดในการตรวจสอบและแยกเนื้อหา .car ได้

เนื่องจากไฟล์ .car เป็นไฟล์ไบนารี่ที่คอมไพล์ คุณจึงไม่สามารถเปิดไฟล์เหล่านั้นใน Preview หรือ Finder เพียงอย่างเดียวได้ Apple จัดเตรียมพื้นที่ผิวอย่างเป็นทางการบางส่วนผ่านเฟรมเวิร์กส่วนตัว แต่สำหรับการตรวจสอบเชิงปฏิบัติ โดยทั่วไปแล้วคุณจะต้องใช้เครื่องมือของบุคคลที่สาม

Asset Catalog Tinkerer (โดย Guilherme Rambo) เป็นเครื่องมือ GUI ที่ใช้กันอย่างแพร่หลายที่สุด ซึ่งช่วยให้คุณสามารถเรียกดู ดูตัวอย่าง และส่งออกสินทรัพย์แต่ละรายการจากไฟล์ .car ใดก็ได้ acextract เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งชุมชนที่สร้างโครงสร้างโฟลเดอร์แบบหลวม ๆ จากแค็ตตาล็อกที่คอมไพล์แล้ว คำสั่ง Assetutil ของ Apple ที่มาพร้อมกับ Toolchain ของ Xcode สามารถสืบค้นข้อมูลเมตาและกรองแคตตาล็อกสำหรับอุปกรณ์เฉพาะได้ สำหรับไบนารี่ลึกใน

All Your Business Tools in One Place

Stop juggling multiple apps. Mewayz combines 207 tools for just $19/month — from inventory to HR, booking to analytics. No credit card required to start.

Try Mewayz Free →

ลองใช้ Mewayz ฟรี

แพลตฟอร์มแบบออล-อิน-วันสำหรับ CRM, การออกใบแจ้งหนี้, โครงการ, HR และอื่นๆ ไม่ต้องใช้บัตรเครดิต

เริ่มจัดการธุรกิจของคุณอย่างชาญฉลาดวันนี้

เข้าร่วมธุรกิจ 30,000+ ราย แผนฟรีตลอดไป · ไม่ต้องใช้บัตรเครดิต

พบว่าสิ่งนี้มีประโยชน์หรือไม่? แบ่งปันมัน

พร้อมนำไปปฏิบัติแล้วหรือยัง?

เข้าร่วมธุรกิจ 30,000+ รายที่ใช้ Mewayz แผนฟรีตลอดไป — ไม่ต้องใช้บัตรเครดิต

เริ่มต้นทดลองใช้ฟรี →

พร้อมที่จะลงมือทำหรือยัง?

เริ่มต้นทดลองใช้ Mewayz ฟรีวันนี้

แพลตฟอร์มธุรกิจแบบครบวงจร ไม่ต้องใช้บัตรเครดิต

เริ่มฟรี →

ทดลองใช้ฟรี 14 วัน · ไม่ต้องใช้บัตรเครดิต · ยกเลิกได้ทุกเมื่อ