2017-02-08 11 views
1

的问题如何调试从Play商店安装的APK(不删除保存的用户数据)

我与Android应用程序,其中用户数据被保存到由SQLCipher加密的数据库工作。 Android密钥库正在用于存储密钥。有一个设备特定的问题发生(很可能与正在保存的数据有关)。我可能会遇到遇到此问题的设备,但是,从我所能找到的信息中,我可以从上述设备中提取的信息非常有限。有没有任何可能的方式,我可以以某种方式将调试器附加到加载到设备上的当前APK,或以某种方式替换为可调试版本而不会丢失用户数据?

设备运行的是Android 6.0.1,我使用过Android Studio

我找到了什么尝试当我连接加载已下载的APK Android平板电脑调试版本APK

从PlayStore中,我能够看到的唯一数据是使用logcat(Android Studio)的特定于应用程序的调试日志。当我尝试调试应用程序时,Android Studio会告诉我先卸载现有的APK,然后才能加载可调试的APK。但是,这将删除我不想发生的现有数据。

我试图解决我原来的问题

尝试

其他的事情来获得特定用户发送我自己的问题的数据库

这将无法正常工作,我用不上到私钥,所以我无法解密数据,即使我得到的文件。

试图让特定用户发送我的应用程序日志

这将无法正常工作,由于Android 4.1,应用程序特定的日志是私人,只有那些特定的应用程序(除非该设备是植根,其有问题的设备不是,并且根本不是真正的选择)。这实际上导致了另一个与之相关的轻度相关问题。为什么我能够在logcat中看到特定于应用程序的日志,即使它们在通过应用程序(如CatLog)在无根设备上查看日志时不可见?

+0

无法在有问题的设备上安装调试版本并重现错误?如果它是根植电话,您可以保存corupted数据库,重新安装应用程序并覆盖数据库 – X3Btel

回答

2

您可以通过简单地使用您的发行版密钥而不是调试版进行签名来安装可调试APK,并确保设置了调试标志。我总是这样做,因为继续卸载并重新安装不同的版本变得非常痛苦,特别是在具有不同调试密钥库的不同计算机之间交换时。

安装使用您的发行版密钥签名的APK只会执行就地升级,即使设置了可调试标志,也会保持所有应用程序数据不变。

e.g

buildTypes { 

    debug { 
     minifyEnabled false 
     debuggable true 
     signingConfig signingConfigs.release 
    } 

    release { 
     minifyEnabled false 
     signingConfig signingConfigs.release 
    } 

} 

的日志被自己的应用程序产生的,您可以从用户设备获取日志这么久。您自己的进程被允许访问您自己的应用程序日志条目。

Read logcat programmatically within application

相关问题