Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Jun 28, 2014

Key Takeaways from Google IO 2014



Similar to my Key Takeaways from Apple's WWDC14, here I go into the takeaways from the Google IO this year.

Oh, also have a look at my earlier post from 2011where I had suggested changes to Android and - hey look - they have actually done many of those things !  :D


1. India is a focus area.
I should say developing markets - but with mobile OEMs like Micromax, Karbon and Lava shown in the keynote, the focus definitely seems to be more India centric. I hope they are also eyeing the networks in India which needs to be made faster to really leverage the google capabilities. Considering the other market - China - which is a walled place for Google - I think Google is hedging tis bet on India to take it to the next level in terms of usage.

2. Android One. 
This seems to be a way to standardize the android fragmentation issue. With a minimum set of features that Google deems necessary it can get the low cost OEMs on board. For the OEMs they will make the hardware as per Google's specs, and for Google, it will reduce the fragmentation. ( see pt 5 in http://vibhurishi.blogspot.in/2011/12/making-android-better.html )

3. Wearables.
The other big announcement was wearables. For now this means smart watches. We already have had Samsung's Galaxy Gear out in the market for sometime - and this takes that concept further by having SDKs available for developers to use in their own apps. Essentially now you will have a watch which will sync notifications and other apps on your watch.
Google is coming out with a LG and a Samsung watch now ( around 15k INR) and a Moto watch a bit later ( which I suspect will be cheaper). But with a best case battery life of just 1 day I don't recommend it except for the nerdy showoff factor.

4. Return of the Dumb Terminals. 
Well, it was covered under different headings like TV and Automotive, but I feel that they are the same thing. You have a display terminal which really does not do much. It has a basic OS running. All apps will reside in your phone. When you connect your phone with the terminal, it will run the apps for that terminal on it. So, if the terminal is a TV, it will run the apps for the TV. If the terminal is a car terminal - it will run the stuff needed for cars. Etc.
I think it is an elegant system for making the terminals simpler and keeping all the complexity on the phone. This way, the TV/Car manufacturer needs to just conform to a minimal specs to get the OS running, and the rest is taken care by the phone.
This theme is also being taken to the chrome OS. Now it will be possible to have apps from your phone to run on the laptop via the ChromeOS. So the ChromeOS terminal will run as a dumb terminal to the phone apps. This is quite a nifty feature - i always wanted a way to be able to respond to whatsapp messages via the laptop. It also goes a step beyond what apple is doing with iOS 8 where they integrated the sms so that you can answer from your mac. However, I havent seen anything like the feature of calling from your mac as yet.

5. Awareness
I have seen this umpteen times where we talk about machines which enable another machine to do something by its proximity. A regular example I see is that having the phone close to your computer will get it to unlock the computer. Till now, I have seen only concept videos - this is the first time I have seen a working demo. Its great, but also i wonder if it is something which may lead to abuse. All you now need is a person's watch to unlock his phone/computer. Have to wait and see what safeguards are there.
Another part of this awareness is that notifications now get on your other devices. So, if you have a phone and are wearing the watch ( see pt 3) , you get the notificaitons on your devices. This is not as seamless as the continuity as apple demoed, but similar.

5. UX improvements
As Apple tries to catch up to Google in terms of features and developer friendliness, Google is trying to catch up with Apple in terms of usability. The current trend is to make everything look consistent by having a guideline for the community of developers and designers. To make things feel more dynamic, google has come up with a framework of displaying windows which, in addition to the x and y dimensions, also adds a depth ( or z axis ). This means that a program can use an element it has, add a z axis value and it will seem to popup on the top. They call this framework "Material". I wish they had used a sexier name -- I find it as offensive as the term 'resources' are used for people in companies. But I guess its just me.

Now you would be wondering why I haven't talked about Android 5.0. Thats because Android 5.0 is not one thing. It is all the things I just talked about above.

It is quite possible that I may have missed some other things from the stupor inducing keynote - if so, please leave it in the comments below and I will incorporate them here.

I am also quite disappointed that Larry Page did not make an appearance this time. He was the show stealer from last year.

Feb 5, 2014

Turning off Autocorrect in Nexus 5

I got this asked a couple of times, so thought it best to blog it :D

The scenario in India is that we use a mix of English and Hindi words written in the Latin script. So you can easily have something like :

I am ok. Tera kya haal hai ? 

The 2nd sentence is Hindi in the Latin characterset. Autocorrect is your enemy here. It will change the Hindi into gibberish. And... you only realize this after having sent the message that it totally killed it. It is quite easy to change this behavior into something that works in a better way - switch off the autocorrect :

1. Go into settings and tap on Language & Input.

