当我在开发Nativescript应用程序时创建APK时,Nativescript将所有应用程序代码存储在生成的APK文件中,这对我有很大帮助,以防万一代码发生了问题[代码已删除,未提交我从事很长时间的更改,...]。当代码发生问题时,我通常会使用任何 APK提取器工具从我的android设备生成一个APK,然后用JADX对其进行反编译,以获取原始代码并保存一天。
当我对布局或js文件进行更改时,Nativescript不会生成新的APK(即使更改已应用于Android设备)。仅当我构建项目时,Nativescript才会生成新的APK。当我需要对其进行大量更改之后恢复代码时,这并没有太大帮助。
我们正在开发本机脚本应用程序。我们已经对应用程序进行了大约两天的更改,而没有生成新的APK或将更改提交到git。这些文件突然从PC中删除了,我们不知道为什么。
我们从测试的android设备上最新的工作版本中提取了一个APK,对其进行了反编译并检索了代码,但是最近两天的更改都没有。
是否可以从安装在android设备上的Nativescript应用程序中还原代码?通过还原代码,我的意思是甚至在构建应用程序后还原代码上的所有更改。
nativescript在哪里/如何在Android设备上将即时更改存储在我的应用程序的代码上?
答案 0 :(得分:1)
您可以通过从adb访问应用程序数据来查看代码。
从adb连接到您的应用程序
adb shell run-as org.nativescript.myapplication
您可以在此目录中找到文件
/data/data/org.nativescript.myapplication/files/app
答案 1 :(得分:0)
依靠APK保留源代码是不明智的,您可能应该使用版本控制系统(如Git),可能是诸如Github / BitBucket / GitLab等服务来维护源代码。
在使用版本控制系统时,您应该定期提交更改。这就是这里的全部目的,即使您不确定所做的更改,您仍然可以使用自己的分支并保留更改并仅在完全准备就绪时才合并到主分支。
我猜您在运行/构建应用程序时未使用--bundle
选项,建议您同时保持应用程序轻巧,以便使用Uglify尽量减少混淆。在NativeScript的下一个主要版本中,此--bundle
选项将被标记为默认选项,因此您将完全无法提取确切的源代码。
还认为,如果有人想要在您未进行任何混淆的情况下入侵您的应用程序,则可以轻松克隆您的工作或按他们的意愿破坏功能。详细了解如何保护源代码here。
关于实时更改的存储位置,我认为它将位于Android上的应用程序数据目录中。