If you have ever tried to modify precompiled android application, then you might be familiar with APKTool. APKTool is one of the most commonly used application to decompile and recompile android apk.
But there is a drawback with this APKTool. You can only decompile or recompile your apk, but you cannot edit the content, more specifically the source code. Generally the whole source code is compiled in .smali files and to edit that files you have to rely on some other compiler, decompiler and editor like Notepad++.
To combine all this things together and to make development easy, an XDA user, Vaibhav, created APK Studio.

As the name suggest, the APK Studio allows you to decompile, edit and recompile apk files right from one single app. This IDE looks quite similar to Netbeans IDE and has a lot of features to explore.
You can download this IDE from codeplex or XDA.
(Image credit: XDA)
Thank you for your article!
You may also use online apk decompilers.
This one uses the method you described: http://www.decompileandroid.com/
An this site utilizes direct apk decompiler Jadx: http://www.javadecompilers.com/apk/
Regards,
Andrew
dear,
can you show me where’s the beginner like me can learn on how to made android apps, i want to have my own apps.
not working ..recompile.. error
I: Using Apktool 2.0.2
I: Smaling smali folder into classes.dex…
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
at java.util.AbstractList.listIterator(Unknown Source)
at com.google.common.collect.Lists$TransformingSequentialList.listIterator(Lists.java:575)
at java.util.AbstractList.listIterator(Unknown Source)
at java.util.AbstractList.equals(Unknown Source)
at org.jf.util.CharSequenceUtils.listEquals(CharSequenceUtils.java:48)
at org.jf.dexlib2.base.reference.BaseMethodReference.equals(BaseMethodReference.java:55)
at java.util.concurrent.ConcurrentHashMap.get(Unknown Source)
at org.jf.dexlib2.writer.builder.BuilderMethodPool.internMethod(BuilderMethodPool.java:56)
at org.jf.dexlib2.writer.builder.DexBuilder.internMethodReference(DexBuilder.java:170)
at org.jf.smali.smaliTreeWalker.insn_format35c_method(smaliTreeWalker.java:5978)
at org.jf.smali.smaliTreeWalker.instruction(smaliTreeWalker.java:4549)
at org.jf.smali.smaliTreeWalker.ordered_method_items(smaliTreeWalker.java:3549)
at org.jf.smali.smaliTreeWalker.method(smaliTreeWalker.java:2176)
at org.jf.smali.smaliTreeWalker.methods(smaliTreeWalker.java:951)
at org.jf.smali.smaliTreeWalker.smali_file(smaliTreeWalker.java:440)
at brut.androlib.mod.SmaliMod.assembleSmaliFile(SmaliMod.java:97)
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:70)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:55)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:41)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:378)
at brut.androlib.Androlib.buildSources(Androlib.java:305)
at brut.androlib.Androlib.build(Androlib.java:288)
at brut.androlib.Androlib.build(Androlib.java:261)
at brut.apktool.Main.cmdBuild(Main.java:225)
at brut.apktool.Main.main(Main.java:84)
Process exited with code 1
plzzz help
use latest one bro
My source code when complied it creates error in installing apk
use latest version
I: Loading resource table…
Exception in thread “main” brut.androlib.AndrolibException: Could not decode arsc file
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:54)
at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:604)
at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:74)
at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:66)
at brut.androlib.Androlib.getResTable(Androlib.java:49)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:93)
at brut.apktool.Main.cmdDecode(Main.java:169)
at brut.apktool.Main.main(Main.java:85)
Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000
at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:43)
at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:95)
at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:81)
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)
… 7 more
GIVE A DOWNLOAD LINK PLS.NEW VERSION ONLY READY..PLS GIVE ME A RECOMPILE VERSION.
Hello i get email and follow but cant get help from you.
brother give me a apk studio recompile version because new version only ready!………….
thx admin this was very well explained guide for editing android applications.
Thanks admin for providing this article. It is very helpful for all those guys who are learning to edit android apks.