2. The keyboard you use is the "Google Keyboard" it is greyed out by default as it is the default keyboard. However, the settings icon is clickable. Go there.
 3. Next scroll down a bit and you will see Auto-Correction. Tap on that.
 4. Turn it off.

That's it. Now you can write whatever you want, and it will not try to be too smart. The words it will think as wrong will be underlined making it easy to see the wrong spellings and what you have typed.


In case there is really an error, you can just tap that word and get a list of words that are relevant. E.g. in the above example, the ok is in small case and you can fix that by tapping as below.

That's all that there is to it. And if you really want to type in Hindi, just get the Google Hindi Input keyboard from the Play Store and you can type it easily.

Aug 1, 2012

Android on the Netbook

Hey, did you know that you can run Android on the netbook ?

I wanted to get some faster and more usable OS on the netbook I have. Ubuntu with its new direction towards the Unity interface is not one of my favourites. It is buggy and slows down the system quite a bit.

I am currently using Linux Mint which is ok, but i feel that again its just as fast as Ubuntu. Also, the problem is that with the changes in UX in the last few years, it looks archaic.

I was struck by the idea if any of the mobile OSs could be available on the netbook. The only viable choice was Android and I started searching for any project which has this available. I was quite in luck and found the Androidx64 project ! The result is as below. This is so far running off the USB pen drive, as I did not want to install it without first checking everything is running.


Details : 

 Netbook : 

  • Acer One 

 OS : 

 What works : 

  • Most of the things. 

 What does not work:

  • Wifi ( cant seem to get it to working yet)
  • Waking from sleep is not working well. 

How to Install:

  1. Download the android iso. The EEEPC one works for the netbooks.
  2. Download unetbootlin for your OS
  3. Use unetbootlin to write the iso to a USB pen drive. 
  4. Boot from the pendrive and enjoy or be frustrated :D

Jul 6, 2012

Installing a custom Android ROM

Android is a phone operating system found on most smartphones now. It is developed by Google, and mostly used by manufacturers like Samsung, Motorola, HTC in their phones. Android is evolving at a very fast rate, and almost every year there is a new version available. However, most manufacturers do not support updating the phone OS. What happens is that you are left with older versions of the OS on the phone, while the world is moving ahead.

e.g. I have a Samsung Galaxy Ace with OS version 2.3 ( Ginger Bread) while the latest version available is 4.0 ( Ice Cream Sandwich ) while 4.1 (Jelly Beans ) has just been announced.Samsung is not supporting anything more than 2.3 citing hardware limitations.

The option is to get a custom ROM for your phone. These are not supported by the manufacturers and according to them, if you use the ROMs - you void your warranty. However, I find that not using these ROMs will significantly lower the usability of the phones.

Custom ROMs are specific to your phone. So first you need to find out whether your phone is supported. The two most popular sites are :
1. Cyanogenmod ( phone list )
2. Miui ( phone list)

If your phone is on the above list, you are quite in luck and the process will be straight forward. However, if your is not, then you will have to search a bit. The best place I have found for searching is Youtube ! You will find a video of how to install the custom ROM as well as links to downloading the custom rom. e.g. I have a Samsung Galaxy Ace, which is not on the main sites, but a derivative was found on http://www.themythace.com/index.html website.


The Install Process


Installation of the ROMs is quite easy and step by step process, though you will keep holding your breath to see if it works or not.

There are 2 pieces of software that you need to download.
1. ClockWork Recovery Mode ( CWM) for your device.
2. The ROM for your device.

Download both of these using the computer and put them on your device's SD card.

Below are generic steps to follow - you should check the instructions for installing from the respective sites for your specific device in case it differs.

Make sure your phone is fully charged!

Step 1: Take a backup of your data. Mostly you would want to backup sms, photos, contact numbers, etc. If the data is on the SD card ( e.g. photos are on SD card) you do not need to worry. But anything on the phone memory will need to be backedup if you want to use it later.
Step 2: Copy the CWM and ROM zip files to your SD card using the computer.
Step 3: Now you need to first install CWM. This is done by going into the recoverymode ( usually home + power buttons), chosing to update from SD Card, and using the CWM zip file . See youtube videos on how this is done.
Step 4: Reboot again into recovery mode. Now the recovery mode is using CWM and you will see more options.
Step 5: Reset the data and the cache. This will wipe your phone totally, and hence the requirement of Step1 to take backup of your data.
Step 6: Once this is done, it is advisable to just reboot again into recoverymode.
Step 7: Now in the menu, go to install zip from SD card and select the custom ROM zip you have. This will start the process and you may have to wait from anything between 2 mins to 10 mins to startup. Usually first boot takes time.

There you go, your new OS is ready to rock and roll !
MIUI running ICS on Galaxy ACE


Leave any questions/comments below.

Feb 10, 2012

Hindi on an Android Phone

