LINUX.ORG.RU
ФорумMobile

занулить базу данных приложения на Андроид

 


0

1

собственно сабж. Некоторое приложение использует базу данных, которая идет в комплекте с этим приложением, хотелось бы дропнуть эту базу.

Как посмотреть какие файлы и куда ставит приложение в ФС? Что делать если база зашита в .apk?

★★★★★

Что значит «зашита»? Может она просто создаётся при первом запуске? Зачем тебе её дропать?

vurdalak ★★★★★
()

Как посмотреть какие файлы

adb root
adb shell

и куда ставит приложение в ФС

В /data лежат директории, по одной на приложение.

i-rinat ★★★★★
()
/data/data/com.example.app/{databases,app_databases}/*.db

Коннектишься с помощью консоли sqlite, делаешь что тебе надо :)

rvr
()
Ответ на: комментарий от vurdalak

пользователь позже набивает свою базу, и первая становится лишней, но разраб не предусмотрел штатного способа пользоваться только одной, мне встроенная мешает ибо реально большая и мусора получается много

Stil ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Вот например в дефолтный бразуер «зашиты» закладки типа eBay, Twitter и т.п. Создаются при запуске, если настройки сброшены у приложения. Удаляешь их - и до следующего сброса они не появятся. Как-то так

rvr
()
Ответ на: комментарий от vurdalak

Что значит «зашита»? Может она просто создаётся при первом запуске?

я просто не шарю в андроида и допустил, что там может использоваться система ресурсов, аналогичная Qt, когда ресурсы могут быть зашиты в бинарь

Stil ★★★★★
() автор топика
Ответ на: комментарий от rvr

Коннектишься с помощью консоли sqlite, делаешь что тебе надо :)

класс :)

попробую

Stil ★★★★★
() автор топика
Ответ на: комментарий от Stil

Скорее всего там что-то вроде условия. Если первый запуск, то заполняем базу. Очистить её в принципе можно, но это будет дольше и сложнее, чем просто поудалять те закладки.

vurdalak ★★★★★
()
Ответ на: комментарий от rvr

Коннектишься с помощью консоли sqlite, делаешь что тебе надо :)

cast <причасных> vurdalak i-rinat

не сработало.

с sqlite3 проблем не возникло, но автор таки упоротый.

В /data/com.Example/{databases,app_databases}/*.db искомой таблицы не оказалось, сделал strings /data/app/com.Example.apk | grep keyword и увидел строку таблицы... в CSV!

это лечится?

Stil ★★★★★
() автор топика
Ответ на: комментарий от Stil

Тут один андроид-девелопер, который пиарился на лоре, хранил все данные в json в одной переменной :3 Так что я бы не удивлялся.

vurdalak ★★★★★
()
Ответ на: комментарий от Stil

это лечится?

Распакуй apk (это же zip-архив), забей всю CSV переводами строки, запакуй обратно, подпиши, выровняй. Последние два действия описаны в процедуре компиляции Android-приложений.

i-rinat ★★★★★
()
Ответ на: комментарий от Stil

Я правильно понял, что ты правильно понял, что {databases,app_databases}/*.db надо просмотреть самому, а не натравить ls? :) Хотя, думаю недопонимания не возникло, просто страхуюсь :)

С CSV это треш какой-то. Тут только как сказал i-rinat действовать

rvr
()
Ответ на: комментарий от rvr

Я правильно понял, что ты правильно понял, что {databases,app_databases}/*.db надо просмотреть самому, а не натравить ls? :) Хотя, думаю недопонимания не возникло, просто страхуюсь :)

разумеется :)

sqlite3 /path/to.db
.tables
.dump tablename
Stil ★★★★★
() автор топика

меню -> настройки -> приложения -> ищешь свое приложение -> стереть данные

Siado ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.