日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Android10的分區(qū)存儲(chǔ)

分區(qū)存儲(chǔ)

在Android系統(tǒng)中,分區(qū)存儲(chǔ)是一種用于管理應(yīng)用程序數(shù)據(jù)的存儲(chǔ)機(jī)制。它將設(shè)備的存儲(chǔ)空間劃分為不同的分區(qū),每個(gè)分區(qū)都有不同的用途和訪問權(quán)限。

Android分區(qū)存儲(chǔ)從Android 10(API級(jí)別29)開始引入。在此版本之前,Android使用傳統(tǒng)的外部存儲(chǔ)和內(nèi)部存儲(chǔ)來管理應(yīng)用程序的文件和數(shù)據(jù)。從Android 10開始,引入了一種新的存儲(chǔ)模型,稱為分區(qū)存儲(chǔ)。

分區(qū)存儲(chǔ)將應(yīng)用程序的文件和數(shù)據(jù)分為兩個(gè)主要類別:公共存儲(chǔ)和私有存儲(chǔ)。公共存儲(chǔ)是可由多個(gè)應(yīng)用程序訪問的共享存儲(chǔ)空間,例如照片、視頻和音樂等媒體文件。私有存儲(chǔ)是每個(gè)應(yīng)用程序獨(dú)立使用的存儲(chǔ)空間,用于存儲(chǔ)應(yīng)用程序的私有文件和數(shù)據(jù)。

在分區(qū)存儲(chǔ)模型下,應(yīng)用程序默認(rèn)只能訪問其私有存儲(chǔ)空間,而對(duì)于公共存儲(chǔ)空間的訪問需要進(jìn)行特殊的權(quán)限申請(qǐng)。這樣可以增強(qiáng)用戶對(duì)文件和數(shù)據(jù)的隱私保護(hù),并提高應(yīng)用程序的安全性。

需要注意的是,雖然分區(qū)存儲(chǔ)從Android 10開始引入,但在此之前的版本中仍然可以使用傳統(tǒng)的外部存儲(chǔ)和內(nèi)部存儲(chǔ)模型。因此,開發(fā)者需要根據(jù)目標(biāo)設(shè)備的Android版本來選擇合適的存儲(chǔ)模型。

分區(qū)存儲(chǔ)的背景是為了提高應(yīng)用程序的安全性和隱私保護(hù)。通過將應(yīng)用程序的私有數(shù)據(jù)存儲(chǔ)在內(nèi)部存儲(chǔ)中,可以防止其他應(yīng)用程序?qū)@些數(shù)據(jù)的訪問。而外部存儲(chǔ)則提供了一個(gè)公共的存儲(chǔ)空間,使得應(yīng)用程序可以方便地共享數(shù)據(jù)。

總的來說,Android的分區(qū)存儲(chǔ)機(jī)制為應(yīng)用程序提供了靈活的存儲(chǔ)方式,既保護(hù)了用戶的隱私,又方便了數(shù)據(jù)的共享和傳輸。

分區(qū)存儲(chǔ)目錄

在Android 10中,引入了一種新的存儲(chǔ)訪問模式,稱為分區(qū)存儲(chǔ)。分區(qū)存儲(chǔ)將應(yīng)用的文件和數(shù)據(jù)存儲(chǔ)在應(yīng)用的私有目錄中,以增強(qiáng)用戶隱私和安全性。以下是Android 10分區(qū)存儲(chǔ)目錄的一些常見路徑:

(1) 內(nèi)部存儲(chǔ)私有目錄:/data/data//

這是應(yīng)用的私有目錄,只有應(yīng)用本身可以訪問。在這個(gè)目錄下,應(yīng)用可以存儲(chǔ)私有文件、數(shù)據(jù)庫、緩存等。

(2) 外部存儲(chǔ)私有目錄:/storage/emulated/0/Android/data//

這是應(yīng)用的外部存儲(chǔ)私有目錄,只有應(yīng)用本身可以訪問。在這個(gè)目錄下,應(yīng)用可以存儲(chǔ)私有文件、數(shù)據(jù)庫、緩存等。

(3) 共享外部存儲(chǔ)目錄:/storage/emulated/0/

