iOS底層基礎知識-文件目錄結構

来源:http://www.cnblogs.com/wujy/archive/2016/02/13/5188302.html
-Advertisement-
Play Games

一:iOS沙盒知識 出於安全考慮,iOS系統把每個應用以及數據都放到一個沙盒(sandbox)裡面,應用只能訪問自己沙盒目錄裡面的文件、網路資源等(也有例外,比如系統通訊錄、照相機、照片等能在用戶授權的情況下被第三方應用訪問) 1:MyApp.app 該目錄包含了應用程式本身的數據,程式打包的時候的


一: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同步

 

獲取主要目錄路徑的方式
沙盒目錄
NSLog(@"%@",NSHomeDirectory());

MyApp.app
NSLog(@"%@",[[NSBundle mainBundle] bundlePath]);

tmp
NSLog(@"%@",NSTemporaryDirectory());

Documents
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [paths objectAtIndex:0];
NSLog(@"%@",docPath);

Library
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libPath = [paths objectAtIndex:0];
NSLog(@"%@",libPath);

 

二: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下存放郵件數據;

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>無標題文檔</title> 6 <style> 7 .fontSize22 8 { 9 font-size:22px; 10 } 11 .fontWeight
  • ajax在用於非同步交互以來,一直被廣泛使用,其使用語法格式基本如下: 基本格式為$.ajxa({ type:"",數據傳送類型POST,GET url:"",處理地址 data:"",傳送數據, dataType:"",返回數據類型, success:function(){},成功並接收返回值, e
  • 作者: "@gzdaijie" 本文為作者原創,轉載請註明出處:http://www.cnblogs.com/gzdaijie/p/5187171.html 。 1.寫在前面 之前使用過有道雲筆記和為知筆記,後來偶然喜歡上用Markdown寫文檔。被Markdown的簡潔與大氣所折服,因此拋棄了有道
  • 一、問題描述 基於百度地圖實現檢索指定城市指定公交的交通路線圖,效果如圖所示 二、通用組件Application類,主要創建並初始化BMapManager public class App extends Application { static App mDemoApp; //百度MapAPI的管
  • 前言:本篇隨筆介紹的是XML解析。 正文: 1、XML解析方式有2兩種: DOM:一次性將整個XML數據載入進記憶體進行解析,比較適合解析小文件 SAX:從根元素開始,按順序一個元素一個元素往下解析,比較適合解析大文件 2、IOS中XML解析方案有很多種: 2-1、第三方框架: libxml2:純C語
  • Android Studio apk 打包流程(轉)http://blog.chinaunix.net/uid-26000296-id-5567890.html
  • 如圖所示,通過實現不規則的網格分佈,來顯示出不同的效果。因為集合視圖必須要指定佈局還可以顯示,所以自定義佈局就可以實現瀑布流的效果。 //創建佈局對象 WaterFlowLayout *flowLayout = [[WaterFlowLayout alloc] init]; flowLayout.d
  • AndroidStudio怎樣導入jar包
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...