[Optimus L3, L5, L7 General] -CALIBAN666-:
What is the AOSP?

AOSP is a term you'll see used a lot -- here, as well as at other Android-centric sites on the Internet. I'll admit I'm guilty of using it and just expecting everyone to know what I'm talking about, and I shouldn't. To rectify that, at least a little bit, I'll try to explain what the AOSP is now so we're all on the same page.

For some of us -- the nerdly types who build software -- the full name tells us what we need to know. AOSP stands for Android Open Source Project. The AOSP was designed and written by folks who had a vision that the world needed an open-source platform that exists for developers to easily build mobile applications. It wasn't designed to beat any other platform in market share, or to fight for user freedom from tyrannical CEOs -- it exists as a delivery mechanism for mobile apps -- like Google's mobile apps, or any of the 400,000+ in the Google Play store. Luckily, Google realized that using open-source software would ensure that this operating system/mobile application content delivery system is available for all, for free. And by choosing the licensing they did, it's also attractive to device manufacturers who can use it as a base to build their own mobile OS.

The premise plays out rather nicely. Google writes and maintains a tree of all the Android source code -- the AOSP. It's made available for everyone (you, me, manufacturers you've never heard of and not just big players like Samsung or HTC) to download, modify, and take ownership of. This means the folks at CyanogenMod can add cool stuff like audio profiles. It also means folks like HTC can change multitasking in ways that many of us don't like. You can't have one without having the other. The big players then use their modified version of this source to build their own operating system. Some, like Amazon, radically changed everything without a care to use Google's official applications and keep their device in compliance with Android guidelines. Some, like HTC radically changed everything yet followed the Android Compatibility Program (ACP) so they could include Google's core application suite -- including the Google Play store. Some, like the folks at CyanogenMod, enhance the pure AOSP code with additions but don't change the overall look and feel. Again -- that's how this open-source thing works. You can't have it without allowing folks to change it as they see fit, for better or worse.

Any of us can download and build the AOSP. We can even stay compliant with the ACP and contact Google about including their applications. Yes, any of us could build our own device using the AOSP code in our garage or basement with Google's full blessing. That's the beauty of the AOSP, and we wouldn't want it any other way.

--------

What is a widget?

What is a widget? In Android, the word widget is a generic term for a bit of self-contained code that displays a program, or a piece of a program, that is also (usually) a shortcut to a larger application. We see them every day on web pages, on our computer desktop and on our smartphones, but we never give too much thought into how great they are. Widgets first appeared in Android in version 1.5, and really gained traction thanks to HTC's Sense-flavored version of the operating system. Prior to the release of the HTC Hero and our first taste of Sense, widgets were functional, but pretty bland in appearance. Since then, OEMs and independent developers alike have done some marvelous things with widgets, and it's hard to imagine using Android without them.

Android widgets come in all shapes and sizes and range from the utilitarian 1-by-1 shortcut style to full-page widgets that blow us away with the eye-candy. Both types are very useful, and it's pretty common to see a widget or two on the home screen of any Android phone. A full-page widget, like HTC's weather widget for late-model Android phones, tells you everything you need to know about the current conditions, and is also a quick gateway to the weather application where you can see things like forecasts and weather data for other cities. At the other end of the spectrum, the Google Reader 1x1 widget watches a folder in your Google Reader account and tells you how many unread items there are, and opens the full application when pressed. Both are very handy, and add a lot to the Android experience.

Most Android phones come with a handful of built-in widgets. Some manufacturer versions of Android offer more than others, but the basics like a clock, calendar, or bookmarks widget are usually well represented. This is just the tip of the iceberg though. A quick trip into the Android Market will dazzle you with the huge catalog of third-party widgets available, with something that suits almost every taste. With Ice Cream Sandwich supporting things like higher resolution screens and re-sizable widgets, it's going to be an exciting year seeing what developers can come up with.

--------

What is tethering?

What is tethering? Besides the grounds for a giant debate about ethics (the kind that you can only find on the Internet) tethering, in this case, means to share the Internet connection from your phone with other devices. There are several ways to accomplish this -- connecting your phone to your computer via USB, setting up your phone as a wireless hotspot and router, and sharing a data stream over Bluetooth. All these connection types are built into Android, with native Bluetooth tethering new in Ice Cream Sandwich. Of course, different manufacturers can, and have, modified things so that these options are excluded -- at the behest of the carrier, of course. We'll talk more about why in a few minutes.

