如何在连接USB的设备上调试Android Studio中的应用程序升级

如何在连接USB的设备上调试Android Studio中的应用程序升级,android,google-play,upgrade,android-install-apk,Android,Google Play,Upgrade,Android Install Apk,我在手机上发布了我的Google Play Store应用程序的制作版,并在Android Studio中更新了该应用程序的版本我想测试升级过程,但遇到了版本控制问题,然后是日志记录问题 要获得“干净”的安装,我可以进入手机的设置备份和重置>自动恢复,关闭该设置,然后卸载应用程序,然后从Play Store安装。或者,我可以下载生产APK并从adb命令行安装它(详细信息如下)。结果是我的设备应该与常规生产用户相同 与这个问题没有直接关系,但要理解我观看升级过程的动机是,应用程序有一个SQLite

我在手机上发布了我的Google Play Store应用程序的制作版,并在Android Studio中更新了该应用程序的版本我想测试升级过程,但遇到了版本控制问题,然后是日志记录问题

要获得“干净”的安装,我可以进入手机的设置
备份和重置>自动恢复
,关闭该设置,然后卸载应用程序,然后从Play Store安装。或者,我可以下载生产APK并从
adb
命令行安装它(详细信息如下)。结果是我的设备应该与常规生产用户相同

与这个问题没有直接关系,但要理解我观看升级过程的动机是,应用程序有一个SQLite数据库,我扩展了
SQLiteOpenHelper
,因此调用了
onUpgrade()
,并且正在做一些数据库模式工作

更新不兼容 如果我单击按钮部署应用程序,然后选择我连接的设备,则在继续之前它要卸载:

安装失败,消息为未能完成会话:安装\u失败\u更新\u不兼容

显然我可以卸载,但这不会测试升级过程

生成有符号APK 我使用
Generate Signed APK…
构建了一个“release”APK,这与我生成用于上传到Play Store的版本时使用的过程相同。这解决了版本控制问题,但会导致日志可见性问题。过去和现在使用的版本配置如下所示:

从命令行将APK安装到设备 “C:\Program Files(x86)\HTC\HTC Sync Manager\HTC Sync\adb”安装-r app-release.apk

上述在未卸载的情况下进行了升级。我使用的过程是在androidstudio中打开
终端
,将生成的APK的存储目录更改为,然后键入上面的命令

日志记录/调试问题 adb命令行触发了升级过程,但它没有立即开始向Logcat窗口提供调试信息。我可以连接到所有进程的Logcat,但我无法仅获取进程的调试信息,并且无法访问调试工具

问题:
如何从运行已签名的生产版本的设备开始,然后运行包含在Android Studio中的更新版本,而无需卸载,并且能够在升级过程中查看调试输出?或者如何修改已签名的生产版本,使其允许更新新版本并允许调试?

因为您从一个APK开始,该APK是
debugable=false
,您的工作包括使用与生产发布流程相同的流程对应用程序进行更新,并获取所有流程的日志,这可能是您所能做的最好的工作

从以前的源代码管理版本重建 一种选择是将应用程序的特定版本从源代码管理系统中拉出,并使用
Debuggable=true
构建它,并使用生成的APK作为起点,而不是使用Play Store中的APK

为了未来 不要只制作一个APK发布版本并上传到Play Store,而是制作两个版本。一个版本将像往常一样被签署和上传。使用完全相同的源代码,制作另一个具有
Debuggable=true
的APK。使用版本号重命名每个文件。然后,稍后,如果您想尝试从任何版本升级到任何版本,您可以这样做,并且仍然具有调试功能