O disco rígido do meu laptop acabou de falhar e eu perdi todo o código fonte de um aplicativo no qual eu tenho trabalhado nos últimos dois meses. Tudo o que eu tenho é o arquivo APK que está armazenado no meu e-mail de quando o enviei para um amigo.
Existe alguma forma de extrair o meu código fonte deste ficheiro APK?
Embora você possa ser capaz de descompilar seu arquivo APK
, você provavelmente vai acertar um grande problema:
não vai devolver o código que você escreveu. Ao invés disso, ele vai retornar qualquer que seja a linha do compilador, com variáveis dadas nomes aleatórios, assim como funções dadas nomes aleatórios. Pode levar muito mais tempo para tentar descompilar e restaurar no código que você tinha, do que para recomeçar.
Infelizmente, coisas como esta mataram muitos projectos.
Para o futuro, recomendo vivamente a aprendizagem de um Sistema de Controlo de Versão, como CVS, SVN e git** etc.
e como o apoiar.
apktool é a melhor coisa que se pode tentar. Eu salvei alguns xml com ele, mas honestamente não sei como funcionará com o código .java.
Eu recomendaria que você tivesse um repositório de código, mesmo que você seja o único codificador. Eu tenho usado Project Locker para meus próprios projetos. Ele te dá repositório svn e git grátis.
O apktool vai funcionar. Você nem precisa conhecer a loja de chaves para extrair o código fonte (o que é um pouco assustador). A principal desvantagem é que o código fonte é apresentado em formato Smali ao invés de Java. Outros arquivos como o ícone e o main.xml passam perfeitamente bem e pode valer seu tempo para, pelo menos, recuperá-los. No final das contas, você provavelmente precisará reescrever seu código Java a partir do zero.
Você pode encontrar o apktool aqui. Basta baixar o apktool e o helper apropriado (para Windows, Linux, ou Mac OS). Eu recomendo usar uma ferramenta como o 7-zip para descompactá-los.