Ads

Monday 24 February 2014

Computer Organization Unit 1,2,3 Complete

Saturday 22 February 2014

Object Oriented and Multi-core Programming Unit 3

How to increase internal memory of any Android device

Your phone must be rooted to do this. 
First of all,you have to partition your sd card.To do this:
  • Download Mini tool Partition Wizard from here.
  • Install the application on your windows PC and connect your sd card to the pc via a card reader.Your pc and the wizard will detect the sd card.
  • In the Mini Tool partition wizard,right click on your sd card and select delete.Note: Make sure you have backed up all the contents on your pc,as the sd card will be formatted during the process.
  • Now,you will have whole of the space on your sd card as unallocated.Right click on it and select create.
  • A popup will open,in that box,select the partition as primary,file system as FAT (if your sd card is below 4GB) or FAT32 (if your sd card is more than 4GB).
  • Leave about 512 MB or more space for the next partition.
  • Select done and right click on the unallocated space and again click create.This time too,select Primary but change the file system to FAT32,Ext2,Ext3 or Ext4 (FAT32 or Ext2 is recommended as most ROMs work fine with it)
  • Click apply changes and the process will take a few minutes, let it complete.
  • After the partitioning process is done, install Link2sd from Google Play or download and install the apk from here.
  • On the first launch, it will ask for root permissions and then, it will ask you the file system of the partition, choose the option according to what you choose in the partitioning steps.Sort the apps according to size and start linking them and congrats, your phone memory is being freed.Just make sure that all the 3 options in linking window are marked.Thus ,the new internal memory of your device = Your phone's default internal memory + Size of the ext partition you created above.
  • Benefits of it over the normal apps 2 sd feature is, even when you turn USB storage on, all the apps on your sd will keep working and so will be the widgets. And also, when you move apps to sd card normally, some part of the app is still on the phone memory. Linking the apps moves the full app to the sd card.

Thursday 20 February 2014

Is the Moto G woth the hype?

Moto G: Is the Motorola smartphone worth the hype?




After almost two-year-long of hiatus, Motorola on February 6 launched its much anticipated smartphone, Moto G, in the Indian market.

The smartphone is exclusively available online on Flipkart for two weeks and will be available in the market after that.

Now, what has been really creating wave through the months prior to its launch are the features and the tempting price of the smartphone - Rs 12,499 for the 8 GB variant and Rs 13,999 for the 16 GB variant. No other mobile phone company offers such tempting price for such variants.

Moto G also comes with a guaranteed upgrade to Google's latest operating system, Android 4.4.2 KikKat from the Android 4.3 Jelly Bean that it comes along with.

Much hype had also surrounded the Moto G especially after Google announced it was selling Motorola to Chinese electronic company Lenovo for USD 2.19 billion.

But with Motorola Moto G live up to its expectations and hype? 

To understand the matter, let's take a look at some of the features and specifications of Moto G. 

Moto G comes with a 4.5-inch HD display and is powered by 1.2GHz quad-core Qualcomm Snapdragon 400 processor with Adreno 305 graphics. With a 1280 x 720 pixels resolution and a Corning Gorilla Glass to protect it from scratches, Moto G also offers a 329 ppi pixel density which is even higher than that of iPhone 5.

It is water-proof both on the inside and on the outside —and this is one feature that sets it apart from the rest of the smartphones. A decent 5MP back camera with LED flash and a 1.3MP front-facing camera backs it up too.

Other tempting features include 1GB RAM, Google's latest operating system Android 4.4.2 KitKat and an irresistible price tag of Rs 12,499 for the 8GB variant and Rs 13,999 for the 16GB variant.

Other than the large internal memory, Google also offers 50 GB of Google Drive storage free for two years with the phone.

Therefore, there is no doubting the fans and critics who termed Moto G as the best budget smartphone. It is sure to give leading smartphone makers like Samsung and Apple a run for their money.

But then again, Moto G is not without its flaws.

A non-removable 2070 mAh battery that provides 24 hours of good usage, as claimed by Motorola, could be one of its negative aspects.

A non-removable battery? Well, it has been a trend for sometime. However, consumers and critics alike have never really be a fan of non-removable battery. Therefore, it is likely that it could have a negative impact on the sales of the phone.

