I'm asked all the time how to theme; what's the best way, the best tools, etc. Well, I'm going to compile the best resources that I think will get you up and theming. It's a process, and you'll need to have time and devotion, but these tools and tips will help
I find both of these to be great; I have apk manager (windows and linux) on my pc, and apktool (windows, mac, and linux) on my mac. APK manager will likely be best for beginners due to its simplistic and user friendly UI, and it offers some more features then apktool, like zipaligning, optimizing, etc. Both are fantastic, and absolutely a huge help for theming and decompiling apps.
It's always helpful to know how to use the SDK for adb, zipaligning, and other tasks. Remember, even if you have other tools like apk manager to zipalign, it's always good to know how to do it by hand And you'll need tools in it like draw9patch for those pesky .9pngs
Want to go all out? Go photoshop. Want a great, free tool to theme with? Gimp is the way to go. Either way, you'll want to use one of these tools for png edits when theming. Paint.net is also another good free tool for edits.
Want to make an ADW theme? This is a great tool to get you started on that
You'll want some general knowledge with terminal or windows cmd prompt. Because you will use it. Also, you'll need to know what to edit in a theme to change aspects of color and such correctly. Well, this is a great tool to find out what you need to edit
I'll be adding to this guide as needed. Please, feel free to ask any questions, and I'll be here to answer them Hope this helps everyone!
For the first in depth look, I'm going to focus on XML edits, as they are a major component to having a complete and thorough theme. Image edits are easy enough, but many don't know where to go when it comes to XMLs. Well, here's where I'll tell you
XMLs can control many functions in android apps. For the scope of this thread, we'll be changing binary XML into a readable XML file to make our edits, which will usually result in color changes in apps.
How do I edit an XML?
Make sure you have apktool or apk manager correctly set up. They'll make XML edits a breeze. If you need help setting them up, wither ask me or see their manuals.
Take the apk you want to edit, and decompile it with one of those two tools. Make sure if it's dependent on Sense resources or TW ones that you have those set up. (Again, either ask me or see instructions for apktool and apk manager)
Once decompiled, open the XML you'll need/want to edit. See the link I have above under knowledge for finding out what XML you may need to edit
For Windows, use Notepad ++ to edit, and for Mac, use TextWrangler (just suggestions, others work as well)
Use the Hex Color code link I have listed above in the OP to find the suitable code for the color you'll want if you;re making a color change. Remember, the color codes will be 6 digits, but there'll be 2 digits in the XML before the color code. 00 is transparent, and FF is the "regular" color for lack of a better term.
When done with the XML changes, recompile the apk
Sign if needed, and install to see if the changes you've made are worth it
Apktool and Apk Manager allow you to decompile, reengineer, and compile apks after making changes to files in the decompiled apk.
Why would I need them?
These tools allow you to edit XMLs, edit smali files, and change many other aspects of the apk that you wouldn't be able to do without decompiling the apk.
Setting up apktool on a mac
If you have a mac like me, remember that apk manager doesn't work on macs. So, you must use apktool, which is absolutely fine, as in my opinion apktool is better than apk manager. To set up apktool, you must have root mode enabled on your mac. To do that, simply follow these steps:
Open system preferences
Go to login options
Hit join next to network account server
Select open directory utility
Click the lock at the bottom of the window that pops up and enter an admin password
Then, go to the top bar on your mac, hit edit, and select enable root mode
Once you have root mode enabled, you're ready to set up apktool:
tar -C /usr/local/bin -xvf <zipped file name> (for the second file)
Now to confirm it worked, type "apktool" no quotes
You should get a help menu for apktool
If so, you're good to go!
Now, once you have it set up, you're ready to go! After typing apktool, you'll see the help menu which'll give you the commands available for apktool, but I'll go over the basic ones here.
apktool d "apk path here" will decompile the apk
apktool b "decompiled apk path here" will build an apk from a previously decompiled one
apktool if "framework-res.apk path here" will install a framework res or any app really to allow you to work with dependent apps. For example, if you want to modify an HTC sense apk, you'll need to install the htc.resources.apk first through this method before decompiling the sense apk.
What if I have windows?
The steps will be very similar. See the apktool website I have listed above for a bit more info, but as I said, it's not too far off minus the having to get root access part.
This seems to complex, and I hate using commands! I wish there were another way....
Oh, but there is! *ends cheesy infomercial voice* Apk manager will give you a simplified setup, and all of the same features plus more; all you need is windows or linux.
Now, even will apk manager, you'll need to make sure you know how to set frameworks up and such, but it makes it much easier with its convenient scripts. If you have any questions, ask them here and I'll certainly do my best to answer them
Remember, once you have an apk decompiled with apktool or apk manager, you have the best chance to correctly edit .9pngs!
If you open the .9png in the decompiled app and edit it with gimp or photoshop while leaving the pre-drawn boarder there, you'll be able to recompile the apk with a properly edited and themed .9png
Sometimes, you have that pesky app that just won't decompile correctly. Usually, it's an app related to others, like a proprietary system app based off framework-res.apks.
When this happens, you need to ensure that the frameworks are there to have the app's recourse tables properly compile.
For either apktool or apk manager, find a folder on your computer called "apktool."
The should be a folder in here called "framework," and inside that, a 1.apk.
For an app that is dependent on the framework-res.apk in a specific phone/rom, take the framework-res.apk for that rom and rename it 1.apk.
Replace the default one in the folder with yours.
If there's a second one, like the twframework-res.apk for Samsung phones, rename it 2.apk and place it in the "framework" folder.
Now, decompile like normal, and everything should be good
Most applications on Android play nicely with both landscape and … more
31 Aug 2014
By Will Verduzco
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?