安卓底層數據在哪個文件夾
❶ 安卓內部外部文件存儲
總述
覺得十分有必要搞清楚內存,內部存儲和外部存儲的區別,還有我們在開發中真正將數據存在了手機的哪兒。
先提一個問題:手機設置的應用管理中,每個App下都有清除數據和清除緩存,清除的分別是哪裡的數據?
一 內存,內部存儲和外部存儲
整個存儲空間分為內部存儲和外部存儲兩部分,內部存儲中又包含RAM和ROM等部分。
內部存儲,即InternalStorage,也常說內置存儲卡,這是手機內置的存儲空間,出廠時就被確定,是手機的一個硬體指標。類比電腦的內存。
外部存儲,即ExternalStorage,也常說外置存儲卡,手機出廠時並不存在,是由用戶自由擴展的存儲空間,常見的就是SD卡。類比電腦的外接移動硬碟。
RAM,即常說的運行時內存,是手機運行時存儲數據和指令的地方,注意是運行時內存。類比電腦的內存條。
ROM,用來存放一些系統文件,應用配置和其他數據的地方,是內部存儲中主要存儲區域。類比於Windows電腦的C盤。
上圖中運行內存即RAM,共2G,機身存儲即內部存儲,共8G。
打開手機的文件管理,再點擊手機一項,可以看到下圖:
上圖中箭頭所指的地方,可以進行內部存儲與外部存儲的切換,當前頁為內部存儲下的展示,這只是Android系統存儲數據的一部分而已,大部分數據都對用戶隱藏。至於紅框部分下面繼續講。
二 詳說存儲
一般來說,App軟體大都安裝在內部存儲的ROM區,當然現在也有辦法安裝在SD卡上,但這需要App自身支持及SD卡分區等一系列操作,下面討論的App是安裝在ROM區的。
以Genymotion模擬器設備為例來分析,型號是三星GalaxyS5。直接使用AndroidStudio的DDMS,打開File Explorer,我們可以看到下圖:
這張圖是手機根目錄下的完整目錄結構圖,內外部存儲均包含在內。不過有些文件內容需要root許可權才能看到。
上面展示的內部存儲圖就是其中一部分子目錄。
選其中幾個重要的文件夾介紹。
2.1 /data包:主要存儲手機應用的相關數據。
如上圖的二級目錄中,/data/app文件夾下存放三方應用的apk文件;/data/data文件夾下存放系統應用和三方應用的包私有數據,每個應用都有獨屬於自己的包。
選一個三方應用包——com.X.main,來分析三級目錄——/data/data/com.X.main下都有什麼數據:
由包名不難看出:cache包存放緩存數據,databases包存放使用SQLite存儲的數據,files包存放普通數據(log數據,json型數據等),shared_prefs包存放使用SharedPreference存放的數據。這些包都是由系統創建的。
2.2 /mnt/sdcard/storage包:這三個包,與手機的部分內置存儲卡數據和外置存儲卡數據有關。
上面的完整目錄結構圖中有其子目錄信息展示。
以內置存儲卡來說,通常用sdcard0表示:Android4.1上,首先掛載到目錄/storage/sdcard0上面,/sdcard和/mnt/sdcard都只是指向/storage/sdcard0的軟鏈接;Android4.2上,首先掛載到目錄/storage/emulated/0(0就表示內置存儲)上面,為兼容之前版本,又掛載到/storage/emulated/legency上面,/storage/sdcard0、/sdcard和/mnt/sdcard都只是指向/storage/emulated/legency的軟鏈接。(掛載相當於真正位置,軟鏈接相當於指針)。
/mnt/sdcard是Android2.2及之上版本使用,/sdcard是Android2.1及之下版本使用。
在手機的文件管理中看到的內置存儲卡文件,如上面文件管理頁面的圖,就是/storage/emulated /0包的子目錄,Android包的路徑就是:/storage/emulated/0/Android。
2.3 其他
/dev包:linux系統的常規文件夾。
/system包:系統配置的文件夾,比如Android系統框架(framework)、底層類庫(lib)、字體(font)等。
三 存儲相關操作
在Android開發中,我們常打交道的存儲空間有三部分。
一是根目錄下路徑為 /data/data/包名/XX 的文件。開發中SQLite數據、SharedPreference數據均保存在這里,雖說我們可以讀寫操作,但這部分空間由系統維護。
二是在外置存儲卡上做存儲。暫時不講。
三是在內置存儲卡中做存儲。在/storage/emulated/0/Android/data包下或與/storage/emulated/0/Android包同級目錄上,建立App包存儲數據,這部分空間均由開發者維護。區別在於/storage/emulated/0/Android/data包下的數據為私有目錄數據,會隨App卸載被清除,與/storage/emulated/0/Android包同級的數據(如系統目錄DCIM包,DOWNLOWN包和bluetooth包,還有下圖中的包)屬於公有目錄數據,不會隨App卸載被清除,這就會造成數據的卸載殘留。
Google官方建議開發者將App的數據存儲在私有目錄即/storage/emulated/0/Android/data包下,這樣卸載App時數據會隨之被系統清除,不會造成數據殘留。
對存儲空間進行操作,首先要獲取存儲空間的存儲路徑,對此Android提供了Environment類和Context類來獲取路徑。
就上面對存儲空間的劃分,第一部分空間對用戶不可見,是在具體包名下的,和特定的App有關,所以對這些數據的訪問需調用Context類中的方法;第三部分空間對用戶可見,私有目錄數據仍與特定App有關,需調用Context類中的方法,而公有目錄數據與App無關,應調用Environment類中的方法。
總結如下圖:
寫了個小程序對Environment類和Context類相關方法測試,如下圖:(冒號前為方法名,冒號後為輸出結果)
四 回答最初提出的問題
手機設置的應用管理中,每個App下都有清除數據和清除緩存,清除的分別是哪裡的數據?
還是用上面的Genymotion模擬器設備來分析,主要測試三部分數據:
內部數據:/data/data/包名/XXX
外部私有數據:/storage/emulated/0/Android/data/包名/XXX
外部公有數據:/storage/emulated/0/包名/XXX
測試結果圖就不上了,直接上結論:
清除緩存:將外部私有數據下的cache包(/storage/emulated/0/Android/data/包名/cache)清除,將內部數據下的cache包下的內容(/data/data/包名/cache/XXX)清除 。
清楚數據:將外部私有數據包(/storage/emulated/0/Android/data/包名)清除,將內部數據下的所有內容(/data/data/包名/XXX)清除;
而兩種操作對外部公有數據均無影響。
❷ Android緋葷粺鐨勬枃浠墮兘瀛樺偍鍦ㄥ摢閲
Android緋葷粺鐨勫紑鏀撅紝浣垮叾鐢ㄦ埛鍙浠ヨ嚜宸辨煡鐪嬬郴緇熷拰SD鍗′腑鐨勬枃浠跺す銆傚氨緋葷粺鍜孲D鍗′腑甯歌佺殑鐩褰曚唬琛ㄤ粈涔堟剰鎬濓紝涓嬮潰鏄涓涓杈冨疄鐢ㄧ殑鎬葷粨:
涓銆丼D鍗′腑
1. /mnt/sdcard鎴栬/sdcard榪欐槸Android鎵嬫満涓璖D鍗$殑鏂囦歡澶硅礬寰勶紝鍏朵腑/mnt/sdcard/鏄痑ndroid 2.2鎴栨洿楂樼増鏈鎵浣跨敤鐨勶紝鑰/sdcard鏄痑ndroid 2.1鎴栨棭鏈熺増鏈鐨勫瓨鍌ㄥ崱浣嶇疆銆
2. /mnt/sdcard/dcim鎴/sdcard/dcim榪欎釜DCIM鏂囦歡澶規槸騫蹭粈涔堢敤鐨勶紝榪欓噷鎻愮ず澶у訛紝涓鑸鏁扮爜鐩告満閮芥湁DCIM鏂囦歡澶癸紝鍏朵腑榪涘叆鍚嶤amera涓烘墜鏈烘憚鍍忓ご鎷嶆憚鐨勭収鐗囨垨瑙嗛戝瓨鏀句綅緗銆傚悓鏃跺湪DCIM鏂囦歡澶逛腑榪樻湁.thumbnails榪欎釜鐩褰曪紝鍦↙inux涓寮澶翠負鈥.鈥濈殑鏂囦歡澶瑰氨鏄寮澶翠負鈥滅偣鈥濈殑鏂囦歡澶規槸闅愯棌鐩褰曪紝榪欓噷闈㈣板綍鐫鎵嬫満SD鍗″浘鐗囩殑緙╃暐鍥俱
3./mnt/sdcard/LOST.DIR鎴/sdcard/LOST.DIR榪欎釜LOST.DIR涓篠D鍗℃壂鎻忔椂鍙戠幇鐨勪涪澶辨枃浠訛紝閲岄潰鐨勬枃浠剁敤澶勪笉澶э紝鍙浠ヤ笉鐢ㄧ悊浼氥
浜屻佹墜鏈烘垨騫蟲澘鐢佃剳涓
1. /system/app 榪欓噷鏄痑ndroid鎵嬫満rom涓鐨勭郴緇熷簲鐢ㄥ瓨鏀懼湴錛屽傛灉鏈塕oot鏉冮檺鍙浠ュ皢鎵嬫満rom涓鑷甯︾殑搴旂敤鍒犻櫎鎺夛紝榪欓噷闈涓鑸鍖呭惈涓涓猘pk鏂囦歡鍜宱dex鏂囦歡錛屽ぇ瀹舵敞鎰忔枃浠跺悕涓涓瀵瑰簲銆
2. /data/data 榪欓噷鏄姣忎釜瀹夎呰繃搴旂敤鐨勭敤鎴鋒枃浠跺瓨鍌ㄤ綅緗錛屼竴鑸涓鴻劇疆鏂囦歡銆佹暟鎹搴撴垨涓存椂緙撳瓨鏂囦歡錛岃繘鍏ュ悗浠ユ瘡涓杞浠剁殑package name鍖呭悕鏉ュ懡鍚嶃
3. /dev 榪欓噷鏄疞inux緋葷粺甯歌勬枃浠跺す錛岄噷闈㈢殑鏂囦歡寰堝氶兘鏄璁懼囨ā鎷熺殑鏂囦歡緋葷粺錛屼竴鑸鐢ㄦ埛鏃犻渶鐞嗕細銆
4. /system/fonts 榪欓噷闈淇濆瓨鐫緋葷粺鐨勫瓧浣擄紝濡傛灉浣犳湁root鏉冮檺錛屽彲浠ュ線閲屾坊鍔犺嚜宸卞枩嬈㈢殑瀛椾綋錛屾瘮濡傞泤榛戙
5. /system/framework 榪欓噷鏄痑ndroid緋葷粺鐨勬嗘灦錛岄噷闈淇濆瓨鐫緋葷粺鏍稿績紼嬪簭鎴杍ava綾誨簱錛屽嶮鍒嗛噸瑕侀噷闈㈢殑浠諱綍鏂囦歡鍑犱箮閮戒笉瑕佸仛鍒犻櫎鎿嶄綔銆
6. /media/audio 榪欓噷闈淇濆瓨鐫瀹夊崜緋葷粺榛樿ょ殑閾冨0錛宎larms鏄闂歸搩鎻愰啋鐨勶紝鏄鐭淇℃垨鎻愮ず闊籌紝ringtones鏄鏉ョ數閾冨0錛岃寀i鏄涓浜涚晫闈㈤煶鏁堬紝姣斿傞敭鐩樻暡鍑誨0銆
7./system/lib 閲岄潰淇濆瓨鐨勬槸緋葷粺搴曞眰綾誨簱錛岄噷闈㈠緢澶氶兘鏄妗嗘灦灞傜殑瀹炵幇鏂囦歡錛屼竴鑸浠.so鍚庣紑緇撳熬綾諱技windows涓嬬殑dll鏂囦歡銆
❸ 濡備綍鐪嬫噦瀹夊崜鎵嬫満緋葷粺鏂囦歡閮戒唬琛ㄤ粈涔堬紵
鎵撳紑Android鏂囦歡綆$悊鍣錛屼細鍙戠幇閲岄潰鏁板嶮涓鑻辨枃鍚嶇О鍛藉悕鐨勬枃浠跺す緗楀垪鍏朵腑錛屽緢澶氬姛鑳芥垜浠鍙浠ヤ粠鍏跺悕瀛椾笂鐣ユ湁鎵鐭ワ紝鍐呴儴澶ф壒閲忕殑鏂囦歡鍗磋╂垜浠鏈変簺涓澶撮浘姘淬傝繖浜涙枃浠舵槸浠涔?鏈変粈涔堢敤?鎴戜滑鑳戒笉鑳藉垹?榪欎簺閮芥槸鎴戜滑鑴戜腑鍏呮弧鐤戦棶鐨勩傜幇鍦ㄥ皢灝咥ndroid鎵嬫満鍐呴儴鏂囦歡澶圭殑鏋舵瀯鍜屽悇鏂囦歡鐨勫姛鑳芥弿榪頒粙緇嶇粰澶у訛紝璁╁ぇ瀹惰嚜宸辨墜鏈虹殑鍐呴儴璧勬簮鏈変釜姣旇緝閫忓交鐨勭悊瑙o紝鍚屾椂涔熼伩鍏嶄簡鐢ㄦ埛璇鍒犻犳垚鐨勬暟鎹涓㈠け鍜岀郴緇熷穿婧冦
銆愭枃浠跺す鍔熻兘綆浠嬨 ystem\etc 浠庢枃浠跺す鍚嶇О鏉ョ湅淇濆瓨鐨勯兘鏄緋葷粺鐨勯厤緗鏂囦歡錛屾瘮濡侫PN鎺ュ叆鐐硅劇疆絳夋牳蹇冮厤緗銆 \system\fonts 瀛椾綋鏂囦歡澶癸紝闄や簡鏍囧噯瀛椾綋鍜岀矖浣撱佹枩浣撳栧彲浠ョ湅鍒版枃浠朵綋縐鏈澶х殑鍙鑳芥槸涓鏂囧瓧搴擄紝鎴栦竴浜泆nicode瀛楀簱錛屼粠T-MobileG1涓婂彲浠ユ竻妤氱殑鐪嬪埌鏄劇ず綆浣撲腑鏂囨e父錛屽叾涓璂roidSansFallback.ttf鏂囦歡澶у皬銆 \system\framework framework涓昏佹槸涓浜涙牳蹇冪殑鏂囦歡錛屼粠鍚庣紑鍚嶄負jar鍙浠ョ湅鍑烘槸鏄緋葷粺騫沖彴妗嗘灦銆 \system\lib lib鐩褰曚腑瀛樻斁鐨勪富瑕佹槸緋葷粺搴曞眰搴擄紝涓浜泂o鏂囦歡錛屽傚鉤鍙拌繍琛屾椂搴撱 \system\media \system\media\audio 閾冨0闊充箰鏂囦歡澶癸紝闄や簡甯歌勭殑閾冨0澶栬繕鏈変竴浜涚郴緇熸彁紺轟簨浠墮煶銆 \system\sounds 榛樿ょ殑闊充箰嫻嬭瘯鏂囦歡錛屼粎鏈変竴涓猼est.mid鏂囦歡錛岀敤浜庢挱鏀炬祴璇曠殑鏂囦歡銆 \system\usr 鐢ㄦ埛鏂囦歡澶癸紝鍖呭惈鍏變韓銆侀敭鐩樺竷灞銆佹椂闂村尯鍩熸枃浠剁瓑銆 \system\app 榪欎釜閲岄潰涓昏佸瓨鏀劇殑鏄甯歌勪笅杞界殑搴旂敤紼嬪簭錛屽彲浠ョ湅鍒伴兘鏄浠APK鏍煎紡緇撳熬鐨勬枃浠躲傚湪榪欎釜鏂囦歡澶逛笅鐨勭▼搴忎負緋葷粺榛樿ょ殑緇勪歡錛岃嚜宸卞畨瑁呯殑杞浠跺皢涓嶄細鍑虹幇鍦ㄨ繖閲岋紝鑰屾槸\data\鏂囦歡澶逛腑銆
緋葷粺榛樿ょ殑緇勪歡 \system\app\Calculator.apk璁$畻鍣 \system\app\Calculator.odex \system\app\Calendar.apk鏃ュ巻 \system\app\Calendar.odex \system\app\CalendarProvider.apk鏃ュ巻鎻愪緵 \system\app\CalendarProvider.odex \system\app\Camera.apk鐓х浉鏈 \system\app\Camera.odex \system\app\com.amazon.mp3.apk浜氶┈閫婇煶涔 \system\app\Contacts.apk鑱旂郴浜 \system\app\Contacts.odex \system\app\DownloadProvider.apk涓嬭澆鎻愪緵 \system\app\DownloadProvider.odex \system\app\DrmProvider.apkDRM鏁板瓧鐗堟潈鎻愪緵 \system\app\DrmProvider.odex \system\app\Email.apk鐢靛瓙閭浠跺㈡埛絝 \system\app\Email.odex \system\app\FieldTest.apk嫻嬭瘯紼嬪簭 \system\app\FieldTest.odex \system\app\GDataFeedsProvider.apkGoogleData鎻愪緵 \system\app\GDataFeedsProvider.odex \system\app\Gmail.apkGmail鐢靛瓙閭浠 \system\app\Gmail.odex \system\app\GmailProvider.apkGmail鎻愪緵 \system\app\GmailProvider.odex \system\app\GoogleApps.apk璋鋒瓕紼嬪簭鍖 \system\app\GoogleApps.odex \system\app\GoogleSearch.apk鎼滅儲宸ュ叿 \system\app\GoogleSearch.odex \system\app\gtalkservice.apkGTalk鏈嶅姟
閾冨0闊充箰鏂囦歡澶癸紝闄や簡甯歌勭殑閾冨0澶栬繕鏈変竴浜涚郴緇熸彁紺轟簨浠墮煶 \system\media\audio\alarms闂歸搩闊 \system\media\audio\notifications鎻愮ず闊 \system\media\audio\ringtones閾冨0 \system\media\audio\ui鐣岄潰鎿嶄綔浜嬩歡闊 \system\media\audio\alarms\Alarm_Beep_01.ogg \system\media\audio\alarms\Alarm_Beep_02.ogg \system\media\audio\alarms\Alarm_Beep_03.ogg \system\media\audio\alarms\Alarm_Buzzer.ogg \system\media\audio\alarms\Alarm_Classic.ogg \system\media\audio\alarms\Alarm_Rooster_02.ogg \system\media\audio\notifications\Beat_Box_Android.ogg \system\media\audio\notifications\CaffeineSnake.ogg \system\media\audio\notifications\DearDeer.ogg \system\media\audio\notifications\DontPanic.ogg \system\media\audio\notifications\F1_MissedCall.ogg \system\media\audio\notifications\F1_New_MMS.ogg \system\media\audio\notifications\F1_New_SMS.ogg \system\media\audio\notifications\Heaven.ogg \system\media\audio\notifications\Highwire.ogg \system\media\audio\notifications\KzurbSonar.ogg \system\media\audio\notifications\OnTheHunt.ogg \system\media\audio\notifications\TaDa.ogg
鐢ㄦ埛鏂囦歡澶癸紝鍖呭惈鍏變韓銆侀敭鐩樺竷灞銆佹椂闂村尯鍩熸枃浠剁瓑銆 \system\usr\keychars\qwerty.kcm.bin \system\usr\keychars\qwerty2.kcm.bin \system\usr\keychars\trout-keypad-qwertz.kcm.bin \system\usr\keychars\trout-keypad-v2.kcm.bin \system\usr\keychars\trout-keypad-v3.kcm.bin \system\usr\keychars\trout-keypad.kcm.bin \system\usr\keylayout\h2w_headset.kl \system\usr\keylayout\qwerty.kl \system\usr\keylayout\trout-keypad-qwertz.kl \system\usr\keylayout\trout-keypad-v2.kl \system\usr\keylayout\trout-keypad-v3.kl \system\usr\keylayout\trout-keypad.kl \system\usr\share\bsk \system\usr\share\zoneinfo \system\usr\share\bsk\V_FD_speed_101.bsk \system\usr\share\bsk\V_FD_std_101.bsk \system\usr\share\zoneinfo\zoneinfo.dat \system\usr\share\zoneinfo\zoneinfo.idx \system\usr\srec\config \system\usr\srec\config\en.us \system\usr\srec\config\en.us\baseline.par \system\usr\srec\config\en.us\baseline11k.par \system\usr\srec\config\en.us\baseline8k.par \system\usr\srec\config\en.us\dictionary \system\usr\srec\config\en.us\g2p \system\usr\srec\config\en.us\grammars \system\usr\srec\config\en.us\models \system\usr\srec\config\en.us\dictionary\basic.ok \system\usr\srec\config\en.us\dictionary\cmu6plus.ok.zip \system\usr\srec\config\en.us\dictionary\enroll.ok \system\usr\srec\config\en.us\g2p\en-US-ttp.data \system\usr\srec\config\en.us\grammars\VoiceDialer.g2g \system\usr\srec\config\en.us\models\generic.swiarb \system\usr\srec\config\en.us\models\generic11.lda \system\usr\srec\config\en.us\models\generic11_f.swimdl \system\usr\srec\config\en.us\models\generic11_m.swimdl \system\usr\srec\config\en.us\models\generic8.lda \system\usr\srec\config\en.us\models\generic8_f.swimdl \system\usr\srec\config\en.us\models\generic8_m.sw 浜氶┈閫婅喘鐗〢PP
❹ 怎樣能看到安卓系統手機的c盤文件及文件夾
1、首先找到手機桌面的RE文件管理器,如下圖所示。
❺ :android系統的手機目錄各個文件夾代表什麼例如acct app—cache config etc sbi...
android是linux內核的,因此與linux系統是相互對應的,有興趣研究系統內核可以交流下。
❻ android系統的手機目錄各個文件夾代表什麼例如acct
1、acct文件夾:根目錄/acct/ ,系統回收站,誤刪除的系統文件恢復ACCT計算機語言,系統調用禁止/啟用系統記錄進程信息。
2、cache文件夾:緩存(cache) 文件。只是內存中少部分數據的復製品,先於內存與CPU交換數據,因此速率很快。
3、config文件夾:(計算機系統)配置。如:系統里的config.sys就是系統自動配置文件,它是在用戶開機這段時間對計算機進行初始化設置,也就是用戶對系統的設置都由它來對計算機進行恢復。
4、system:Android 系統文件。主要包括usr(用戶文件夾,包含共享、鍵盤布局、時間區域文件等) ,app(常規下載的應用程序,這些 apk 包都是受保護的), lib(系統底層庫,如平台運行時庫等)等。
5、etc:系統主要配置文件,比如APN接入點設置等核心配置等。
6、data:用戶程序目錄。存儲手機系統文件和安裝軟體的數據文件,不能隨便刪除。