Step 0.1; trying Android’s Hello World …

If you are reading this post and have not installed the Android’s Software development kit you may want to read Step 0.0 before continuing. If you are reading just for amusement go ahead without fear it will be fun.

Of course I am not planning to repeat what others have done just right. I found the official  “Hello World” tutorial from Android’s developers site very complete and helpful to get us started. There is even a complete website titled “Hello Android” dedicated to publish Android’s tutorials among other things. But what I am really exited about is to start reading and actually coding by following “Hello Android: Introducing Google’s mobile development platform” on its third edition by “The pragmatic bookshelf” folks.

This is not the first book I buy from “The Pragmatic Bookshelf” and I have to confess that I am a bit addicted to their books. I found their writting style and the way they organize their books very attractive and practical. If you are the kind of geek who learns by doing I would not be surprise that you will feel the same whenever you read books from this developer’s book shop.

This time the pragmatic programmer’s surprised me with a concept that I had not experienced before, well I have to confess that I did not read the first or second edition of this book so for me a section called “Fast-Forward” at the end of each chapter was pretty innovative. Basically if you need to get a grasp of what each topic is about and jump right into coding by just reading the target chapters this is what you need or even if you have already read the whole book but just happen that you want to refresh the concept before an intensive coding session “Fast-Forward” is what you want to go through to find out what you want to read again.

At the time of writing this article I had not finished reading the book so coding examples are still to come from my side, rather that showing silly code I would like to show a more hearty “Android’s Hello World” but for that I need to prepare few server side Restful interfaces to play with from my very first Android’s application. So this is the plan; I need to extend a web application to manage customers information and what a great first Android’s App such I can also manage my customer’s from a smart-phone.

Android’s Samsung and LG upcoming charge, now we are talking …

Someone can not take a couple of weeks of vacation without feeling like getting behind on this Android’s offerings race. It is not news that we all have been waiting for the Samsung Galaxy S family of smart-phones to show up at all four major wireless US carriers sporting very similar “hardware” so now is not about the phone itself or the OS but your carrier of choice that actually comes into play and this is good for consumers; yes competition is good and for us to compare the carriers with less of the hardware bias in mind. Samsung’s Fascinate (Verizon), Captative (AT&T), Epic 4g (sprint) and Vibrant (T-Mobile) are not only very similar but they all are very competitive at the mid-high end of the smart-phone device market.

LG’s a big name in the wireless phone industry is just coming up with a similar strategy proposing a family of smart-phone devices called “Optimus” sporting latest Android’s 2.2 “Froyo” way ahead of anyone else including Samsung so far. LG’s Optimus which may also will follow Samsung’s approach to be open to all US carrier’s with similar and competitive hardware options including Android’s based tablets as well.

Once a dream of bell labs gurus including Dennis Ritchie and Ken Thomson the original creator’s of the Unix OS way back in the late nineteen sixties and a group of high profile computer scientist including Rob Pike and Douglas Mcllroy among others tried to come up with the idea of having a small but powerful OS (Plan 9) capable of running networked appliance devices and taking advantage of the Internet endless possibilities. Today it is not “Inferno” but Android OS which as any other microkernel OS “Unix Like” operating system such as “Linux” highly leveraged key interconnectivity concepts from Plan 9′s original proposal but at the end the vision is getting to become reality among commercial and consumer electronics market. Both Samsung and LG already well established tech appliance device’s giants seriously pushing Android’s capable devices which are not only aiming at the smart-phone’s market but literally we are talking about serious companies getting into the whole spectrum of cloud portals kind of devices such as mobile, home and business appliances running Android’s OS platform there will be no limits.

