Monday 16 June 2014

The Beginner’s Guide to Android

The Beginner's Guide to Android If you ask someone what an iPhone is, the answer is pretty obvious, and even people unfamiliar with iPhones are likely to be able to tell you pretty accurately what it is. But if you ask, “What’s an Android?” you are likely to get a more diverse set of answers. Many people will be able to tell you it’s a smartphone, but where does it go from there? Who makes the phone? How big is it? Are you talking about smartphones, or a robot that looks and acts like a human?

All About Android

What is Android?

“Android” specifically refers to a mobile operating system (based on Linux) that is developed by Google.  It is open-source software, meaning that anyone can download the source code and use or modify it.  Hardware manufacturers often take the base Android code and then add their own proprietary software features to it to run on their own phones.

Is Android just for Phones?

Android doesn’t just refer to smartphones, though most people probably think of them first.
Definitely not!  There are more and more Android tablets on the market, like the Nexus 7 and the Kindle Fire from Amazon.  But Android can run on all sorts of devices, from cameras to game consoles to car systems to glasses!
As for phones, Android users can pick the device that’s just right for them.  Budget-conscious users can often find free Android phones with pay-as-you-go service, or gadget freaks like myself can opt for large, high-end phones like Samsung’s S3 or Galaxy Note 2. What’s more, if you don’t like how the operating system on your phone is configured, you can always overwrite it with a custom version like the popular CyanogenMod ROMs for Android phones.

What can Android devices do?

The hardware features will vary depending on the type of device it’s running on, but the Android operating system provides support for cameras, GPS location, Bluetooth, Near-Field Communication (NFC), accelerometers, compasses, gyroscopes, and more!
The Android operating system features software components like live wallpapers and widgets, a powerful notification tray to help you keep track of important updates, voice typing, and seamless app integration, which allows users to easily share information via social networking apps or other forms of communication, like NFC.

All About Android Development

As the number one mobile operating system in the world, Android devices are used by more people than any other type of mobile device.  This gives developers a great opportunity to develop apps that can potentially be used by hundreds of millions of people.  Getting started with Android development might seem a little overwhelming, but our mission at Treehouse is to make it approachable and fun. Take a look at the Build a Simple Android App project if you want some step-by-step instructions on how to get started, but read on for more details.
Android Garden at Google Headquarters
Every major release of Android has had a food-related code name, and a statue to commemorate each is visible at Google HQ*.

What languages can I use to write apps for Android?

Android apps are typically written in a programming language called Java.  Java is immensely popular, and as an object-oriented language, it’s easy to pick up if you’ve worked with other object-oriented languages like C#, Objective-C, or Ruby.
Google also provides a Native Development Kit (NDK) that allows developers to write important parts of their apps with native languages like C or C++.  This can be helpful if you need to reuse existing code or libraries in those languages, or if you want to try to get as best performance as possible for your app.
There are some tools that allow you to write apps using web languages like HTML, CSS, and JavaScript.  You can either write apps that run inside something called a WebView, meaning that it’s a full-fledged web page that runs inside an app instead of a browser, or you can use tools like PhoneGap or Appcelerator Titanium to write code that compiles down to native code behind the scenes.  There are pros and cons to taking this approach. In general you will get the best results by using a native language like Java, but you can certainly make solid apps that can delight your users with whatever tool you choose.
If you really love another programming language, you can use some 3rd party tools to write apps in that language, though these will always lag behind the latest features that get rolled out with each Android update: