Swift: iOS底層基礎知識-檔案目錄結構
一:iOS沙盒知識
出於安全考慮,iOS系統把每個應用以及資料都放到一個沙盒(sandbox)裡面,應用只能訪問自己沙盒目錄裡面的檔案、網路資源等(也有例外,比如系統通訊錄、照相機、照片等能在使用者授權的情況下被第三方應用訪問)
1:MyApp.app
該目錄包含了應用程式本身的資料,程式打包的時候的資原始檔和一些本地檔案就是存放在這個目錄下的。 程式的可執行程式、plist檔案也在這個目錄下。
這個目錄不會被iTunes同步
2:Documents
使用這個目錄來儲存關鍵資料。關鍵資料指那些應用不可再生的資料。
這個目錄會被iTunes同步
3:Library
用來儲存一些配置檔案和其他一些檔案。其中使用NSUserDefaults寫的設定資料都會儲存到Library/Preferences目錄下的一個plist檔案中。Library/Caches可以用來儲存可再生的資料,比如網路請求,使用者需要負責刪除對應檔案。
這個目錄(除了Library/Caches外)會被iTunes同步
4:tmp
使用這個目錄來儲存各種應用下次啟動不再需要的臨時檔案。當應用不再需要這些檔案的時候,需要主動將其刪除。(當應用不再執行的時候,系統可能會將此目錄清空。)
這個目錄不會被iTunes同步
二:iPhone 手機檔案目錄介紹:
1、 【/Applications】
常用軟體的安裝目錄
2. 【/private /var/ mobile/Media /iphone video Recorder】
iphone video Recorder錄影檔案存放目錄
3、 【/private /var/ mobile/Media /DCIM】
相機拍攝的照片檔案存放目錄
4、 【/private/var/ mobile /Media/iTunes_Control/Music】
iTunes上傳的多媒體檔案(例如MP3、MP4等)存放目錄,檔案沒有被修改,但是檔名字被修改了,直接下載到電腦即可讀取。
5、 【/private /var/root/Media/EBooks】
熊貓看書存放目錄
6、 【/Library/Ringtones】
系統自帶的來電鈴聲存放目錄(用iTunes將檔案轉換為ACC檔案,把字尾名改成.m4r,用iPhone_PC_Suite傳到/Library/Ringtones即可)
7、 【/System/Library/Audio/UISounds】
簡訊記其它系統預設效果鈴聲(m4r鈴聲檔案改副檔名為.caf)簡訊鈴聲檔名為sms-received開頭的caf檔案
8、 【/private/var/ mobile /Library/AddressBook】
系統電話本的存放目錄
【/private/var/mobile/Library/SMS】
簡訊存放目錄
9、 【/private /var/ mobile/Media /iphone Recorder】
iphone Recorder錄音軟體檔案存放目錄
10、【/Applications/Preferences.app/zh_CN.lproj】
軟體Preferences.app的中文漢化檔案存放目錄
11、【/Library/Wallpaper】
系統q1ang紙的存放目錄
12、【/System/Library/Audio/UISounds】
系統聲音檔案的存放目錄
13、【/private/var/root/Media/PXL】
ibrickr上傳安裝程式建立的一個數據庫,估計和windows的uninstall記錄差不多。
14、【/bin】
和linux系統差不多,是系統執行指令的存放目錄。
15、【/private/var/ mobile /Library/SMS】
系統簡訊的存放目錄
16、【/private/var/run】
系統程序執行的臨時目錄?(檢視這裡可以看到系統啟動的所有程序)
17、【/private/var/logs/CrashReporter】
系統錯誤記錄報
特殊圖示存放目錄介紹:
充電圖示:
System/Library/CoreServices/SpringBoard.app/BatteryBG_1.png 一直到 BatteryBG_17.png ,Batteryfill.png
18個圖示為充電圖示
手機訊號圖示:
SystemLibraryCoreServicesSpringBoard.app下Default_0_Bars.png一直到Default_5_Bars.png 和FSO_0_Bars.png--FSO_5_Bars.png
10個圖示為訊號圖示
Wifi訊號圖示:
SystemLibraryCoreServicesSpringBoard.appDefault_0_AirPort.png---Default_3_AirPort.png和FSO_0_AirPort.png---FSO_3_AirPort.png
8個圖示為wifi訊號圖示
Edge訊號圖示:
SystemLibraryCoreServicesSpringBoard.app Default_EDGE_ON.png和FSO_EDGE_ON.png
2個圖示為Edge訊號圖示
日期美化圖示:
SystemLibraryCoreServicesSpringBoard.app|FSO_LockIcon.png
待機播放器圖示:
SystemLibraryCoreServicesSpringBoard.app|nexttrack.png , pause.png , play.png, prevtrack.png
4個圖示為待機播放器圖示
IPOD播放訊號圖示:
SystemLibraryCoreServicesSpringBoard.appFSO_Play.png ,Default_Play.png
鬧鐘訊號圖示:
SystemLibraryCoreServicesSpringBoard.appDefault_AlarmClock.png ,FSO_AlarmClock.png
震動圖示:
SystemLibraryCoreServicesSpringBoard.appsilent.png ,hud.png ,ring.png
滑塊圖示:
SystemLibraryPrivateFrameworksTelephonyUI.framework 目錄下:
Bottombarknobgray.png(待機解鎖滑塊圖示)
bottombarknobgreen.png(待機狀態下移動滑動來接聽 滑塊圖示)
Bottombarknobred.png(關機滑塊 圖示)
待機時間字型:
/System/Library/Fonts/Cache/LockClock.ttf
待機時間背景:
system/library/Frameworks/UIKit.framework/Other.artwork
滑塊文字變為閃光字:
SystemLibraryPrivateFrameworksTelephonyUI.framework/bottombarlocktextmask.png
解鎖滑條路徑:
SystemLibraryPrivateFrameworksTelephonyUI.framework/ opbarbkgnd.png ,bottombarbkgndlock.png
滑塊文字路徑:
/System/Library/CoreServices/SpringBoard.app/zh_CN.lproj
移動:
改彩色的檔名為:Default_CARRIER_CHINAMOBILE.png
改黑白的檔名為:FSO_CARRIER_CHINAMOBILE.png
聯通:
改彩色的檔名為:Default_CARRIER_CHINAUNICOM.png
改黑白的檔名為:FSO_CARRIER_CHINAUNICOM.png
iPhone 特殊檔案目錄介紹:
1. 【/private/var/mobile】
新刷完的機器,要在這個資料夾下建一個Documents的目錄。
2. 【/private/var/mobile/Applications】
通過AppStore和iTunes安裝的程式都在裡面。
3. 【/private/var/stash】 iPhone4這條不能用
這個資料夾下的Applications目錄裡面是所有通過Cydia和app安裝的程式,Ringtones目錄裡是所有的手機鈴音,自制鈴音直接拷在裡面即可,Themes目錄裡是所有Winterboard主題,可以手工修改。
4. 【/var/mobile/Media/ROMs/GBA】
gpsPhone模擬器存放rom的目錄。
5. 【/var/mobile/Media/textReader】
textReader看書軟體讀取的電子書的存放路徑。
6. 【/System/Library/Fonts/Cache】
系統字型目錄,要替換的字型放在該目錄下,許可權644不變
7. 【/private/var/mobile/Media/Maps】
離線地圖目錄,把地圖資料夾放到該目錄下,資料夾賦予777許可權
8. 【/private/var/mobile/Library/Downloads】
ipa檔案存放目錄,用Installous安裝
9. 【/private/var/mobile/Library/Keyboard】
系統拼音字型檔檔案位置
10. 【/var/stash/Themes.XXXXXX】 iPhone4這條不能用
winterboard主題檔案存放路徑
11. 【/private/var/mobile/Media/DCIM/999APPLE】
系統自帶截圖檔案存放路徑
iPhone系統常用資料夾位置
1、【/Applications】
常用軟體的安裝目錄
2. 【/private /var/ mobile/Media /iphone video Recorder】
錄影檔案存放目錄
3、【/private /var/ mobile/Media /DCIM】
相機拍攝的照片檔案存放目錄
4、【/private/var/ mobile /Media/iTunes_Control/Music】
iTunes上傳的多媒體檔案(例如MP3、MP4等)存放目錄,檔案沒有被修改,但是檔名字被修改了,直接下載到電腦即可讀取。
5、【/private /var/root/Media/EBooks】
電子書存放目錄
6、【/Library/Ringtones】
系統自帶的來電鈴聲存放目錄(用iTunes將檔案轉換為ACC檔案,把字尾名改成.m4r,用iPhone_PC_Suite傳到/Library/Ringtones即可)
7、【/private/var/ mobile /Library/AddressBook】
系統電話本的存放目錄。
8、【/private /var/ mobile/Media /iphone Recorder】
錄音檔案存放目錄
9、【/Applications/Preferences.app/zh_CN.lproj】
軟體Preferences.app的中文漢化檔案存放目錄
10、【/Library/Wallpaper】
系統q1ang紙的存放目錄
11、【/System/Library/Audio/UISounds】
系統聲音檔案的存放目錄
12、【/private/var/root/Media/PXL】
ibrickr上傳安裝程式建立的一個數據庫,估計和windows的uninstall記錄差不多。
13、【/bin】
和linux系統差不多,是系統執行指令的存放目錄。
14、【/private/var/ mobile /Library/SMS】
系統簡訊的存放目錄
15、【/private/var/run】
系統程序執行的臨時目錄?(檢視這裡可以看到系統啟動的所有程序)
16、【/private/var/logs/CrashReporter】
系統錯誤記錄報告
電話介面
/Applications/MobilePhone.app/
資料路徑:
/private/var/mobile/Library/AddressBook 聯絡人
/private/var/mobile/Library/CallHistory 通話記錄
/private/var/mobile/Library/SMS 簡訊
/private/var/mobile/Library/Notes 備忘錄
/private/var/mobile/Library/Safari Safari 瀏覽器儲存的書籤等
/private/var/mobile/Library/Mail 電子郵件
/private/var/mobile/Media/DCIM 照片裡面的膠捲
/private/var/mobile/Media/Photos 照片裡面的圖片
/private/var/mobile/Media/Videos Cycorder攝像機軟體拍攝檔案儲存路徑
/private/var/mobile/Library/Preferences com.apple.mobilephone.speeddial.plist 個人收藏(電話快速撥號)
/private/var/mobile/Media/Recordings 語音備忘錄
程序優化:
【/System/Library/LaunchDaemon】目錄下,就是那些【.plist】檔案.要不啟動這些程序的最簡單的方法就是刪除相應的【.plist】檔案.
前先一定要備份,以防萬一!你可以在你的iPhone或iPod的【/private/var/】下面建一個【backup】目錄,然後把要刪除的【.plist】檔案用iFile直接剪下並存儲到【backup】目錄下 ,或者直接備份整個【/System/Library/LaunchDaemon】目錄!
完全可以安全刪除的程序:
1. com.apple.DumpPanic.plist -這是蘋果公司用來評估系統崩潰的,完全沒必要執行.
2. com.apple.DumpBasebandCrash.plist -這是蘋果公司用來蘋果基帶崩潰的,也沒必要執行.
3. ReportCrash -有5個帶"ReportCrash"的".plist"檔案,都是用來收集系統或系統程式崩潰的資訊
4. com.apple.CrashHouseKeeping.plist -和程式崩潰相關的,可以刪.
5. com.apple.powerlog.plist -用來監測第三方不相容的充電器,可以刪.
6. com.apple.tcpdump.server.plist -似乎是用來轉存網路資料的刪除後不影響裝置.
7.com.apple.chud.chum.plist -這個程序應該和蘋果的CHUD工具相關(計算機硬體協議開發/ComputerHardware Understanding Developer).如果你不是一個軟體開發者,應該不用啟動這個程序.
8. com.apple.chud.pilotfish.plist -著也是和蘋果CHUD工具相關的一個程序.如果你不開發蘋果軟體,可以刪除這個.
1. com.apple.AddressBook.plist -如果不啟動這個程序,那麼電話中的通訊錄的載入速度會稍微變慢一些.若不介意這一點,則可以刪除這個程序.
2. com.apple.accessoryd.plist -不啟動這個程序就會禁用一些輔助裝置功能,例如: FM收音機, iPhone座充, AV資料線.當然,即便禁用了這個程序,用iPhone座充還是能充電,但也只能有充電的功能啦.
3. com.apple.dataaccess.dataaccessd.plist -禁用了這個程序,就不能通過Exchange或者Google來同步了.
4. com.apple.datamigrator.plist -這個程序的作用是把聯絡人從你的SIM卡傳到你的iPhone裡. iPod使用者就沒必要啟動它了.儘管我是iPhone,但我也沒有啟動它,因為我從來不在SIM卡中存聯絡人.
5. com.apple.racoon.plist -這是VρN需要的程序.
6. com.apple***leInternetSharing.plist -這是網路共享功能. iPod使用者完全可以刪除. iPhone使用者就看你自己是否需要網路共享.
7. com.apple.aggregated.plist -這個應該和"音訊輸入"有關.第一代的iPod完全不需要這個程序.第二代iPod可以根據自己的需要來決定. iPhone使用者需要這個程序.
8. com.apple.AOSNotification.plist -這是同步MobileMe用的.不用MobileMe的人完全不需要它.
9.com.apple.AdminLite.plist-這個程序的作用是:當某個程式啟動或反應時間過長,則iPhone或iPod會自動終止這個程式(即:讓程式崩潰),從而把控制權轉交到你手中.如果你不願意經常看到程式崩潰,那麼你可以關閉這個程序,但結果是,當遇到某個程式啟動或反應過慢時,你得多等一會兒.一般情況下不建議關閉這個程序.
10. com.saurik.Cydia.Startup.plist -安裝Cydia後產生的程序,應該是用來執行自動安裝deb軟體的.
三:iOS系統目錄
1:/Applications/目錄存放系統App和從Cydia下載的App,而 /var/mobile/Containers/ 目錄存放的則是StoreApp。
2: /var/mobile/Containers,存放StoreApp。值得注意的是,App的可執行檔案在bundle與App中的資料目錄被分別存放在 /var/mobile/Containers/Bundle 和 /var/mobile/Containers/Data這倆個不同的目錄下
3:/Applicatons: 存放所有的系統App和來自Cydia的App,不包括StoreApp。如下圖。
4:/library: 存放一些提供系統支援的資料,其結構圖如下圖所示。其中 /Library/MobileSubstrate下存放了所有基於CydiaSubstrate(原名MobileeSubstrare)的外掛。
5:/Devalop: 如果一臺裝置連結Xcode後被指定為除錯用機,Xcode就回在iOS中生成這個目錄,其中會含有一些除錯需要的工具和資料,它的目錄結構如下圖所示。
6:/System/Library: iOS檔案系統中最重要的目錄之一,存放大量系統元件,其目錄結構如下圖所示。
對於該目錄,需要重點關注的有:
- /System/Library/Frameworks 和 /System/Library/PrivateFrameworks:存放iOS中的各種framework。
-
/System/Library/CoreServices裡的SpringBoard.app:iOS中桌面管理器(類似於Windows裡的explore),是使用者與系統交流的最重要中介。
7:/User: 使用者目錄,實際指向 /var/mobile,其目錄結構如下圖所示。
-
/var/mobile/Media/DCIM下存放照片;
-
/var/mobile/Media/Recordings下存放錄音檔案;
-
/var/mobile/Library/SMS下存放簡訊資料庫;
-
/var/mobile/Library/Mail下存放郵件資料;