你可以查一下什麼叫做 google api level
google在開發新的API時,通常會用當時較新的版本開始開發
所以一些較新的功能只會在較新板的版本上才開始支援,
有一些舊的API,也會因為一些功能的擴充或修正,把對應的參數做改變
這時商店裡面的軟體就會有一些狀況發生
新的軟體可能一開始用的就是較新板的API,直接就限制了最低的系統版本限制
還有一些軟體是因為功能擴充,或是碰到API必須更新成更新的版本才能繼續提供更新,這時也會需要把最低版本限制抬高
也有一些方式可以新舊版本API共用,但這通常是用在API新舊版本都有,只是參數不太相同
雖然這可以解決相容性的問題,但也會衍生一些其他問題,
1. 除錯難度增加,軟體必須同時在不同版本系統上測試完全。只要有個疏失,可能舊系統上出現的就是軟體無法正常執行,直接閃退。
2. 軟體複雜度大增,越龐大的軟體可能很多地方相關聯的地方很多,必須全面考量。有一點疏失就會發生前面說的閃退問題。一個程式檔可能長期這樣設計後,會龐大很多倍。
3. 軟體本身有些會引用外部的函數庫,如果剛好外部函數庫也有這樣的版本限制,這時候就會面臨決定捨棄舊版方式研發的考量,因為那些外部函數庫很難在內部找到方法解決。這對外部的廠商而言,是這些軟體開發的公司亂用不應該使用的方式。
到了最後,到底是Google的問題,還是這些軟體開發的問題已經扯不清了。
當然也還是有方法解決功能衝突的問題,那就是把新舊版本系統支援的軟體完全分開,但這樣人力是否要多養好幾倍?
對軟體開發而言,想要活下去就要賺前,總不可能花好幾倍人力去維護同一套軟體,分別用新舊版本的研發方式同時支援。就算有辦法支援,總會碰到瓶頸。能夠支援個兩三代較新新版本系統已經夠好了。
那些七年前的手機,該淘汰就是要淘汰。
電腦軟體難道沒有這樣的問題嗎?
Office 365一堆新的函數在舊版本上面根本不支援。當你拿到一個新的EXCEL表格,你的軟體舊版的一樣不能看到完整的內容。為何微軟不同時在不同版本上面都支援新的函數庫。其實原因就是舊版本上賺不到錢了,當然沒必要花成本維護。
安卓系統也一樣阿,商店裡的舊軟體,如果花的成本過多,舊系統使用者又偏少,為何要浪費錢去維護舊版本軟體呢?
關閉廣告