Moreover, there is no room for expansion of memory with the help of external card. Yes, 8GB or 16GB is more than enough for a common user. But what happens when the memory runs out? In such a case, the phone's storage capacity is hampered due to the absence of a memory card slot.

And one more aspect that can be a stumbling block for Moto G is its 'average camera' performance. Though one must reiterate that it really is a decent 5MP camera.

Many phone makers such as Micromax and Karbonn offer better 8-12MP cameras on budget smartphone under Rs 15,000.

Though reviews and trial has reported a decent performance from the camera, it has also been suggested that Motorola could have done better.

And finally, a Motorola smartphone? 

Well, Motorola has never really been known for its smartphones in recent times especially when it went into a hibernation for almost two years. It would be hard for consumers to get used to it despite the fact that Moto G really offers excellent features at an irresistible price.

Moreover, now that Lenovo is buying Motorola from Google, what happens to the company and the smartphone, Moto G?

Regardless, there is no denying that Motorola Moto G is indeed one of the best budget smartphones in the market. 

What sets Android apart?



In order to make something great, it has to have something that sets it apart. In the tech world, this definitely holds true. With a Nexus phone, it’s the software. With a Galaxy Note device, it’s the size and specialized features. So what is Android’s stand-out feature?

Flexibility. When it comes to operating systems, there’s really no other operating system on the market than can match the flexibility of Android. It is possible to argue that some of the other Linux-based operating systems technically can match it in flexibility, but you’re probably going to need some serious technical knowledge to achieve the same results. Android makes it easy to customize your phone and change things up the way you like.

Let’s start with a basic flexibility factor: the home-screen. Android has a simple home-screen layout that stays the same across most devices. But if you don’t like that home-screen set-up, there’s nothing to stop you from changing it up entirely. Launchers are widely available that entirely change your home-screen. There are launchers that simply change it to a stock Android layout such as Nova Launcher. Then there are launchers like Chameleon Launcher that convert it into something else entirely.

Rather than changing the home-screen as a whole, you can change individual aspects of the home-screen.Icon packs are one of the many ways with which you can change your home-screen. The layout can be fully changed, and widgets can be added, re-sized and customized to your heart’s content. With Android, you can craft your perfect home-screen.

Deeper into the software, the entire OS can be changed. Practically any operating system that’s built on a Linux core can be made to run on an Android device. This is one of the most important features of Android. It’s spawned an enormous amount of alternative operating systems that are both based off Android and that simply run off a Linux core. The entire modding community behind popular custom ROMs such as CyanogenMod and Paranoid Android depend on this feature. It’s one of the golden pieces of the customizability puzzle.

Outside of software, customizable hardware is beginning to become a reality with Android. With the operating system being so flexible, it’s entirely viable to have modular hardware. That’s exactly what the plan behind Motorola’s Project Ara is. Modular hardware that’s entirely open-source can be paired with the open-source software that is Android. Theoretically, you could create the exact phone of your dreams with the flexibility of modular hardware and software. Best of all, it’s completely flexible to be changed whenever you feel the urge.

This flexibility is advertised, but it could be sold much more. Android’s flexibility is its golden feature–the highlight of the entire operating system. Google and manufacturers need to underscore that and make consumers aware of everything that their Android device can do. They need to show consumers that what they see isn’t just what they get.

Time for your input. Are you in agreement that Android’s best feature is its flexibility? Or is it something else?

Source AndroidandMe

Thursday 6 February 2014

Xbox One vs. the PlayStation 4: The battle to conquer your living room




If you start counting from the Magnavox Odyssey, we've been playing console games for seven generations now. Yes, it's crazy to think of, but it's even more alarming to realize that the industry has been in an all-out "war" since generation three. For better or worse, competition became a part of the hardware cycle. Now, as we kick off generation eight, we're seeing a very different kind of contest.
  
ENTERTAINMENT
  


Although Microsoft is currently fighting in what we call a "video game console war," gaming isn't the Xbox One's only focus. In fact, the console's announcement was widely panned for having an overbearing focus on television and media consumption.
  
