Saturday 18 August 2012

Android application design tutorial - Part I

Android is cool !!! yeah .. It's cool until application developers made their applications really cool. Let's start to design a cool android application by learning the simple but powerful basic principles of android application design.


  1. Delight the user with a well placed animation, well timed sound and with a beautiful surface.
  2. Allow users to directly interfere with real objects rather than buttons and menus.
  3. People like to be at home. Allow people to add their personal customization while keeping the application performance smooth.
  4. Learn users preferences over time. Don't ask them to make the same choice over and over again.
  5. Give notifications short but self described. Pictures worth 1000 words.
  6. Make important things first and fast.
  7. Take the best guess on behalf of the user. That prevent user from selecting from a large list. But keep the final say to the user. 
  8. Save users timely efforts constantly and let them to access them from everywhere using the cloud.
  9. Give feedback on actions. Even if it is just a subtle glow of an icon.
  10. Do the heavy things for the user. Make novices feel like experts by enabling them to do great things.

Top 10 things you should know before rooting your Android phone

"Android" has turned out to be the latest addition to most of the languages. It is that much popular and that much common. Once it is that much matured, there comes the new terms. "Rooting" is one of the terms that has tightly coupled with the Android. It doesn't matter if you are a new user or an experienced user of the Android platform, "Rooting" is a new term that will give you some challenges. This post will help you to face those challenges.

What is "Rooting"?

It is the method by which you take the total control of your Android device. In other words, It will allow you to become the super user (or Administrator in your PC) of your device.

OK. Now you know what is Rooting. Is that so? Do you know about rooting? I bet you don't. Keep reading.

Advantages of "Rooting" your Android device

  1. It allows you to install custom operating system versions (Custom ROMs) to your android device. That will allow you to do change the look and feel of your device for your preferences. There are so many custom ROMs available for free, that will give you a really fascinating experience.
  2. It gives you the ability  to backup all the data and applications of your device in to an external storage card. This will help you to restore your system if you experience any system failures.
  3. It allows you to install thousands of great applications which are not in the Google Play store.
  4. It give you the ability to underlock the processor to save the battery of your device. Since most of the Android devices are highly power consuming, this make your life easier.
  5. It allows you to install applications on an external storage card instead of taking the internal memory. This will give more memory to run your system and will increase the responsiveness (or speed) of your device.
That's great. I think now you are waiting for the "HOW". But wait a moment and continue reading.

Challenges you will face with the "Rooting" process
  1. If the rooting process "FAILS", sometimes you may lost your device totally or you may need to pay some money for repair. But that is far less probable since this process has been well matured.
  2. It will make your warranty card useless. Anyway these warranty cards are 99% useless.
  3. It makes your phone disqualified for getting OS updates Over The Air (OTA). This will not be a major issue, since there are so many updates going with your custom ROMs.
  4. It will make your device "Not so Stable", since these custom ROMs are not hugely tested as the original OS updates. But that's why we say it as a "Challenge".
Have you changed your mind? If not, continue reading and look for the "HOW". 5+4 is 9. Here is the last one.


Thursday 16 August 2012

Top 5 features of Windows Phone 8 that will challenge Android 4.1 JellyBean and Apple IOS 6.0


1. Home screen

One of the most visible improvements in the new Microsoft phone OS is the updated home screen. The tiles are still there, but now they are more dynamic, and dare I say, usable. One of the issues with the Metro-style home screen on Windows Phone was that the promise of live tiles never really came to pass.
First-party apps did some neat stuff by showing off your pictures or social content, but third-party apps failed to take advantage. It was hard to justify adding huge tiles to your home screen that didn’t really do anything useful. The new home screen allows you to resize tiles, like the Windows 8 Start Screen, and the tiles will go all the way to the edge of the display — no more of that odd gap on the right side.

WP8 Home

The other big change is that when the size of the tiles is changed, the data it displays will be different. For example, if your SMS tile is small, it will only show an unread count. Make it bigger, and you get the text of the message right on the home screen.
This is all very cool, but Android is still the king of ambient information with its robust widget framework. Android added resizable widgets in Android 3.0, and many of them have additional capabilities like direct playback control and flick scrolling. Android is far more customizable, but it still differentiates between icons and widgets. Windows Phone has found a way to combine the two concepts in a way that makes sense.
On the other end of the spectrum, we have iOS. Apple has resisted calls to make the home screen more customizable. In fact, the iPhone home screen experience is almost unchanged from its 2007 debut. App icons do have badges to show notifications, but that is the extent of ambient information without opening Notification Center where you have a few pseudo-widgets.



2. Core software

Much of what makes Windows Phone 8 new and different is made possible by the switch to from the Windows CE kernel to NT. That’s the same code that runs at the heart of desktop Windows, including the upcoming Windows 8. Microsoft has confirmed that all the Windows Phone 7.5 apps will continue to work on Windows Phone 8, but that’s where the similarities end.
surfaceWindows Phone 7 used a controlled development environment relying on Silverlight and XNA. It was easy and user-friendly, but it lacked the power that many developers wanted. There was also little to no opportunity to reuse code from other platforms. With the new OS, say goodbye to all that.
By moving to a new framework, developers will be able to make use of native code in C and C++ along with SQLite and DirectX to make better, faster apps. Microsoft’s big advantage here is that developers will be able to reuse large swaths of code from desktop Windows on Windows Phone, especially on touch screen devices like Surface. Many Windows 8 programs will simply work on Windows Phone 8 without any modifications at all.
All of the best games on iOS and Android are written in a similar way. Apple gives developers simple tools to access the hardware in Xcode, which is why games run so well on that platform. The limited hardware ecosystem makes it easy to target devices.
Android development is a little more unusual. Android runs a modified Linux kernel at its core, but there isn’t any cross-compatibility. Most apps are coded in Java, which is non-native. However, the platform does support native code for more intensive apps. Hardware differences make this a little trickier, but the support is there.

3. Hardware support