This is just an app I am developing on the side. It uses Devanagari scripts to render the text, rather than displaying images as most of the similar apps in the Android Markets do.

Part 1 of the problem was how to load the hindi font in the code and get the display to render it. If you try this on a phone without Hindi support - which is the vast majority of the phones out there, then all you see is squares instead of the text.



This was pretty simple. If you want to load a custom font, this is what you do :


  1. Get the specific font you want to bundle with your application. Lets call it Hindi.ttf
  2. Put it in your project under the "assets/fonts" folder. You will need to create the folder 'fonts'. Not necessary to have the exact name, but I use it as it denotes what the files int the folder are. 
  3. Now you need to tweak your code a bit as you need to load the font before you render the text. This is quite simple - use something like the following :


//Font work
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Hindi.ttf");
// Get the UI element handles
mText = (TextView)findViewById(R.id.body_text);
// Set the title and read the file for the text
mText.setText(readRawTxt(pName));
mText.setMovementMethod(new ScrollingMovementMethod());
mText.setTypeface(tf); // setting font for the text. 
 Now when you run the program, you will get the fonts loaded and rendered, which brings use to Part 2 of the problem.

Part 2 of the problem is that the maatras are not getting aligned properly. For this I have so far not been able to figure out how to fix it. If you know , let me know. If I get to know about it, I will update this post.



Tips on purchasing an Android Phone

Here are some tips which I think you may find useful when you are looking to buy an Android phone.

Unlike the iPhone , the Android mobile space has a huge number of variants, which is good and bad at the same time. Good - cause you get variety ( though the current designs all seem to be very similar) , and Bad as you cant figure out what to buy !

My tips below will be looking beyond the advertized features of the phone. So, you will have to read the specifications of the phone you are trying to get and see if it fits for you!

Tip#0 : Wait for ICS

ICS is the next version of Android ( Version 4.0 ) but it is still not available in the market. So, if you can wait then wait for the phones with the new versions to be available.

Android 4.0


Tip#1 : Check for available custom ROMs

When you buy an Android phone from a manufacturer, you will end up with a system with a lot of customizations from the manufacturer. Its like how you go and buy a laptop and get all the preinstalled software. Now, you may actually want this, in which case you can ignore this tip. But, you may also be thinking that this is a lot of bloatware. Not only does it reduce the amount of space that you have available in the phone, it also causes your battery to drain much faster and slows down the phone.

So, have a look at the mods available in the market. I used the Cyanogenmod for installing onto my phone:

Samsung Galaxy ACE running CyanogenMOD7


Some sites you can refer to :
1. Cyanogenmod
2. MIUI
3. XDA Developers

Please note : by flashing the new OS you will void any guarantee from the manufacturer and also you have a risk of bricking your phone. Take all backups and then take them again. Use recovery mechanisms to take backup of the actual OS.

Tip#2 : Check the battery

Don't go by the claims from the manufacturers about the uptime. Its usually by turning off all the features and on a stock device. It falls flat on the face in actual use - the gap is quite large. The one thing you can do now is to look at the mAh rating on the device. Minimally it should be above 1500mAh for lasting around a day. The more the better it is.

Tip#3 : Check the internal memory

The advertisements will be pointing out that you can get upto 32GB of memory by using a SD Card. Ignore that. It is true, but it is not what you are looking at. You are looking at the internal memory present on the device. Look for things which are atleast 2 GB if not more.

Why ? Because most of the apps to function properly need to use the internal memory. Some can function only if they are installed in that part ( e.g. enterprise software ) and almost all require the memory to store user related data. The external SD card is where you store the pictures/videos/songs etc  ( and can move some apps to that area also)

Tip#4 : Now look at other specs
Now you are free to look at the other specs that are available on the phone which you may like. But if you neglect the above 4 tips, i am pretty sure you will end up wishing you hadn't.


Feb 5, 2012

Hard Re-setting Galaxy Ace

Recently, I had a bit of a problem with my phone - the Samsung Galaxy Ace. Apart from being pretty annoyed with Samsung for giving next to no internal memory (150MB only), the phone was eating up battery quite fast and becoming quite slow. So , I decided to hard reset it. Problem is - the information about android phones is too much in plenty and scattered all over the blogs. So, here are the ways you can do it:

1. Enter Recovery Mode
Press the home key and the power key simultaneously. 
When you see the Samsung logo , let go and you get into recovery mode.

2. From the dial pad
Enter the following key strokes:
*2767*3855#

3. From the phone itself.
Go to settings->Privacy Settings -> Factory data reset

Dec 12, 2011

Making Android Better

You may have read my last rant against Android. After posting that I got into a more constructive mode and started thing how the OS can be improved. This is based on the 2.x (Gingerbread) version of the Android OS as I do not have access to a 4.x version (Ice Cream Sandwich).

