1、手機cpu架構。
講到armeabi就不得不講手機cpu了。電腦有電腦的cpu,手機也有手機的cpu。cpu有廠商屬性,也有架構屬性,架構的話自己簡單地理解就是它的內部模塊的組成結構。
其中arm架構的手機cpu占市場的大部分,這也是今天的重點。但arm架構的發展歷史悠久,也有很多不同的版本。
2、前面講了cpu架構,為下面的講述做了一個技術背景的鋪墊。
我們在開發Android項目的時候,比如使用高德地圖導航或者3d地圖的時候就會使用到.so庫文件,它們保存在armeabi和armeabi-v7a或arm64-v8a等目錄下,這有什么作用呢?
其實這是給app運行時讀取的幾個目錄,但會根據手機cpu架構類型只從其中一個文件夾讀取,有點類似values和values-21的作用,但是與它們又有點不同。
后者的規則是:如果手機是21以上的會首先在values-21文件里面查找樣式等,如果查找不到才去values文件找;如果手機是21以下的就直接在values文件下找。
前者的規則是:根據cpu架構類型去app的libs里面匹配到對應的目錄比如armeabi或者armeabi-v7a,然后就加載這個目錄下的.so庫;
如果在匹配到的目錄下沒有對應的庫也不會去別的目錄下加載;
但是armeabi目錄可以匹配所有的arm架構的cpu,意思是指所有的arm架構的cpu的安卓手機如果沒有找到最優的對應的目錄,則會去匹配armeabi目錄。
我的推測是arm架構的cpu是向下兼容的,即保留之前版本的功能,而armeabi目錄是匹配低版本armv5的,所以高版本的arm架構的cpu可以讀取armeabi目錄下的.so庫文件;查過資料會發現低版本的arm架構cpu支持軟浮點運算而高版本的支持硬件浮點運算,這是他們的區別之一。
(轉)https://blog.csdn.net/jiayouwangqiuwangzi/article/details/64437485