2011-09-21 80 views
4

我最近删除了我的硬盘并丢失了几周的工作。尽管经常提交,但我并没有将我的更改上推一段时间。恢复APK的代码

我已经从我的手机中提取了我的应用的APK,我一直在尝试恢复其代码。我假设它是可能的,因为它是一个测试版本(因此,不会被混淆或者类似的东西)。

最好的结果,我才得以实现是通过使用dex2jar但我仍然有这样大量的代码:

int i = context.getResources().getDimensionPixelSize(2131165184); 
int j = context.getResources().getDimensionPixelSize(2131165184); 
screenNameParams.addRule(10); 
screenNameParams.addRule(1, 2131034138); 
screenNameParams.setMargins(paramInt, 0, 0, 0); 

甚至:

long l1 = paramLong1; 
long l2 = paramLong2; 
long l3 = paramLong3; 
int i = paramInt; 
List localList = localClient.getBetween(l1, l2, l3, i); 

我与android-apktool经验甚至更糟糕的是,因为我甚至无法从中获得一些Java代码......这是预期的,因为它可以与smali调试一起使用。

我已经阅读了所有相关的问题,因此我看到有人说“除非你是开发人员才能获得apk的实际源代码非常困难”,所以我有希望开发者。

最后,我的问题是:是否可以完全恢复APK的原始代码,因为它是从eclipse的测试版本?

回答

3

总之,没有。它看起来像你的代码是通过ProGuard运行和混淆(正常情况下),所以你将无法得到你的原代码。在你作为开发者的引用中,这些人基本上都说“除非你已经拥有它,因为你是开发者,否则很难获得APK的源代码”,但在这种情况下,即使你是开发人员,失去了来源。

我能想到的唯一的最后一个选择就是找到一个硬盘驱动器恢复程序,并尽快使用它并查看是否可以恢复您的源代码。也许你还没有覆盖那些行业。

+0

感谢您的意见。 ProGuard是否与ADT捆绑在一起?我从来没有安装也没有配置它自己。 – goncalossilva

+1

是的,它是作为Android构建系统的一部分:http://developer.android.com/guide/developing/tools/proguard.html – kabuko

+0

http://stackoverflow.com/a/14286540/867591 – Ahmed