Sunday, 30 November 2014

Android Lollipop and ART

Android 5.0 and ART

Android 5.0 or Lollipop as it is more commonly known is a giant leap for android and a step in a direction to making the mobile operating system more awesome than it already is. 

Android has been around for quite a while now, and those of you who have studied the specifications and have either self taught or learned how to program and develop mobile applications for Android Mobile Devices know that is has been a rocky road. Many bugs and flaws marred the initial release of Android making it difficult to develop for and use.

Since those initial releases of android it has become a powerful beast that has gone toe to toe with Apple, and other mobile operating systems and in some cases came out the victor. However it has always had its weaknesses, Android is a derivative of Java and at its very heart is the Java Development kit, despite exhaustive adaptations to make it lean and mean more mobile friendly it has always had downfalls, chief of which was the Dalvik Virtual machine.

Now don't get me wrong The Dalvik Virtual Machine is a fine piece of software that has spawned some of the most versatile operating systems on the planet. It will continue to grow in its prowess and power as technology gets better, but it was never designed for mobile devices and the limitations of its hardware.

Now I know each year mobile devices are getting more powerful, tech giants are managing to stuff them with more and more RAM and their processors are getting smaller and faster. They still operate differently to tower PCs however, due to the complex and restricted nature of mobile technology.

Google and the open handset alliance have known this for a very long time and have always insisted that improvements where on the way. Something that would make Android a true Mobile Operating system and quite possibly the king of them all.

Introducing Android 5.0 and the Android Run Time (ART) for short. Android Lollipop brings a plethora of improvements both visually and behind the scenes. Their new "Material" Design is a breath of fresh air whilst behind the scenes the Android operating system and ART are a vast improvement in terms of performance.

ART was designed from the ground up to be a mobile first run time environment for the Java based operating system. No only does it give more power to the developer by providing improved debugging features and support greatly improves on garbage collection, making it a much leaner and meaner machine than before.

Then there is Ahead of Time Compilation, this is when you compile a high level language straight into a native system dependent machine code. Greatly increase performance by eliminating the step of compiling intermediate code before its execution.

Why is this better? Being able to directly compile a high level language into a machine readable code cuts out the middle man. Most Just In Time Compilers at initial compile time compile the language into an intermediate language that can be interpreted by an interpreter at run time. On more capable machines this is a good thing allowing the program at run time to compile at run time or just before run time, has many benefits but can reduce performance in more limited systems. Being able to cut out this interpreter means code can be compiled and ran much faster on mobile systems.

ART is still pretty new and there will be bugs and kinks to work out but already it is showing that it can greatly improve on the performance of the old Dalvik Virtual Machine. Give it some time for Google developers to find all the kinks and bugs and I believe that Android could become the quickest and most powerful mobile operating system on the planet.

If you want to find out a bit more about ART and Ahead of Time Compilation check these links out.

Friday, 14 November 2014

The Project

About the Project

I love mobile devices and developing for them, I am a huge fan of the Android Operating System. I love its durability and the fact it allows you to customize almost every aspect of your user experience with a multitude of applications.

So with that in mind I decided to develop an Android application for my Final year Project at Teesside University.

For a while now Android operating systems have been getting bloated and bloated as the newer top of the range mobile devices have been getting more and more powerful. Leaving older less capable mobile devices to cope and handle a lot more processes that they where never designed to do.

So i decided enough was enough.

Android Launcher Application


I decided that I would develop an Android Launcher Application. An Android Launcher Application is the main user interface for the Android Operating system it is an application that you see when you start up your android mobile device and allows you to navigate to all your applications that you have installed on the mobile device.

There are many different ones out there, on the market place but very few really deal with issues such as memory usage and processing power. They are simply bloated user interfaces designed to look nice without any real care for older devices.

My Launcher Application will develop on existing concepts making them better, as well as taking into account memory usage and  the mobile devices processing power to keep its foot print as small as possible. This will allow for a quick fluid user experience on both top of the range mobile devices and older models ensuring everyone has a good experience when using their mobile device.

The aim of this project is to develop an efficient application that does not use much memory or processing power, looks visually appealing and allows the user to easily navigate and customize their experience using the Launcher Application.

This blog is to document my progress on the project and for any interesting developments that occur during its development.