Windows Phone has taken some bruises for having limited hardware support. The system itself was reasonably fast, but users are increasingly demanding multi-core processors, HD screens, and real SD cards. Well, Microsoft is delivering on all that thanks to the previously mentioned switch to the Windows NT kernel.
Both dual- and quad-core processors are on the table, which will look nice in those spec-sheet checkboxes. I would consider the expanded resolution support to be much more significant. WVGA simply isn’t going to cut it anymore, so Windows Phone 8 will also have support for WXGA (1280×768) and 720p (1280×720). That kind of panel will make the crisp lines of the OS stand out all the more. All those pixels might even make use of those beefier processors.
snapdragon-processorAndroid and iOS have had support for higher resolution screens for some time now. Apple famously coined the term Retina display with the iPhone 4, and Android phones since leapfrogged it with 720p screens. At this point, all three platforms have stellar screens. The only slight edge might go to Android, which has the advantage of faster innovation in hardware. A 1080p phone? If you want it, Android will deliver sooner.
The NT kernel will also enable real SD card support, not that strange half-hearted unified partition method Microsoft used in the early Windows Phones. This will put Windows Phone on even footing with Android, and ahead of iPhone, which uses all-internal storage.




4. Wallet and Maps and Skype

Two new apps in Windows Phone 8 are a direct challenge to Android and iOS. Wallet, not to be confused with Google Wallet, is a unified NFC payment platform and credit card manager. This is a fusion of Google’s faltering payment system and Apple’s newly announced Passbook app. NFC-equipped phones will be able to interact with Isis payment systems at some point in the near future — Microsoft was a little dodgy on the details.
Wallet
Bing Maps is no more in Windows Phone 8. Instead, Nokia Maps will be aboard all WP8 devices. From the Lumia phones we learned that Nokia Maps is a nice app, and this move will bring turn-by-turn navigation and offline maps to all Windows Phones. This matches what both Android and iOS are doing with their respective map solutions. Having not seen the new iOS Maps or Nokia Maps on WP8 in action, it’s hard to say who will come out on top. It’s going to be the experience of driving with these systems that makes or breaks it. Android’s maps are fantastic, though. Apple and Microsoft have a lot to live up to.
Windows Phone will finally have Skype properly integrated with the system. You’ll still have to download the app, but it will receive calls and work with the dialer like the regular phone app. Android’s system of app interoperability allows similar functionality with any VoIP app. Apple’s iOS lacks proper VoIP integration, but Facetime has the video calls taken care of.

5. Clean updates

Windows PhoneApple updates everything, but removes some features to spur device upgrades. Android has a scattershot approach to updates hobbled by carriers and OEMs. Microsoft promised the best of both systems with a unified ecosystem run by Redmond. Well, that didn’t happen. We now have confirmation, once and for all, that Windows Phone 7 and 7.5 devices are not getting Windows Phone 8. Microsoft is calling do-overs again.
Android’s update system is a mess, but you know going into it how bad things can be. Although, there is always the option of rooting and custom ROMs. Apple takes care of you, but really wants to make the upsell. You know that too.
Can you trust Microsoft’s assurances about device updates this time around? I don’t know how many Nokia Lumia 900 owners will be willing to give Microsoft the benefit of the doubt now. The bright spot may be that so few people have jumped onto the Windows Phone bandwagon that, in absolute terms, Microsoft isn’t going to alienate too many people.


Wednesday 15 August 2012

Can I unlock my Android mobile (locked by the operator) by rooting the device


No you cannot unlock a network lock by rooting. They are two different things.

A network lock is quite complex, it can be lock in a combination of ways...

1) Mobile country code (locked to a country's mobile network)
2) Mobile network code (locked to a mobile phone provider's network)
3) Mobile station identification number (SIM lock to a specific phone)



Most common is a mobile network code used by AT&T to lock iPhones users to their AT&T network. And mobile station identification number used by Verizon - to lock user of WCDMA/CDMA phones to their network. In this case the SIM card is enclosed in the phone so you don't have access to it.

Rooting an android phone is a different animal altogether. Rooting gives you administrative user level access to the software of the android phone. It is similar to jailbreaking on Apple iDevices.

With administrative user access to your android phone you can...

1) delete applications that have been installed on your phone by your network provider that you don't want to use (usually adware/bloatware/trialware).
2) back up your phone operating software including all the applications that you have installed to your SD card (usually xRecovery or Titanium Backup)
3) install custom ROMs specifically designed to run on your android phone - for example Cyanogen 2.3 Gingerbread ROM for Xperia X8.
4) use applications that require root access, for example tethering applications to create wifi hotspot using your phone's 3G network so you can surf the internet with your laptop.

How to hard reset your android phone

I have mentioned in a previous post about how to unlock your phone when you have forgotten your lock pattern. In that post i have mentioned that you need to hard reset your phone, If you forgot everything which needs to get back your lock pattern.

This post will provide you a solution to hard reset your android phone, when you lost every other method to bring back your phone. This method is basically for Google G1 android phone and this may work on other devices as well.




Generally a hard reset to your mobile phone includes some codes or procedure to format and this method require a few ideas and technical buddies can easily do this. The process is equivalent of re-installing an operating system on your PC. Note that data on your SD card still remains and you would need to follow another process to remove it.
With the hard reset, you need to re-download your applications and settings and follow the procedure mentioned below to get a hard reset for your phone –
  1. Turn Off your mobile phone.
  2. Hold the HOME button and RED Power button for 30 seconds until you see a triangle with an exclamation mark at the centre. Keep holding it even though the G1 logo shows up.
  3. Now you have the following four options –
    • ALT + L Toggle log text display between exclamation and menu options
    • ALT + S Apply SD card Update
    • ALT + W Wipe data and factory reset
    • HOME + BACK for reboot of your mobile
If you hard reset your mobile phone then you need to re-register your mobile phone.

How to unlock your android phone when you forget your lock pattern

How this can be happened?

