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

iPhone開發(fā)須知說明

移動開發(fā) iOS
本文介紹的是iPhone開發(fā)須知說明,主要是介紹iPhone開發(fā)過程中不得不知道的幾件事,我們先來看內(nèi)容。

iPhone開發(fā)須知說明是本文要介紹的內(nèi)容,主要是來認(rèn)識iPhone 開發(fā)需要知道的內(nèi)容,也是我們所說的常識,先來看內(nèi)容。iOS運行環(huán)境的設(shè)計目標(biāo),快速安全的執(zhí)行應(yīng)用程序。

快速啟動,短暫使用。一個典型情況是,用戶從口袋中拿出設(shè)備,只使用幾秒鐘或者幾分鐘,然后再次放在口袋里。 這要求:

快速啟動應(yīng)用。

使用后能盡快退出。

特殊的系統(tǒng)行為。

在很多地方,iOS都和mac os x特性和行為一樣。但是有些情況和mac os x不同:

虛擬內(nèi)存系統(tǒng)

管理程序內(nèi)存,iOS和mac os x擁有相同的特性和行為方式。在iOS下,每個程序仍然擁有自己的虛擬地址空間,但是和mac os x不同的是,它使用虛擬內(nèi)存受到可用物理內(nèi)存數(shù)量的限制。這是因為iOS不能在內(nèi)存滿了以后把可換出的內(nèi)存分頁寫入磁盤。作為替代,當(dāng)應(yīng)用程序需要騰出更大內(nèi)存的時候,虛擬內(nèi)存系統(tǒng)將釋放這些可換出內(nèi)存。這會刪除內(nèi)存中不再使用的部分,也包括只讀內(nèi)容,比如代碼頁。這些頁面能夠經(jīng)常被重新加載到內(nèi)存中,當(dāng)再次需要它們的時候。

如果內(nèi)存繼續(xù)受到限制,系統(tǒng)可能向正在運行的應(yīng)用發(fā)送通知,要求它釋放額外的內(nèi)存。應(yīng)用程序應(yīng)該響應(yīng)這個通知,并且釋放內(nèi)存。

自動休眠定時器

自動休眠定時器,是一個iOS試圖節(jié)約電量的做法。當(dāng)有一段時間沒有收到觸摸事件,系統(tǒng)將初始化屏幕并最終關(guān)閉屏幕。

雖然大部分情況下這種定時處理是好的,但對于游戲開發(fā)者,或者其他不通過觸摸的應(yīng)用開發(fā)者來說,需要保持屏幕可用,這需要對UIApplication的idleTimerDisabled設(shè)置為YES。

這樣的設(shè)置會帶來大量的用電消耗。在開發(fā)中要考慮禁用自動休眠定時器的必要性。

多任務(wù)支持

在iOS4和后續(xù)版本,可以實現(xiàn)后臺執(zhí)行任務(wù)。當(dāng)用戶退出一個應(yīng)用,進(jìn)程并不中止,而是被轉(zhuǎn)入后臺。在轉(zhuǎn)入后臺后很短的時間內(nèi),大部分應(yīng)用將被系統(tǒng)掛起,因此不會運行,也就不會需要附加的電量。另外,需要繼續(xù)運行的應(yīng)用可向系統(tǒng)請求執(zhí)行時間用于運行。

無論是掛起的還是繼續(xù)運行的后臺應(yīng)用,它們都依然在內(nèi)存中,這讓它們重新啟動應(yīng)用花費更少的時間。不過,如果內(nèi)存使用緊張,系統(tǒng)可以釋放后臺應(yīng)用的內(nèi)存,供其他應(yīng)用使用。因此后臺應(yīng)用應(yīng)在轉(zhuǎn)入后臺時持久保存當(dāng)前狀態(tài),以便在下次重啟應(yīng)用的時候恢復(fù)狀態(tài)。

安全

iOS的一個重要任務(wù)是確保用戶在設(shè)備上安全運行應(yīng)用。iOS通過一些特性來保證這些需求。

應(yīng)用沙箱

因為安全的原因,iOS限制一個應(yīng)用只能訪問文件系統(tǒng)的唯一位置,包括限制對數(shù)據(jù)和應(yīng)用首選項(preference)。這就是沙箱特性。沙箱是一組細(xì)粒度的控制限制集合,包括對文件、首選項、網(wǎng)絡(luò)資源、硬件等等的訪問。

文件保護(hù)

iOS及以后版本,應(yīng)用可以使用文件保護(hù)來加密文件,確保當(dāng)用戶設(shè)備鎖定時文件不可訪問。

keychain data

Keychain Data是一個容器,用于加密和安全的處理密碼和其他保密的信息。keychain data是存儲于應(yīng)用沙箱之外的。如果一個應(yīng)用刪除了,那么keychain data也將自動刪除。當(dāng)用戶通過iTunes備份應(yīng)用數(shù)據(jù)的時候,keychain data也會備份。然而,該數(shù)據(jù)只能恢復(fù)到備份它的設(shè)備上。對應(yīng)用的升級不會影響keychain data。

文件系統(tǒng)

