android程序安裝后存儲的目錄介紹:
十余年的太和網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整太和建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“太和網(wǎng)站設(shè)計(jì)”,“太和網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
1、android應(yīng)用安裝涉及到如下幾個目錄
①system/app 這系統(tǒng)自帶的應(yīng)用程序,無法刪除
②data/app 用戶程序安裝的目錄,有刪除權(quán)限。
③data/data 存放應(yīng)用程序的數(shù)據(jù)
④Data/dalvik-cache 將apk中的dex文件安裝到dalvik-cache目錄下
2、安裝過程介紹:
復(fù)制APK安裝包到data/app目錄下,解壓并掃描安裝包,把dex文件(Dalvik字節(jié)碼)保存到dalvik-cache目錄,并data/data目錄下創(chuàng)建對應(yīng)的應(yīng)用數(shù)據(jù)目錄。
3.卸載過程介紹:
卸載過程:刪除安裝過程中在上述三個目錄下創(chuàng)建的文件及目錄。
??在平常使用Android手機(jī)的時候,我們都知道,幾乎每一個app都在/data/data/相應(yīng)的包名的文件夾下保存數(shù)據(jù)。那這些數(shù)據(jù)怎么進(jìn)行保存的呢?在這里,將簡單的介紹一下。
??Context類中有一個openFileOutPut方法,這個方法可以將我們的數(shù)據(jù)保存在data目錄下的文件里面。
??openFileOutput(String name, int mode)方法中帶兩個參數(shù),第一個參數(shù)是文件名,這里只能寫文件的名字,不能包含路徑,因?yàn)樗械臄?shù)據(jù)都保存在/data/data/應(yīng)用包名/files/目錄下;第二個參數(shù)是文件的操作模式,有MDOE_PRIVATE,MODE_APPEND,MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。
??其中MODE_PRIVATE模式的是默認(rèn)的操作模式,每一次寫入的內(nèi)容時,都會覆蓋前面的內(nèi)容;MODE_APPEND模式表示的是每次寫入的內(nèi)容追加在前面的后面;MODE_WORLD_READABLE表示的是其他應(yīng)用程序可以對該文件進(jìn)行寫的操作;MODE_WORLD_WRITEABLE表示的是其他應(yīng)用程序可以對該文件進(jìn)行讀的操作。不過在后面的兩種模式過于危險,google已經(jīng)在Android 4.2中廢棄了。
??openFileOutput()方法返回的是一個FileOutPutStream的對象,得到了這個對象,就可以使用Java的IO流來對文件的使用了。
??點(diǎn)擊保存過后,就會把我們的數(shù)據(jù)保存在data目錄下。
??如果我們想要查看的話,就可以在Android studio(我是2.3.2的版本)中找到Tools-Android-Android Device Monitor
??再打開/data/data/應(yīng)用包名/files/,發(fā)現(xiàn)有一個文件,就是我們之前創(chuàng)建的一個文件。
??我們可以點(diǎn)擊右上角的圖標(biāo)進(jìn)行相應(yīng)的導(dǎo)出工作,對相應(yīng)的文件進(jìn)行導(dǎo)出操作。
??在Context類中,與openFileOutput方法對應(yīng)的是openFileInput方法,用戶從data目錄讀取相應(yīng)的數(shù)據(jù)。這個方法相較于openFileOutput方法簡單一些。
效果示意圖:
/proc/cpuinifo CPU的信息(型號、家族、緩存大小等)
/proc/meminfo物理內(nèi)存、交換空間
/proc/mounts? ?? ?已加載的文件系統(tǒng)的列表
/proc/devices 可用設(shè)備的列表,這個文件列出字符和塊設(shè)備的主設(shè)備號,以及分配到這些設(shè)備號的設(shè)備名稱。
/proc/filesystems 被支持的文件系統(tǒng)
/proc/modules 已加載的模塊
/proc/virsion 內(nèi)核版本
/proc/cmdline 系統(tǒng)啟動時輸入的內(nèi)核命令行參數(shù)
/proc/XXX XXX是指以進(jìn)程PID(數(shù)字編號)命名的目錄,每一個目錄表示一個進(jìn)程(即線程組)。
/proc/swaps 要獲知swap空間的使用情況
/proc/fs/nfsd/exports 列出由NFS共享的文件系統(tǒng)
/proc/kmsg 該文件被作為內(nèi)核日志信息源,它可以被作為一個系統(tǒng)信息調(diào)用的接口使用
/proc/self -- 到當(dāng)前進(jìn)程/proc目錄的符號鏈接,通過這個目錄可以獲取當(dāng)前運(yùn)行進(jìn)程的信息。
/proc/pci -- 掛接在PCI總線上的設(shè)備
/proc/tty/driver/serial --串口配置、統(tǒng)計(jì)信息
/proc/version -- 系統(tǒng)版本信息
/proc/sys/kernel/ostype
/proc/sys/kernel/osrelease
/proc/sys/kernel/version
/proc/sys/kernel/hostname -- 主機(jī)名
/proc/sys/kernel/domainname -- 域名
/proc/partitions -- 硬盤設(shè)備分區(qū)信息
/proc/sys/dev/cdrom/info -- CDROM信息
/proc/locks -- 當(dāng)前系統(tǒng)中所有的文件鎖
/proc/loadavg -- 系統(tǒng)負(fù)荷信息
/proc/uptime -- 系統(tǒng)啟動后的運(yùn)行時間
原來,只要把文件寫在這里的話,可以不用動態(tài)申請權(quán)限,只要在manifest里面聲明權(quán)限就ok了;
應(yīng)用程序在運(yùn)行的過程中如果需要向手機(jī)上保存數(shù)據(jù),一般是把數(shù)據(jù)保存在SDcard中的。
大部分應(yīng)用是直接在SDCard的根目錄下創(chuàng)建一個文件夾,然后把數(shù)據(jù)保存在該文件夾中。
這樣當(dāng)該應(yīng)用被卸載后,這些數(shù)據(jù)還保留在SDCard中,留下了垃圾數(shù)據(jù)。
并且在API
6.0之后,根目錄文件存儲是需要用戶授權(quán)的,就算你在AndroidManifest.xml中配置了存儲權(quán)限,用戶不授權(quán)也是寫不進(jìn)去了。
SD卡讀寫權(quán)限:
如果你想讓你的應(yīng)用被卸載后,與該應(yīng)用相關(guān)的數(shù)據(jù)也清除掉,該怎么辦呢?
通過
可以得到
這個目錄里面,一般放一些長時間保存的數(shù)據(jù)
方法可以獲取到 SDCard/ Android /data/你的應(yīng)用的包名/files/ 目錄,一般放一些長時間保存的數(shù)據(jù)
通過
方法可以獲取到
如果使用上面的方法,當(dāng)你的應(yīng)用在被用戶卸載后,SDCard/Android/data/你的應(yīng)用的包名/ 這個目錄下的所有文件都會被刪除,不會留下垃圾信息。并且
這個方法獲得的文件存儲路徑適用于6.0以后系統(tǒng),只要AndroidManifest.xml配置讀寫權(quán)限了,就不需要用戶再授權(quán)了。
正常開發(fā)中獲取存儲路徑的方法是:
可以看到,當(dāng)SD卡存在或者SD卡不可被移除的時候,就調(diào)用getExternalCacheDir()方法來獲取緩存路徑,否則就調(diào)用getCacheDir()方法來獲取緩存路徑。前者獲取到的就是 /sdcard/Android/data/application package/cache 這個路徑,而后者獲取到的是 /data/data/application package/cache 這個路徑。
設(shè)置-應(yīng)用-應(yīng)用詳情里面的”清除數(shù)據(jù)“與”清除緩存“選項(xiàng)分別對應(yīng)的是data/data/application package/和data/data/application package/cache
external storage (外部存儲):
Environment.getExternalStorageDirectory()SD根目錄:/mnt/sdcard/ (6.0后寫入需要用戶授權(quán))
context.getExternalFilesDir(dir)路徑為:/mnt/sdcard/Android/data/ package name /files/…
context.getExternalCacheDir()路徑為:/mnt/sdcard//Android/data/ package name /cache/…
internal storage(內(nèi)部存儲):
context.getFilesDir()路徑是:/data/data/ package name /files/…
context.getCacheDir()路徑是:/data/data/ package name /cach/…
1、mnt 掛載點(diǎn)目錄\x0d\x0a2、etc 系統(tǒng)主要配置文件\x0d\x0a3、system Android 系統(tǒng)文件\x0d\x0a4、sys Linux 內(nèi)核文件\x0d\x0a5、proc 運(yùn)行時文件\x0d\x0a6、init.rc 啟動腳本\x0d\x0a7、default.prop 系統(tǒng)屬性配置文件\x0d\x0a8、data 用戶程序目錄\x0d\x0a9、dev 設(shè)備文件\x0d\x0asystem 目錄下面的主要文件目錄下面也簡單介紹一下:\x0d\x0a1、usr 用戶文件夾,包含共享、鍵盤布局、時間區(qū)域文件等\x0d\x0a2、app 常規(guī)下載的應(yīng)用程序,這些 apk 包都是受保護(hù)的哦\x0d\x0a3、lib 系統(tǒng)底層庫,如平臺運(yùn)行時庫等\x0d\x0a4、etc 系統(tǒng)的配置文件,比如APN接入點(diǎn)設(shè)置等核心配置等\x0d\x0a5、framework Android 系統(tǒng)平臺核心 framework 的文件\x0d\x0a6、build.prop Android 系統(tǒng)屬性配置文件\x0d\x0a7、xbin 常用開發(fā)工具,比如 tcpdump/sqlite3 等\x0d\x0a8、bin 系統(tǒng)工具,比如 ps/cp/pm 等
頁面布局文件放在activity、fragment、view目錄的layout中。
build這個目錄和外層的build目錄類似,主要也是包含了一些在編譯時自動生成的文件,只不過內(nèi)容更復(fù)雜。
androidTest此處是用來寫AndroidTest測試用例的,可以對項(xiàng)目進(jìn)行一些自動化測試。
這個目錄下包含了gradlewrapper的配置文件,使用gradlewrapper的方式不需要提前將gradle下載好,而是會自動根據(jù)本地的緩存情況決定是否需要聯(lián)網(wǎng)下載gradle。