-
1 # ExceptionD
-
2 # 51PenTest無憂滲透
IOS系統的最佳化和穩定性更高,軟硬體最佳化更好,安卓因為其開源的特性,決定了,每個廠家的最佳化程度各有不同,
概括起來,主要有這些方面的特點:
一、兩者執行機制不同
1. iOS採用的是沙盒執行機制(1)沙盒機制出於安全考慮,iPhone對於安裝在上面的應用程式有所限制,這個限制就是應用程式只能在為該改程式建立的檔案系統中讀取檔案,不可以去其它地方訪問,此區域被成為沙盒,所以所有的非程式碼檔案都要儲存在此,例如影象,圖示,聲音,映像,屬性列表,文字檔案等。總體來說沙盒就是一種獨立、安全、封閉的空間。
(2)沙盒機制的特點每個應用程式都有自己的儲存空間。每個應用程式都不可以翻過自己的圍牆去訪問別的儲存空間的內容(已經越獄的除外)。在訪問別人沙盒內的資料時需要訪問許可權。沙盒(sandbox)的核心內容是:sandbox對應用程式執行各種操作的許可權限制
(3)應用程式的沙盒目錄應用程式沙盒目錄下有三個資料夾Documents、Library(下面有Caches和Preferences目錄)、tmp。
Documents:儲存應用執行時生成的需要持久化的資料iTunes會自動備份該目錄。蘋果建議將在應用程式中瀏覽到的檔案資料儲存在該目錄下。
Library/Preferences:儲存應用程式的所有偏好設定iOS的Settings(設定),我們不應該直接在這裡建立檔案,而是需要透過NSUserDefault這個類來訪問應用程式的偏好設定。iTunes會自動備份該檔案目錄下的內容。
tmp:臨時檔案目錄,在程式重新執行的時候,和開機的時候,會清空tmp資料夾。
2.安卓採用的是虛擬機器執行機制(1)什麼是Dalvik虛擬機器
Dalvik是Google公司自己設計用於Android平臺的Java虛擬機器,它是Android平臺的重要組成部分,支援dex格式(Dalvik Executable)的Java應用程式的執行。dex格式是專門為Dalvik設計的一種壓縮格式,適合記憶體和處理器速度有限的系統。Google對其進行了特定的最佳化,使得Dalvik具有高效、簡潔、節省資源的特點。從Android系統架構圖知,Dalvik虛擬機器執行在Android的執行時庫層。
(2)Dalvik虛擬機器的功能
Dalvik作為面向Linux、為嵌入式作業系統設計的虛擬機器,主要負責完成物件生命週期管理、堆疊管理、執行緒管理、安全和異常管理,以及垃圾回收等。Dalvik充分利用Linux程序管理的特定,對其進行了面向物件的設計,使得可以同時執行多個程序,而傳統的Java程式通常只能執行一個程序,這也是為什麼Android不採用JVM的原因。Dalvik為了達到最佳化的目的,底層的操作大多和系統核心相關,或者直接呼叫核心介面。另外,Dalvik早期並沒有JIT編譯器,直到Android2.2才加入了對JIT的技術支援。
(3)Dalvik虛擬機器具有以下特點· 使用dex格式的位元組碼,不相容Java位元組碼格式
· 程式碼密度小,執行效率高,節省資源
· 常量池只使用32位的索引
· 有記憶體限制
· 預設棧大小是12KB(3個頁,每頁4KB)
· 堆預設啟動大小為2MB,預設最大值為16MB
· 堆支援的最小啟動大小為1MB,支援的最大值為1024MB
· 堆和棧引數可以透過-Xms和-Xmx修改
詳細參考:https://www.cnblogs.com/lao-liang/p/5111399.html
二、兩者後臺制度不同
1.iOS採用“偽後臺”的形式(1)iOS系統的後臺機制過程當我們程式從前臺退到後臺(按home)鍵後,將執行程式的委託方法。
// 當應用程式掉到後臺時,執行該方法
-(void)applicationDidEnterBackground:(UIApplication *)application{
}
當一個iOS應用被送到後臺,它的主執行緒會被暫停。你用 NSThread 的detachNewThreadSelector:toTar get:withObject:類方法建立的執行緒也被掛起了。應用程式只給了我們可憐的一點點時間(也就是秒級別的)來處理東西,然後,所有的執行緒都被掛起了。這個時候APP依然駐留在記憶體中,這種狀態下,不呼叫蘋果已開放的幾種後臺方法,程式便不會執行;如果在這個時候,使程式繼續執行,則為後臺狀態;如果當前記憶體將要不夠用時,系統會自動把之前掛起狀態下的APP請出記憶體。所以我們看到,有些時候開啟APP時,還是上次退出時的那個頁面那些資料,有時則是重新從閃屏進入。
(2)iOS系統後臺機制大概可以分為5種狀態· Not Running:APP沒有啟動,也沒有後臺執行;
· Inactive:這是一個過渡的狀態,APP雖然打開了,但是使用者沒有跟APP有任何互動操作;
· Suspended:APP雖然在後臺執行,但是處於休眠狀態,只佔用一點記憶體。
2. 安卓中任何程式都能在後臺執行,直到沒有記憶體才會關閉(1)android後臺執行機制android上的應用是帶有獨立虛擬機器的,也就是每開一個應用就會開啟一個獨立的虛擬機器,每個app都有自己的程序,每個程序都有自己的記憶體空間,這樣設計的原因是可以避免虛擬機器崩潰導致整個系統崩潰,但代價就是需要更多記憶體。以上這些設計確保了android的穩定性,正常情況下最多單個程式崩潰,但整個系統不會崩潰。
(2)安卓的程序從高到底分為5種· 前臺程序:正在與使用者互動的程序,通俗來講就是你當前使用app的程序;
· 可見程序:可以被使用者看到,但是沒有和使用者互動,例如一個activity以對話方塊的形式覆蓋在當前activity上面,當前activity可以被使用者看到,但是不和使用者互動;
· 服務程序:這個相信大家都熟悉,也就是我們常說的service,能夠執行在後臺,常見的有音樂類的app;
· 空程序:空程序指的是在這些程序內部,沒有任何東西在執行。保留這種程序的的唯一目的是用作快取,以縮短該應用下次在其中執行元件所需的啟動時間。
三、兩者最高許可權指令不同
1.iOS中用於UI指令許可權最高。2.安卓中資料處理指令許可權最高。
四、推送機制
1.iOS在軟體關閉的情況下,依然可以接收推送資訊手機訊息當然都是透過伺服器推送到我們手機上的,對於iOS的使用者來說,蘋果有APNs伺服器來負責訊息的推送。當你第一次使用APP時,會詢問是否接收通知,如果你選擇了是,那麼伺服器就會記錄你的ID,當有訊息通知的時候,這些資料是先推送到蘋果的伺服器中,然後透過蘋果的APN伺服器推送到使用者手機上的。 這樣的設計讓軟體徹底關閉的時候還可以接收到訊息通知,一方面釋放記憶體,一方面也不會耽誤接收訊息。
2. Android在軟體關閉的情況下,無法接收推送資訊在Android手機來說,谷歌也有類似的GCM伺服器來推送訊息,不過因為國內的手機都沒有谷歌服務無法收到谷歌GCM伺服器推送的訊息。安卓的推送都是通服務來實現的,就算應用沒有啟動但是服務還在一樣可以收到推送。所以只能是安卓自己啟動Services來實現推送,當應用殺死後Services如果被殺死就無法收到推送。
五、開源性
Android系統特點。Android系統由於是開放原始碼,所以支援它的手機很多,可以免費使用的軟體也很多,可以不斷升級。iOS系統特點。他的主要特點是使用方便,靈活,但是由於其封閉的系統,可擴充套件性比較差。android相對ios來說更加開放.輕鬆的覆蓋移動裝置的中低端市場,甚至不僅僅移動市場,還有TV,筆記本,機頂盒,路由器,卡拉OK點唱機,車載導航,智慧手錶等等。
-
3 # 品味生活探索未來
透過使用安卓和ios系統,自己的感覺各有利弊吧!首先安卓系統比較人性化,比較前瞻點、在創新方面走在了ios前面,反應速度也可以,但弊端是:快取很難清理乾淨,總會隱藏,隨著使用時間的增長,記憶體佔用太大,就會出現卡頓,反應變慢,流暢性下降,還有一些使用過的軟體雖然已解除安裝但有些檔案還在記憶體裡面。這可能是開源的弊端吧!安卓機優於蘋果的就是電池的耐用性和高效能的攝像頭!ios從新機到使用好長一段時間,反應速度,流暢性還是相當快的,記憶體佔用也還好,主要ios沒有開源,資料快取,系統會自動清理乾淨的,所以幾年下來記憶體還是可以的,但弊端是電池容量太小,帶電量明顯不如安卓機,還有從蘋果一代到六代攝像頭沒有明顯的提升,很讓人失望。還有就是ios使用太繁瑣,沒有安卓那麼有創新和人性化。但最近隨著美國霸凌主義,單邊貿易的影響,第三個作業系統已面世,那就是華為鴻蒙系統。大家都很期待它的創新和效能,只要能超越安卓和ios必將成為現代主力的作業系統,期待它的到來!
回覆列表
我會選安卓
理由很簡單。
1、安卓非常開放,可玩性非常高,基於這個特性安卓上好玩的app也是層出不窮,更有三方定製rom和xp框架這類適合發燒友搗鼓的東西。很多需要系統級別定製的人性化功能在ios上根本是痴想。
2、可選擇性多,由於安卓開源性使用廠商眾多,而各個廠商有自己的特點,因此你可以根據需求購買,例如拍照好的,外觀高的,續航好的,效能好的,多媒體好的等等。而ios僅有一家並且產品線少的可憐,舉個例子在x沒出以前如果想買大屏就必須要忍受plus系列反人類的外觀和手感。
3、價格,雖然很多人不差錢,但不可否認普遍來說安卓價格是低於ios的,而且相同app多數起安卓平臺收費會低一些(appstroe 30%蘋果稅 開發者年費)
綜上所述,作為一個數碼發燒友我選擇安卓,不過對於一些不喜歡折騰的人,比如老一輩的人我更推薦他使用ios。
Android懂得人使用會非常舒服,而不會用的人會覺得非常難用,因為國內流氓軟體實在太多很容易就會造成手機卡頓,發熱,耗電快甚至宕機,各種系統設定,許可權管理,垃圾清理也錯綜複雜,異常繁瑣,非常不適合大眾使用者。反觀ios就很簡單了,不管使用者是否正確使用,體驗都不會相差太多。
總結,Android類似於早期的windows,不同的人體驗到的是完全不同的世界。如果調教的好,毫不誇張說秒殺目前所有移動系統,如果不會調教體驗甚至不如多年前的塞班和已經涼了的wp