References for my academic “geek” fellows

  1. Plan 9 authentication in Linux, ACM SIGOPS Operating Systems Review, Volume 42 , Issue 5 (July 2008) Research and developments in the Linux kernel, Pages: 27-33, Year of Publication: 2008
  2. The use of name spaces in Plan 9, ACM SIGOPS Operating Systems Review, Volume 27 , Issue 2 (April 1993), Pages: 72 – 76, Year of Publication: 1993
  3. What’s GNU? Plan 9 Part II, Linux Journal archive, Volume 1995 , Issue 12es (April 1995), Article No.: 5, Year of Publication: 1995
  4. Plan 9 from Bell Labs, Proc. of the Summer 1990 UKUUG Conf., London, July, 1990, pp. 1-9 (
  5. Plan 9, A Distributed System, Proc. of the Spring 1991 EurOpen Conf., Troms, May, 1991, pp. 43-50 (

Android’s revolution has just started …

It is amazing but if anyone of us were told how big Android’s smart-phone offerings will explode in 2010 nobody would take it seriously. Just few weeks after iPhone4 spectacular announcement by Steve Jobs and company (of course the device is not still available until June 24th and only for those eager to make the big waiting lines) AT&T has readily available its brand new HTC Aria for 130 after rebate and has also announced that Samsung Captative is coming up preceding the Samsung big bang announcement at NY this Jun 29th! So what is interesting is that Android’s smart-phones ranges from many different sizes and vendors including a wide range of pricing which would suggest that they will be targeting a wider spread of potential customers as compared with the few willing or able to pay for prices at the high end of the spectrum.

Competition is good and seriously it is getting darn good! A list of Android’s devices is somewhat kept up to date at wikipedia. Besides HTC and Motorola that has been front runners so far but the big players in the low end of wireless devices such as LG and Samsung are emerging with very appealing and affordable options for the rest of us. On top of that PC maker’s such as ACER and DELL are also aggressive with their hybrids smart-phone/entry tablet devices…

At Verizon you can get an Android phone staring from 49.99 (LG Ally) up to HTC Droid incredible for 199.99. But as incredible as it sounds Verizon is already making space for the newest Motorola Droid X which is aiming to compete front to front with HTC EVO 4G and the so expected iPhone4. Thanks there are options and many of them. Similar offerings from other wireless carriers are coming as well, so an smart-phone for everyone seems likely the future to be.

On the Nokia front of course this is not Android but Symbian OS based the Nokia N8 has been also announced and looks pretty promising if price point . Palm is getting stuck with the Palm Pre and Pixi offerings and it does not sounds like there will be anything new before HP’s take over gets completed. We can not rule out neither Nokia or Palm since they share of the overall wireless market is still strong.

But if you are a hard core developer and aiming for trying Android SDK to create Android Apps then you may be waiting just like me for a discounted Nexus One or an Android Development phone, yes these smart-phones are not leading edge in regards to feature set and they are not subsidized unless you want to get engaged with T-Mobile  which is not the most appealing option in the USA northwest at least for me. Getting a development friendly device means it is hardware unlocked, it features a plain boot loader which usually means you can upgrade to the latest Android release as soon as it gets available and you may be able to run not signed apps to test them before you get them up to Android Market or any other distribution way you may choose.

I have to say it again, seems to me that there is no better time for a software engineer to be get into the “Apps” software development wave, just choose a couple of targets to start with and get ready to amaze the millions of potential user’s that are awaiting for your next “App”.

Step 0.0; get Android SDK installed …

To much writing and no signs of moving towards some coding action yet so its time for a step forward. There is no way to produce or even try any Android OS code before actually installing the so famous Android SDK which at the time of writing this article its offering the brand new Android 2.2 platform.  It is great that Android Developers site has this part fully covered so I will not attempt to create another “How To” piece here but just document my very own experience and perhaps be able to add some humble annotations and comments. I need also to disclose that this is my first time trying Android SDK or any similar smart-phone SDK so I do not have any particular expectation but having a fast, smooth and successful installation attempt.

Preparing the development environment is the first step

In my case I am running Ubuntu 10.4 LTS – 64 bits workstation operating system on a desktop computer. Android’s SDK is Java based so the first think is to make sure Java JDK is all set up. Yeah, Android folks have a specific “Ubuntu Linux Notes” section, it is not great. Seems like I need to make sure I got “ia32-libs” and “sun-java6-jdk” packages installed.

Lucky me! I got all that stuff installed already, go figure that would be the case for a software geek, well I am not embarrassed in any way.

Ok. Seems like Eclipse IDE for Java developers “Galileo” version is a recommended one, this one I know I do not have installed while I do really prefer the Bash shell and a trusty plain text editor like “Emacs” or “Vim” but I do not think it will hurt having this tool as part of the arsenal just in case is really needed one day. I am not going to explain the whole Eclipse installation which involves downloading a “tar” file, unpacking its content and create a application launcher. Instead I will make a reference to John Paulett instructions which I followed to have this task completed.

Well, seems like that is it to get ready so let’s get into the subject matter now.

Getting the actual Android SDK is next …

Good, this part is also pretty straight forward. It requires to download Android SDK core files, unpack them under your home directory and add a reference to system path to make programs within tools folder available. So far everything has been business as usual with no problems following Android’s page instructions, nice!! The content of the core SDK folder is shown in screen-shoot below.

Seems like Eclipse IDE is a real deal …

Well, Android SDK installation instructions dedicate a section to help you configure Eclipse’s required Android Development Tools plug-in. If you are looking for using the shell this step is not necessary. I am getting the feeling that Eclipse is a big deal for Android development or just a big deal for Java developers in general, I can not make an opinion on this topic by now but I am intrigued to learn more about it so I will go ahead and have this ADT plug-in setup. Wow, to get to the actual ADT plug-in installation instructions you have to navigate for a couple of links, here it is a shortcut to the actual “Downloading ADT Plug-in” page. Configuring this plug-in involves several steps as shown in screen-shoots sequence below.

Step 1. Open up you freshly installed Eclipse IDE and select from menu. Help -> Install New Software
Step 2. Adding plug-in site information. Click OK.
Step 3. Select developer tools to be installed and click next.
Step 4. Well, if you want to continue you must agreed with terms and conditions. Nothing to be afraid here with a GNU Public License.
Step 5. Well, I did not expect this message but seems like Google still need to work with the Eclipse folks to have ADT packaged signed. I would not worry about this and click OK.
Step 6. Well, Eclipse needs your confirmation about accepting this unsigned certificate. Yes, no problem click OK.
Step 7. What??? Three times to convince Eclipse IDE that I really do not care about Google’s unsigned package problem. Click OK.
Step 8. Cool, after few minutes we got this ADT plug-in installed. wonder if other Eclipse plug-ins also get force to pass over all this clicking OK and Next buttons sequencing. Seems like we are good now!

Finally installing Android SDK components …

I guess this is the installation step we have been waiting for. Time to install Android SDK platform and extra components. After reading the brief explanation I decided to go for the “FULL” install. One more click takes me to “Adding SDK Components” page. There are many ways to do this including a very easy and straight forward via bash but we have got our Eclipse IDE and ADT plug-in installed already then let’s try the GUI way this time. Just had to open up Eclipse IDE again and followed the steps as shown in scree-shoots sequence below.

Step 1. From Eclipse IDE select from Menu. Windows -> Android SDK and AVD Manager.
Step 2. I am committed and went ahead selecting all “Available Packages”. Click “Install Selected” button.
Step 3. Yes, I am sure. select accept all radio button and click “Install” button below.
Step 4. Things are looking promising now, just need to wait until all these components are downloaded and installed.
Step 5. Cool, Eclipse installer found a dependency. Well I accept it. Clicked Yes and things continued.
Step 6. Cool, it all done. Click “Close” and got back to Eclipse IDE, no errors!

Final comments…

The installation process indeed is not complicated but it takes several steps and different applications to be executed, at least for Linux 64 bits version some basic Linux shell knowledge is definitely required. Seems like Eclipse IDE is optional but there is a lot of documentation that suggests that is a good idea to use it not only for installation but for executing common Android development tasks as well. I will be writing about “Hello World” Android application tutorial and other findings in a separate articles. Now we are ready to create Android projects from Eclipse IDE as shown in scree-shoot below! Yeah.

Is Google TV one more reason to lean towards building Android Apps?

In a previous post I got some time to think about smart phone’s “apps” world of Software Development Kits. One of Google’s most recent announcements may shake the apps world up quite a bit. Google in partnership with Logitech may easily change anyones perspective’s around building apps. Google’s TV runs over Android OS and as commented by “Vincen Dureau” the geek behind Google’s TV on recent interview; they are aiming to have mobile apps running natively on your TV and later they will be adding some specific TV APIs into the mix but certainly a Google’s TV SDK is coming.  So if you have been thinking on getting into mobile apps wagon Android OS is aiming to get positioned more as a broad web enabled appliance platform which may lead to “DEFACTO” standardization in the future including mobile, home and business devices that require to be always connected to the web.

Today, Samsung and Sony are about to offers SDKs for their TV sets and Yahoo in collaboration with TV makers also offers a TV widgets SDK. TiVo media SDK much like the Google TV but without the search component just yet. Apple is still to announce an SDK for its Apple TV that would presumably be competing against Android Market too. Microsoft with its media center SDK was a pioneer on this end but for some reason it has not gotten into the consumer’s stream but an option to be considered which has not an appliance factor yet.

JUST A HUMBLE OPINION: After so many years of operating systems battle in the PC arena, seems like the PC is becoming the less attractive emerging platform to deploy applications and the platforms showing a winning trend are Unix/Linux like operating systems in pretty much all fronts. As a Linux Desktop user for many years now I am not surprised of how things have been evolving. While Microsoft designed their operating system platforms to incrementally be extremely HW demanding with every new release (which I suspect to accelerate PC market replenishments)  Linux like operating systems has always bet on small footprint and performance which is finally paying back on the mobile devices arena and will be certainly aiming to the web enabled devices at homes, retail spaces, factories and enterprise offices in the near future.

The only one thing I can certainly say is that there has not been a better time to be a Software Developer and it is getting better every day. There are tons of options to capitalize and grow on the apps market with hundred of millions of potential user’s in the playground.