Of course, if it weren't for the Xbox One's live TV integration, the two platforms' media offerings would be pretty square. This feature was practically the headliner of the console's announcement: Watch your cable television through your Xbox interface. It sounds almost silly, but it's actually quite impressive. Marrying the console's iconic interface with an IR blaster, the new Kinect sensor and an HDMI passthrough on the console's rear, the Xbox One allows you to control your cable box from its own dashboard. This includes voice commands, a channel guide, program search and the ability to create a favorites menu. The playstation feature most of the standard set of streaming apps. Interestingly none of them offer 3D blu ray playback at launch.
  
CAMERAS AND CONTROLLERS
  
Speaking of Kinect 2.0, it bears mentioning that it's at fault for the console's price tag. That's right the Xbox One's $500 price dwarfs the PS4's $400(INR 40000) sticker specifically because the next-generation Kinect sensor is included with every console. It let the company build a console interface littered with motion and voice control features, enabling users to turn their consoles on and off by simply speaking. Phrases like "Xbox on" and "Xbox, play Titanfall" are offered as easy, natural ways of interacting with your console. The device even claims to be able to recognize users on the fly, signing you in as you boot up the Xbox One and greeting other users as they walk in the room. Sure, it makes the console more expensive, but it also promises a richer experience for the price.





 The PlayStation 4 has a motion-tracking camera too, but owning it is strictly optional. This isn't a bad move either  it unburdens uninterested users from a higher price tag, but still leaves them with the option of tacking it on later. Of course, this means developers will be less motivated to build experiences with the PlayStation 4 camera in mind.
  
At first glance, each of the console's updated gamepads doesn't look too different from their predecessors, but there are some hidden gems here. For instance, the PlayStation 4's DualShock 4 controller features a new share button (more on that later), and clickable touchpad area reminiscent of the PlayStation Vita's rear touch panel. It also doubles as a motion controller, though you'll need to pick up the aforementioned PS4 camera to track the PlayStation Move-esque LED on the gamepad's front edge.

On the surface, Microsoft's updated gamepad seems like little more than a refined variation of the Xbox 360 controller, but it actually houses a subtle evolution in tactile feedback: Impulse Triggers. In addition to the classic controller rumble, Xbox One users will be able to feel localized force feedback under each of the gamepad's triggers, which can lend depth to driving cars, firing weapons or even feeling a character's pulse.

THE SECOND SCREEN

It's still not clear if the idea of the "second-screen experience" will stick, but it's certainly gaining ground in this generation of gaming consoles. The idea is to augment the gaming or TV experience with a separate device, which, in Microsoft's case, means any tablet or phone equipped with its Xbox One SmartGlass app  although the experience itself changes depending on what the user is doing.

The PlayStation 4 companion app (available for iOS and Android devices) seems much simpler by comparison, offering remote use of the PlayStation Network and some light second-screen functionality.





No, the PS4's real second-screen device is the PlayStation Vita. Like the PS4 companion app, there aren't any games that really use the Vita as a "second screen," but the handheld's Remote Play feature easily makes up for it. When linked to the PS4, the Vita can completely take over the console experience, allowing users to transpose the system's next-gen gaming experiences to the small screen

 EXCLUSIVE GAMES



If software moves hardware, then Microsoft is building a stronger case for day one. At launch, the Xbox One is slated to have more than twice as many exclusive (retail) games than the PlayStation 4, including Dead Rising 3, Forza Motorsport 5 and Ryse: Son of Rome with the heavily anticipated Titanfall joining them within the console's launch window. By comparison, Sony's camp hits the ground with only Killzone: Shadow Fall and Knack under its exclusive banner, eventually to be followed by Driveclub and Infamous: Second Son. Buying a console on software alone is still very much a matter of personal preference, but make no mistake: PS4 owners will be dipping into the multi-platform releases a little sooner than their Xbox One counterparts .Also a good point to note is that most of the multi platform games such as tomb raider ,COD etc are locked at 30 fps for the xbox one, which give the PS4 a advantage when it comes to third party games as it runs them at a cool 60 fps.


HARDWARE





