androidkivy

Kivy on Android : How to keep local saved file after app update?


I want to know the correct steps to keep local saved data after app update.

I confirmed the following old question, but I can't solve the issue. Save app data in kivy on Android

I tried the following.

  1. 1-1:I made android APK with buildozer(command:buildozer android debug). 1-2:And execute 'store.put' method using 'kivy.storage'. then 'hello.json' file was created in the './' directory. https://kivy.org/doc/stable/api-kivy.storage.html

    1-1:'./' directory in APK ver.1

    main.pyo

    1-2:'./' directory in APK ver.1

    main.pyo, hello.json(created)

  2. 2-1:I made android APK ver.2(same app name as 1.APK). 2-2:After installing in update mode, execute only 'store.get' method using 'kivy.storage'. then method failed because 'hello.json' file was automatically deleted with app update.

    2-1:'./' directory in APK ver.2

    main.pyo(changed from APK ver.1)

    2-2:'./' directory in updated APK

    main.pyo(ver.2)

  3. I tried changing the output location of the 'hello.json' file but it made no sense. e.g. './data/data/[app_name]/files/hello.json' and './data/data/[app_name]/shared_prefs/hello.json'

How can I update my application?


Solution

  • Everything in the default current directory, which is named app, is deleted and replaced on app update. You can place persistent data in the directory above this, i.e. ../, and it should stick around between updates.

    You can also use your app's external storage directory, using pyjnius to query the Android API for its location, but I don't have code for that right now.

    This isn't especially well documented, I'll try to improve it.