獲取應用檔案路徑
基類Context提供了獲取應用檔案路徑的能力,ApplicationContext、AbilityStageContext、UIAbilityContext和ExtensionContext均繼承該能力。應用檔案路徑屬於應用沙箱路徑,上述各類Context獲取的應用檔案路徑有所不同。
透過ApplicationContext獲取應用級別的應用檔案路徑,此路徑是應用全域性資訊推薦的存放路徑,這些檔案會跟隨應用的解除安裝而刪除
屬性 | 路徑 |
---|---|
bundleCodeDir | <路徑字首>/el1/bundle |
cacheDir | <路徑字首>/<加密等級>/base/cache |
filesDir | <路徑字首>/<加密等級>/base/files |
preferencesDir | <路徑字首>/<加密等級>/base/preferences |
tempDir | <路徑字首>/<加密等級>/base/temp |
databaseDir | <路徑字首>/<加密等級>/database |
distributedFilesDir | <路徑字首>/el2/distributedFiles |
cloudFileDir | <路徑字首>/el2/cloud |
透過AbilityStageContext、UIAbilityContext、ExtensionContext獲取HAP級別的應用檔案路徑。此路徑是HAP相關資訊推薦的存放路徑,這些檔案會跟隨HAP的解除安裝而刪除,但不會影響應用級別路徑的檔案,除非該應用的HAP已全部解除安裝
屬性 | 路徑 |
---|---|
bundleCodeDir | <路徑字首>/el1/bundle |
cacheDir | <路徑字首>/<加密等級>/base/haps/ |
filesDir | <路徑字首>/<加密等級>/base/haps/ |
preferencesDir | <路徑字首>/<加密等級>/base/haps/ |
tempDir | <路徑字首>/<加密等級>/base/haps/ |
databaseDir | <路徑字首>/<加密等級>/database/ |
distributedFilesDir | <路徑字首>/el2/distributedFiles/ |
cloudFileDir | <路徑字首>/el2/cloud/ |
獲取和修改加密分割槽
應用檔案加密是一種保護資料安全的方法,可以使得檔案在未經授權訪問的情況下得到保護。在不同的場景下,應用需要不同程度的檔案保護。在實際應用中,開發者需要根據不同場景的需求選擇合適的加密分割槽,從而保護應用資料的安全。透過合理使用不同級別的加密分割槽,可以有效提高應用資料的安全性。
- EL1:對於私有檔案,如鬧鈴、桌布等,應用可以將這些檔案放到裝置級加密分割槽(EL1)中,以保證在使用者輸入密碼前就可以被訪問。
- EL2:對於更敏感的檔案,如個人隱私資訊等,應用可以將這些檔案放到更高階別的加密分割槽(EL2)中,以保證更高的安全性。
- EL3:對於應用中的記錄步數、檔案下載、音樂播放,需要在鎖屏時讀寫和建立新檔案,放在(EL3)的加密分割槽比較合適。
- EL4:對於使用者安全資訊相關的檔案,鎖屏時不需要讀寫檔案、也不能建立檔案,放在(EL4)的加密分割槽更合適。
- EL5:對於使用者隱私敏感資料檔案,鎖屏後預設不可讀寫,如果鎖屏後需要讀寫檔案,則鎖屏前可以呼叫Access介面申請繼續讀寫檔案,或者鎖屏後也需要建立新檔案且可讀寫,放在(EL5)的應用級加密分割槽更合適
獲取本應用中其他module的context
呼叫createModuleContext(moduleName:string)方法,獲取本應用中其他Module的Context。獲取到其他Module的Context之後,即可獲取到相應Module的資源資訊。
訂閱程序內UIAbility生命週期變化
在應用內的DFX統計場景中,如需要統計對應頁面停留時間和訪問頻率等資訊,可以使用訂閱程序內UIAbility生命週期變化功能。
透過ApplicationContext提供的能力,可以訂閱程序內UIAbility生命週期變化。當程序內的UIAbility生命週期變化時,如建立、可見/不可見、獲焦/失焦、銷燬等,會觸發相應的回撥函式。每次註冊回撥函式時,都會返回一個監聽生命週期的ID,此ID會自增+1。當超過監聽上限數量2^63-1時,會返回-1