Chúng được lưu trữ trong music.db
tệp của bạn - của tôi là /data/data/com.google.android.music/databases
; Tôi không chắc liệu điều này có giống hệt nhau trên tất cả các thiết bị hay không nhưng tôi đoán có lẽ là như vậy.
Họ sống trong một sự kết hợp của LISTS
và LISTITEMS
bảng biểu, được định nghĩa như vậy:
sqlite> .schema lists
.schema lists
CREATE TABLE LISTS(Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT NOT NULL,
SourceAccount INTEGER, SourceId TEXT, _sync_version TEXT,
_sync_dirty INTEGER NOT NULL DEFAULT 0, MediaStoreId INTEGER,
ListType INTEGER NOT NULL DEFAULT 0, ListArtworkLocation TEXT);
CREATE INDEX LIST_SYNC_INDEX on LISTS(SourceAccount,SourceId);
sqlite>
sqlite> .schema listitems
.schema listitems
CREATE TABLE LISTITEMS(Id INTEGER PRIMARY KEY AUTOINCREMENT,
ListId INTEGER NOT NULL REFERENCES LISTS, MusicSourceAccount INTEGER NOT NULL,
MusicSourceId TEXT NOT NULL, ClientPosition INTEGER NOT NULL,
ServerPosition INTEGER NOT NULL DEFAULT 0, SourceAccount INTEGER, SourceId TEXT,
_sync_version TEXT, _sync_dirty INTEGER NOT NULL DEFAULT 0,
ServerOrder TEXT DEFAULT '', ClientId TEXT);
CREATE INDEX LISTITEMS_ORDER_INDEX ON LISTITEMS (ListId, ServerOrder, ClientPosition);
CREATE INDEX LISTITEMS_SYNC_INDEX on LISTITEMS(SourceAccount,SourceId);
sqlite>
Thật thú vị, nếu bạn đang sử dụng Google Music Beta mới, danh sách phát mà bạn tạo dường như không xuất hiện trong các ứng dụng khác nhưng chúng có các mục trong DB. Có vẻ như điều này có thể là do MusicSourceAccount
trường được đặt thành id tài khoản Google Music của bạn; các ứng dụng khác đặt thành 0 và những ứng dụng này xuất hiện trên tất cả các ứng dụng lấy dữ liệu từ DB.