Everything else aside, hardware does matter. In this case, there's even a clear victor  at least on paper. Crack open either console, and you'll find an AMD APU with an eight-core Jaguar CPU at its heart. A slightly higher clock speed (1.75Ghz compared to 1.6GHhz) gives Microsoft's console a technical leg up, but these two rigs essentially share the same processor. Users aren't likely to see a difference in performance. The story flips when it comes to the graphics kit, however: Although both units use similar AMD Radeon graphics cores, Sony's features 18 compute units to Microsoft's 12. The PS4 is also equipped with 8GB of GDDR5 RAM, outclassing the slower DDR3 chips installed in the Xbox One. Although the minute technical differences can be a bit confusing, they do matter.

It's in Sony's exclusive games that the hardware stands to make a difference; games built specifically for the PlayStation 4 have the potential to visibly outshine the Xbox One's best efforts. It won't be enough of a graphical gap to give Xbox loyalists significant pause, but it exists, and it's worth noting.

WRAP-UP
Sony and Microsoft have left consumers with a tough choice. Both systems promise excellent gaming experiences and new features that push the industry forward. On one hand, you have the PlayStation 4 toeing a traditional line of hardcore gaming: It features raw power, social sharing and a controller that's trying to be more than your typical gamepad. Across the aisle, Microsoft's Xbox One presents a unified hub for all of your media experiences, wrapping them in a highly stylized voice- and motion-controlled dashboard. With great exclusives and tons of multi-platform titles bound for each system, it's hard to say which console will come out on top.

CREDITS - Rohit Kumar H
 



Saturday 1 February 2014

Convert videos to images with FFmpeg.

Convert videos to images with FFmpeg

FFmpeg is a wonderful do-all audio/video transcoding tool and it can also be used to extract images from video. Grab the latest Win32/static version from tinyurl.com/lrcvz7k and in the \bin folder, you’ll find the ‘ffmpeg.exe’ command line executable. Start by opening up Windows Explorer and launching a Command Prompt within that ‘\bin’ subfolder (hold down the Shift key, right-click in the ‘\bin’ subfolder area and select ‘Open command window here’ from the context menu.) Next, use the following command line:
Ffmpeg –i “c:\path\to\file\video.file” –r 1 –s 480x480 –f image2 “c:\path\to\image-=.jpg”
Here’s what that does:
  1. -r 1 tells FFmpeg to capture one frame per second of video.
  2. -s 480x480 tells it to create 480 x 480-pixel images from each of the captured frames.
  3. -f image2 tells FFmpeg to create images from each captured frame.
  4. image-=.jpg tells it we want images stored numerically with three-digit numbers created in JPEG format.

Replace \path\to\file paths with the appropriate paths for your files.
It’s important that you include the full path to your video input file and the location where you want the images stored. If the file path includes any spaces, you must surround the whole path with double quote marks; for example: ffmpeg –i “c:\new path\videonext.avi” . If you don’t, it won’t work. Also, the save location folder path must exist already — FFmpeg won’t create the folder for you and will simply fail.
The other important thing is that the frame size you select will also set the aspect ratio. For example, 480 x 480 pixels will produce square frames that will probably look a bit ‘tall’. In this case, 480 x 270 or 720 x 406 would be a better option if you’re using a 16:9 aspect ratio video. For 4:3 aspect video, you’d use something like 480 x 360 or 720 x 540. Just divide the horizontal resolution you want by 1.7778 to get the correct vertical resolution for 16:9 video and by 1.333 for a 4:3 video.

Bake your own custom rom for android device PART 4

