寫在前面
眾所周知,現在移動端的兩大系統是android和ios,其中android的市場佔有率高達80%以上.而且同價位的android手機的配置還普遍的比iphone要高上不少.
但是為什麼還是很多人選擇iphone手機呢?一個重要的原因就是不卡.那麼為什麼ios系統不卡呢?小編從一個程式設計師的角度給大家分析分析.
1. 程式語言
android軟體以前都是使用Java來編寫的,現在也有很大一部分使用Kotkin.而ios的軟體以前都是使用Objective-C來編寫,現在也有很多軟體使用Swift來編寫.
但是從執行效率上來看Objective-C/Swift 的執行效率要遠大於Java/Kotkin的.
2. 記憶體管理機制
軟體的執行過程其實就是記憶體/硬碟等的讀寫過程.如果手機的記憶體滿了就意味著軟體無法寫入記憶體或者說要等待記憶體釋放後才能寫入內容,所以記憶體的及時釋放就顯得尤為重要.
如果一個軟體在執行的過程中,能把不需要的記憶體及時的釋放出來就意味著系統能有更多的記憶體來分配給其它的軟體和系統使用. 但是由於設計原因android的記憶體回收依賴於系統的自動回收,很多開發者不注重對記憶體的利用甚至是濫用記憶體.
舉個:當螢幕上需要顯示一張圖片時,首先需要讀取圖片資料載入到記憶體裡,然後提交gpu繪製顯示到顯示器上.但是當圖片滑動到螢幕之外時,就要及時的清理到這部分記憶體.
反觀ios,ios的記憶體管理更接近於C,使用記憶體時要向系統申請記憶體開銷,當使用完成後還要及時的釋放掉佔用的記憶體.
這也就是為什麼android手機為什麼記憶體往往8G,16G甚至32G,而ios還在使用4G,8G的記憶體.關鍵它還不卡,你說氣不氣.
3. 市場管理
我們知道,如果下載android程式的話你可以:在官網下載,在自帶的軟體商店下載,在第三方商店下載甚至直接讓朋友發你一個apk.
這雖然方便了andoird軟體的傳播,但是也有一個很大的弊端:缺乏監管.
商人都是逐利的,一旦缺乏監管,他們甚至想時刻知道你在那個位置,你在和誰通話,你最近買了什麼,你手機裡都裝了什麼app,你的餘額還有多少...
反正我爸媽的android手機裡 動不動就莫名奇妙的裝了一大堆軟體. 你反覆的告誡他們:"這個按鈕不要點,等廣告看完,那個連結不要點...".
但是別說父母年級大了,就算是我面對那些比蚊子還小的關閉按鈕,甚至是偽裝成關閉按鈕的廣告也經常中招,一點就下載,還沒來的及後悔都下載完了.
對比下ios,軟體只能從appstore下載,開發者開發完軟體還要提交稽核,濫用開發者許可權根本上不了架. 比如你一個聽歌軟體你為啥要申請聯絡人許可權呢?這個時候稽核人員就會讓你交代清楚你為什麼需要這個許可權?
而android呢? 不給許可權,那你不要用了.
4. 軟硬體結合
什麼叫軟硬體結合? 就是軟體是為硬體定製的.硬體是為軟體服務的.
這個是apple的獨佔優勢,不光對android就是對windows也一樣. 因為android的廠商太多了,google在每次升級系統的時候都要做很多妥協,要考慮各種cpu的相容性,各種攝像頭,各種主機板,考慮的多了限制也就多了.
反觀apple,軟硬體是一體化的,而且在硬體採購上還有絕對的話語權,在軟體上也是標準的指定者.
比如apple剛推出ARM架構的M1晶片,在1年不到的時間 大部分的軟體都進行了適配,華為能做到嗎?
5. 說在後面
以上我列舉了幾個原因,但還不僅僅這些原因,比如還有虛擬機器機制等等,就不細談了.
希望國內的軟體市場能夠慢慢統一標準
希望android統一推送聯盟能夠早點落實
希望全家桶套餐越來越少
希望國內品牌能夠做大做強
希望中國人均GDP能夠超過美國