Android is what we use and love on daily basis. Android has been universally loved by its user base because it doesn't require excessive amounts of modification in order to get styles or themes running, unlike with iOS where it requires a jailbroken device that is capable of running code that the software does not support. With that being noted, Google or Android has been very nice and lenient to what software just works off the device that doesn't need root. While there is some more in-depth theming processes that do require but for a person who doesn't need root, I'm pretty sure they'll be happy for what they can customize and such.

Quote:Is a collection of properties that specify the look and format for a View or window. A style can specify properties such as height, padding, font color, font size, background color, and much more. A style is defined in an XML resource that is separate from the XML that specifies the layout.

Theme

Quote:Is a style applied to an entire Activity or application, rather than an individual View (as in the example above). When a style is applied as a theme, every View in the Activity or application will apply each style property that it supports. For example, you can apply the same CodeFont style as a theme for an Activity and then all text inside that Activity will have green monospace font.

You may have heard of the term 'root' or 'rooting' since you have owned your Android smartphone. You may ask yourself some questions like

What is root?

How do I go about rooting my device?

What can I achieve if I root my device?

To start off, I'll explain what root. Root is the process of allowing your phone to attain a superuser privilege that normally isn't on your device. If you don't understand what I just said there, picture yourself getting an error saying that you could not run your software because you are not the administrator on the PC. If you correlate that with Android, you basically have more authority of your phone. You can run applications that require root access along with going into folders that you could not normally go into. You also have access to execute permissions on your device along with other reasons. To read more about root and why you should root, please read the LifeHacker article here.

How would you go about rooting your Android device? It's pretty simple. You basically need the following information about your device:

The version of Android that you're running.

The model of your phone. (An example would be my phone [SGH-i747])

Afterwards you combine those two bullets into a search query on Google. More than likely if it is a well known device that you'll have some search results discussing how to achieve root for that certain model/version.

