Я установил такое же приложение на
устройство под управлением Android 7.0 ( без рута ) и
на планшете под управлением Android 4.4 ( root ),
но, тем не менее, я заметил, что данные приложения (базы данных/файлы и т. д.) хранятся в разных местах на каждом устройстве:
На планшетном устройстве файлы расположены по адресу: /storage/sdcard0/Android/data/com.packagename
и с ними можно легко манипулировать (например, копировать, создавать резервные копии и т. д.), но не на смартфоне, который, вероятно, оставляет место хранения: /data/data/com.packagename
к которому у меня нет доступа.
Я понимаю, что обычно он хранится в /data/data
( защищенном внутреннем хранилище приложения ) или /storage/sdcard0/Android/data
( хранилище в разделе внутренней памяти пользователя ), иначе на SD-карте, если она есть. Кроме того, здесь был задан связанный с этим вопрос: где приложения Android хранят данные?
Больше всего меня удивляет, почему это происходит в одном и том же приложении (одна и та же версия — загруженная неопубликованная версия)?
На этой справочной странице также объясняется, как разработчик может настроить расположение данных приложения по умолчанию. Было бы понятно, если бы были разные версии приложения, но здесь я имею дело только с одним и тем же приложением (т.е. .apk
файлом). Есть ли что-то, что мне не хватает, или что-то изменилось в последних версиях Android?
Меня беспокоит то, что я не могу получить доступ к этим файлам /data/data
без рута, и поскольку это большие файлы, и мне нужно сделать их резервную копию на случай, если данные приложения будут случайно очищены (и я уже сделал это по ошибке :(.
Самое главное, я не хочу постоянно загружать их снова.
Примечание. К обоим устройствам не подключено внешнее хранилище.
Судя по всему, самым большим препятствием является невозможность доступа к файлам на /data/data
(устройство 1), следовательно, невозможно резервное копирование... (Я был бы признателен, если бы для этого был найден другой надежный обходной путь )
Все приложения имеют приватное хранилище в затянувшейся папке /data. Некоторые приложения предпочитают временно хранить данные в общедоступных местах. К сожалению, я не могу точно сказать, каковы были точные результаты этого, но я знаю, что способ обработки общих данных изменился в Android 7 по соображениям безопасности.
/data
папке на этом некорневом устройствеКак бы странно это ни звучало, у меня был успешный обход этой проблемы:
Мне пришлось вручную переместить необходимые данные приложения (файлы) из /data/data
в /Android/data
(за исключением shared_preferences
папки и папки базы данных, т.е. обычной конфигурации).
Во-вторых, мне пришлось настроить приложение для использования частного каталога, изменив файл userDefault.xml
(возможно, другой в зависимости от рассматриваемого приложения) и добавив эту необходимую строку кода:
<int name="app_private_dir"value_"1"/>
ССС
/data/data
? Можете ли вы сказать, в каком месте хранятся данные приложения? Вы знаете, являются ли файлы файлами данных? Кроме того, как вы действительно знаете, без рута?ССС
/sdcard/Android/data
, на самом деле я только что попробовал это в определенном приложении, и это произошло. Кроме того, я думаю/Android/data
, и/data/data
у меня разные цели. Я обнаружил, что/Android/data
это больше используется для кешей/файлов, связанных с рекламой, тогда как/data/data
больше для личных вещей (например, для хранения информации для входа).xavier_fakerat