2011-09-21 72 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