您當前的位置:首頁 > 旅遊

storage emulated這個資料夾根本不存在於安卓手機當中,為什麼任何官方對此沒有說明?

作者:由 agewuliao 發表于 旅遊時間:2022-10-29

storage emulated這個資料夾根本不存在於安卓手機當中,為什麼任何官方對此沒有說明?agewuliao2022-10-29 10:07:24

英文第三方解釋

去玩刷機老哥那看看,他們對這個問題理解得更深刻

更新2021。9。27

既然不太想看這個組織方法,那我來講講故事吧。 @Field James 具體細節應該有問題,大體上應該是對的。不想聽故事看最後。

都知道具體問題具體分析,這個問題設計到檔案組織,在android發展的各個階段給出了不同的解答。

說起來這個問題涉及到一個早些年的懸案。什麼叫“記憶體”。我覺得吧,你能提出這個問題,對組成原理和作業系統的理解應該很到位了,應該是一位數碼愛好者或者說極客。

很早很早以前android的裝置把機身自帶的叫記憶體,SD卡、TF卡插入的叫外存,把執行的主存叫運存,所以最開始手機廠家吹噓“記憶體”引得PC玩家憤怒之外,這種說法在android來看,卻是對的。

那個年代太過久遠,暫時不清楚怎麼組織檔案目錄結構的,畢竟那會兒的android只是個玩具。

再後來漸漸地,也不知是開發員認為開發能夠跨“記憶體”+“外存”的軟體過於難寫還是谷歌撥亂反正,把“記憶體”+“外村”統一起來叫做“儲存”(相當於電腦裡的硬碟),這就是第一個英文“storage”。接下來問題就來了,既然將tf卡和機身容量看成一個容量,但它們必然不是一個東西,怎麼辦呢?相信你也已經猜測到了,把各個來源的外部儲存看成一個個資料夾掛在了“storage”資料夾下面。舉個例子,你插入了一張tf卡,被手機識別為abcdef,你往這張tf卡根目錄下儲存資料,比如說一張叫做“wcnmb

guge。jpg”的圖片,按照你之前的做法,那麼它的目錄會被輸出成“storage/abcdef/wcnmb

guge。jpg”。這麼說,你就清楚這個檔案是如何組織的了,為什麼是“emulated”,單純是因為把機內的儲存空間也當成一張sd卡來操作了,所以是模擬的一張外部儲存,叫“emulated”。其實後面還跟了一個“0”,這個“0”的由來是因為谷歌曾今搞過多使用者系統,元使用者是0,其他使用者遞增。拼接成了 “storage/emulated/0”對應的就是你的機內檔案的檔案管理器的根目錄。

最後的最後,說下正題。為什麼安卓和類似HMOV之流不做說明。

先說下下游廠商,就是華為、三星、小米、OPPO、VIVO,他們在安卓的基礎上做的UI包,或者說深度定製系統,是不會並且也不應該去修改這種很基礎、底層的內容。這是谷歌主導的Android系統,所有的開發者都使用谷歌提供的魔改版本的IDEA————Android Studio在谷歌提供的SDK(執行環境)的底層下實現。廣大安卓程式設計師不會特地專門的為某個牌子、機型做最佳化。(小米曾今搞過小米加速,瞎搞了底層,讓很多程式跑不動,app公司們公司卻沒有精力專門為此最佳化,導致使用者直接把小米加速關了)。舉個很簡單(或者說誇張)的例子,在所有地方1+1=2。結果你別出心裁整了個1+1=3,是不會有人去為你糾正的。至於鴻蒙,我說真的,只有大公司才玩得起,但是大公司不屑於玩,試過都知道,鴻蒙的app開發根本不是原有app編譯一下了事(方舟編譯器還難產),幾乎都要重寫。

再說下安卓領頭羊。好傢伙。這個地址根本就不是給使用者看的,重複一遍,這個地址根本就不是給使用者看的。這個地址是給程式設計師看的,透過這個地址在開發工具Android Studio中檢視檔案儲存的情況並除錯,就像上面那個連結裡一樣,看這個有一定門檻,但是搞開發的都看得懂,畢竟吃這碗飯。我拿郵編來舉例。在谷歌眼裡這就是個610000,使用者想看的是成都市,開發人員知道610000就是成都市。你遇到的問題就是開發人員不告訴你成都市,給你說了個610000。你心態就崩潰了。但是人谷歌也不會輕易動它,加了個新的api能夠提供實際位置,那老手機怎麼辦。手機廠商會更進嗎?軟體開發商會適配嗎?安卓碎片化這麼嚴重,真的要加嗎?

我說真的,這個問題根本難度在於是否用心做使用者層面的開發。比如谷歌瀏覽器下載檔案下載下來就是storage巴拉巴拉的,但是人家有規範,下載的檔案都放在公共資料夾Download資料夾下,可以直接從檔案助手看它。有些私有的軟體下東西會下載自己的軟體包下面,檔案助手根本看不見它。我再舉個例子,騰訊的微信,我們都在吐槽微信大、卡、幹了太多不是一個社交軟體該乾的事。你看看從微信下載的提示,他就把storage/emulated/0這串文字替換掉了,讓使用者清晰明瞭。

總結一下:下游手機場,不該去搞。谷歌,這就不是給使用者看的。軟體開發商,湊合用吧,懶得改了。

所以到底哪裡出了問題,你覺得呢。