一些重要的應(yīng)用目錄,為了安全的緣故,一個應(yīng)用只能擁有一些目錄,用來寫入應(yīng)用的數(shù)據(jù)或者首選項參數(shù)。當(dāng)一個應(yīng)用安裝到系統(tǒng),會創(chuàng)建該應(yīng)用的home目錄。以下列出一些home目錄下的主要的子目錄:

 < Application_Home>/AppName.app:存放應(yīng)用程序自身

 < Application_Home>/Documents/:存放用戶文檔和應(yīng)用數(shù)據(jù)文件

 < Application_Home>/Library/:應(yīng)用程序規(guī)范的頂級目錄,下面有一些規(guī)范定義的的子目錄,當(dāng)然也可以自定義子目錄,用于存放應(yīng)用的文件,但是不宜存放用戶數(shù)據(jù)文件

 < Application_Home>/Library/Preferences,這里存放程序規(guī)范要求的首選項文件

 < Application_Home>/Library/Caches,保存應(yīng)用的持久化數(shù)據(jù),用于應(yīng)用升級或者應(yīng)用關(guān)閉后的數(shù)據(jù)保存

 < Application_Home>/tmp/,保存應(yīng)用數(shù)據(jù),但不需要持久化的,在應(yīng)用關(guān)閉后,該目錄下的數(shù)據(jù)將刪除

大小寫敏感文件系統(tǒng)

iOS文件系統(tǒng)對大小寫敏感的。

通過用戶桌面電腦共享文件

文件共享可以在應(yīng)用和用戶桌面電腦之間共享文件。但是不允許同一個設(shè)備中的不通應(yīng)用之間共享文件。如果要在應(yīng)用之間共享數(shù)據(jù),需要使用剪切板或者文檔交互控制器對象(document interaction controller object)。

備份和恢復(fù)

iTunes應(yīng)用可在適當(dāng)情況下自動處理備份和恢復(fù)。然后,應(yīng)用需要知道備份和恢復(fù)的文件放在哪里。

什么是備份

你不必為你的應(yīng)用備份和恢復(fù)做任何準(zhǔn)備。在iOS

以后,當(dāng)設(shè)備連接到電腦并開始同步后,iTunes會自動增量備份所有文件,但不包括下面的目錄:

  1. Application_Home>/AppName.app  
  2. Application_Home>/Library/Caches  
  3. Application_Home>/tmp 

雖然iTunes備份應(yīng)用自身,但不是每次同步都這樣做。從app store上購買的應(yīng)用,只在隨后的同步過程中被iTunes備份。再之后,iTunes并不在同步操作中備份應(yīng)用,除非應(yīng)用自身發(fā)生變化,比如應(yīng)用的升級。

為了避免同步過程時間過長,你需要對應(yīng)用中使用的文件放在哪里做出選擇。< Application_Home>/Documents目錄用來存放用戶文檔和應(yīng)用數(shù)據(jù)文件。臨時文件要保存在Application Home/tmp目錄下,這樣可以在不需要時刪除。如果在兩次啟動中都需要的數(shù)據(jù)文件,但是不需要備份的,可放置在Application Home/Library/Caches。比如很大的數(shù)據(jù)文件,盡量放置在Caches目錄下,而不是Documents目錄下,Documents目錄下文件將做備份,這樣會很耗時。

應(yīng)用更新期間的文件保存

如果文件需要在應(yīng)用更新后依然存在,需要放置在:

  1. Application_Home>/Documents  
  2. Application_Home>/Library 

模擬器

模擬器提供了一個運行環(huán)境,和真機(jī)的環(huán)境很接近,但是并不完全一樣:

模擬器沒有真機(jī)上的一些限制,比如內(nèi)存(真機(jī)沒有內(nèi)存分頁保存到硬盤的特性)

有些技術(shù)的行為并不一樣,比如OpenGL ES

判斷可用的硬件支持

有一些硬件特性,不是所有iOS設(shè)備都帶的,比如GPS或者照相機(jī)。如果你的應(yīng)用需要這樣的特性,需要在用戶購買前提醒。如果你使用這樣的硬件特性是可選的,那么需要在使用前檢查硬件特性是否可用。

如果應(yīng)用必須使用硬件特性,那么在Info.plist文件中的UIRequiredDeviceCapabilities條目中做設(shè)置。這也可以防止沒有該硬件特性的用戶安裝應(yīng)用到設(shè)備上。

可通過iOS判斷如下硬件特性的支持情況:

多任務(wù)支持

屏幕是iPad還是iPhone尺寸

是否有額外的屏幕加入

硬件磁盤加密特性是否可用

網(wǎng)絡(luò)是否可用

設(shè)備是否可捕獲視頻

語音輸入(麥克風(fēng))是否可用

GPS設(shè)備當(dāng)前是否可用

指定的硬件訪問是否可用

當(dāng)前的電池水平

proximity傳感器是否可用(是哪個面部靠近識別傳感器吧?)

小結(jié):iPhone開發(fā)須知說明的內(nèi)容介紹完了,通過本文文章介紹iPhone的開發(fā),是不是多多少少明白了點,最后希望本文對你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-18 15:52:50

iPhone 靜態(tài)庫

2009-07-02 13:33:12

JSP技術(shù)

2011-07-06 17:53:40

iPhone SDK Xcode

2015-07-20 09:16:42

iOSWatchKit開發(fā)

2011-07-25 18:02:51

iPhone LibFetion 移植

2011-06-16 16:52:21

MeeGo 開發(fā)

2011-08-10 15:48:10

iPhone網(wǎng)絡(luò)

2011-07-06 17:34:47

iPhone

2010-04-12 14:58:56

Meego開發(fā)

2011-08-12 09:52:35

iPhone開發(fā)TableviewUITextField

2012-12-24 14:48:14

ios

2011-07-19 09:46:38

2011-08-22 14:31:53

iPhone開發(fā)

2011-08-10 15:58:58

iPhone視頻

2011-07-08 14:58:16

iPhone Xcode iOS

2011-07-08 16:02:24

iphone

2011-07-19 09:58:36

2011-08-10 18:24:22

iPhone 圖形 繪圖

2015-02-28 15:40:38

iPhoneiPadiOS8安全設(shè)置

2015-06-15 10:57:34

開發(fā)者2015移動開發(fā)
點贊
收藏

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