I have also defined ownership to Google or the Manufacturer as they need to work it out. Unlike apple's iOS, Android has much more complexity as it has to synergize with multiple vendors and a plethora of hardware.

1. Get rid of the internal memory concept. 

At this point, Android phones act like the older phone OSs which assumed a small internal memory and user expandable SD card slots to keep data. The problem with this approach is that with the Android market, users have the option to download hundreds of applications. But the internal memory limit means that you can hardly download more than 10 apps before the phone starts to cry out about issues with the memory being full.

Since the SD cards are cheap now, we can argue that a manufacturer sourcing a large number of memory chips ( without the plastic casing etc to put in the phone) should be able to get it quite cheap. Even a 2GB internal memory will do wonders. Most vendors provide an extra SD card anyways with your purchase, so to me it makes more sense that they have the memory as part of the device. If required, they can keep an additional SD card slot also for extra brownie points.

Ownership : Google, Manufacturers.

2. Make sure that the default apps do not crash. 

If there are some 3rd party apps that you download from the app store that crash, you expect it. But when the installed apps start crashing - that is just sloppiness. I have seen multiple crash on the default apps - most of them on the Android market application. This should not be happening.

Ownership : Google

3. Make it an easy way to reach the top of the screen. 

Due to the screen size limitations of the phone, many of the applications display content in a list view ( e.g. Twitter, Facebook etc). Android does not have an easy way to scroll up , so if I want to see the topmost tweet in a list of 100, i have to swipe up multiple times.

I have a solution : implement a long-press on the top bar which will make the currently active app jump to the top of the view.

Ownership : Google

4. Battery longevity. 

The battery life of an Android device is crap. The Samsung Galaxy ACE that I have was hardly lasting a day in my initial usage. If a call comes and lasts an hour ( my conf calls go on for longer than that) then I need to immidiately plug it in to charge even now.

Some ways are there of switching off Wifi/data etc - but then why would you want to buy a smartphone ?

Juice Defender is a great 3rd party software which helps out in the batter management. I strongly recommend that Google buy this company and integrate the battery savings into the core part of the OS.

Manufacturers also need to look at better battery options - either as default , or in worst case as available battery packs. My phone has a 1350mA capacity battery. Why cant it have a 2500mA battery pack ?

Ownership : Google, Manufacturers

5. Define different hardware profiles.

One of the most irritating thing about Android devices is that they promise a lot in terms of features, but when it comes to actually running them, they are really bad. For example, live wallpapers are sooo cool, but they suck up the mobile's performance. Since nowadays manufacturers are coming out with all sorts of Android based devices - from low end to high end phones, it makes sense to have different hardware profiles for different hardware levels. This will tie into the Android Market, so that you can only download and install applications which adhere to the settings on your phone.

Ownership : Google, Manufacturer

6. Clean up the Android Market

The market is in a mess. Its hard to find anything. Search will list down a lot of stupid apps which you do not want and going through the lists is a pain.

Google needs to curate the applications submitted and have a guideline for minimum quality. Like Apple did, they should also disallow multiple frivolous apps. Its not a number game to see which appstore has more downloads, but it should be a quality game to see which appstore has better apps.

Also, i think that allowing manufacutrers, telcos etc having their own app stores is killing the user experience. This was a pretty bad move on Google's part. There should just be one android market not multiple ones on the phone. And even if you do have multiple markets, then the logins should be the same.

Ownership : Google, Manufacturer

Dec 1, 2011

I dislike Android phones now

I have started to dislike using the Android phones.Sure there are a lot of people who swear by it - but I am getting hit by issues which I did not have to contend with in the last couple of years that I was using the iPhone. Here are just a few of those.

Why is it that the phone manufacturers do not learn from apple and provide substantial internal storage ? Here I got a very stupid error which wants me to uninstall applications. WTF ! Why have an Android market if you cannot even install programs on the device ? The internal memory of the device is just around the 200MB mark - its a joke.

I

Also keep getting frequent crashes. I understand if there is a crash due to a 3rd party application - but this crash occurred in the android market application !


And now the straw that breaks the camel's back. See the message underlined in red. The damn device rejected an incoming SMS ! WTH !

The phone manufacturers are still taking the consumers for a ride. I am also guilty of being a gullible party - but this is also to do with my friends who let me down in guiding for a new phone. They did not point out these issues - and now when I come across this - they say its there.

Unfortunately I am stuck with this phone for sometime till the price of the 4S comes down in India or I get it from a friend. This is quite frustrating. Simple common sense has not been used by the Android team and the Android vendors.

Sometimes, in interviews people ask what can be changed for a product. If someone asks me about Android - well, they will get an ear full.