自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何減小iOS應(yīng)用程序的大小

移動(dòng)開發(fā) iOS
怎樣才能讓我的程序安裝包小一點(diǎn),讓程序的下載和安裝更快速?本文收集了一些減小程序安裝包大小的相關(guān)技巧(當(dāng)?shù)谝淮蜗螺d和安裝程序時(shí))。

本文譯自:Reducing the size of my App

Q: 怎樣才能讓我的程序安裝包小一點(diǎn),讓程序的下載和安裝更快速?

A: 本文收集了一些減小程序安裝包大小的相關(guān)技巧(當(dāng)?shù)谝淮蜗螺d和安裝程序時(shí))。如果是針對(duì)升級(jí)程序的話,可以看這篇文章(減小iOS應(yīng)用程序升級(jí)時(shí)所需下載的大小)(這與第一次安裝使用的工作原理有所不同)。

[[110909]]

檢查應(yīng)用程序

首先是檢查.app bundle,看一下程序包里面哪些文件占的空間最大。

在做任何相關(guān)優(yōu)化之前,我們需要做一些權(quán)衡。通過(guò)權(quán)衡,可以知道把優(yōu)化的重點(diǎn)集中在什么地方。本文提到的一些技術(shù)缺點(diǎn)我們也需要做出考慮,我們必須考慮相關(guān)影響,以確保做出正確的決定。如果不做權(quán)衡的話,我們無(wú)法知道需要對(duì)程序做出什么樣的改變。

當(dāng)?shù)谝话惭biOS程序時(shí),需要下載完整的一個(gè).ipa文件。(注意這不同于升級(jí))。實(shí)際上.ipa文件就是一個(gè).zip結(jié)構(gòu)。

我們可以通過(guò)這樣的方法來(lái)找出程序的.ipa文件:從App Store下載應(yīng)用,然后利用iTunes對(duì)iOS設(shè)備做同步處理,接著查看目錄:~/Music/iTunes/iTunes Music/Mobile Applications,就能找到.ipa文件了。

當(dāng)讓我們也可以通過(guò)使用: Xcode的Archive命令來(lái)構(gòu)造出.ipa文件——該文件與提交到App Store上的格式基本一致

檢查.ipa文件

簡(jiǎn)單的將后綴為.ipa文件修改為.zip,然后利用Finder將其解壓出來(lái)。右鍵單擊解壓出來(lái)的.app bundle,選擇顯示包內(nèi)容,以查看里面的資源文件。通過(guò)該方法我們可以看到哪些文件占的空間最大。記?。?app bundle是經(jīng)過(guò)壓縮的,并且有些文件的壓縮效果要比別的文件好,所以壓縮后的效果才是才是最重要的。不過(guò)一般情況下在壓縮前最大的文件,在壓縮后依舊是最大的文件。我們可以將某個(gè)文件刪除,然后在Finder中右鍵單擊,選擇壓縮,這樣可以更加精確的測(cè)量文件壓縮效果。

iOS App Store相關(guān)因素

作為提交到App Store中app里的可執(zhí)行文件是被加過(guò)密的。加密的副作用是可執(zhí)行文件的壓縮效果沒(méi)有之前的好了,因?yàn)榧用軙?huì)隱藏一些細(xì)節(jié)問(wèn)題。因此,從App Store下載下來(lái)的.ipa文件大小要比從本地build出來(lái)的.ipa文件大。

注意:將長(zhǎng)文本內(nèi)容和表數(shù)據(jù)等從代碼中移除,并添加到外部文件中,這樣可以減小最終安裝包下載的大小——因?yàn)檫@些文件的壓縮效果更好。

如果你選擇Organizer window中的某個(gè)archived,然后點(diǎn)擊Estimate Size,Xcode可以對(duì)最終分發(fā)的程序尺寸做出一個(gè)評(píng)估。這里并不考慮Mac App Store上面的和企業(yè)級(jí)部署的iOS程序。

Build Settings

編譯選項(xiàng)

將build setting中的Optimization Level設(shè)置為Fastest, Smallest [-Os]; 將build setting 中的Strip Debug Symbols During Copy設(shè)置為YES(COPY_PHASE_STRIP = YES),這樣可以減小編譯出二進(jìn)制文件的尺寸。這里提到的這些設(shè)置在Xcode工程中對(duì)于Release的配置是默認(rèn)的。