Welcome to part 4. 
In this class, we’re taking a slight detour to look at one of the more interesting parts of creating your own ROM and that’s adding your own custom bootup screen animation. While there are plenty of boot animations on the web you can mod yourself, nothings better than creating your own boot animation from scratch.
The boot animation is the video-like display you see when you first turn on your smartphone or tablet. They can be made as simple or as complicated as you like, but whether you make yours a single image or a video-quality animation like CyanogenMod, the process is still the same. And it’s reasonably simple to do. At the most basic level, all you need is an image editor (anything from Windows Paint to Photoshop will work), a text editor and some creativity.
How it works
An Android boot animation is a pretty simple affair: all it is is a ZIP file that contains a series of JPEG images in specific subfolders, which the device ROM loads and displays, as described by the text-based descriptor file.
While clever animations like the CyanogenMod splash may look like a video playing, they’re just a series of discrete images being played at a set resolution and frame rate. All of this information comes from the descriptor file.
Build a descriptor file
The descriptor file is the ‘desc.txt’ file in the root of the ‘bootanimation.zip’ file and its structure is fairly basic. The first line contains three numbers: the horizontal resolution in pixels, the vertical resolution in pixels and the image display frame rate in frames per second (fps). Let’s say you’re creating a boot animation for a smartphone. In that case, you’d set it up to display in portrait mode, in which case your first line would be something like this:
480 800 10
This means a 480 x 800-pixel frame size displayed at 10fps.
After that, the following lines describe the various animation sections and how they’re displayed in sequence. While the frame rate is fixed by this first line, you can split your animation into sections and display each one differently — you can choose the number of times each section is played or repeated before the next section begins, you can set the delay in seconds before repeating or moving onto a new section, and you can set the subfolder location for the pics of that section.
There doesn’t appear to be a limit on the number of animation sections you can have, although you don’t want it to go on for two hours either. For example, the code to display three sections of animation could look like this:
p 1 0 part0
p 2 3 part1
p 0 0 part2
Decoding those lines, the first says play (p) once (1) with zero delay afterwards (0) the images in subfolder (part0). The second line says play (p) twice (2) with a three-second (3) delay after the images in subfolder (part1). And finally, the third line says play (p) repeat infinitely (0) with zero delay afterwards (0) the images in subfolder (part2).
The images in those subfolders need to be numerically sequenced; for example, ‘image001.jpg’, ‘image002.jpg’, ‘image003.jpg’ and so on. Make sure you include those leading zeros, otherwise you’ll get strange things like ‘image10.png’ being played before ‘image2.png’. That’s because the system is designed to logically think ‘1’ comes before ‘2’, even if it’s meant to be ‘10’. The last thing is to make sure you leave an empty line at the end of the file.
How you create those images is entirely up to you. The simple, slow way is to create and save the images one by one. The alternative is to extract them from a video using a video-to-image extraction app. The command line audio/video transcoding app FFmpeg can do this.
While it won’t necessarily work for capturing frames from videos, one tip we do recommend if you’re creating animations from scratch is to follow the square frame size used by CyanogenMod. We like this option because you don’t need full-screen resolution for an animation to look good, and using a square frame will allow you to still achieve a high-resolution look without needing to update more screen pixels than necessary. That cuts down on the CPU time required, ensuring your device spends most of its time loading the ROM, which is really what you want anyway. The only other thing that we think helps is if you’re making an animation from scratch, start with a black background — it just looks better.

Playback speed
When creating your own boot animation, one of the first things to think about is how many images you’ll need. Remember, it’s just a splash display to give you something to look at while your phone is booting up, so you don’t really want 1080p images displaying at 30fps, otherwise the phone is spending more CPU time playing an HD-grade animation, slowing down the bootup process. Also, older phones have less reserves of CPU power available to play animation, so you need to consider these things when working out how complex to make your animation.
Since the frame rate in the first line sets the playback speed, it’s also the number of images you’ll need for each second of play. So clearly, creating a 10fps animation takes a lot less work than a 20fps one.
But how high a frame rate for a boot animation is too high? In the end, it’s not necessarily how high the frame rate is, but how many pixels your phone has to display each second, since that’s what the CPU is effectively doing; for example, a 1,080 x 1,920-pixel animation at 5fps equals the same number of pixels as a 480 x 800-pixel animation at 27fps. Obviously, your device has to have a screen size that can display the whole animation frame, but overall, you want to err on the side of simplicity. This is one case where it’s good to think less is more.
Compress the file
The last step to making a functioning animation file is to compress the ‘desc.txt’ file and image subfolders into a ZIP folder. You can use 7-Zip for this, but most importantly, remember to use the ‘store’ option only. You don’t actually want to compress anything, otherwise the ROM won’t be able to open and retrieve the files. When you’re done, load it into Boot Animation Factory to test that it works as you expect.
Add your animation to the ROM
Depending on your device, this can be complicated. Android Kitchen has an option for adding custom boot animations into your ROM. Go to the ‘Main Menu’ in the Kitchen, select ‘00’ for legacy options and then ‘27’ (add custom boot animation functionality). This will enable the ROM to look at the ‘\data\local’ subfolder. Next, copy the ‘bootanimation.zip’ file into that subfolder, which should be located in ‘WORKING_<date>_<day>’ folder and that’s it. The rest will be done when you build the ROM.
However, Samsung uses a proprietary animation system that works differently. If you’re working from a stock Samsung ROM (we’re using a Galaxy S3 ROM in this masterclass), here’s what you do.
  • Check the ‘\system\bin’ subfolder in your ‘WORKING’ ROM folder and look for the files ‘samsungani’ and ‘bootanimation’.
  • Download ‘bootanimation4u.zip’ from the bottom of the first post at tinyurl.com/ncjhcwl. Unzip it and inside the ‘\system\bin’ subfolder of that ZIP file, you’ll find replacement ‘samsungani’ and ‘bootanimation’ files. Back up the originals of these files from the ‘WORKING’ folder and copy these replacements over the top.
  • Grab your newly minted ‘bootanimation.zip’ and copy it into the ‘\system\media’ subfolder.
  • Build your ROM.
