安卓底层数据在哪个文件夹
❶ 安卓内部外部文件存储
总述
觉得十分有必要搞清楚内存,内部存储和外部存储的区别,还有我们在开发中真正将数据存在了手机的哪儿。
先提一个问题:手机设置的应用管理中,每个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:用户程序目录。存储手机系统文件和安装软件的数据文件,不能随便删除。