警告:這些設(shè)置會(huì)讓你的程序很難debug。在一般開發(fā)環(huán)境build中不建議這樣設(shè)置,

Target針對(duì)較少的CPUs

默認(rèn)情況下,Xcode工程都配置為:對(duì)程序指定的特定CPU類型做優(yōu)化處理,以生成相對(duì)于的可執(zhí)行文件。不同的硬件,將運(yùn)行不同的可執(zhí)行代碼。雖然這樣優(yōu)化后的程序,只能針對(duì)某些設(shè)備運(yùn)行,但是這大大減小可執(zhí)行程序的大小。

要想只設(shè)定特定類型的CPUs,可以修改build setting中的Architectures,將其從Standard $(ARCHS_STANDARD)修改為你希望支持的列表中對(duì)應(yīng)的特定類型CPU。有效的CPU名稱列在Valid Architectures (VALID_ARCHS) build setting中。請(qǐng)不要修改Valid Architectures設(shè)置項(xiàng),最好由Xcode管理。

Assets

對(duì)應(yīng)用程序做一個(gè)完整性檢查

利用Inspecting Your App中介紹的流程,對(duì).app bundle做一個(gè)全面的檢查,以了解那些是真正需要用到的。在程序中,經(jīng)常會(huì)包含一些額外的文件,例如readme之類的,這些從來(lái)都不會(huì)被用到。

將數(shù)據(jù)從代碼中剝離出來(lái)

將所有的資源(例如很長(zhǎng)的字符串)從代碼中剝離出來(lái),并存入外部文件,這樣會(huì)減小最終文件下載的大小,因?yàn)檫@些文件的壓縮效果更好。(參考iOS App Store Specific Considerations中的完整介紹。)

Image Assets

盡量使用8-bit圖片

使用8-bit的PNG圖片,比32-bit的圖片能減少4倍的壓縮率。由于8-bit的圖片支持最多256種不同的顏色,所以8-bit的圖片一般只應(yīng)該用于一小部分的顏色圖片。例如灰度圖片最好使用8-bit。

針對(duì)32-bit的圖片盡量使用高壓縮的比率

利用Adobe Photoshop的Save For Web可以減小JPEG和PNG的圖片大小。在Xcode中,默認(rèn)情況下,會(huì)自動(dòng)的使用pngcrush來(lái)壓縮.png圖片。

Audio Assets

音頻的壓縮

參考WWDC中的Audio Development for Games,里面介紹了如何有效的處理音頻。常規(guī)來(lái)說(shuō),我們要使用AAC或MP3來(lái)壓縮音頻,并且可以嘗試降低一下音頻的比特率。有時(shí)候44.1khz的采樣是沒(méi)有必要的,稍微低一點(diǎn)的比特率也不會(huì)降低音頻的質(zhì)量。

責(zé)任編輯:閆佳明 來(lái)源: beyondvincent
相關(guān)推薦

2015-12-09 14:00:41

ios應(yīng)用

2011-07-06 10:22:31

XCode IOS object-C

2015-07-09 15:42:48

ios應(yīng)用生命周期

2011-07-28 18:51:15

XCode 構(gòu)造 iOS

2011-07-07 16:08:41

2011-07-21 16:19:30

iOS Twitter

2022-09-27 15:16:42

開發(fā)Android應(yīng)用程序

2018-10-25 15:13:23

APP脫殼工具

2020-09-27 07:00:00

安卓應(yīng)用Android

2011-06-07 09:36:41

BlackBerry 應(yīng)用程序

2022-09-19 00:37:13

SaaS云計(jì)算開發(fā)

2015-11-05 10:16:33

2012-04-25 22:56:10

Android

2021-11-17 08:00:00

SLOSLI監(jiān)測(cè)

2024-09-06 10:46:04

2011-05-11 10:58:39

iOS

2011-07-07 17:23:31

iOS

2011-07-28 16:06:34

IOS 應(yīng)用程序 資源

2011-07-28 15:47:20

IOS 程序 測(cè)試

2011-05-31 15:41:00

Cocoa TouchCocoaiOS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)