If you look in the ‘\system\media’ subfolder in your ‘WORKING’ folder, Samsung stock ROMs use a proprietary boot animation format for most things. The fix we’re using here allows Android-standard ‘bootanimation.zip’ files to also be used again.
We tested this technique with our Samsung Galaxy S3 phone, flashing a custom ROM built from a Samsung stock release with modded ‘bootanimation.zip’ support and it worked the first time. If you want to go back to the genuine boot animation, just replace the ‘samsungani’ and ‘bootanimation’ files you added with the originals you backed up in step 2 above.
to be continued...



Bake your own custom rom for android device PART 3

Welcome back to the third part.....

I'm gonna directly continue my previous article here so...

Another option you can add to your ROM is BusyBox. It’s a tool that combines hundreds of Linux command line tools into one app, such as the commands mkdir (make directory), mv (move), gzip (file compression) and loads more. Do you need it? If you’ve never used the command line before, then probably not, but it’s as close as you’ll get to turning your Android ROM into a more Linux-ified operating system. BusyBox doesn’t turn your Android ROM into a generic Linux distro, it just gives you access to those Linux command line apps.

If you don’t root your ROM, there’s little reason to install BusyBox because the program needs root access. However, if you do root your ROM, installing BusyBox is a good idea as some root access apps need access to BusyBox commands. Also, you’ll likely need to install a Terminal emulator to run BusyBox commands. You can grab Android Terminal Emulator from Google Play.

For me, the fun bit of making/baking your own ROM is choosing to add — or remove — apps and truly making it your own. In the case of Samsung’s most recent Galaxy S3 ROM at the time of writing, it could be that you simply want to reduce its huge 1.2GB size into something a little more manageable by removing some of the apps you neither want nor need.
When you create an Android app using the Android SDK and the Eclipse IDE, you end up with a single APK archive — essentially a ZIP file — which you can then install onto any appropriate Android device. Apps baked into a ROM are just packed in as their original APK files, which greatly simplifies both adding and removing apps.
When Android Kitchen pulls apart your initial ROM file, it puts everything in a subfolder of the /home/<username>/kitchen/ path called ‘working’ following the date and time; for example, /WORKING_061913_181512/. Bundled apps are stored in the /system/app/ subfolder; however, inside that folder you’ll probably find not only APK (Android Package) files, but also ODEX files, too.

