Tình hình quản: Removable Storage
Có rất nhiều nhầm lẫn liên quan đến mô hình lưu trữ của Android. Nhầm lẫn rằng chỉ tăng với Android 4.4 của các thay đổi cho mô hình lưu trữ. Có vô số câu hỏi StackOverflow và giống như nơi mà họ rõ ràng không hoàn toàn grok các mảnh khác nhau của mô hình lưu trữ của Android.
Đây là bài thứ ba trong một loạt năm phần bao gồm mô hình lưu trữ này, để giúp làm rõ những gì đang xảy ra. Hôm nay, chúng tôi sẽ xem xét lưu trữ di động, và nguồn gốc của một số lượng không may của cảm giác lo lắng.
Những gì người dùng của bạn Hãy nhìn "Removable Storage" Phương tiện
Nhiều người dùng của bạn sẽ có một thiết bị có một số loại phương tiện di động. Thông thường thời gian này là một thẻ micro SD. Một số thuốc viên hoặc bến cảng có một khe cắm thẻ SD. Thêm vào đó, khối lượng lưu trữ USB là có thể thông qua USB On-The-Go kết nối (không đề cập đến các thiết bị hoặc bến cảng với một cổng USB host đầy đủ).
Người dùng của bạn sẽ nghĩ rằng họ có thể làm việc với lưu trữ di động giống như họ có thể với một máy tính để bàn hoặc máy tính xách tay .
Thật không may, người sử dụng, phần lớn là sai lầm, và thậm chí còn nhầm lẫn nhiều hơn với 4.4+ Android. Đó là bởi vì cách tiếp cận của Google đối với lưu trữ di động là ... kỳ lạ.
Những gì Google Nghĩ "Removable Storage" Phương tiện
đầu, như đã ghi nhận ngày hôm qua, bộ nhớ ngoài là thường dưới hình thức của một thẻ micro SD có thể tháo rời. Tại thời điểm đó, nhiều nhà phát triển đã có thói quen suy nghĩ rằng lưu trữ bên ngoài == lưu trữ di động.
Tuy nhiên, như Android 3.0 và cao hơn bắt đầu tung ra hàng loạt, các nhà phát triển sớm bắt đầu nhận ra hai điều:
! Lưu trữ bên ngoài = bộ nhớ di động trên hầu hết các những thiết bị
có gì trong Android SDK cho lưu trữ di động là
? Chờ, wut
đúng: cho đến khi Android 4.4, không có hỗ trợ chính thức cho các phương tiện di động trong Android. Trích dẫn Dianne Hackborn:
... lưu ý: cho đến khi Android 4.4, nền tảng Android chính thức đã không được hỗ trợ thẻ SD ở tất cả ngoại trừ hai trường hợp đặc biệt: bố trí lưu trữ trường cũ, nơi lưu trữ bên ngoài là một thẻ SD (mà vẫn còn được hỗ trợ bởi nền tảng ngày nay), và một tính năng nhỏ thêm vào Android 3.0, nơi nó sẽ quét thẻ SD bổ sung và thêm chúng vào các nhà cung cấp phương tiện truyền thông và cung cấp cho các ứng dụng truy cập chỉ đọc vào các tập tin của họ (mà cũng vẫn được hỗ trợ trong các nền tảng hiện nay).
Android 4.4 là phiên bản đầu tiên của nền tảng này đã thực sự cho phép ứng dụng sử dụng thẻ SD để lưu trữ. Bất kỳ truy cập cho họ trước đó đã được thông qua tư nhân, các API được hỗ trợ. Bây giờ chúng ta có một API khá phong phú trong nền tảng cho phép các ứng dụng để sử dụng các thẻ SD một cách hỗ trợ, trong những cách tốt hơn so với họ đã có thể trước: họ có thể sử dụng miễn phí các khu vực lưu trữ ứng dụng cụ thể của họ mà không đòi hỏi bất kỳ quyền trong ứng dụng, và có thể truy cập bất kỳ tập tin khác trên thẻ SD miễn là họ đi qua các bảng chọn tập tin, một lần nữa mà không cần bất kỳ điều khoản đặc biệt.
Nhưng ... Nhưng ... Nhưng ... Điều gì về tất cả những ứng dụng đó sử dụng Removable Media?
họ rơi thành ba nhóm:
Một số chỉ dựa vào MediaStore lập chỉ mục. Vì vậy, ví dụ, một máy nghe nhạc video có thể tìm hiểu về các video trên tất cả các phương tiện truyền thông có sẵn bằng cách truy vấn MediaStore, và nếu các nhà sản xuất thiết bị đã không bị phá vỡ các chỉ mục MediaStore phương tiện di động, người chơi sẽ có thể phát lại video trên phương tiện di động .
Một số là các ứng dụng mà tàu với phần cứng. Các nhà sản xuất phần cứng biết các thiết bị và các quy tắc của trò chơi là cho thiết bị đó. Các nhà sản xuất phần cứng cũng là ít lo ngại về khả năng tương thích trên nhiều thiết bị, như các ứng dụng của họ không (thường) vận chuyển trên Play Store. Do đó, một nhà sản xuất phần cứng có carte blanche để làm việc với các phương tiện truyền thông di động.
Một số là các ứng dụng được viết bởi các nhà phát triển đã quyết định đi qua ranh giới của Android SDK. Có công thức nấu ăn khác nhau trực tuyến để kiểm tra khác nhau các tập tin hệ thống Linux (và các chất tập tin giống như) để xác định những "điểm gắn kết" tồn tại, và từ đó áp dụng một số chẩn đoán để xác định những gì đại diện cho phương tiện di động. Trong khi độ tin cậy giữa các thiết bị có thể dễ dàng có một vấn đề, ngoài ra, những kỹ thuật làm việc ... cho đến khi Android 4.4, khi mọi thứ đã thay đổi.
Những gì xảy ra trong Android 4.4: Các Tin Mừng
Hai điều đã xảy ra trong khoảng thời gian của Android 4.4 có ảnh hưởng đến phương tiện truyền thông di động.
Trên cộng bên, chúng tôi đã đạt được một số biện pháp hỗ trợ Android SDK chính thức cho các phương tiện truyền thông di động. Cụ thể getExternalFilesDirs () và getExternalCacheDirs () (lưu ý hình thức số nhiều) sẽ không chỉ trở lại thư mục mà chúng ta có thể sử dụng trên "thực sự" lưu trữ bên ngoài, nhưng cũng sẽ trở lại thư mục mà chúng ta có thể sử dụng trên bất kỳ có sẵn và hỗ trợ phương tiện di động. Ứng dụng của chúng tôi không cần bất kỳ điều khoản cụ thể để sử dụng bất kỳ của những thư mục.
Ngoài ra, các khung truy cập lưu trữ cung cấp cho các nhà sản xuất thiết bị một số tùy chọn cho phơi bày phương tiện di động cho các ứng dụng của chúng tôi trong một cách có kiểm soát hơn. Trích dẫn Jeff Sharkey:
Tuy nhiên, các ứng dụng có thể tạo / ghi tập tin bên ngoài của thư mục gói cụ thể của họ trên các thiết bị lưu trữ bên ngoài thứ cấp bằng cách sử dụng mục đích CREATE_DOCUMENT mới, invo
đang được dịch, vui lòng đợi..