2016-10-10 10 views
-3

enter image description hereclasses.dex файл does't содержат мои классы Java

Я разработал приложение в Android Studio и проверить его на моем телефоне. Я отформатировал свой компьютер и забыл сохранить свой проект где-то. Теперь я хочу вернуть исходные коды. Я получаю APK-файл с моего телефона (либо с помощью adb, либо с помощью некоторых других инструментов).

Я использую dex2jar и декомпилирую файл classes.dex, но он не показывает мои собственные классы Java. Можно ли вернуть их?

+0

Даже если вы получили ваши classses и декомпилированы их – Carcigenicate

+0

зачем вам это нужно? Файлы dex - файлы dalvik, ТОЛЬКО, требуемые Dalvik или JVM. –

+0

Единственное, что я хочу - это вернуть мои классы, которые я написал в проект. Я не хочу писать их снова. есть мое собственное приложение в моем телефоне, и я могу вытолкнуть файл apk. Мне просто нужно получить мои классы из этого файла apk. – parliament

ответ

0

Вы можете декомпилировать это так легко отличный учебник ниже:

https://futurestud.io/tutorials/how-to-decompile-an-android-app-apk

4 простых шага, как показано ниже:

1- разархивирования APK, как вы распаковать любую почтовый файл

2 -find classes.dex файлы

3-преобразовать их в файл jar с помощью dexToJar tool

4- открыть файл банку, используя JD-Gui приложение (Availbale для Windows/Ubuntu/Mac)

+0

Я делал excatly, что у печально шаг за шагом. Тем не менее, в JD-Gui есть всего несколько классов, которые не являются моими – parliament

+0

Вы прогард ваш apk? Перед выпуском? –

+0

Я не знаю, что такое progaurd, но я ничего подобного не делал сам. Я создал проект в студии Android, а затем запустил его на моем подключенном телефоне. Это все – parliament

0

Это обычно делается некоторыми обфускатора, например, Proguard. Это означает, среди прочего, что имена классов ваших классов будут заменены на бессмысленные имена (например, A/B/C), имена будут по-прежнему отличаться в полностью квалифицированном пути класса java, например. у вас может быть несколько классов «А» в разных пакетах, но помимо этого вы будете иметь эти имена классов несколько раз. В большинстве случаев это не повредит функциональности вашей программы, но это затруднит обратный инженер.

Если это ваше приложение, и вы можете восстановить его, вы можете отключить ProGuard или подмножество его функций, в противном случае вам нужно будет перепроектировать его по своему усмотрению.

 Смежные вопросы

  • Нет связанных вопросов^_^