Now is a pretty good time to introduce the idea of the ODEX file and the concept in custom ROMs of odexed and deodexed apps. When you create an Android app using the standard Android SDK/Eclipse compile method, you end up with a single APK archive file; inside that file is a ‘classes.dex’ (Dalvik Executable) file. It’s essentially the compiled part of your Android app. We could spend days talking about the heart of Android — it’s a Dalvik virtual machine — but keeping perspective, all you need to know for now is that the DEX file is run by the Dalvik virtual machine, so it’s a key part of your app.
That all exists inside the APK archive. The ODEX file is an optimised Dalvik executable. It’s compressed and contains parts of the app that Android can load when it boots up so as to speed up app loading times. Remember how it’s often been said you shouldn’t empty Android memory? This is one of the reasons why — the memory is loaded up with these ODEX files. However, there are issues with odexed apps. First up, your app now exists as two separate parts: the ODEX compressed file and the APK archive. While it’s easy to rip inside an APK archive, ODEX files are much harder to get into. Also, ODEX files get moved to another location when your ROM is installed, so you’ll then have two locations of app files to sort through to fully remove an app if you tried to do it post-ROM install.
A deodexed app is one where the ODEX file has been decompressed and its components put back into the APK file as a standard ‘classes.dex’ file. If you write your own Android apps using the standard Android SDK/Eclipse IDE method, no separate ODEX file is created so essentially, your apps are already deodexed.
The bottom line is odexed apps supposedly load faster; deodexed apps are easier to manipulate.


There’s one other trick that can make up for that faster loading time difference between odexed and deodexed apps and that’s called zipalign. Google recommends that every app developer runs their final key-signed app through the zipalign command line tool before uploading it to Google Play. It’s a way of ordering the contents of the APK file so that all uncompressed raw data (images or whatever) are aligned on four-byte boundaries. In short, it reduces the amount of RAM an app chews up when it’s running.
So in the end, its suggested that deodexed zipaligned apps run just as fast as odexed apps, but with lots of advantages: you get an app that’s a single APK file, it’s stored in one location, it’s easier to manipulate and it uses less RAM. For these reasons, you’ll find most custom ROMs are both zipaligned and deodexed for your Android computing pleasure.

If you’re wondering what all that has to do with customising ROMs, go back and re-read it. At the very least in our context, it means that to remove an app, if you see an APK file accompanied by an .ODEX file of the same name in the /system/app/ folder, you need to remove both.
The next big question is: which apps do you remove? If the ROM has been built well, the apps should still have their clear-language names, so you’ll get some idea as to what they do. The best way, though, is to go through your ROM’s /system/app/ folder, look at each app, research what it is, what it does and where it comes from. Based on that, you can decide whether it stays or goes. If that sounds too complicated, well, with over 800,000 different app possibilities you could find in your ROM, that’s the only sane way to do it. As it is, our test Galaxy S3 has some 355 files and 570MB of apps in that folder to go through.
Here’s a quick tip: set your Thunar view of that folder to show the largest files first. That way, you research the largest files first that can gain you maximum space by removing them. Notice we’ve been saying ‘remove’ not ‘delete’ — ideally, you should just move these unwanted files to a folder outside of the Kitchen’s working folder for safekeeping. Why? Rather than starting the Android Kitchen process from scratch, it’s always easier to just add in any apps you’ve removed.
If you have a Samsung Galaxy device, there’s a list over at the xda-developers.com web site that gives you a pretty reasonable starting point for apps you can remove. By the looks of it, it’s quite aggressive in its suggestions and we can’t guarantee it won’t stuff up your ROM build, but if you need a starting point, head to this XDA Developer's forum thread.
Android Kitchen options
Note that Android Kitchen doesn’t need to know anything about apps you add or remove — you do all of this in the file manager of your Linux distro (Thunar if you’re using Xubuntu like me).
When you’re done with that and go back to the Android Kitchen menu, you’ll see option ‘5’, which is to zipalign all APK files to optimise RAM usage. Hopefully after our discussion, it now makes sense what this does and why you’d want to do it. The following option (‘change wipe status of ROM’) determines what the ROM will do to your onboard data when it’s flashed onto your phone. The default option is ‘do nothing’, meaning it won’t touch your existing data and will be like doing a Windows upgrade rather than a fresh install. The alternative is that installing the ROM also wipes your data from the phone.
As we said, the default is to do nothing, but if you decide you want data removed as well, you need to tell users that’s what your ROM does if you decide to distribute it. In reality, we don’t think there’s a need to wipe data upon ROM installation, as it’s easy enough to reset a phone within the Android OS itself if it’s later required.

