What is ADB?
Welcome to our our latest feature here at Android Central. This one's geared more for you folks who are just getting started with Android, but it's a great refresher for you veterans as well.
Tucked away at AndroidCentral.com/dictionary is -- you guessed it -- a glossary full of Android-type terms that we use every day. Don't know what we're talking about? Chances are a quick look with explain things for you. We're constantaly updating the dictionary. So if something's missing, chances are we're getting to it. (Feel free to yell at us in the meantime, if you want.)
So let's kick things off with an easy one.
ADB: Stands for Android Debug Bridge. A tool used to connect and sends commands to your Android phone from a command line on a desktop or laptop computer.
What is a bootloader?
At its most basic level, your Android smartphone is like a hard drive, made of up several partitions. One of those partitions holds the Android system files, another holds all the app data you accumulate (which is how you're usually able to update without losing all your stuff), and others to do more behind-the scenes stuff.
Think of the bootloader as a security checkpoint for all those partitions. Because if you're able to swap out what's on those partitions, you're able to break things if you don't know what you're doing. Or, with a little hackery, you're able to run custom ROMs.
There's a lot of squawking about bootloaders being "locked." Actually, most phones shipped with a "locked" bootloader, including the developer-friendly Nexus devices. (Nexus devices and a couple tablets are easily unlocked with a single command.) No, more accurately, most bootloaders are locked and encrypted, meaning the traditional "fastboot oem unlock" command won't do a thing.
And that's a bone of contention for those who love a manufacturer's hardware and want to tinker with their devices. HTC and Samsung and Motorola -- just about everyone, really -- ships devices with locked and/or encrypted bootloaders. Tinkerers (we really don't like calling 'em "hackers") have to find a way around the encryption, usually with some sort of an engineering bootloader that wasn't supposed to be available to the general public. But in recent months, we've seen HTC provide a free tool that will unlock the bootloaders on a number of its devices, and ASUS just got on board, too. Sony Ericsson recently has provided unlocking tools. Motorola's promised to do so as well, but there's been little movement. LG and Samsung ship with unencrypted bootloaders.
Why keep a bootloader out of reach? Probably the biggest reasons are that the carriers and manufacturers don't want to have to support hacked phones. The other is that a lot of time and money is spent developing these things. HTC Sense ain't cheap. Neither is TouchWiz. But Samsung and HTC both have managed to find a middle ground with the modding community, and pressure is on other companies to do so as well.
What is CES?
In just a few short days we'll be back yet again in Las Vegas for the 2012 International CES. That's Consumer Electronics Show, if you don't know, and it's the largest gathering of nerds west of the Mississippi. Or east of the Mississippi. Or anywhere near Mississippi.
CES isn't just a mobile show, though. It's everything electronics. And while that means you don't get quite as much mobile tech as you will, say, at Mobile World Congress (in Barcelona in late February) or CTIA (in New Orleans in May), we'll still see our share. In January 2011, CES is where we got our first good look at the likes of the Motorola Xoom Honeycomb tablet. And the Droid Bionic, Cliq 2 and Atrix, and the HTC ThunderBolt, Inspire 4G and EVO Shift 4G. And LG Optimus 2X and Revolution.
Here's what's coming up this year:
CES doesn't officially start until Tuesday, Jan. 10. That's when the show floors open.
But Monday, Jan. 9, is Media Day. Press conference after press conference. It's a little insane, actually.
And stuff's actually going down on Sunday, too. Le sigh.
Unlike years past, the Adult Entertainment Expo isn't taking place at the same time, adjacent to some of the same venues. There shall be no (or at least not quite as much) accidental mixing of nerds and nipples. (We can't be held responsible for what happens in Vegas after hours, though.)
We're going to have more liveblogs than you'll be able to follow. It'll be epic.
What is Dalvik?
We hear that word getting thrown around a lot on the Internet when talking about Android and its inner workings. While there's no easy explanation we can give in just a few paragraphs, we can cover the basics and point you in the right direction if you need to feed your nerdly side. In its simplest terms, Dalvik is a virtual machine that runs applications and code written in Java. A standard Java compiler turns source code (written as text files) into Bytecode, then compiled into a .dex file that the Dalvik VM can read and use. In essence, class files are converted into .dex files (much like a jar file if one were using the standard Java VM) and then read and executed by the Dalvik Virtual Machine. Duplicate data used in class files is included only once in the .dex output, which saves space and uses less overhead. The executable files can be modified again when you install an application to make things even more optimized for mobile. Things like byte order swapping and linking data structure and function libraries inline make the files smaller and run better on our devices. The Dalvik VM was written from square one with Android in mind.
Confused yet? Don't feel bad, geeky programming talk usually has that effect. Think of it this way -- when you build a Java application for your computer, a Java Virtual Machine runs the compiled output of the source code. This is why Java runs on just about any operating system. Dalvik is a mobile-optimized version of a Java Virtual Machine, built with code from the Apache Harmony project, which is open-source and runs better than a standard Java VM would on our limited hardware, designed so that you can run more than one instance of the VM at a time -- ie multitasking. Because Dalvik is open-source, it's also been ported to other operating systems, like the one on the BlackBerry PlayBook. It's pretty damn complicated, pretty damn cool, and Oracle (the company that bought Java from Sun) hates it.
Android uses Dalvik because while the license for the standard Java Virtual Machine is GPL2 (free and open-source), when placed in a mobile device and using the Java Micro Edition, it is not. The big dispute between Google and Oracle is all based around Dalvik. Google claims it was written in a "clean-room" environment without using any of Oracle's code, and Oracle disagrees. We claim to have no idea, we're just glad it works as well as it does.
What's an ETF?
An early termination fee is something you agree to, albeit grudgingly, when you sign a contract with a carrier. In return for, say, Verizon, selling you a phone for $199 instead of the "full" $499 off-contract price, you agree that you'll stay with that carrier for a given amount of time. In the U.S., that's usually two years. (In Canada, it could be an excruciating three years.) So you get a cheaper phone, and the carrier gets guaranteed monthly payments.
You can break out of that contract, but there are penalties. That's where the ETF comes in. If you want to break a contract and move your service to another carrier, you'll have to pay the early termination fee. It's usually prorated depending on how many months are left on your contract, which is good. But it still can be several hundred dollars. (Occasionally you'll hear about your new carrier promising to pay the ETF for you.)
Here are the ETF conditions for the four major U.S. carriers as of this writing:
Verizon: $350 for an "advanced device"; $175 for others.
Sprint: $350 for an "advanced device"; $200 for others
AT&T: $325 for an "advanced device"; $150 for others
T-Mobile: $200 if more than 180 days left on contract; $100 for 91-180 days left on contract; $50 for 30-90 days. With less than 30 days remaining, ETF is $50 or amount of your bill, whichever is less
What is fastboot?
In Android, fastboot is a special diagnostic and engineering protocol that you can boot your Android device into. While in fastboot, you can modify the file system images from a computer over a USB connection. It's a powerful, nerdy tool that deserves to be broken down into terms we all can understand -- let's try and do that.
Not all phones have a fastboot mode that the user can access. It's turned on with Nexus devices by default (as well as a few other phones and tablets) and has been enabled by independent Android developers and enthusiasts on some other phones. It also requires more than what ships with the Android SDK, and different USB drivers for Windows computers. Fastboot runs on Windows, Mac, and Linux and all the information about setting it up can be found in the forums if you're interested. Once set up, you boot your phone to fastboot and you can flash image files to your phone's internal memory. Flashing a custom recovery like ClockworkMod is a popular use case, as is resetting it all back using factory images after we're done breaking things. The images you flash don't need to be signed with a particular key, so just about anything will try to flash -- even if it shouldn't be used, so use care. There are other commands you can use with fastboot, and they're a bit more advanced. Things like erasing partitions and overriding kernel command line options can be done, and this makes the tool very useful for developing hardware and software solutions that may need customized booting procedures. With a little bit of knowledge, and the right Android hardware, fastboot can be a great tool.