Hacker News

Apple'ın .car dosya formatına derinlemesine bir bakış

Apple'ın .car dosya formatına derinlemesine bir bakış Bu keşif derinlemesine inceleyerek önemini ve potansiyel etkisini inceliyor. — Mewayz İşletme İşletim Sistemi.

5 dk okuma

Mewayz Team

Editorial Team

Hacker News

Apple'ın .car Dosya Formatına Derin Bir Bakış

Apple'ın .car dosya formatı (Derlenmiş Varlık Katalog Kaynağı'nın kısaltması), Apple'ın platform ekosisteminin tamamında uygulama varlıklarını paketlemek, optimize etmek ve sunmak için kullandığı ikili kapsayıcıdır. Bu biçimi anlamak, daha yalın, daha hızlı ve daha iyi optimize edilmiş uygulamalar sunmak isteyen tüm iOS, macOS, tvOS veya watchOS geliştiricileri için önemlidir.

.car Dosyası Tam Olarak Nedir ve Apple Bunu Neden Kullanıyor?

Bir Xcode projesi oluşturduğunuzda Assets.xcassets kataloğunuz Asset Catalog Compiler (actool) tarafından uygulama paketinizin içinde gönderilen ikili bir .car dosyasında derlenir. Apple, çalışma zamanında PNG, PDF veya HEIC dosyalarını dağıtmak yerine her şeyi bu tek, yapılandırılmış ikili dosyada bir araya getirir.

Bu tasarımın arkasındaki motivasyonlar kasıtlı ve katmanlıdır. Derleyici, derleme sırasında ham görüntü dosyalarıyla imkansız olabilecek çeşitli optimizasyonlar gerçekleştirir:

GPU için optimize edilmiş doku sıkıştırması — görüntüler, CPU kod çözme ek yükü olmadan GPU'nun doğrudan kullanabileceği ASTC veya PVR gibi formatlara önceden dönüştürülür.

Ölçek faktörü dilimleme — @1x, @2x ve @3x değişkenleri, hedef cihazın ekran yoğunluğuna göre depolanır ve sunulur.

Uygulama İnceltme entegrasyonu — App Store, indirilen cihazla ilgisi olmayan varlık çeşitlerini ortadan kaldırarak yükleme boyutunu önemli ölçüde azaltır.

Renk alanı yönetimi — varlıklar uygun şekilde Display P3, sRGB veya genişletilmiş renk alanları için etiketlenir ve dönüştürülür.

Adlandırılmış renk ve sembol desteği — SF Sembolleri ve anlamsal renk belirteçleri çözümlenir ve tarama verilerinin yanına gömülür.

💡 BİLİYOR MUYDUNUZ?

Mewayz, 8+ iş aracını tek bir platformda değiştirir

CRM · Faturalama · İnsan Kaynakları · Projeler · Rezervasyon · e-Ticaret · POS · Analitik. Süresiz ücretsiz plan mevcut.

Ücretsiz Başla →

Temel Bilgi: .car formatı yalnızca bir kapsayıcı değildir; aktif bir optimizasyon hattıdır. Ağır kaldırma işlemi derleme zamanında gerçekleşir, böylece çalışma zamanı varlık yüklemesi neredeyse anlık hale gelir; bu da yerel Apple uygulamalarının, eşdeğer varlıkları çalıştıran web tabanlı alternatiflerden daha hızlı hissetmesinin temel nedenidir.

Bir .car Dosyasının İç Yapısı Nasıl Düzenlenir?

Apple, .car ikili formatı için hiçbir zaman resmi bir spesifikasyon yayınlamadı, ancak topluluğun tersine mühendislik çabaları (özellikle Asset Catalog Tinkerer ve ThemeEngine gibi projeler) düzenini önemli ayrıntılarla haritalandırdı.

En üst düzeyde, bir .car dosyası, Apple'ın yükleyici paketleri için kullandığı formatın aynısı olan bir BOM (Malzeme Listesi) dosya sistemi üzerine kuruludur. Bu BOM ağacında birkaç adlandırılmış akış bulacaksınız:

RENDITIONS akışı, benzersiz bir yorumlama anahtarıyla indekslenen gerçek görüntü ve veri yüklerini içeren en büyük ve en önemli akıştır. KEYFORMAT akışı, bu tuşlar için şemayı tanımlar ve deyim (iPhone, iPad, Mac), ölçek, ekran gamı ​​ve görünüm (açık, koyu) gibi nitelikleri kodlar. FACETKEYSDB ve FEATUREFLAGS akışları sırasıyla adlandırılmış varlıklar ve yetenek bayrakları hakkında meta verileri tutar. Daha yeni SDK sürümlerinde eklenen EXTENDED_METADATA akışı, yerelleştirilmiş sembol adları ve değişken genişlikli semboller gibi şeyleri destekler.

Her yorumlama yükünün kendisi yapılandırılmıştır; piksel boyutlarını, renk alanını, sıkıştırma türünü ve ardından ham sıkıştırılmış verileri açıklayan bir başlık taşır. Raster görüntüler için bu, LZFSE ile sıkıştırılmış ham pikseller olabilir; PDF vektörleri için orijinal PDF baytlarıdır; veri varlıkları için depoladığınız ikili blobdur.

Geliştiriciler .car İçeriklerini İncelemek ve Çıkarmak İçin Hangi Araçları Kullanabilir?

.car dosyaları derlenmiş ikili dosyalar olduğundan, bunları Önizleme veya Finder'da açamazsınız. Apple, özel çerçeveler aracılığıyla bir miktar resmi yüzey alanı sağlar, ancak pratik inceleme için genellikle üçüncü taraf araçlara başvurursunuz.

Varlık Kataloğu Tinkerer (Guilherme Rambo tarafından) en yaygın kullanılan GUI aracıdır; herhangi bir .car dosyasındaki varlıklara göz atmanıza, önizleme yapmanıza ve bunları dışa aktarmanıza olanak tanır. acextract, derlenmiş bir katalogdan gevşek bir klasör yapısını yeniden oluşturan bir topluluk komut satırı yardımcı programıdır. Apple'ın, Xcode'un araç zinciriyle birlikte gönderilen kendi assetutil komutu, belirli cihazlar için meta verileri sorgulayabilir ve katalogları filtreleyebilir. Derin ikili giriş için

Ready to Simplify Your Operations?

Whether you need CRM, invoicing, HR, or all 207 modules — Mewayz has you covered. 138K+ businesses already made the switch.

Get Started Free →

Mewayz'ı Ücretsiz Deneyin

CRM, faturalama, projeler, İK ve daha fazlası için tümü bir arada platform. Kredi kartı gerekmez.

İşinizi daha akıllı yönetmeye bugün başlayın

30,000+ işletmeye katılın. Sonsuza kadar ücretsiz plan · Kredi kartı gerekmez.

Bunu yararlı buldunuz mu? Paylaş.

Hazır mısınız bunu pratiğe dökmeye?

Mewayz kullanan 30,000+ işletmeye katılın. Süresiz ücretsiz plan — kredi kartı gerekmez.

Ücretsiz Denemeyi Başlat →

Harekete geçmeye hazır mısınız?

Mewayz ücretsiz denemenizi bugün başlatın

Hepsi bir arada iş platformu. Kredi kartı gerekmez.

Ücretsiz Başla →

14 günlük ücretsiz deneme · Kredi kartı yok · İstediğiniz zaman iptal edin