這是設(shè)備的共享外部存儲(chǔ)目錄,所有應(yīng)用都可以訪問。在這個(gè)目錄下,應(yīng)用可以存儲(chǔ)共享文件、圖片、音頻、視頻等。

需要注意的是,Android 10中的分區(qū)存儲(chǔ)模式對(duì)于訪問外部存儲(chǔ)的權(quán)限有一些限制。應(yīng)用需要在清單文件中聲明相應(yīng)的權(quán)限,并且需要?jiǎng)討B(tài)請(qǐng)求用戶授權(quán)才能訪問外部存儲(chǔ)。這樣可以確保用戶對(duì)于自己的數(shù)據(jù)有更好的控制權(quán)。

訪問公共目錄

在Android 10及更高版本中,訪問公共目錄需要使用MediaStore或者Storage Access Framework(SAF)來進(jìn)行操作。SAF提供了一種標(biāo)準(zhǔn)的方式來訪問設(shè)備上的公共文件,以增強(qiáng)用戶的隱私和安全性。

1.MediaStore

使用「MediaStore」來訪問公共數(shù)據(jù)。MediaStore是一個(gè)提供對(duì)多媒體文件(如圖片、音頻、視頻)和其他文件(如文檔)的訪問的內(nèi)容提供者。以下是使用MediaStore訪問公共數(shù)據(jù)的步驟:

(1) 添加權(quán)限:在AndroidManifest.xml文件中添加以下權(quán)限:

這將允許應(yīng)用程序讀取外部存儲(chǔ)器上的媒體文件。

(2) 查詢公共數(shù)據(jù):使用ContentResolver查詢MediaStore來獲取公共數(shù)據(jù)。例如,要查詢所有的圖片,可以使用以下代碼:

Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
String[] projection = {MediaStore.Images.Media._ID, MediaStore.Images.Media.DISPLAY_NAME};
String selection = null;
String[] selectionArgs = null;
String sortOrder = null;

Cursor cursor = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);
if (cursor != null && cursor.moveToFirst()) {
    do {
        // 處理每個(gè)圖片的邏輯
        String id = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media._ID));
        String displayName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));
        // ...
    } while (cursor.moveToNext());
    cursor.close();
}

這將返回一個(gè)包含圖片的Cursor對(duì)象,然后可以遍歷Cursor來處理每個(gè)圖片的邏輯。

(3) 處理數(shù)據(jù):根據(jù)需要處理查詢到的數(shù)據(jù)。例如,可以使用圖片的ID來獲取其內(nèi)容URI,并顯示圖片:

Uri imageUri = ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, Long.parseLong(id));
imageView.setImageURI(imageUri);

這將使用圖片的內(nèi)容URI來設(shè)置ImageView的圖片。

根據(jù)需要,可以使用不同的MediaStore類來訪問其他類型的公共數(shù)據(jù),如音頻、視頻或文檔。

2.SAF

以下是使用「SAF」訪問公共數(shù)據(jù)的步驟:

(1) 請(qǐng)求訪問權(quán)限:首先,你需要在應(yīng)用的清單文件(AndroidManifest.xml)中聲明適當(dāng)?shù)臋?quán)限。例如,如果你想訪問外部存儲(chǔ)器上的公共目錄,你需要添加以下權(quán)限:


(2) 啟動(dòng)SAF:當(dāng)你需要訪問公共目錄時(shí),你可以使用Intent啟動(dòng)SAF。例如,如果你想讓用戶選擇一個(gè)文件,你可以使用以下代碼:

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
startActivityForResult(intent, REQUEST_CODE);

(3) 處理返回結(jié)果:當(dāng)用戶選擇了一個(gè)文件后,你可以在onActivityResult方法中處理返回的結(jié)果。你可以通過data.getData()方法獲取所選文件的URI。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        Uri uri = data.getData();
        // 在這里處理所選文件的URI
    }
}

通過以上步驟,你可以在Android 10及更高版本中訪問公共目錄。請(qǐng)注意,訪問公共目錄可能需要用戶的授權(quán),因此你應(yīng)該在代碼中處理授權(quán)請(qǐng)求和用戶的選擇。


網(wǎng)站名稱:Android10的分區(qū)存儲(chǔ)
路徑分享:http://www.5511xx.com/article/cohchdc.html