Thursday 5 April 2012

Android Development Kit

Initially I looked at the standard Android Development Kit ( http://developer.android.com/sdk/index.html ), which is free and is the standard for creating android applications.
This primarily uses a variation of the Java language - though other options are available - combined with XML a kind of HTML layout system, which is the same language used for creating web pages.

Over the years, I have used a number of languages, but Java is possibly one of my weakest.

However in programming terms, its not so much about the language as all the work is done by libraries  - a series of pre-written routines stored in dozens of files.  Every feature, be it displaying graphics, text or whatever is done by a library call.  The programming is not  so much down to the code you write, but which libraries you use.

There are a lot of libraries to learn, that's a lot of new tricks for this old dog to learn.

The next issue was to do with my development environment.  The code is written using a PC since phones are a bit challenged when it comes to keyboards and screens.

A Program is not written all at once, like most things it's done a piece at a time.  As one part is created,  it need to be tested and ideally this testing should be part of the development environment - ie on the PC.

Android testing on the PC is done using an emulated Android device and boy is it slow.

On my Quad Core 3Ghz PC, it took around fifteen minutes just to start the emulated device and once it had started, the interface - which to all intents and purposes looks like a phone - is very slow to respond.

The partially written program ran so slowly on this device that any hope of checking timings was out of the window, and by the time the code had run, I had forgotten what changes I had made, which is not good when you are trying to learn new stuff.

I have no idea why this would be, the PC hardware is far superior to the hardware it is emulating, there is no reason for it to be this way, but there is also no way to change it as this is part of the development environment provided.

There is of course the option to use a real phone for testing, which runs at full speed, but would I really want untested code running rampant on my primary mobile?  Untested code written using a language I'm not so hot on using libraries I'm not familiar with.

To summarise;
  • Java is not my favourite language
  • A large number of libraries to learn
  • A slow PC testing environment
One or two of these I could have worked around, but the three combined suggested I looked at other solutions.

No comments:

Post a Comment