Tethering itself is pretty easily done. USB tethering involves installing device drivers (Windows only) and plugging in your phone to a high-speed USB port on your computer, then using your computer's built-in connection manager to use the phone or tablet as a USB modem. Bluetooth tethering will need the phone paired with the computer, and the connection type set up correctly in your computer's Bluetooth settings. Wifi is the easiest way -- you just turn it on and connect as you would any other wireless hotspot.

Except that many carriers, especially in the United States, have blocked tethering this way.

You see, your carrier wants to charge you a premium to use your data plan from any device besides your phone. Nobody likes it, but it's in the terms you agreed to when you signed up. They have all sorts of ways to block tethering on their end, and they are pretty diligent about it. Android hackers and developers also have found ways to work around these blocks, and it's a big cat and mouse game. An inside source with one the the biggest cellular carriers in the world has specifically told me that if your usage pattern draws suspicion, there is no current method that can't be detected by you carrier, including the newer VPN methods. If you do it a lot, without paying the extra fees associated with it, you'll get caught.

We're not going to judge anyone, and a few of us here at Android Central think charging extra for tethering is silly -- especially with data caps. Just know what may happen before you start so you don't get caught unaware.

---------

What is sideloading?

What is sideloading? It's a term you see a lot thrown around while talking about Android applications, and it's simple to explain. It means installing applications without using the official Android Market. What's less simple is how it's done and why you would do it. That's where this post comes in. Let's explain it, shall we?

How to do it is easy enough, so let's start there. In the Application settings on your Android phone, you'll find a check box to "Allow installation of non-Market applications." When it's checked, you can sideload. You'll also see a pop-up warning when you check this box letting you know that your phone is now more vulnerable to attacks from applications, and that you accept all the responsibility that comes with doing this. It makes sense -- you can't hold Google responsible for applications you didn't download through their service using their security methods.

Sideloading apps is easy to do as well. You download them to your phone, then use a file manager application to find them and "click" their entry. You'll invoke the app installer program, and it will install your app just as if it had came from the trusted Android Market. It won't be associated with your Android Market account, but it shows in your app drawer just like all the rest. It didn't used to be this easy for everyone. Under the guise of security, AT&T used to block users from sideloading by removing the Unknown sources field in the device settings. Whenever you tried to manually install an app, it would be blocked because it wasn't allowed. This could be circumvented by using adb from the SDK or by using a program like the Sideload Wonder Machine. Luckily, those days are past us and AT&T has re-evaluated their position, and now allows the installation of non-Market apps.

Why would you want to sideload. There are several reasons, one being that Google has allowed carriers to block certain applications based on the model and network your device is running on. We've seen carriers block apps that permit tethering without paying the extra associated fees, and some carriers have exclusives for certain apps and they aren't available for the others. That's a whole other mess that we'll tackle in another post -- just know that it happens. There are other reasons to need to sideload apps, too. Want to use a different appstore like the one from Amazon? You'll need to enable sideloading. The same goes for beta testing apps for developers, or even coding your own apps and testing them on your phone. There are a lot of legitimate reasons for sideloading. Of course, there's always the piracy aspect. If you want to steal from hard working developers you'll need to enable sideloading. You also suck. Sideload, but don't steal from developers.

--------

What is open source?

What is open source? Open-source software is software that makes the source code freely available, for anyone to see and use. There are different open-source licenses that have different use conditions, from the GPL (GNU General Public License) -- which allows "free distribution under the condition that further developments and applications are put under the same license" -- to more liberal licenses like the Apache License, which doesn't require modifications to be open and have the source code available. Android uses both of these licenses, and we'll have a look at them in turn.

The Linux kernel that is used in the OS is covered under the GPL. This means that any changes made to the source code must be made available when a binary (geek-speak for a compiled, executable piece of software) is released to the public. This means manufacturers like HTC, Samsung, Motorola and the rest must release the kernel source-code for any devices they sell at the same time they begin selling them. For the most part, hardware manufacturers are pretty good about doing so, but they often miss the time frame and release the source code a little later than we would like. These are the code releases you see us mention -- the kernel and other open-source "bits" that are covered under the GPL.

The Android OS source code is released mostly under the Apache License. Anybody is allowed to download the source code and change it however they like, but they are not required to make their changes available in source code form to the public. This is why we can't change and recompile things like HTC Sense or MotoBlur -- the changes to the base Android source code aren't available to us. While many folks (myself included) don't like this situation very much, it does make sense from a business standpoint. If manufacturers had to share all of their secrets, there wouldn't be as much monetary incentive to innovate, so the source was offered with a far more liberal license. It certainly worked, as we see devices from many major players in the electronics world.

---------