Rebuilding the ROM
Finally, the last step we’ll look at is simply rebuilding your ROM. To do that, you just select option ‘99’ from the Android Kitchen menu. The great thing is that the Kitchen maintains your working folder even after the ROM build is complete, so you don’t have to disassemble the ROM every time you want to come back to it to modify it.
Building your ROM will take some time, of course, but it’ll appear in the ‘OUTPUT_ZIP’ subfolder as a ZIP file ready to install onto your phone using your phone’s ‘Recovery’ menu (and ideal option is something like ‘ClockworkMod Recovery’). We’ll look at this and other ROM customisation options next time.
Just remember that flashing your Android device with a customised ROM will void its warranty. We won’t be answering emails or requests for help, so if you do make and flash your own ROM, you do so at your own risk.
To be continued...

Bake your own custom rom for android device PART 2

Welcome back guys...
In the first article, we looked at building the platform,installing the android kitchen and finding appropriate roms.Please refer to the previous article .
We won’t go over the whole thing again, but the idea is that even though the Android Kitchen app we use requires Linux, you can do all of this on a Windows computer by creating and working inside a Linux virtual machine.
Finally, be aware that Android Kitchen doesn’t support ROMs for every Android device — you can find the compatibility list and the app’s home thread over at XDA Developers Forum.
So lets continue,
The very last thing we did in part 1 was look at how to grab a ROM file for a Galaxy S2 smartphone and how to get the Android Kitchen to disassemble it into a working folder.
Remember that Android Kitchen is a Python-language/Java-powered script that allows you to take an existing ROM, pull it apart, make changes and stitch it back together again so you can load it into your compatible phone or tablet. This time, we’re going to switch over to Samsung’s Galaxy S3. Samsung’s ROMs for the Galaxy S3 certainly aren’t small — they measure up at around 1.2GB, so it’s no wonder there isn’t quite as much internal storage available as you might have thought.
I'm taking samsung roms because these devices are easy to manipulate with .Plus i'm comfortable working with with samsung devices.

Getting the right ROM file

In some ways, the most complicated part of the process of creating a custom ROM is actually finding the right ROM file — not just the right ROM for your particular Android device, but the right archive file in that ROM download. For Android Kitchen to work, what we need is the basic ROM TAR file. TAR is roughly the Linux equivalent of an ISO image in Windows — it’s a single file archive containing lots of files inside it, but it retains the file system of those files. However, sometimes you’ll find ROM TAR files stored as ‘TAR.MD5’ files, which Android Kitchen can’t recognise. The solution is nice and simple — just drop the ‘.MD5’ bit with a simple rename in the Thunar file explorer so that you end up with a TAR file again and you should be fine. That file needs to be copied to your /home/<username>/kitchen/original_update/ subfolder. Remember that Android Kitchen can’t work if your username has spaces in it. You must move the kitchen file path to /home/ instead. 
With the ROM TAR file in the right location, you can launch Android Kitchen (open a Terminal inside the /kitchen folder and run ./menu ) and select option ‘1’ to create the working folder from your ROM. Follow the basic prompts (you’ll need your username’s password) and when you’re done, you’ll get an info panel on what extra features are inside your ROM.


Now that you’re set up, the first thing you’ll want to do if you’re customising your own ROM is to give it root access. Root access allows apps to access the root folder of the Android operating system to perform extra features not normally allowed by Android. For example, you need it if you want to run Samba Filesharing, or if you want to connect your PlayStation 3 DualShock gamepad to your phone via Bluetooth. You may just want it because you don’t like being locked out of your own phone.
There is a security downside in that if you can get to the root folder of your phone, so can any rogue app . However, it’s one of the ‘use at your own risk’ features of most custom ROMs like CyanogenMod.


When you’re ready to add root access to your ROM, press ‘2’ on the main menu. As soon as you do, you have to decide which superuser app you want installed. Superuser is essentially an app that allows you to control how other apps interact with your root access. The most common option you see in custom ROMs is the app named Superuser, although this free version is fairly limited. The alternative is called SuperSU and is more for Android fanatics, with more options and some nice extras including claimed greater notification speed.
If you’re just after the ability to run apps that need root access, Superuser is fine and all you’ll need. If you’re a more serious user, give SuperSU a go. To make your choice in Android Kitchen, press C for SuperSU or D for Superuser.
To be continued