If you are an Android user, you would really like the android locking mechanism provided by the lock pattern method. That looks really cool !!!
Let's say one of your friends have told you about this for the first time and you have set the lock pattern on your phone. After some time you may have suddenly forgotten your lock pattern. What you are going to do?

What you should do to overcome this weird situation?

 If you have entered the wrong pattern five times then you need to wait for another 30 seconds to unlock the device. If you forgot you screen unlock pattern then you need to reset it. The simple procedure is mentioned below –
Pattern Unlock
  1. Continue to enter the unlock pattern five times until you are prompted with forgot password (forgot pattern in some handsets) at the bottom right side of the screen.Forgot Pattern
  2. Tap on the Forgot Password option and you would be prompted to sign in with the existing Google or Gmail account information. You need to provide the ID when you first register or activated your phone. If you have that, it would be easy to get in for you and then change the unlock pattern (atleast by now you would be remembering your unlock pattern).Forgot Pattern Gmail
  3. If you don’t know the Gmail ID or the password is wrong then there is only one solution to hard reset your handset. The data present on the added SD card will not be wiped out but you would lose your personal data or information or contacts stored on your phone memory.
  4. You can find a method to hard reset your android phone here

Tuesday 14 August 2012

monkeyrunner tutorial – Running tests on multiple devices with monkeyrunner


OK.. Great … Now you know what is monkeyrunner and how to run tests with monkeyrunner. Let’s discuss about one important feature of the monkeyrunner tool.

Running tests on multiple devices with a single python script.

It looks like a big ask. But that is as simple as drinking a Sri Lankan Tea …
By following my previous posts




now you are running some scripts with monkeyrunner. Let’s add some little bit of information to that script.

#First you need to import the modules which you are using in this script
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

#Then you have to connect to the device which you are running your test
device = MonkeyRunner.waitForConnection()
Wait here !!!!!!
In this script you are waiting for a connection to a running android device or emulator implicitly. Rather than doing like that, you can explicitly tell what emulator or device you may need to connect. You can do that like this.

# Timeout value for waiting for connection 10 seconds
timeout = 10000

# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection(timeout, “emulator-5554″)
here you specify which device you need to connect by the id of the emulator or device.

 If you want to connect to another device within the same script, you can do like this
device2 = MonkeyRunner.waitForConnection(timeout, “emulator-5556″)

Then you can do all the operations you have done with device parameter to device2 parameter.
With this kind of scripting, you can run commands on as many devices you have with you. I believe in sample scripts in tutorials. Here is a sample script in action.

# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# Timeout value for waiting for connection
timeout = 10000
# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection(timeout, “emulator-5554″)
# Installs the Android package. Notice that this method returns a boolean, so
# you can test to see if the installation worked.
device.installPackage(‘/home/chanaka/workspace/SimpleIntentPreference/bin/SimpleIntentPreference.apk’)
# sets a variable with the package’s internal name
package = ‘com.chanaka.android.sip’
# sets a variable with the name of an Activity in the package
activity = ‘.SimpleIntentPreferenceActivity’
# sets the name of the component to start
runComponent = package + ‘/’ + activity
# Runs the component
device.startActivity(component=runComponent)
# Wait for few seconds
MonkeyRunner.sleep(2)
# Presses the Menu button
device.press(‘KEYCODE_MENU’, MonkeyDevice.DOWN_AND_UP)
# Wait for few seconds
MonkeyRunner.sleep(2)
#Touch the new status button
device.touch(160, 460, ‘DOWN_AND_UP’)
# Wait for few seconds
MonkeyRunner.sleep(2)
# Connects to the current device, returning a MonkeyDevice object
device2 = MonkeyRunner.waitForConnection(timeout, “emulator-5556″)
# Installs the Android package. Notice that this method returns a boolean, so
# you can test to see if the installation worked.
device2.installPackage(‘/home/chanaka/workspace/SimpleIntentPreference/bin/SimpleIntentPreference.apk’)
# sets a variable with the package’s internal name
package = ‘com.chanaka.android.sip’
# sets a variable with the name of an Activity in the package
activity = ‘.SimpleIntentPreferenceActivity’
# sets the name of the component to start
runComponent = package + ‘/’ + activity
# Runs the component
device2.startActivity(component=runComponent)
# Wait for few seconds
MonkeyRunner.sleep(2)
# Presses the Menu button
device2.press(‘KEYCODE_MENU’, MonkeyDevice.DOWN_AND_UP)
# Wait for few seconds
MonkeyRunner.sleep(2)
#Touch the new status button
device2.touch(160, 460, ‘DOWN_AND_UP’)
# Takes a screenshot
result = device.takeSnapshot()
# Wait for few seconds
MonkeyRunner.sleep(2)
# Writes the screenshot to a file
result.writeToFile(‘/home/chanaka/status_update.png’,'png’)
#Touch the first preference
device2.touch(160, 30, ‘DOWN_AND_UP’)
#Touch the entre button
device2.press(‘KEYCODE_DPAD_CENTER’, MonkeyDevice.DOWN_AND_UP)
# Takes a screenshot
result2 = device2.takeSnapshot()
# Writes the screenshot to a file
result2.writeToFile(‘/home/chanaka/shot1.png’,'png’)

Android testing with monkeyrunner – a monkeyrunner tutorial

This is what you have been waiting for .. A simple tutorial about all the things you need to know about monkeyrunner testing tool provided by android SDK.

What is monkeyrunner?
It is a tool which provides an API for writing programs that control an android device fromoutside of android code.

What you can do with monkeyrunner?
You can write python programs to test the applications on one or more devices and/or emulators. You can do following things and more with monkeyrunner.
  • Installs an application or test package
  • Runs an application
  • Send keystrokes or touch events to it
  • Take screen shots of the user interface
  • Store screen shots on your workstation
You can do all those things from your PC or laptop remotely.

Why monkeyrunner?
This is primarily designed to test applications and devices at the functional/framework level and for running unit/functional test suites.


What is unique about monkeyrunner?
Unique features of monkeyrunner includes
  • Multiple device control
  • Functional testing with screen capture
  • Regression testing – run an application against a particular result
  • Extensible automation
What is under the hood? 
It uses Jython, an implementation of python that uses the Java programming language.
What is more on this tutorial?
I will discuss more about running and configuring monkeyrunner in the following tutorial.


mysql not starting in xampp error on port 3306


Nice to be back with another solution for a common (not so) problem which google takes some time to find a proper solution. 

As mentioned in the title of the post, this thing happens when i was installing xampp server on my office computer. 

After successfully installing the xampp server, i was trying to start the mysql service using the control panel. 

But when i start the mysql service, it was trying to start but finally it was failing to start on port 3306. It gave some error about port 3306.

After few hours of google search i realized that the root cause for this issue was that port 3306 is using by another mysql service which was installed from another application. Then i had to change the port number to another one to start the mysql service on xampp server.

To change the port successfully, i had to change the port number in following files in the mentioned manner.

You can change the port number to 3308 from 3306 in \xampp\mysql\bin\my.ini file in a couple of places.

There is also a couple of default MySQL port settings in the \xampp\php\php.ini file that would also need changing.

Save the files and restart Apache and MySQL to test.

Cheers !!!!!!!!!

Android testing with monkeyrunner – a monkeyrunner tutorial part II

I hope that now you have an idea about what is monkeyrunner and what you can do with it. Let’s start doing them.

How to install?
Oh .. oo .. you don’t need to install it separately. It comes with Android SDK package. Inside your android-sdk-windows or linux package, inside tools directory, you can find this tool monkeyrunner.

How to run monkeyrunner?
If you want to run monkeyrunner from anywhere within the command line, you need to add the path of the monkeyrunner directory(\tools ) to your system PATH variable. changing path variable can be seen in this simple post .


once you have the PATH variable set, you are ready to go…. But wait .. you should have something to run with monkeyrunner. It is none other than a python script.
Let’s write a simple python script to test your application.

How to write your first script? 
monkeyrunner API provides 3 modules which are located in com.android.monkeyrunner namespace. You will be using these modules to run your tests with monkeyrunner tool.
  • MonkeyRunner: A class of utility methods for monkeyrunner programs. This class provides a method for connecting monkeyrunner to a device or emulator. It also provides methods for creating UIs for a monkeyrunner program and for displaying the built-in help.
  • MonkeyDevice: Represents a device or emulator. This class provides methods for installing and uninstalling packages, starting an Activity, and sending keyboard or touch events to an application. You also use this class to run test packages.
  • MonkeyImage: Represents a screen capture image. This class provides methods for capturing screens, converting bitmap images to various formats, comparing two MonkeyImage objects, and writing an image to a file.
If you can’t understand what these modules are for and what you are going to do with them, It’s OK. you will know about them as you read the next section.
  1. First you need to import the modules which you are using in this script
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
  1. Then you have to connect to the device which you are running your test
device = MonkeyRunner.waitForConnection()
  1. Then you need to install the application package to the device
device.installPackage(‘Yamba/bin/Yamba.apk’)
(Here the folder name is given as a relative path. Yamba folder should be located in the same directory in which you are currently in. You can give the absolute path as well.
For Windows users,
you can give the path as (‘C:\\Program Files\\Yamba\\bin\\Yamba.apk’) as your absolute path.
  1. set the package and the activity to be started
package = ‘com.marakana.android.yamba’
activity = ‘.MainActivity’
runComponent = package + ‘/’ + activity
  1. Run the activity on the device
device.startActivity(component=runComponent)
  1. Wait for 2 seconds before sending the next command
MonkeyRunner.sleep(2)
  1. Send a menu button press event
device.press(‘KEYCODE_MENU’, MonkeyDevice.DOWN_AND_UP)
  1. Wait for 2 seconds before sending the next command
MonkeyRunner.sleep(2)
  1. Send a touch event to a button located at bottom center of an HVGA device
device.touch(200, 390, ‘DOWN_AND_UP’)
  1. Wait for 2 seconds before sending the next command
MonkeyRunner.sleep(2)
  1. Take a screenshot of the resulting window
result = device.takeSnapshot()
  1. Write the screenshot to a file
result.writeToFile(‘Yamba/status_update.png’,'png’)
Name this script as test.py and save it on your current directory. (You can save it anywhere…)

Now it looks like this
# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()
# Installs the Android package. Notice that this method returns a boolean, so
# you can test to see if the installation worked.
device.installPackage(‘Yamba/bin/Yamba.apk’)
# sets a variable with the package’s internal name
package = ‘com.marakana.android.yamba’
# sets a variable with the name of an Activity in the package
activity = ‘.MainActivity’
# sets the name of the component to start
runComponent = package + ‘/’ + activity
# Runs the component
device.startActivity(component=runComponent)
# Wait for few seconds
MonkeyRunner.sleep(2)
# Presses the Menu button
device.press(‘KEYCODE_MENU’, MonkeyDevice.DOWN_AND_UP)
# Wait for few seconds
MonkeyRunner.sleep(2)
#Touch the new status button
device.touch(200, 390, ‘DOWN_AND_UP’)
# Wait for few seconds
MonkeyRunner.sleep(2)
# Takes a screenshot
result = device.takeSnapshot()
# Wait for few seconds
MonkeyRunner.sleep(2)
# Writes the screenshot to a file
result.writeToFile(‘Yamba/status_update.png’,'png’)
Then on the command line or in a terminal window type this command
monkeyrunner -v ALL test.py
(wait … what is this -v ALL thing …
-v is for verbose mode
ALL is for printing all the messages from monkeyrunner tool )

now you can see that the test is running on your device(s) or emulator(s).

cheers !!!!!!!!!



How to unlock Huawei E153 Dialog or Mobitel modem

 Unlocking Huawei E153 HSDPA modem is a simple 3 step process. You can use any network once you follow these 3 steps.


  1. Download the Huawei firmware update manager from here Huawei E153 Firmware updater .
  2. Then plug the dongle into the computer and run the exe file. At some point in the process it will ask for the password. This is the password needed to flash the firmware and update the new firmware. 
  3. You can get your password from this link. http://tools.texby.com/unlock-codes/huawei/ . Just insert the IMEI number of your device.  If your IMEI number (Which is mentioned inside the dongle or you can find it from your invoice also. This is a 15 digit number) is 123456789012345, 
IMEI: 123456789012345
Unlock code for your IMEI number is 38563052 and flash code is 61539927

Password which you need to give to the software is 61539927. This is the flashing password. 
Once you give the password, then it will update the firmware and it will automatically install the new drivers. Then you can use any SIM card with this dongle.
Enjoy Hacking !!!!!!!!!!!!!!!!!!!!!!!!
More complete and advanced method is mentioned in this blog Unlock any Huawei Modem

Monday 13 August 2012

Android Ice Cream Sandwich vs Apple iOS 5 best features

This will be the one of the most difficult comparisons to be done. For one thing, Google and Apple have both recently unveiled huge changes that respectively make their mobile operating systems far more powerful, and in some ways more similar to each other. For another thing, weighing the pros and cons of each platform against the other is a scenario that's played out daily among many people who are deciding which phone to buy.



Android Ice Cream Sandwich 4.0
Apple IOS 5
Bold, powerful UI
For those who already use it, there's nothing hard about Android. Yeah, you have to know that sometimes you need to access the menu or long press for more options, and there are some extras you can get by swiping in certain places on the screen. But no other major OS can top Android's flexibility in terms of customizing the multiple home screens with stills or moving animations; widgets galore; and apps, apps, and more apps. Ice Cream Sandwich ups the ante by making widgets resizable, too.
Dead-simple UI
You can't argue with the idea that when you pick up an iPhone, you already know how to work it. There are increasingly more hidden tricks: taking screen shots, opening the "multitasking" menu, accessing universal search, operating the notifications pull-down, and launching voice actions (or Siri), but for the most part, what you see if what you get, and there aren't any hidden menus in the apps. Those standardized icons are easy on the eye, too.
Turn-by-turn voice navigation
For many people, this is the platform's ace-in-the-hole. Broken out from maps, Google's turn-by-turn voice navigation for driving directions can effectively replace your in-car dash or GPS navigator--and possibly save you hundreds of dollars.
Siri
Probably iOS 5's most buzzed-about feature, Siri is the voice-triggered assistant with an attitude that replaces the Voice Control app. She's fun to talk to the way you would converse with another person, and comes up with some snarky responses to some inquiries that make her the talk of the town.
Much like before with voice commands, Siri can create reminders, search for directions, text people, call you a cab, and so on. The real innovation is the flexibility in which you can phrase your questions, like: "Do I need an umbrella today" rather than "Weather San Francisco." Ultimately, the shot of personality is fun, but the abilities aren't substantially different than what's already out there. Besides, like all voice command apps, Siri's comprehension ain't flawless.


Camera tools
Ice Cream Sandwich brings on a whole lot of new photo tools, the most significant of which are the photo-editing tools in the image gallery. They include red-eye reduction, straightening, and "hipster filters," whatever those are. The camera app itself adds a useful panorama mode that seamlessly creates a landscape still.
Camera
As I mentioned above, this one's stickier because there's no way to completely separate the hardware and software. The camera app interface in iOS 5 is simple to operate, and not very deep, but there's great editing software behind the scenes that help photos render with crisp detail and good color representation, even on an iPhone 4 running iOS 5. HDR mode is a nice plus. However, the camera's lens and image sensor qualities also play a significant part in the making of good mobile photography.
Openness
The benefit Android's openness to other manufacturers' custom interface designs is debatable depending on which side of the conversation you're on, but it gives cell phone-makers and carriers the opportunity to offer new features and visual experiences that are variations on the Android theme.
Some people prefer stock Android, just as Google designed it. Others appreciate accessing tools and information in ways that Google didn't envision. The company has clearly borrowed some innovations from these custom UIs, like bring able to open a specific app in conjunction with unlocking the phone (rather than unlcoking to the hom page, then opening your app.)


iCloudOne of iOS 5's most significant additions, iCloud does over-the-air syncing from the device to the cloud (no more USB connection to the computer!) and syncs content like apps, music, and contacts, so you can later restore. You can also wirelessly edit photos, manage e-mail folders, and create and delete calendars. iCloud is an excellent resource for syncing music you own.




Facial unlocking
Android Beam is fun too, but I think facial unlocking is even more novel, fun, and interactive because it (optionally) uses the front-facing camera to recognize your features and let your into your phone. So smile! It's also wholly unnecessary, but a harmless party trick.
Music integration
From the very beginning, iTunes and iPod integration is what made the iPhone a killer. It's simple to store, play, and buy music. iOS 5's wireless syncing forgoes the need to plug your iPhone into the computer to sync songs. Now, as long as it's charging while you're connected to Wi-Fi, you can set it to automatically sync with iTunes.

Saturday 11 August 2012

How to improve face unlock feature in Android with your Samsung Galaxy phone


With my earlier post, I have mentioned that Ice Cream Sandwich has a major security vulnerability with it's face unlock feature.  Google which has always said that the ‘Face Unlock’ feature was no more than a gimmick and definitely not a serious biometric feature that pointed at security found that their feature allowed users to unlock their devices using just a photo of themselves only days after it was announced. (But this feature has been improved in JellyBean, as i mentioned there)



Samsung on the other hand, are determined to make the feature evolve and be taken more seriously as a genuine security measure that can be used by users. They have added a feature which requires the user to blink when the window that is capturing your face comes up to prove that you are indeed not a photograph. With regards to when the update containing this fix will come out, it is still unclear. Be careful when you are updating your firmware since there are so many methods on the internet to update your phone for this value pack. Best is to get the update from Samsung itself through your mobile phone.

This feature is added in the Samsung Galaxy S "value pack" update. Be careful when you are updating your firmware since there are so many methods on the internet to update your phone for this value pack. Best is to get the update from Samsung itself through your mobile phone.If you are still not updated your firmware on your Samsung Galaxy, hurry up and update your software.


Cheers !!!


Android Face Unlock in IceCreamSandwich and JellyBean


Last year, when Google announced Android 4.0 Ice Cream Sandwich, one of the highlights of the operating system update was that one could unlock their handsets with their face using a face recognition mechanism called Face Unlock. This was a neat concept as opposed to punching in a code or using a pattern to unlock your device. 

However, this system did come with its security vulnerabilities as a person could unlock a handset with a photograph.

This was a major threat to the security of your phone since most of the people activate this feature without thinking about this security vulnerability. 

With the JellyBean release of the Android, Google has improved the face unlock feature with a mechanism called a "liveness check". With this feature the system will make sure the person in front of the camera is alive or not i.e. it will check if the person in front is blinking or not. 


This will make sure that photograph of you will not be able to unlock your JellyBean phone and it will improve the security.

Cheers !!!


10 Tips and Tricks to make Android phone smart and fast


Android is everywhere. Most of the people who are using Android mobiles have a prior experience with other brand of mobile. But a considerable amount of people experience the Android mobile as their first mobile phone. Whether you are a newbie to the world of mobile phones or a geek of another brand, these tips and tricks may help you to take the maximum out of your Android mobile.


Tip #1. Search your contacts faster

Searching for a particular contact is one of the most frequent operations we are doing with our mobile. You can do this faster by using the Dial Pad. I always find it bit difficult to scroll through the contacts and then search for a contact. The alternate way is to use the dial pad and type the numbers which  have the letters on it.

Example: You want to search for “John

Open dial pad, type 564 and you will see all contacts which match with letter combination available on keys 564. In this case, it matched with John.

Next select the contact and press the call button.

Tip #2. Open recently used applications quickly

Android has an option  to open recently used applications without having to look for those apps in that huge list. 
  • Simply long press the home button to get the recently used apps pop up window. 
  • Select the app which you need. 
  • Also you may have an option to open the task manager where you will be able kill the apps/services which are long running.

Tip #3. Make a phone call or send a message from the call log itself

Ever felt that it would have been nice to quickly redial the last number from the log without having to first select the log entry and then press the call or message option. There is a way.
To call : Swipe the call log entry from left to right
To MessageSwipe the call log entry from right to left.

Tip #4. Hidden but not secret codes

You would like to do some system level testing on your own with some simple codes. Here some codes you can use to test your mobile phones various features.

*#*#4636#*#* - Shows Phone information, Battery information, Battery history, Usage statistics
*#*#8255#*#* - Show GTalk service monitor
*#*#1111#*#* - Service Mode
*#*#232331#*#* - Bluetooth test
*#*#3264#*#* - RAM version
*#*#0588#*#* - Proximity sensor test
*#*#2664#*#* - Touch screen test
*#*#0842#*#* - Vibration test

Tip #5. Make your device have enough memory to run the current application

Due to the way memory is managed in the Android OS, and the way Android apps are structured, the more apps you load, the less memory is available to actually run the apps, and the less memory is available, the slower the phone will run, as the phone must spend more time swapping apps in and out of the little working memory available. This affects both battery life and performance. You can make the device more smart and fast by following these tricks.

Trick 1: Uninstall the apps you rarely use

It is obvious, but it's still true: the less program you load, the more responsive the phone will be, because there are a LOT of free memory available. More memory will be available to the phone to actually RUN the programs.

If you want to save the app, use something like AppManager, AppMonster, or Titanium Backup to archive the apps you want to keep around to SD card. Or just redownload them when you need them.

Figure out which apps are taking up the most space by going to menu / Settings / Applications / Manage Applications / menu / sort by size (default is sort by alpha A-Z)


Trick 2: Move apps back from SD Card... if possible

Apps are really meant to be run from internal storage. Move2SD is a neat feature, but SD card is still not as fast as internal storage (unless you have a Class 10 or faster). For the apps you use often, move them BACK INTO phone. They'll actually run faster.

Trick 3: Use only the bare minimum number of widgets

Each widget loads a "service" or two to keep itself updated, and each service is 2-4 MB of space used, even if the widget itself is only like 50KB in size.

Look at the Services Screen yourself: How much is that pretty clock widget taking up? Probably 2-4 MB. Add another one for the music player, another one for the podcast player, another one for this, another one for that... They all add up.


Trick 4: Use a Static Wallpaper

Even a simple Live Wallpaper will take 2 MB or so of memory. Complicated ones may take up to 20MB. And that thing is running ALL THE TIME. It even sucks up CPU power (and battery). Thus, just use a static wallpaper.


Trick 5: Occasionally, Manually Kill Unnecessary Services

Seems every app nowadays comes with a service... and uses several MB of internal memory, even when they are NOT running.

Google Maps have a "Places" service that sometimes loads even when Maps is NOT loaded. Youtube sometimes loads a "widget service" even when it's not running and have no widgets on screen. When you exit an app, the associated services are not always stopped with it.

Kill them manually (see "Running Services" sidebar above), tap any service to kill it. Make their space available to other apps. In fact, if you rarely use that app, uninstall it altogether. (See Tip #1)


Trick 6: Do NOT Use Task Killers on Automatic or Schedule

Advanced Task Killer and similar apps may interfere with the built-in memory management. The memory they free up is only temporary and may include running apps, which will be reloaded by the system in moments.
The best way NOT to overburden the system is to load less apps in the first place 





Friday 10 August 2012

Things you should know before upgrading from Gingerbread to IceCreamSandwich - Part II


Now you have heard about ICS and it's new features. Let's think you are one step away from upgrading to ICS. Wait a moment and read this post. Then decide on your own, whether to upgrade or not. In this blog post, we’ll describe some of the technical differences between GB and ICS, and what the differences in the user experience might be.



This way you can decide if ICS is right for you, or if you prefer to stay on Gingerbread. Maybe you will prefer the new UI in ICS, or do you give a higher priority to the extreme stability of the Gingerbread platform? Check this out !!

However, although ICS is new and compelling in many ways, we would like if you are to make an informed decision when selecting what Android™ software to use. We know that the Gingerbread software is very stable and has great performance, so it’s not a bad idea to stay on this release. Ice Cream Sandwich is more intensive, for example in terms of resource usage. As smartphones become more capable, our own applications, as well as the Google Mobile Services (GMS) applications, are becoming more advanced, which means that they require more CPU power, run more network activities and use more RAM. On the other hand, ICS brings a refined UI and some nice new features as described below.

New features in ICS are describer in this blog post .

Some of these changes affect the performance and stability of the system, for example by using more CPU power and RAM. ICS was developed with Galaxy Nexus in mind, which is based on a TI platform with dual-core processor and 1GB RAM. But most of the devices in the market does not have this configuration. For example, Sony Xperia™ smartphones, which are all built on a Qualcomm platform with single core and 512 MB RAM. This means that in some cases, the resource usage in ICS is heavier on the system compared to Gingerbread. The following sections identify some key areas where there is a  difference between ICS and Gingerbread.

Increased RAM usage

In general, it can be said that the RAM is the working memory in the phone, used by running processes in contrast to the flash memory, which is mainly used to store things. As you might understand, this is a simplified explanation and might not be entirely true in all cases. However, it can serve as a help to understand the difference between the RAM and the flash memory of the phone.

Now, let’s look at how the RAM is used. Out of our 512MB RAM, about a third is used for functions that require a dedicated memory slot to operate fast enough. For example, this is the case for certain multimedia functions. The remaining space, which is at least 340MB, is reserved for the Linux user space, as required in the Android Compatibility Definition Document (CDD). Within the Linux user space, functions like the activity manager and Home screen app are running.

Another interesting thing is that many apps use slightly more RAM in ICS. For example, the web browser is quite intensive, and our measurements indicate that it uses 20-30MB more in ICS compared to Gingerbread. All in all, there are a lot of changes that together result in greater RAM requirement.

When running low on RAM, typically with less than approximately 40MB left, the activity manager will start to close processes according to priority. At first, idle background activities are killed. The last thing to be closed down is the foreground activity. We have described this briefly in the table below. For more information, check out Android developers. (Please note that all figures mentioned about RAM usage are approximations and will differ depending on phone model and use case.)

Table showing different types of processes. When running out of RAM, the activity manager starts shutting down processes from the bottom and up, so that the last things to close are foreground and persistent activities.

Processes that are closed will obviously have to be restarted when the user enters the app again, which takes time and slows the system down. For example, when running a heavy game that uses all available RAM, the activity manager will be forced to kill all processes running in the background. This might include vital functions like the dialler and even the Home screen application. When you exit your game, there is a risk that the phone is perceived as slow, since the Home screen app will have to be restarted, just like every other activity you access afterwards.


Slower interaction with the SQL database

Another change in ICS compared to Gingerbread is that Google has moved a lot of the SQL handling from the native to the Java layer. In our internal studies, we have seen that read and write operations to the SQL database takes longer time, which slows down the apps. Many applications perform a lot of SQL operations when started, which greatly impacts the start-up time.
According to good practice, database operations or http requests should not be performed in the main thread. However, we know that there are quite a few applications that perform these kinds of operations directly in the main thread, which might cause them to hold up other operations. Also, when reading feedback on ICS software out on the market now, we’ve seen comments about people having problems with some applications and games.
If an operation takes too long, there is a risk of getting an Application Not Responding (ANR) as a result. An ANR occurs when an application doesn’t answer an intent, or responds to an input event, within a certain time limit. In case of intent, the time out is set to five seconds. For the input event, such as screen touch or button click, it’s ten seconds.
This can result in a user experience that is perceived as slower and less stable, due to longer response times and increased ANRs.




Introducing full hardware acceleration


Yet another change in ICS, is that the graphics hardware acceleration is on by default for all apps from API level 14. For apps at lower API levels, it can be turned on in the manifest with the attribute android:hardwareAccelerated=”true”. 
Hardware acceleration means that the GPU is used to render graphics, which enables a smooth user interface. However, it also results in at need to load additional graphic libraries for certain apps, which makes them use even more RAM.
When we performed internal tests on our applications, we saw that the Settings app consumed 1-2MB more RAM, and actually took longer time to start with HW acceleration, compared to without. Once the app is running, the UI is HW accelerated, but unless the app performs advanced graphics, the user will not see the difference.
Another effect of the hardware acceleration is that it can make the battery drain faster in some cases. An example of this is video playback, where the hardware acceleration requires every video frame to be run through the GPU, thus making the system use more power than it would have without HW acceleration.
As a developer, you should therefore evaluate if HW acceleration is required or not, as it comes with a cost in terms of RAM usage, start-up time and possibly even battery duration which can have negative effects on the user experience. You can read more about hardware acceleration in Ice Cream Sandwich on the Android Developers blog.

OK .. Now you know the depth of the river .. Just decide whether you want to jump or not ..
Cheers !!!!!!!






Things you should know before upgrading from Gingerbread to IceCreamSandwich


It's JellyBean time. But the truth is that, still only 7% of the Android devices have IceCreamSandwich (aka ICS) or Android 4.0.3 installed. GingerBread (aka GB) is almost everywhere. Most of us in the world think that all new things are greater than the older things. Is that so? I doubt that. I think all you friends know what was happened with Windows Vista. That's a small reminder. 

Let's take this seriously and more technically. There are two proverbs in Sinhalese language.
  1. Don't see crocodiles in your water basket. (Don't scare unnecessarily without knowing the danger)
  2. Think before you jump. (Think before you do something new)
Both those proverbs converged in to the same fact that you need to investigate before you do something   new. Oh! I am not technical yet..

Let's see what are the top 5 features ICS offers to you.




1. Fine tuned User Interface

Resizable widgets
Home screens in Android 4.0 are designed to be content-rich and customizable. Users can do much more than add shortcuts — they can embed live application content directly through interactive widgets. Widgets let users check email, flip through a calendar, play music, check social streams, and more — right from the home screen, without having to launch apps. Widgets are resizable, so users can expand them to show more content or shrink them to save space.

New lock screen actions
The lock screens now let users do more without unlocking. From the slide lock screen, users can jump directly to the camera for a picture or pull down the notifications window to check for messages. When listening to music, users can even manage music tracks and see album art.

2. Rich and versatile camera capabilities

The Camera app includes many new features that let users capture special moments with great photos and videos. After capturing images, they can edit and share them easily with friends.
When taking pictures, continuous focus, zero shutter lag exposure, and decreased shot-to-shot speed help capture clear, precise images. 
Stabilized image zoom lets users compose photos and video in the way they want, including while video is recording. For new flexibility and convenience while shooting video, users can now take snapshots at full video resolution just by tapping the screen as video continues to record.
To make it easier to take great pictures of people, built-in face detection locates faces in the frame and automatically sets focus. For more control, users can tap to focus anywhere in the preview image.

3. Powerful voice input engine


Android 4.0 introduces a powerful new voice input engine that offers a continuous "open microphone" experience and streaming voice recognition. The new voice input engine lets you dictate the text you want, for as long as you want, using the language you want. You can speak continously for a prolonged time, even pausing for intervals if needed, and dictate punctuation to create correct sentences. As the voice input engine enters text, it underlines possible dictation errors in gray. After dictating, you can tap the underlined words to quickly replace them from a list of suggestions.

4. Face Unlock

Android 4.0 introduces a completely new approach to securing a device, making each person's device even more personal — Face Unlock is a new screen-lock option that lets users unlock their devices with their faces. It takes advantage of the device front-facing camera and state-of-the-art facial recognition technology to register a face during setup and then to recognize it again when unlocking the device. Users just hold their devices in front of their faces to unlock, or use a backup PIN or pattern.

Read more about pros and cons of this feature in this blog.
http://androidjellybeans.blogspot.com/2012/08/android-face-unlock-in-icecreamsandwich.html

5. Android Beam for share data with your neighbours

Android Beam is an innovative, convenient feature for sharing across two NFC-enabled devices, It lets people instantly exchange favorite apps, contacts, music, videos — almost anything. It’s incredibly simple and convenient to use — there’s no menu to open, application to launch, or pairing needed. Just touch one Android-powered phone to another, then tap to send.

OK.... This blog has taken some more length than i have expected .. Let's see the comparison in next post ... cheers !!!!!!!!


Thursday 9 August 2012

Android Jellybean top 7 features

Android 4.1, Jelly Bean, is the fastest and smoothest version of Android yet. Jelly Bean improves on the simplicity and beauty of Android 4.0, and introduces a new Google search experience on Android. Here are the top 7 features which make it the best android version yet.


It's smooth and fast as "Butter"
According to Google, Jelly Bean will provide far more responsiveness than its predecessors. 
Transitions are happening very smoothly and Google had accomplished this feat from a project called "Project Butter". Google put Android under a microscope, making everything feel fast, fluid, and smooth. With buttery graphics and silky transitions, moving between home screens and switching between apps is effortless, like turning pages in a book.
More reactive and uniform touch responses mean you can almost feel the pixels beneath as your finger moves across the screen. Jelly Bean makes your Android device even more responsive by boosting your device's CPU instantly when you touch the screen, and turns it down when you don't need it to improve battery life.

Notifications serve you as your personal assistant
Notifications are not the colored text anymore. It will guide your day and allow you to take actions within the notification panel. Android has always put you in control when it comes to staying notified and connected. Now you can take action directly from the notifications shade. Late for a meeting? Email everyone to let them know. Missed a call? Call them back in an instant. And because they’re expandable, you can get an even deeper look into the things that matter most, like multiple emails or photos on Google+.



Bye Bye "Siri", It's "Google Now"
We’ve heard rumors that Google was working on its own Siri, codenamed Project Majel, or whatever you want to call it. Google announced their own version of Apple’s Siri with jelly bean, and it brings just what you would expect. If Google Now detects that your usual route is currently bogged down by traffic, it will redirect you onto a different path which will help you arrive at your destination faster. If you have a meeting on your Calendar, Google Now will direct you to get you to your destination as soon as possible. If you have a flight at a local airport, Google Now will give you information on where your flight gate is, and your flight details.


Touch n Send with Google Beam
Android Beam was supposed to be the next big thing in near-field communication(NFC) . However, it never really took off in Android 4.0 (Ice Cream Sandwich).  To address that in Jelly Bean, the company made it easier to share information by leveraging Bluetooth. Now, users can share images, videos and other data without worrying (too much) about how well the transfer will go.

Favourites can take more space
Android 4.1 introduces improved App Widgets that can automatically resize, based on where the user drops them on the home screen, the size to which the user expands them, and the amount of room available on the home screen. This will allow the users to resize their favoutrite apps as for their preferences.


Think before you write
Android's dictionaries are now more accurate, more relevant. The language model in Jelly Bean adapts over time, and the keyboard even guesses what the next word will be before you've started typing it.
With improved text-to-speech capabilities, voice typing on Android is even better; it works even when you don't have a data connection, so you can type with your voice everywhere you go.



Put all your eggs in one basket
This is not about eggs. It's about jellybean. Put the waste in to your recycle basket.
Android 4.0, Ice Cream Sandwich, made snapping photos super fast; Jelly Bean brings that same speed to the next step: viewing. Just swipe over from camera to filmstrip view to instantly view the photos you just took, and quickly swipe away the ones you don’t like. Now sharing — and bragging — are a breeze.