androidrom版本
A. Android獲取系統(ROM)類別及版本號
很多時候我們需要知道用戶當前使用的是什麼系統,甚至是系統的版本號(比如MIUI V7、V8)來進一步處理業務邏輯,比如打開系統許可權設置界面。
感謝國內各大Android手機/系統生產商,讓我們這些Android開發者每天都樂(傷)此(心)不(欲)疲(絕)的解決這些差異化問題。
通過讀取 android.os.Build.MANUFACTURER 常量來獲取設備的製造商從而確定設備所使用的系統。
常用 MANUFACTURER 常量對應關系
使用示例:
總結 :此方法通常有效,因為我們通常認為小米的手機使用MIUI系統,華為的手機使用EMUI系統等這種關聯關系,那麼就可能存在以下情況:
當然如果還想獲取系統的版本號,可能這個方法就有點無力回天了。
因此我們可以通過在文件內容中查找一些特徵標識從而確定系統類別。
在對 build.prop 進一步了解的過程中,找到了別人對這一部分的具體使用和講解,這里就不再過多闡述。
別人的使用講解
別人封裝好的工具類
總結 :此方法通常更為有效(取決於特徵標識的有效性),但比方法1略復雜一些。但是此方法可能存在一個致命的問題就是可能在某些設備上你無法讀取 build.prop 文件,據網上資料顯示(華為mate10 及後續的一些新設備無法讀取此文件)。
對於以上兩種方法,方式不同,也都存在各自的短板,因此在實際生產環境中最好是根據自己的需求而定,甚至是結合兩者方法的特點來實現需求,到目前為止並沒有找到其它更為行之有效能夠適應所有情況的獲取系統類型和版本的方法,如果有,謝天謝地請您告訴我,不勝感激。
附錄:
小米開發文檔- 如何識別小米設備/MIUI系統 ,關於開發文檔中提到的讀取屬性,應該是使用 SystemUtil.java 實現
更多參考資料: https://blog.csdn.net/xx326664162/article/details/52438706
B. Android Rom是什麼
其實按照比較科學的方法來說,Android的「ROM」這種叫法本身就是錯誤的,只不過是歷史遺留的稱呼罷了。看看定義吧,所謂的「ROM是只讀內存(Read-Only Memory)的簡稱。ROM所存數據,一般是裝入整機前事先寫好的,整機工作過程中只能讀出,而不像隨機存儲器那樣能快速地、方便地加以改寫。ROM所存數據穩定 ,斷電後所存數據也不會改變;其結構較簡單,讀出較方便,因而常用於存儲各種固定程序和數據」。在Android之前的手機,包括智能機(Nokia、WM等)和非智能機(索愛,Moto P2K平台,MTK等)都有一個單獨的ROM晶元保存系統文件,所謂的「刷ROM」(或是刷包)就是將官方或是第三方的ROM鏡像文件通過工具燒寫到ROM中的過程,而所謂的「做ROM」就是將個人定製的系統文件做成可燒寫的ROM鏡像的過程。
也有很多人把它叫做系統升級固件。。。。