androidso文件是什麼文件
『壹』 so格式文件是什麼文件
這個是linux系統下的文件,你的手機應該是安卓平台,安卓平台是從linux內核的基礎上發展過來的,所以會有後綴為.so(sharedobject)的文件,當然這樣解釋不夠精確、詳細,肯定會被吐槽,具體如下:
准確地、詳細地來說,
手機裡面有硬體,也就是弱電學中的電路,電路組成了CPU和協助CPU的外圍電路,
CPU上面移植了Linux內核,好,接下來就開始百花齊放了:
1、有的手機跑的是安卓的系統
2、有的時候跑的是linux系統
他們都基於Linux內核,對於Linux內核有不同的擴充,有的擴充成A系統,叫安卓,有的擴充成B系統,叫Linux,但是手機上,安卓相對linux,更加流行。
而Linux內核,並不是唯一的,有正統的,也有非正統的(不太常見而已),而Linux內核對應的CPU結構,也有很多種,因此不同的智能手機可能有不同的CPU、不同的Linux內核和不同的安卓系統(這個系統里包含了Linux內核)
當然還有跑windows的,扯遠了,windows的手機,裡面應該可以找dll文件,這個對應安卓系統的.so文件。
還沒講so文件是幹嘛的~
那為什麼起個名字叫shareobject?
這個so文件,有時候是直接被調用的,有時候是會參與到編譯中的,也就是說,一個.so文件可能會被多個應用程序用到,因此取名叫shareobject(share:大家一起來分享使用的意思)。
這個就和windows裡面一樣,如果有時候網路下載了幾個調用dll文件的軟體,恰好電腦裡面缺這幾個dll,那麼此時,這幾個軟體將不能運行,也就是說,這幾個dll會被這幾個軟體在運行時都用到,有share的味道,所以在windows裡面叫鏈接庫,在Linux內核的系統上(可以是ubuntu啊、redhat啊,android等等)叫.so(sharedobject),作用類似,windows中起名字更嚴肅點(鏈接文件,編譯帶上它,像一條鏈條一樣),linux對它的起名更形象些(大家分享一起來用),意思差不多。當然區別肯定會有,這里只是回答得讓讀者大致理解,具體細節上的差別請另外網路。
.so文件怎麼運作的?(下面兩個步驟摘自網路)
###########################################
①編譯階段。鏈接編輯器(linkeditor)拿它和其他Relocatableobjectfile以及其他sharedobjectfile作為輸入,經鏈接處理後,生存另外的sharedobjectfile或者executablefile。
②運行階段。動態鏈接器(dynamiclinker)拿它和一個executablefile以及另外一些sharedobjectfile來一起處理,在Linux系統裡面創建一個進程映像。
這段話看起來比較抽象,如果想迅速理解它,建議讀者網路找一個gcc/g++運行helloworld的例子就理解了.
###########################################
所以大家愛吐槽啊,這個C牌子的智能手機,怎麼刷不了那個D牌手機官方系統包啊?出來各種問題,有些問題是可以解決的,有些是解決不了的,甚至會有燒機的情況。
這類問題和底層的CPU種類、Linux內核種類及版本、so文件版本等都是相關的。
所以有些牌子的智能機有通吃現象,可以刷其他牌子的各種官方系統,有的智能機則不行。
總結:
CPU和PCB外圍電路=>Linux內核+應用組件組成的安卓系統(用戶層)=>對.so文件和其他文件一起編譯=>對.so文件和其他文件一起運行=>創立進程、線程(也就是手機上的各種app和系統自帶功能)=>然後我們就可以使用手機上的各種功能了。
最後,以上回答只是為了讓讀者有初步的、粗略的、大致的理解。任何專業名詞和術語只要打了比方,就肯定是不絕對精確的。更詳細的細節,請參考專業文獻。
手機裡面的so文件,如果是應用軟體的,刪除後,應用軟體請重裝,如果是系統自帶的,請盡量不要刪除。
拋磚引玉,答得不好,請別罵,謝謝!
-----------------------------------
補充:
評論中提到了FreeBSD,我來說下怎麼回事:
操作系統=userland(用戶層)+Linux內核
Android使用的是FreeBSD內核(其實是用戶層,當然你也可以說他是內核)+Linux內核
Ubuntu使用的是GNU(用戶層)+Linux內核
用戶層啥意思:
我花了錢你不至於還讓我看底層電路底層的010101吧?買來當然是為了王者農葯對不?
通俗地講:就是屏蔽底層細節,讓客戶買來直接用.
計算機裡面為啥會有0和1?
本質是電路中的高電平和低電平,舉例:
0.5V->bit 1
0.1V->bit 0
才疏學淺,拋磚引玉,答得不好,請別罵,謝謝!
-----------------------------------
『貳』 安卓11中*.so.toc是什麼文件
SO文件格式即ELF文件格式,它是Linux下可執行文件,共享庫文件和目標文件的統一格式。TOC這個詞其實是從出版界借用過來的,指的就是每一本書正文前面的「目錄」,它的作用地球人都知道:如果想快速找到書中某一內容,可以先查TOC,然後按照TOC指明的頁碼直接翻即可。
由於Android操作系統的底層基於Linux系統,所以SO文件可以運行在Android平台上。Android系統也同樣開放了C/C++介面供開發者開發Native程序。由於基於虛擬機的編程語言java更容易被人反編譯,因此越來越多的應用將其中的核心代碼以C/C++為編程語言,並且以SO文件的形式供上層JAVA代碼調用,以保證安全性。
『叄』 關於android軟體中的so文件!
*.so文件是linux平台下的動態鏈接庫,反編譯動態鏈接庫參見windows下*.dll文件的反編譯,類似的
Linux:是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和資料庫的操作系統。
動態鏈接庫:英文為DLL,是Dynamic Link Library 的縮寫形式,DLL是一個包含可由多個程序同時使用的代碼和數據的庫,DLL不是可執行文件。動態鏈接提供了一種方法,使進程可以調用不屬於其可執行代碼的函數。函數的可執行代碼位於一個 DLL 中,該 DLL 包含一個或多個已被編譯、鏈接並與使用它們的進程分開存儲的函數。DLL 還有助於共享數據和資源。多個應用程序可同時訪問內存中單個DLL 副本的內容。DLL 是一個包含可由多個程序同時使用的代碼和數據的庫。
DLL文件又稱「應用程序拓展」,是軟體文件類型。在Windows中,許多應用程序並不是一個完整的可執行文件,它們被分割成一些相對獨立的動態鏈接庫,即DLL文件,放置於系統中。當我們執行某一個程序時,相應的DLL文件就會被調用。一個應用程序可使用多個DLL文件,一個DLL文件也可能被不同的應用程序使用,這樣的DLL文件被稱為共享DLL文件。[1]
『肆』 so格式文件是什麼文件
SO文件格式即ELF文件格式,它是Linux下可執行文件,共享庫文件和目標文件的統一格式。
根據看待ELF文件的不同方式,ELF文件可以分為鏈接視圖和裝載視圖。鏈接視圖是鏈接器從鏈接的角度看待靜態的ELF文件。
從鏈接視圖看ELF文件,ELF文件由多個section組成,不同的section擁有不同的名稱,許可權。而裝載視圖是操作系統從載入ELF文件到內存的角度看待動態的ELF文件。
從裝載視圖看ELF文件,ELF文件由多個segment,每一個segment都擁有不同的許可權,名稱。實際上,一個segment是對多個具有相同許可權的section的集合。
(4)androidso文件是什麼文件擴展閱讀:
由於Android操作系統的底層基於Linux系統,所以SO文件可以運行在Android平台上。Android系統也同樣開放了C/C++介面供開發者開發Native程序。
由於基於虛擬機的編程語言JAVA更容易被人反編譯,因此越來越多的應用將其中的核心代碼以C/C++為編程語言,並且以SO文件的形式供上層JAVA代碼調用,以保證安全性。
而ELF頭表記錄了ELF文件的基本信息,包括魔數,目標文件類型(可執行文件,共享庫文件或者目標文件),文件的目標體系結構,程序入口地址(共享庫文件為此值為0),然後是section表大小和數目,程序頭表的大小和數目,分別對應的是鏈接視圖和裝載視圖。
『伍』 Android SO什麼意思
您好,您可能指的是Android OS。
Android OS其實就是安卓操作系統的名字。Android是一種基於Linux的自由及開放源代碼的操作系統,主要使用於移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。尚未有統一中文名稱,中國大陸地區較多人使用「安卓」或「安致」。Android操作系統最初由Andy Rubin開發,主要支持手機。2005年8月由Google收購注資。2007年11月,Google與84家硬體製造商、軟體開發商及電信營運商組建開放手機聯盟共同研發改良Android系統。隨後Google以Apache開源許可證的授權方式,發布了Android的源代碼。第一部Android智能手機發布於2008年10月。Android逐漸擴展到平板電腦及其他領域上,如電視、數碼相機、游戲機等。2011年第一季度,Android在全球的市場份額首次超過塞班系統,躍居全球第一。 2013年的第四季度,Android平台手機的全球市場份額已經達到78.1%。2013年09月24日谷歌開發的操作系統Android在迎來了5歲生日,全世界採用這款系統的設備數量已經達到10億台。
如果您確定您問的是Android SO的話,下面給出解釋。
Android SO是Android編程中用到的so類型的文件,是一個c++的函數庫,在android的JNI中,是先將相應的C語言打包成so庫導入到lib文件夾中調用的。
參考:網路。
『陸』 android rom /system/lib/ 中好多的.so庫,每個.so具體是干什麼用
.so文件是Linux so文件,是一種動態鏈接庫文件,即一種可執行文件,它允許程序共享執行特殊任務所必需的代碼和其他資源,相當於Windows系統中的.dll,如果刪除某.so文件,則會導致手機某程序無法運行,.so文件一一對應一個應用程序,電腦里也是這樣,如果刪除某.dll文件,所對應的應用程序也將無法運行
『柒』 安卓手機如何打開.so文件
- 01
安卓手機打開.so文件需要下載Native Libs Monitor這個app,這個應用可以幫助我們理解手機上安裝的APK用到了哪些.so文件,以及.so文件來源於哪些函數庫或者框架。我們也可以自己對app反編譯來獲取這些信息。
so文件是手機的一些運行庫文件,在系統lib的文件夾下,置換移植其他系統的程序也需要修改更換相關so文件;沒有它系統軟體不能運行,哪部分損壞就影響相對功能,電話接打,通訊錄,相機等等都是要依賴so文件使用的。so文件需要資深安卓大師更改,一般都是現成的搬運移植,打開它沒有什麼意義。安卓手機想要查看.so文件就需要下載Native Libs Monitor。
so是shared object的縮寫,見名思義就是共享的對象,機器可以直接運行的二進制代碼。大到操作系統,小到一個專用軟體,都離不開so。so主要存在於Unix和Linux系統中。so是與平台相關的二進制機器碼,Android應用支持的cpu架構取決於APK中位於lib或jniLib目錄中的.so文件。
由於Android基於Linux Kernl的,也繼承了Linux中所有so相關的設計。
除了系統方面的原因,Android開發者還要知道以下幾點:
so機制讓開發者最大化利用已有的C和C++代碼,達到重用的效果,利用軟體世界積累了幾十年的優秀代碼。
so是二進制,沒有解釋編譯的開消,用so實現的功能比純java實現的功能要快。
so內存分配不受Dalivik/ART的單個應用限制,減少OOM。
『捌』 android so文件是什麼
so文件是unix的動態連接庫,是二進制文件,作用相當於windows下的.dll文件。
補充:
在Android中調用動態庫文件(*.so)都是通過jni的方式。
Android中載入so文件的提供的API:
void System.load(String pathName);
說明:pathName:文件名+文件路徑;
『玖』 android so文件有什麼用
android中用到的so文件是一個c++的函數庫,在android的JNI中,是先將相應的C語言打包成so庫導入到lib文件夾中調用的。