Transfer Android app with offline data to NEW PHONE without ROOT
You can use adb backup. You can specify the package name for backup a single app (for comprehensive details refer to Nikolay Elenkov)
adb backup [-f &lt;file&gt;] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|nosystem] [-keyvalue|-nokeyvalue] [&lt;packages...&gt;]
adb restore &lt;file&gt;

Note: some apps won't allow adb backup. even if adb backup is allowed, cache is not included.
Find a [GUIDE] How to enable adb backup for any app, decompile, recompile and sign the apk, where you have set the following flags:
android:allowBackup=&quot;true&quot;
android:fullBackupOnly=&quot;false&quot;

On the source phone, update the apk with your modified one. To do this without uninstalling, this may require to increment the android:versionCode in AndroidManifest.xml, and you must sign the apk using the same original signature that was used previously for the apk from the Play Store. This is the pitfall if you are not the author of the app it is not possible. However, if you manage this the install will succeed without data loss. Otherwise install will be rejected. (You still have the option to set allowBackup directly on rooted phone, but this may be out of scope because with root you can backup app directly) apparently there is no way to override AndroidManifest.xml during runtime
Once you have installed the modified apk you can make a backup of your app from source phone, and restore it to destination phone without root.
Install the latest Platform Tools and run from cmd.exe as Administrator:
adb.exe backup &quot;-f C:\example.ab -apk -obb com.example.package&quot;


edit:

be aware you have compiled a different app that can't be updated via PlayStore anymore

starting with api level 30 modified apk is no longer required as the flag seems ignored
xda-developers.com