(Note:You need to have common sense when rooting your device. If a site has an exploit that isn't posted on XDA, it may be a bit to good to be true. Take your rule of thumb when looking at roots for newer devices. If you are unsure, simply use the XDA Developers forum which will usually give you a good response.)

A Recovery is a lightweight run-time environment separate from the Android operating system. The sole purpose of recovery is to do the following:

Apply software updates

To run another external tool/software from the Micro SD card

Erase the user data if he or she wants to flash another ROM in a clean manner. (The opposite of this is called 'Dirty Flash' which is just clearing the dalvik cache and then flashing it over the older firmware.)

If you want to go a bit more technical into what the recovery actually is; the operating system for the recovery is stored in the disk partition. Again which is separate from the Android partition which contains your kernel and system. The kernel that the recovery runs is not even Android related. If the Android kernel is broke, you are still able to access the recovery because it is on its own code. Plus it is separate from the system as we previously stated.

It is possible that your bootloader gets corrupt and it will not be possible to boot into the recovery. Once your recovery is broke, you'll need to do some hardware tweaking which is commonly known as a JTAG. (For certain devices the process of using a JTAG is different. You may want to research about your device on the internet before attempting to solder your device.)

Going forward, you have a few recoveries available for you to use. But you'll need to look if your device supports that recovery, along with if the ROM supports that recovery. To be safe you should just use either TWRP or CWM. But you do have a few alternative options:

Flashing is a term that you use to install or upgrade your kernel, ROM, GApps, etc. Flashing can be used in several different methods.

Note:You must have a custom recovery.You will also need a custom ROM that is built specifically for your device.Note:Some phones do not have SD card capabilities. It's recommended to use a SD card but if your phone doesn't have a slot, please keep backups on your PC. - Internal storage will work fine though if you do not have a SD card. Just forewarn yourself that you need to have backups in a safe location.

ROM Flashing

Obtain a ROM of your choice, many can be found in your devices development forum on XDA Forums or a alternate android development site.

Once you have downloaded the ROM File, mount your phones SD card and and copy over the .zip file.

Power off the device and then boot up to recovery, it is different per device. If you are unsure how to boot up to your Android device's recovery menu then look it up in the forums or other tutorials on your device.

In your phone's custom recovery bootloader, locate the menu options which allow you to wipe the phone. Whenever changing roms it is a good idea to make a Nandroid or BART backup first, then wipe Data/Factory and Dalvik-Cache before flashing the new rom.

Once your phone has been wiped go back up to the root of the menu and select 'Flash Zip from SD Card' the text may be different per Recovery.

Locate the ROM .Zip file you wish to flash.

Confirm the flash by following the on-screen instructions (ie: pressing the trackball, pressing the call button, etc.)

If no errors arise during the flashing process then the ROM flash was successful, Reboot the device.

RUU Flashing

Connect your Android device to your computer. Most ROM Upgrade Utilities (RUUs) are .exe files which will only run in Microsoft Windows natively or in Linux/Mac OS X via Wine

Download the RUU for your device, some can be found here at PCD Phones

Run the RUU with your phone plugged in to your computer via its USB cable.

Follow the RUU's instructions for flashing.

Unless errors arise your device is now flashed.

App Installs/ROM Feature Installs via Flashing

Some ROMs have added features that are available to flash.

To Flash the App/Rom Feature you must first download the .zip file.

Mount your devices SD card and copy the .zip file over.

Boot up to your devices custom recovery.

Wipe your Dalvik-Cache in the Wipe Menu. And then go back to the recovery's main menu.

This step may vary per device, there should be an option that says "Flash .zip from SD Card", select it.

What's the whole point of getting a custom ROM on my new phone? Well, there's a few options why you would want to get a custom ROM on your phone:

Customization

A more vanilla experience with Android

To remove bloat from the stock ROM that you are using

And much more!

The reasoning why you may have TouchWiz on your phone would be because Android allows OEMs (HTC, Samsung, LG, etc.) to personalize their phones to whatever they please. With them personalizing it, they also lock your user experience and it would require a community to develop a custom ROM, bootloader hack, root, etc. If you want to have a very pure experience that is freshly baked from Google Android's AOSP, you may want to look more into a custom ROM for your device. People who develop from the Android AOSP make the drivers and everything work from the Android AOSP. So you may actually get a better experience from an older device running a custom ROM unlike from your bloated stock Android device.

Before installing a custom ROM you'll need to administrate root access to your phone. Depending on your device processes are different. After root access has been enabled onto your device, you'll want to install a custom recovery. In short, a custom recovery is almost like a small operating system that lets you install or manage custom Android operating systems. The most common custom recoveries would be ClockWorkMod and Team Win Recovery Project) Note though that this is very specific for every Android device. To learn more about ROMs, you may click on the following colored links below and learn more.

Xposed is framework that allows you to customize your ROM, without compiling and decompiling any APK's, playing around with the root of the phone or flashing anything through the recovery. It can be installed through downloading the latest APK from their website (link). As with all processes that involve modifying anything in the base directory of Android, you will need to root your phone, will the information to do so is provided in the first post. Xposed, as itself, is only a framework, and so you must use the repository (or download from external sources) located within Xposed to download, install, and customize various parts of the ROM.

Installation:

Root your phone (Varies from phone to phone)

Download latest Xposed Installer (link below)

If downloaded Xposed on your computer, move the APK to your phone through whatever means is easiest

Make sure "Unknown Sources" is allowed on your phone, so that you may install APK's

Proceed with installing the application

Open Xposed Installer from the App Drawer, select the Framework meny, and select "Install/Update"

Reboot phone

IMPORTANT! Before installing Modules, make sure to Nandroid backup your phone (tutorial here). Do this every time, unless you are 100% sure that the module will work without fault on your device

To inststall Modules (be careful to download the right one, varies for each device), select "Download" inside the Xposed Installer and select which one, scroll to the bottom, and select download/install

After each install, you must enable the Module by selecting it in the "Modules" tab

After every acvivation/deactivation of a module, it is recommened to reboot your phone