Friday, December 31, 2010

Aluminum Sound Tube mp3 Speaker Gadget

For us who liked the music there seems no harm in trying this one portable device, dubbed Aluminum Tube Sound mp3 speakers, because it's made of tubular aluminum to accommodate the function of sound through speakers embedded in it.

Needless to large dimensions to get sound qualified. Although small, this tool is to generate sound booms sound like analog. For a principled "big is better" seems to be sort forehead as he heard the sound produced sound of this portable.

With a size no bigger than a mobile phone charger is capable of being a storage device as well as the speaker for devices that require external speakers. With the back of the mengakomodari session key players, such as stop, fast, and play as well as dedicated storage microSD and micro USB type, just to be a fun entertainment tool.

Seconded by a battery charger, this tool is also capable of playing mp3 features of course, after connected. In addition to connect with MiscroSD this tool to connect with any devices such as mobile phones, ipod, or iphone, even though computer. Because of the size of a mini, we can enjoy our favorite songs rebound with enough jarring sound while riding a bicycle for example.

To get it simply go to the stores that sell compact digital devices, such as the store computer or mobile phone shops. The price range offered is about $350-400.

Specifications:

* mini compact speaker with great sound
* Able to maximize bass perfectly
* Serves as an mp3 player, and supported by a battery charger (mini USB)
* The ingredients sound alternative that can be connected with the iphone or ipod
* Able to operate for 12 hours nonstop with optimal charging Charge for 6 hours
* Able to accommodate up to 8 GB capacity microSD
* Equipped belts and adapter (breket) bicycle

Thursday, December 30, 2010

USB LED Beverage Cooler: Mini Refrigerator with USB

What will happen if when we are busy working those struggling with the computer, but not available a refreshing cold drink. When that happens, of course, we will go to the nearest store to buy a soft drink, both cans and bottles. But how long it usually for drinks stay cold? Longest 30 minutes of drinks packaging is gone freshness.

With the creation of digital devices that enough to help the needs of humans, it appears that we do not have to worry about it. Have you ever know if there's a portable refrigerator that was created for fans of soft drink. The answer is a USB LED Beverage Cooler, ie, the cooling device by relying on power from the USB port made by Newo Coproration USA.

Dimensions rectangular box 9.2 x 5.9 x 4.2 inches, weighs 1.5 pounds, Like a refrigerator, but can only be filled by one standard-size soft drink. As the cooling seems this tool does not require Freon, but the blue light glowing on the inside of the source.

At the bottom lies a filter that regulates retasan that condenses water from the cans. Safe enough for the size of digital devices that come into contact with the liquid. Of course, all of which must be operated carefully according to its function.

With this tool capitalize, it appears that we are struggling in front of the computer center, no need to go back and forth to the kitchen or the refrigerator just to enjoy the freshness of softdrink. Adequate solution can be considered. Only by 200-250 thousand dollars of this tool is available in stores gadgets and computer stores.

Tuesday, December 28, 2010

Asus WX-DL Optical Mouse-Based 'Touch'

Technology 'touch' has become the current trend. See, many of the latest smartphone to adopt this technology on the screen. Well, as if to take advantage of 'phenomena' that are 'in ' this, Asus try to refine the labeled products WX-DL, ie, touch-based optical mouse.

In addition to adopting the touch technology, this mouse is unique formations, with a fairly round models can be as a differentiator with other mouse on the market. Not only that, the mouse touch WX-DL Asus is dibenami also with multimedia elements on the button. And, a 1200 DPI laser sensor was attached to the aluminum body.

Unfortunately, Asus mouse claim is only compatible with Windows operating systems, ranging from Windows 2000 to Windows 7. This mouse is available at a price of about $80.

Sunday, December 26, 2010

Skooba Weekend Warrior Multifunction Notebook Bags

Many notebook bag on the market. Only, there are models that look that's all, nothing unique. mostly limited to a bag that also function as a backpack (back pack). However, recently found a notebook bag that is really revolutionary.

Look at the Weekend Warrior, which is not merely a laptop bag but also multifunctional hybrid travel bag. Skooba bags are made to provide some 'space' for the purpose of your travel, in addition to the slot for the notebook of course. Weekend Warrior provides a place to accommodate the cables notebooks, stationery, cell phone, small notebook, CD box until sepatu. Not less than 24 pocket notebook bag is provided, where there are two large compartments to accommodate your clothes enough to travel for 2 days.

Weekend Warrior has a special sleeve at the edge of the bag to put your notebook, measuring 15" or 16". There is also a Weekend Warrior who has a sleeve for notebooks 17", with the excess of his sleeve can be used separately without having to carry his bag.

Weekend Warrior notebook bag with a small sleeve sold at a price of $119.95. And, for a large bag with a sleeve with a price of $124.95. Want to know more about this notebook bag, just visit www.skoobadesign.com.

Friday, December 24, 2010

Merry Christmas

"Let the spirit of love and charity fill up our hearts. Merry Christmas to all of you"

LG Optimus Mach Ready to Roll with Android 2.2

LG will reinforce its smartphone products. Having previously introduced a new candybar phone called LG S310, now the Korean electronics manufacturer introduced a new smartphone called LG LU3000 Optimus Mach. Interestingly in addition to the Android platform 2.2, Optimus Mach also equipped with 1 GHz processor.

Not only that, the ranks of other specifications such as 3.8-inch screen with 800x480 resolution, along with 5 MP camera autofocus and the ability to record a 'high definition' presence will further enliven.

LG LU3000 smartphone will be launched at a price of about $700. For the initial stage of this phone is rumored to only touch the Korean market. It is unclear whether this phone will also be launched to the market in other countries. For that we wait further news.

Wednesday, December 22, 2010

More Payment Options in Android Market

[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]



A key to a great purchasing experience is providing users with simple and fast payment methods. The Android Market team has been working hard to deliver more forms of payment to further reduce purchase friction.


Today, I am pleased to announce the availability of AT&T Direct Carrier Billing for Android users on the AT&T network. AT&T Android users can now easily charge their Android Market purchases to their monthly accounts with only a few clicks. With the combination of Android Market’s new app discovery features and a carrier-backed frictionless payment method, users will find it significantly easier to discover and purchase applications of their choice.


We’ve been rolling out Direct Carrier Billing to all AT&T users over the past several days, as part of a general update to the Market service. Also in the update, please watch for the arrival of new features we announced recently, including the 15-minute refund window, dynamic Wallpaper and Widget categories, new 50MB max .apk size, and more. In addition, we’ve added even more categories to make it easier to find great apps in popular categories, such as “Media & Video”, “Music & Audio”, “Business”, “Sports” (in "Games"), and more. If you have one or more published apps on Android Market, please take a look at these new categories and decide if they are more suitable for your products.


We strongly believe carrier billing is a great way to make it easy for users to purchase and pay for applications. In addition to the availability of AT&T and T-Mobile US carrier billing, we’ll continue to partner with more carriers to offer carrier billing options for their subscribers.


2010 has been an awesome year for Android due in large part to your support. We have seen tremendous growth in Android Market both in terms of application volume and quality. In 2011, we remain committed to making Android Market the best mobile application store possible. As always, please don’t hesitate to continue giving us feedback through Market Help Center.


Best wishes for the new year!

Acer beTouch E140 a Tiny and Complete Android Smartphone

Acer E140 beTouch finally officially announced by Acer. As expected earlier, Acer beTouch E140 will be launched and compete in the smartphone market armed with the operating system Android 2.2 a.k.a Froyo.

Other specifications that participated brought by this Acer brand-new smart phone, including 2.8-inch resistive touch screen with a resolution OVGA, 3.2 MP camera, and processor 600 MHz. Not only that, the phone who jumped to the middle segment also features an adequate connectivity with support HSPA, Wi-Fi, Bluetooth, and other important features such as GPS.

Interestingly, to pamper its users, the Acer beTouch E140 been embedded various complementary applications, such as Acer Spinlets streaming that allows users to listen to music from record labels and memostingnya instantly on your favorite social networking users. There are also applications nemoPlayer that will provide much pleasure for users with multimedia content. Do not leave it at that, for users who want to be different in social networking favorite, can add a profile with a 'virtual you' by Acer UrFooz application which is also available on Acer beTouch E140.

Reportedly, the Acer E140 beTouch will be thrown into the market at a price of 200 euros. But unfortunately, when Acer's latest phones will be available remains a mystery. For that we wait further news.

Monday, December 20, 2010

It’s not “rooting”, it’s openness

[This post is by Nick Kralevich, an engineer on the Android Security Team. — Tim Bray]

“Nexus S has been rooted, let the madness commence!” proclaims Engadget. “This is only possible because Android's security is crap and it's exploited easily to gain root priviledges [sic]” adds a commenter.

You’ll have to excuse me if I strongly disagree.

The Nexus S, like the Nexus One before it, is designed to allow enthusiasts to install custom operating systems. Allowing your own boot image on a pure Nexus S is as simple as running fastboot oem unlock. It should be no surprise that modifying the operating system can give you root access to your phone. Hopefully that’s just the beginning of the changes you might make.

Legitimately gaining root access to your device is a far cry from most rooting exploits. Traditional rooting attacks are typically performed by exploiting an unpatched security hole on the device. Rooting is not a feature of a device; rather, it is the active exploitation of a known security hole.

Android has a strong security strategy, backed by a solid implementation. By default, all Android applications are sandboxed from each other, helping to ensure that a malicious or buggy application cannot interfere with another. All applications are required to declare the permissions they use, ensuring the user is in control of the information they share. And yes, we aggressively fix known security holes, including those that can be used for rooting. Our peers in the security community have recognized our contribution to mobile security, and for that, we are extremely grateful.

Unfortunately, until carriers and manufacturers provide an easy method to legitimately unlock devices, there will be a natural tension between the rooting and security communities. We can only hope that carriers and manufacturers will recognize this, and not force users to choose between device openness and security. It’s possible to design unlocking techniques that protect the integrity of the mobile network, the rights of content providers, and the rights of application developers, while at the same time giving users choice. Users should demand no less.

Combo PC GeForce and Sandy Bridge Formed a Partnership

Some PC vendors ready to launch more than 200 computer products in the first quarter of 2011 which will be pinned with Nvidia GeForce GPUs with Intel's Sandy Bridge CPU chip.

An Nvidia spokesman said that the combined GeForce Sandy Bridge is expected to be used in a variety of notebooks and desktops are manufactured by Acer, Alienware, Asus, Dell, Fujitsu-Siemens, HP, Lenovo, Samsung, Sony and Toshiba.

"Demand for graphics processing power continues to grow, and computer makers increasingly turning to the Nvidia GeForce GPUs to deliver a higher level of experience with integrated graphics performance in applications such as gaming, video editing, web browsing, and 3D movies," said a spokesman for Nvidia.

"Our graphics are integrated into Sandy Bridge CPU, provide enhanced features and increased compatibility with the latest PC games including those based on Microsoft DirectX 11," he added.

Nvidia GeForce GPU Key features include:
- Supports Full PhysX physics engine support.
- CUDA GPU computing architecture to applications.
- Support for 3D Vision.

Saturday, December 18, 2010

Red Dead Redemption Best Game in 2010

Made by Rockstar Games, Wild West: Red Dead Redemption (RDR) managed to steal four awards in the event Video Game Awards in Los Angeles.

One of the four awards is a Game of the Year. RDR is a game starting with the most awards, up to four categories. Apart from being Game of the Year, RDR also won the game with the best song category, original score and best downloadable content.

The struggle to-8 hosted by Spike TV also gives awards to some other games. Game collaboration BioWare / Electronic Arts, Mass Effect 2, for example, won the award for best game on the Xbox 360, as well as two other awards. While Sony's game entitled God of War III won two awards including the categories of best games on the PlayStation 3.

Best games for Wii won by Super Mario Galaxy 2. StarCraft II: Wings of Liberty made by Activision Blizzard won the category Best PC Game, while God of War: Ghost of Sparta owned by Sony won Best Handheld Game.

In addition to presenting the best games every year, the Video Game Awards also presented a demo a few games that will be launched in the future, such as Mass Effect 3 of BioWare, Batman: Arkham City made by Warner Bros. and 3 Uncharted: Drake's Deception made by Sony.

Uniquely, the event was hosted by actor VGA old series titled Doogie Howser, Neil Patrick Harris. In this event Harris also won the 'Best Performance by a Human Male' for his actions provided the voice of Peter Parker in Spider-Man game: Shattered Dimensions.

Friday, December 17, 2010

ooVoo Launches Video Chat Conference Applications for Android

Video Calling is estimated to be 'boom' in 2011. Related to this, a major player in the desktop application, supposedly released ooVoo video chat application designed for Android users.

Interestingly, video chat application that allows users to do video chat with more than 5 people at the same time.

Not only that, users also can save the 'memory' is also possible to upload it to Youtube and Facebook.

LG Launches Dual-Core Smartphone

LG launched its latest smartphone LG Optimus 2X claimed as a phone that uses a dual-core processor in the world. LG Optimus 2X using Tegra 2 processors, which would make the performance smarphone be faster. This smartphone also claimed will 'refine' web browsing and application work.

"Dual-core technology is the next leap in mobile technology, so this is a great achievement to be the first to offer a smartphone based on dual-core," said CEO and President of LG Electronics Mobile Communications Company Dr. Park Jong-seok.

"With unique features such as HDMI (High Definition Multimedia Interface) mirroring and exceptional graphics performance, LG Optimus 2X is evidence of LG's commitment to high-end smartphones in 2011," added Park.

Tegra dual-core 2 was developed by the graphics processor vendors, NVIDIA and capable of running at clock speeds of 1GHz.

LG Optimus 2X offers features 1080p HD video playback and recording with HDMI mirroring that expand the content on external display for full HD quality. LG Optimus 2X can connect wirelessly to DLNA (Digital Living Network Alliance) compatible digital devices such as HD TV.

This smartphone also has a rear camera is 8 megapixel and 1.3 megapixel front camera, microSD memory, Micro-USB port and hefty 1500mAh battery.

Optimus 2X LG will be available in South Korea in January 2011.

Thursday, December 16, 2010

Android Browser User-Agent Issues

[This post is by Bart Sears, who manages the Android Browser team. —Tim Bray]

This posting describes some issues when browsing websites with mobile variants using large-form-factor Android devices. This posting will be of interest both to OEMs (with recommendations on how to set the User Agent string for the device) and to web site designers/administrators (with recommendations on how to decide to provide either a mobile version, a desktop version, or a large-form-factor touch device version of the site).

Details

With the advent of Android devices with larger form factors, we’ve been evaluating the best way for web sites to provide a UI appropriate for the various Android devices that are now available to consumers. We have received feedback that consumers using larger-form-factor devices often prefer the “full” or “desktop” version of the site over the “mobile” version. Most websites providing “mobile” versions key off of the HTTP User-Agent header field to determine whether to provide the full site or a mobile version.

While large-form-factor Android devices could use “User Agent Spoofing” to provide a desktop User Agent in the HTTP header, we recommend against this. There may be site customizations needed for Android devices (for example changes in the way that mouseover is used) and the site would be unable to provide these customizations if it receives a spoofed User Agent that did not indicate that this was an Android device.

Currently, Android devices provide the following (in addition to standard info) in the User-Agent: "Android", a version number, a device name, a specific build, Webkit version info, and "Mobile". For example, Froyo on a Nexus One has the following User Agent:

Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

The "Mobile" string in the User Agent indicates that this device would prefer a version of the website optimized for Mobile (small form factor devices), if available.

We recommend that manufactures of large-form-factor devices (where the user may prefer the standard web site over a mobile optimized version) remove "Mobile" from the User Agent (and keep the rest of the User Agent as currently implemented). Web sites can then key off "Mobile" in the User Agent to decide on which UI version to present to the device. So a large screen device running Froyo would have a User Agent similar to:

Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; device Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1

Where "device" would be replaced with the actual name of the new device. Sites can continue to use “Android” in the User Agent to optimize for Android specific features and can also key off of “Mobile” to determine which UI to present.

Tuesday, December 14, 2010

Analytics for Android Apps

[This post is by Alexander Lucas, an Android Developer Advocate bent on saving the world 5 minutes. —Tim Bray]

With the addition of custom variables to the Mobile Analytics SDK for Android, it strikes me as a good time to cover something many of you might not have known was possible — using Google Analytics to easily track app usage. Using the mobile SDK is a handy way to get real data on how users interact with your Android apps. So today I'm going to explain how to track usage of your application with Google Analytics.

Prereqs Ahoy!

Before you take off running with this shiny new toy, there’s a few things you’ll need to set up first:

  • Download the mobile SDK. Download and installation instructions are available in the getting started section of the Mobile SDK docs, but the summarized version is:

    • Download the zip file from the download page

    • Put the libGoogleAnalytics.jar file in your project’s /libs directory

    • Be sure the following lines are in your AndroidManifest.XML file:
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

  • You’re going to need a Google Analytics account. Go to google.com/analytics and set up an account if you don’t already have one. Then set up a profile for your Android application. When you’re done you’ll see a javascript snippet to insert into your “site”. Copy the part that looks like UA-XXXXXXX-X. You’ll use this in the Android application to tell Analytics which profile the data is being sent for.

Get Tracking

Previous Google Analytics users are going to find a lot of this familiar. In fact, we’ve made a point of keeping the interface as familiar as possible.

First, get your tracker object, and initialize it using the UA code for the Analytics profile you want to track. It makes the most sense to do this in the onCreate() method for your activity main, so it only fires when your application starts up.

GoogleAnalyticsTracker tracker;
protected void onCreate(Bundle savedInstanceState) {
...
tracker = GoogleAnalyticsTracker.getInstance();
tracker.start(“UA-1234-1”, this);

}

The mobile SDK provides support for the 3 main types of data sent to the Google Analytics servers: Pageviews, events, and custom variables.

Pageviews

A pageview is a standard means to measure traffic volume to a traditional website. Given that this is going into an Android app and not a website, it’s going to be up to you to decide what a “pageview” means. Depending on the type of app, each Activity or different views within the same activity (for instance, different tabs within a TabActivity) could count as a pageview.

Whenever you want to trigger a pageview, call the trackPageView() method. It only takes one parameter, the URL you want a pageview counted towards.

tracker.trackPageView("/HomeScreen");

Pageviews make the most sense as full screen transitions, which in most cases will mean “one pageview per Activity.” Therefor it makes the most sense to put the call to trackPageView in the onCreate() method for each activity in your application. An exception would be if you were using a TabActivity, or other scenario where there were multiple full-screen transitions which all occurred within the same Activity, and conceptually mapped to seperate full-screen “pages” being viewed.

Events

In Analytics, events are designed to track user interaction to that doesn’t map to pageviews, like hitting play/pause/stop in a multimedia app. This maps very well to Android usage — Any form of interaction, from hitting certain buttons to adding/removing data from the datastore, can be tracked using Events.

Events are a little more complicated than pageviews, but just slightly. Instead of 1 parameter, you have 4: Category, Action, Label (optional), Value (optional).

To see how to make use of these, let’s imagine you had a media player application, and wanted to track how many times play, pause, and stop were clicked. The code would look like this:

   playButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
...
tracker.trackEvent(
"Media Player", // Category
"Click", // Action
"Play", // Label
0); // Value
}
});

pauseButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
...
tracker.trackEvent(
"Media Player", // Category
"Click", // Action
"Pause", // Label
0); // Value
});

stopEventButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
...
tracker.trackEvent(
"Media Player", // Category
"Click", // Action
"Stop", // Label
currentVideo.getPositionInSeconds()); // Value
});

myMediaPlayer.setFinishedListener(new FinishedListener() {
@Override
public void onFinished(View v) {
...
tracker.trackEvent(
"Media Player", // Category
"Video Finished", // Action
"Stop", // Label
currentVideo.getLengthInSeconds()); // Value
});

Remember that in the Google Analytics web interface, this data is displayed hierarchically — For instance, if you click on Categories in the left nav, and then on “Media Player”, you’ll see a list of all the different possible values of “Action” which have happened in the “media Player” category. Clicking on “Click” will show all the labels which were sent in the Media Player category with an action of “Click”.

The 4th parameter, “value”, is optional, and behaves differently from the others. It’s meant to be cumulative; In this example, I’m sending the amount of video watched when a video is either stopped or allowed to finish. This is aggregated server-side, and when I go to look at my data I’ll be able to see the total time people have spent watching videos using my application.

Custom Variables

The new hotness! Custom variables are name-value pair tags that you can insert in your tracking code in order to refine Google Analytics tracking. The easiest way to think of this is as meta-data accompanying your pageviews and events. Using this metadata, it becomes easy to split off and look at segments of your data, much the same way you use labels in Gmail. One Android-specific example would be to have a “AppType” status with “Full” or “Lite” depending on whether the user has the full version of the app or not. You could then use the Analytics web interface to look at only the “Lite” users, and see how their usage / userbase differs from the “Full” segment. Custom variables are a ridiculously powerful analytical tool, but they’re also a deep topic. I heartily recommend giving the docs a once-through before implementing them in your Android application. Especially make sure to read the section on scoping. Twice. I’m mean it... I’ll wait.

There are 4 parameters in a custom variable: Index (1 to 5 inclusive), Name, Value, and Scope (Optional, defaults to Page Scope).

The place in your code where setCustomVar() will be called depends largely on what scope that variable will be:

  • Visitor scope: Call once the first time your application is run on a device. Don’t create any custom variables at the same index, or they will overwrite the first one. Useful for sending data about which version of the app is being used, what kind of phone, lite vs full version of the app, or anything that won’t change during the lifetime of the installation of that application.

  • Session scope: Call once at the beginning of every Activity startup. Will apply to all pageviews and events for the lifecycle of the activity, unless a different custom variable is created at the same index.

  • Page scope: Call right before trackEvent or trackPageView that the custom variable should apply to, every time that method is called. If no scope is specified, this is the default.

The call to set a custom variable will look like the following:

// Scopes are encoded to integers:  Visitor=1, Session=2, Page=3
tracker.setCustomVar(1, "Navigation type", "Button click", 3);

Choose a Dispatch Mode

In order to optimize for battery life, a request isn’t actually sent out to the server every time you fire a pageview or custom variable. Instead, all the pageviews, events, and their associated custom variables are stored in a local SQLITE database until they’re dispatched as a group to the server. You can set this up to happen one of two ways: Either have the dispatch occur automatically every n seconds, or manually when you call “dispatch” in code. The mode is chosen when you call the start method on your tracker.

Manual dispatch looks like this:

// No time increment sent as a parameter
tracker.start(“UA-1234-1”, this);

// Call this when you want to send the entire event queue to the server
tracker.dispatch();

The timed automatic dispatch looks similar, but sends an extra parameter (the number of seconds between dispatches). In timed dispatch, you never have to manually call dispatch.

// Dispatch all queued pagevies/events every 300 seconds (5 minutes)
tracker.start("UA-YOUR-ACCOUNT-HERE", 300, this);

It’s important to remember that Google Analytics uses the timestamp for when it receives your data, not when the actual pageview/event occurred. This can potentially lead to inaccurate Analytics data, since events can be sent on different days than when they occurred, so take care to dispatch regularly.

The end result

Let’s go back to that onCreate() method we used to instantiate the tracker earlier, and see what it looks like with all the pieces in place:

GoogleAnalyticsTracker tracker;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

tracker = GoogleAnalyticsTracker.getInstance();
tracker.start(“UA-1234-1”, this);

if(isFirstTimeRunningApplication()) {
tracker.setCustomVar(1, “App Type”, “Demo”, 1);
}
tracker.trackPageView("/HomeScreen");


}

How to look at all this data

There are two ways you can approach this. First, Google Analytics has a pretty snazzy web interface, which does a very good job of surfacing useful information for you. If you’re new to Analytics and don’t really know what you’re looking for yet, the web interface is a great way to explore your data and understand your users.

If you already have a strong idea of the questions you want to ask (app usage across versions of the Android platform, growth rates, time-in-app per demo user vs full user, how many people beat level 3 on their first try, etc), and just want to automate the asking, Google Analytics also has a swanky data export API, with client libraries to facilitate the querying of your data in Java, Python, JavaScript, and C#.

Abiding by the TOS

Google Analytics comes with its own TOS, and it’s important to read and abide by it. The important bit, especially since this will be used inside Android applications, is that you cannot send personally identifying information to Analytics servers. This is a big deal. It means, for instance, that a visitor-level custom variable cannot contain a phone number, first name, or email address. Less intuitively, but still important, it means that if this application is a client to a web application (say, CRM software or a shopping site), you also cannot store information in Analytics which can be combined with your own backend software to identify the user, such as user ID or a transaction ID identical to the one stored on your web backend.

Monday, December 13, 2010

PlayStation Phone Approaching Reality

Some photos and video that is expected is a mobile phone from Sony's PlayStation has been circulating on the internet in recent weeks. Some sources also reveal the specifications and capabilities of these devices. Sony Ericsson is expected to release a phone with the PlayStation brand is run with Android OS in February.

The first prototype of the PlayStation phone comes in late October yesterday. Indicates that the device is run by a 1GHz processor with 1GB of RAM and 1GB ROM memory, also reinforced by Google's Android OS. The device prototype was given the name of Zeus, but it is not clear which version to use.

Reportedly several devices have been tested with Android 2.2 (Froyo), while others operated the new version 2.3 (Gingerbread). In addition, PlayStation phone will have a microSD card slot, four-inch screen, and slide-out that resembles a PlayStation control pad, and others.

Not only that, PlayStation phone device looks quite large and consisted mostly of plastic, quite different from other Android phones such as Motorola Droid X or Nexus S.

Until now, the Sony still deny the existence of the project from this phone. Maybe Sony will announce it officially at the Mobile World Congress in Barcelona in February 2011.

Sunday, December 12, 2010

New Gingerbread API: StrictMode

[This post is by Brad Fitzpatrick, an Android Software Engineer who worries unreasonably about responsiveness. —Tim Bray]

Back Story

One great thing about Google is “20% time”: spending 20% of your time working on projects outside your main focus area. When I joined Google, I bounced all over the place, often joking that I had seven 20% projects. One project I kept coming back to was Android. I loved its open nature, giving me access to do whatever I wanted, including opening my garage door when I approached my house on my motorcycle. I really wanted it to succeed but I worried about one thing: It wasn’t always super smooth. Animations would sometimes stutter and UI elements weren’t always immediately responsive to input. It was pretty obvious that things were sometimes happening on the wrong thread.

As a heavy SMS user, one of my 20% projects during the Cupcake (Android 1.5) release was speeding up the Messaging app and making it feel smoother. I got the app to a happy state and then continued bouncing between other 20% projects. When the Donut (Android 1.6) release came out, I noticed that a few of my Messaging optimizations had been accidentally broken. I was sad for a bit but then I realized what Android really needed was always-on, built-in, pervasive performance monitoring.

I joined the Android team full-time just over a year ago and spent a lot of time investigating Froyo performance issues, in particular debugging ANRs (those annoying dialogs you get when an application stalls its main thread’s Looper). Debugging ANRs with the tools at hand was painful and boring. There wasn’t enough instrumentation to find the causes, especially when multiple processes were involved (doing Binder or ContentResolver operations to Services or ContentProviders in other processes). There had to be a better way to track down latency hiccups and ANRs...

Enter StrictMode

“I see you were doing 120 ms in a 16 ms zone...”



StrictMode is a new API in Gingerbread which primarily lets you set a policy on a thread declaring what you’re not allowed to do on that thread, and what the penalty is if you violate the policy. Implementation-wise, this policy is simply a thread-local integer bitmask.

By default everything is allowed and it won’t get in your way unless you want it to. The flags you can enable in the thread policy include:

  • detect disk writes


  • detect disk reads


  • detect network usage


  • on a violation: log


  • on a violation: crash


  • on a violation: dropbox


  • on a violation: show an annoying dialog


In addition, StrictMode has about a dozen hooks around most of the places that hit the disk (in java.io.*, android.database.sqlite.*, etc) and network (java.net.*) which check the current thread’s policy, reacting as you’ve asked.

StrictMode’s powerful part is that the per-thread policies are propagated whenever Binder IPC calls are made to other Services or Providers, and stack traces are stitched together across any number of processes.

Nobody wants to be slow

You might know all the places where your app does disk I/O, but do you know all the places where the system services and providers do? I don’t. I’m learning, but it’s a lot of code. We’re continually working to clarify performance implications in the SDK docs, but I usually rely on StrictMode to help catch calls that inadvertently hit the disk.

Background on disks on phones

Wait, what’s wrong with hitting the disk? Android devices are all running flash memory, right? That’s like a super-fast SSD with no moving parts? I shouldn’t have to care? Unfortunately, you do.

You can’t depend on the flash components or filesystems used in most Android devices to be consistently fast. The YAFFS filesystem used on many Android devices, for instance, has a global lock around all its operations. Only one disk operation can be in-flight across the entire device. Even a simple “stat” operation can take quite a while if you are unlucky. Other devices with more traditional block device-based filesystems still occasionally suffer when the block rotation layer decides to garbage collect and do some slow internal flash erase operations. (For some good geeky background reading, see lwn.net/Articles/353411)

The take-away is that the “disk” (or filesystem) on mobile devices is usually fast, but the 90th percentile latencies are often quite poor. Also, most filesystems slow down quite a bit as they get more full. (See slides from Google I/O Zippy Android apps talk, linked off code.google.com/p/zippy-android)

The “main” Thread

Android callbacks and lifecycle events all typically happen on the main thread (aka “UI thread”). This makes life easier most of the time, but it’s also something you need to be careful of because all animations, scrolls, and flings process their animations by callbacks on the main thread.

If you want to run an animation at 60 fps and an input event comes in (also on the main thread), you have 16 ms to run your code reacting to that input event. If you take longer than 16 ms, perhaps by writing to disk, you’ve now stuttered your animation. Disk reads are often better, but they can also take longer than 16 ms, especially on YAFFS if you’re waiting for the filesystem lock that’s held by a process in the middle of a write.

The network is especially slow and inconsistent, so you should never do network requests on your main thread. In fact, in the upcoming Honeycomb release we’ve made network requests on the main thread a fatal error, unless your app is targeting an API version before Honeycomb. So if you want to get ready for the Honeycomb SDK, make sure you’re never doing network requests on your UI thread. (see “Tips on being smooth” below.)

Enabling StrictMode

The recommended way to use StrictMode is to turn it on during development, learn from it, and turn it off before you ship your app.

For example, in your application or component’s onCreate():

 public void onCreate() {
if (DEVELOPER_MODE) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog()
.build());
}
super.onCreate();
}

Or, simply:

    public void onCreate() {
if (DEVELOPER_MODE) {
StrictMode.enableDefaults();
}
super.onCreate();
}

That latter form was specifically added so you can target pre-Gingerbread API versions but still easily enable StrictMode using reflection or other techniques. For instance, you could be targeting Donut (Android 1.6) but still use StrictMode if you’re testing on a Gingerbread device or emulator, as long as you use enough Reflection to call StrictMode.enableDefaults().

Watching StrictMode

If you’re using penaltyLog(), the default, just run adb logcat and watch the terminal output. Any violations will be logged to your console, slightly rate-limited for duplicate elimination.

If you want to get fancier, turn on penaltyDropbox() and they’ll be written to the DropBoxManager, where you can extract them later with

adb shell dumpsys dropbox data_app_strictmode --print

Tips on being smooth

In addition to Thread and java.util.concurrent.*, check out some of the Android APIs such as Handler, AsyncTask, AsyncQueryHandler, and IntentService.

Our Experience

During Android development we have a new “dogfood” build each day that the whole team uses. Throughout the development of Gingerbread we set up our daily dogfood builds to enable StrictMode logging and upload all found violations for analysis. Every hour a MapReduce job runs and produces an interactive report of all the event loop stalls, their stack traces (including cross-process ones), their latency percentiles, which processes/packages they appear in, etc.

Using the data from StrictMode we fixed hundreds of responsiveness bugs and animation glitches all across the board. We made performance optimizations in the Android core (e.g. system services and providers) so all apps on the system will benefit, as well as fixing up tons of app-specific issues (in both AOSP apps and Google apps). Even if you’re using Froyo today, the recent updates to GMail, Google Maps, and YouTube all benefited from StrictMode data collection gathered on Gingerbread devices.

Where we couldn’t automatically speed up the system, we instead added APIs to make certain patterns easier to do efficiently. For example, there is a new method SharedPreferences.Editor.apply(), which you should be using instead of commit() if you don’t need commit()’s return value. (It turns out almost nobody ever checks it.) You can even use reflection to conditionally use apply() vs. commit() depending on the user’s platform version.

Googlers who switched from Froyo to Gingerbread without seeing all the baby steps between were shocked at how much more responsive the system became. Our friends on the Chrome team then recently added something similar. Of course, StrictMode can’t take all the credit. The new concurrent garbage collector in Gingerbread also greatly reduces latency hiccups.

The Future

The StrictMode API and its capabilities will continue to expand. We have some good stuff lined up for StrictMode in Honeycomb but let us know what else you’d like to see! I’ll be answering questions on stackoverflow.com for questions tagged “strictmode”. Thanks!

Saturday, December 11, 2010

Android Gadget Users Increased Rapidly Every Day

Users Android Phones is increasingly growing. According to a report revealed by a Google executive, Andrew Rubin, said that 300 thousand new Android users activated every day.
That number increased significantly when compared to achievements in August 2010, where there were 200 thousand users of Android-activated every day.

With the achievement of activation of 300,000 per day in a month then there will be 9 million new activation per month. And if that number can be maintained in a year there will be about 108 million users of Android-activated.

However, when compared with the targets launched by Nokia this year, that figure is far below the targets to be achieved by Nokia. Because the Swedish smartphone vendor is targeting sales of 120 million units of smartphones.

Apple iPad vs Amazon Kindle e-Book Reader

One of the cable TV channels in the U.S. during November to hold a survey of about 2,800 respondents. Overall the survey participants were asked about the e-reader device they want to buy. And, it turns out the results as much as 48% of respondents are more likely to buy the Apple iPad. Then the other 33% refers to the Amazon Kindle. Then gadgets Nook (Barnes & Noble) just posted a 4% votes. And that's bigger than the touch-based e-reader, Sony Reader (Sony), which is limited to 1%.

For information, Amazon Kindle is a dedicated device for reading the electronic version of a digital newspaper. Thus, the display content that was like a regular newspaper converted into digital models.

In any Apple iPad technology proved better than the Amazon Kindle, which is capable of displaying a variety of color content. In fact, the applications available for Apple's tablet even this claim are more numerous. As a result, not surprisingly, proved to many that tend to be yearning iPad than Kindle.

Friday, December 10, 2010

Android Market Client Update

[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]

The Android Market engineering team has been hard at work on improving the Android Market experience for users and developers. Today, I’m pleased to announce a significant update to the Android Market client. Over the next two weeks, we’ll be rolling out a new Android Market client to all devices running Android 1.6 or higher.

This new Market client introduces important features that improve merchandising of applications, streamline the browse-to-purchase experience, and make it easier for developers to distribute their applications.

With a focus on improving discoverability and merchandising, we’ve introduced a new carousel on the home and category screens. Users can quickly flip through the carousel to view promoted applications and immediately go to the download page for the application they want. Developers have been very active in creating great Widgets and Live Wallpapers. To make it easier for users to find their favorites, we’re introducing two new categories for Widgets and Live Wallpapers. Applications that include Widgets and Wallpapers will be automatically added to those new categories. We’ll also be adding more categories for popular applications and games in the weeks ahead. In addition, the app details page now includes Related content, which makes it easier for users to quickly find apps of similar interest.




To streamline the browse-to-purchase experience, users can now access all the information about an application on a single page without the need to navigate across different tabs. We’re also introducing application content rating to provide users with more information about applications they are interested in. Since most users who request a refund do so within minutes of purchase, we will reduce the refund window on Market to 15 minutes. This change will be largely transparent to buyers, but will help developers manage their businesses more effectively.



To make it easier for developers to distribute and manage their products, we will introduce support for device targeting based on screen sizes and densities, as well as on GL texture compression formats. We are also increasing the maximum size for .apk files on Market to 50MB, to better support richer games.

With this release, we aimed to deliver features that are most requested by users and developers. However, we’re not done yet. We plan to continue to rapidly enhance Android Market for both users and developers and make it the best content distribution service for the Android ecosystem.

Please stay tuned as we continue to deliver new capabilities in the coming weeks and months.

Thursday, December 9, 2010

Saving Data Safely

With the advent of Gingerbread, we’re going to be running a series of posts in this space about the aspects of Android 2.3 that developers should care about. One thing that developers should care about more than anything else is not losing data. The rules are changing slightly as Gingerbread arrives, so I thought that would be a good starting point. I didn’t write this; I pulled it together from the contents of an email thread involving Android engineers Brad Fitzpatrick, Dianne Hackborn, Brian Swetland, and Chris Tate.

The question is: how do you make really sure your data’s been written to persistent storage? The answer involves a low-level system call named fsync(). Old C programmers like me mostly learned this the hard way back in the Bad Old Days; in 2008 at OSCON I immensely enjoyed Eat My Data: How Everybody Gets File IO Wrong by Stewart Smith; I've included a picture I took of one of his slides.

The reason this should be of concern to Android developers is that with 2.3, an increasing proportion of devices, notably including the Nexus S, are going to be moving from YAFFS to the ext4 filesystem, which buffers much more aggressively; thus you need to be more assertive about making sure your data gets to permanent storage when you want it to.

If you just use SharedPreferences or SQLite, you can relax, because we’ve made sure they Do The Right Thing about buffering. But if you have your own on-disk format, keep in mind that your data doesn't actually consistently reach the flash chip when you write() it or even when you close() it. There are several layers of buffering between you and the hardware! And because of ext4 buffering policy, any POSIX guarantees that you thought you had before (but actually didn't), you especially don't have now.

Some Android devices are already running non-YAFFS filesystems, but as we brought up the Nexus S, buffering issues have actually bitten us a couple of times in framework code. When the Gingerbread source code becomes available, you’ll find lots of examples of how file I/O should be done.

To start with, for raw data consider using one of the synchronous modes of java.io.RandomAccessFile, which take care of calling fsync() for you in the appropriate way. If you can’t, you’ll want Java code that looks something like this.

     public static boolean sync(FileOutputStream stream) {
try {
if (stream != null) {
stream.getFD().sync();
}
return true;
} catch (IOException e) {
}
return false;

In some applications, you might even want to check the return status of the close() call.

Now of course, there are two sides to this story. When you call fsync() and force the data onto storage, that can be slow; worse, unpredictably slow. So be sure to call it when you need it, but be careful not to call it carelessly.

Background reading if you want to know more:

Monday, December 6, 2010

Android 2.3 Platform and Updated SDK Tools

Today we're announcing a new version of the Android platform — Android 2.3 (Gingerbread). It includes many new platform technologies and APIs to help developers create great apps. Some of the highlights include:

Enhancements for game development: To improve overall responsiveness, we’ve added a new concurrent garbage collector and optimized the platform’s overall event handling. We’ve also given developers native access to more parts of the system by exposing a broad set of native APIs. From native code, applications can now access input and sensor events, EGL/OpenGL ES, OpenSL ES, and assets, as well a new framework for managing lifecycle and windows. For precise motion processing, developers can use several new sensor types, including gyroscope.

Rich multimedia: To provide a great multimedia environment for games and other applications, we’ve added support for the new video formats VP8 and WebM, as well as support for AAC and AMR-wideband encoding. The platform also provides new audio effects such as reverb, equalization, headphone virtualization, and bass boost.

New forms of communication: The platform now includes support for front-facing camera, SIP/VOIP, and Near Field Communications (NFC), to let developers include new capabilities in their applications.

For a complete overview of what’s new in the platform, see the Android 2.3 Platform Highlights.

Alongside the new platform, we are releasing updates to the SDK Tools (r8), NDK, and ADT Plugin for Eclipse (8.0.0). New features include:

Simplified debug builds: Developers can easily generate debug packages without having to manually configure the application’s manifest, making workflow more efficient.

Integrated ProGuard support: ProGuard is now packaged with the SDK Tools. Developers can now obfuscate their code as an integrated part of a release build.

HierarchyViewer improvements: The HierarchyViewer tool includes an updated UI and is now accessible directly from the ADT Plugin.

Preview of new UI Builder: An early release of a new visual layout editor lets developers create layouts in ADT by dragging and dropping UI elements from contextual menus. It’s a work in progress and we intend to iterate quickly on it.

To get started developing or testing applications on Android 2.3, visit the Android Developers site for information about the Android 2.3 platform, the SDK Tools, the ADT Plugin and the new NDK.

Check out the video below to learn more about the new developer features in Android 2.3.

Wednesday, November 24, 2010

Content Rating for Android Market

[This post is by Eric Chu, Android Developer Ecosystem. —Tim Bray]

Providing users with more information about applications on Android Market has been a top request from Android users. Starting in a few weeks, we will be showing content ratings for all applications on Android Market. This new capability will provide users with additional information to help them select the best applications for them.

Android Market’s content policy remains the same as before: applications will be rated according to four content rating levels: All, Pre-teen, Teen, & Mature. Details on the rating levels can be found at Android Market Help Center.

To prepare for this launch, starting next week, developers submitting new or updated applications will be required to include a rating for all applications and games uploaded onto Android Market. In addition, developers will have the next several weeks to add a rating to their existing applications and games. Once content rating is visible to users, any applications or games that do not include a rating will be treated as “Mature”.

We are working hard to rapidly deliver improvements and upgrades to Android Market. Please look for more Android Market upgrades in the coming weeks. Thanks for your continued support and please don’t hesitate to give us feedback on what else we can do to make you more successful with Android and Android Market.

Friday, November 12, 2010

Sony Includes FIFA and PES Game on PlayStation 3

Manufacturer game console PlayStation 3, Sony plans to equip the console with football simulation game FIFA 11 and Pro Evolution Soccer 2011. This promotion is only available in South American countries.

Reported by Softpedia, Buyers in South America will be able to choose between FIFA or PES game when buying the PS3. The selected game will be directly installed in the console gaming hardware.

This program is an attempt by Sony to attract the attention of football lovers in Latin American countries. Because football is the most popular sport in the region. In addition, the program is deemed capable of representing gamers assessment of these two famous football game. FIFA 11 which is made by Konami going head to head with PES 2011 to reach the market in South America. Gamers can compare the quality of the games.

Sony still has not set retail prices for the products. The program will take place in countries such as Argentina, Chile, Peru, Mexico, Colombia, Panama, Costa Rica, El Salvador, Nicaragua, Brazil, Honduras, Paraguay, Uruguay, Guatemala, Ecuador, Venezuela, and Bolivia.

Thursday, November 11, 2010

Market Housekeeping Alert

We’ve had quite a bit of discussion in this space recently about how to make sure that your app is visible in Android Market to any device that can run it, and only to those devices. In particular, check out two recent pieces by Reto Meier, Future-Proofing Your App and The Five Steps to Future Hardware Happiness.

As Reto points out, Market used to infer some <uses-feature> settings for older apps that were uploaded before certain device features arrived. This hasn’t been the case for applications uploaded since June of this year; developers have had to be careful about <uses-feature> and its android:required attribute. From what we see, it looks like most of you have got this sorted out and things are working smoothly.

However, there are still apps that haven’t been re-uploaded since June. In preparation for introducing some new Market features (that we think you’ll like), we’re about to launch a re-scan of all those legacy apps, looking at their Android Manifests and updating Market’s database. This means that if you have an app that you haven’t updated since June, and it lacks up-to-date <uses-feature> settings, it may stop being visible on certain devices.

We think the set of apps that will have this problem will be small, if only since most successful apps are updated regularly. If you want to be sure, check Reto’s advice here under "Android Market Rule #2”.

We’ve said it before but it bears repeating: There are a lot of different sizes and shapes and flavors of Android devices in the product pipeline, and you want your app available on every one that can possibly run it. So this is an area that is going to be requiring attention from developers on a continuing basis.

Rumours about 10-inch Galaxy Tab Scattered on the Internet

The rumor about Samsung will release Galaxy Tab tablets with a size larger than the current version, more heat be discussed after an image of the 10-inch galaxy tab scattered on the internet. Tablets are referred to as a prototype electronic book reader will also be supported by 3G networks. In addition, the panel on these tablets using 1.8 mm LCD size, with resolution of 1.024 x 600 pixels.

Reported by Engadget, Samsung still has not given a statement about the certainty of whether the Galaxy Tab really would be presented with 10-inch size, including when this product will be released. Although previously reported the tablet will be powered by Android 3.5, a version of the Google operating system that probably will not even come out until 2011. But Android 3.0 should come out faster. It is expected that within the first few months of 2011 and is anticipated to become the dominant platform for tablet devices Android-based.

Samsung also previously admitted that some of Android applications on the next Galaxy Tab tablet will not be displayed properly because it runs on a smaller screen. These problems arise because there are applications that can not be run at a resolution of 800x400 pixels. This problem applies only to downloads some third party applications, the entire package of google mobile applications such as Android Market and Maps fully running smoothly.

Wednesday, November 10, 2010

Android Market Action

Almost instantly after I joined Google, it became obvious to me that the number-one area where Android developers wanted to see action and progress was in Android Market; your concerns in this area vastly outweighed whatever issues might be bothering you about the handsets and the framework and the programming tools. In recent months there has been a steady, quiet, incremental flow of improvements and upgrades. They add up. This is by way of a glance back at developments since the arrival of Froyo last summer.

First, we introduced error reporting to Market, so developers can see if their apps are locking up or crashing; and if so, exactly where.

Second, we upgraded the Market publisher site to include user comments, so you can read what people are saying about you, or at least what they’re saying in a language you understand.

Third, we added the licensing server, which, when used properly, tilts the economics of Android apps toward you, the developer, and against the pirates.

Fourth, we cranked up the number of countries people can buy and sell apps in: as of now, you can sell them in 29 countries and buy them in 32.

Fifth, we rolled in a “recent changes” feature, a place for developers to put their release notes. Android Market has a zero-friction process for app update, and the really great apps have followed the “release early, release often” philosophy. As a developer, I like having a place to write down what’s behind an app release, and as a person who downloads lots of apps, I like to know what the goodies are in each new update.

Sixth, Market now has a “draft upload” feature; this removes a lot of the tension and strain from the app-update process. Get your screenshots and feature graphics and text and APK all squared away with as much editing as you need to, then update them all with one click.

You’ll notice that I didn’t say “Sixth and last”, because this is a team on a roll and I expect lots more goodness from them; if you care about the larger Android ecosystem, or are already a developer, or are thinking of becoming one, stay tuned to this channel.

Tuesday, November 9, 2010

Opera Mobile 10.1 Available on Android

Opera Software officially released the Opera Mobile 10.1 beta for Android. The software can be downloaded from the Android Market and also at the Opera site. This browser will work on Android version 1.6 or above, and available in 18 different languages.

The advantages possessed by this browser compared to other Android browser is speed and ease of use. Opera Mobile boasts faster loading pages than other browsers, equipped with a Turbo feature that can compress data more quickly. This feature is very useful in a slow or busy connection.

As reported by PC World, other features are available in this browser is the Opera Speed Dial, password manager and Link, synchronize bookmarks and other user data between mobile phones and computers. Speed Dial feature set nine favorite sites at the thumbnail grid.

In addition, the browser will be supported flash feature. This feature will not work in beta release, but will be included in the final version.

Monday, November 8, 2010

MacBook Air Battery Hold up to six hours Without Flash

On that last October, Apple officially launched its newest generation of MacBook Air. Surprisingly, the MacBook is presented without Flash pre-installed. Are there any benefits for users?
According to rumors that happening because of political problems between the CEO of Apple and Adobe, but it is still uncertain. Maybe Apple has another reason, why do not want to use the flash pre-installed on all its latest products.
Reported by Apple Insider, through experiments performed by Ars Technica on MacBook Air 11-inch model found that the MacBook is able to browse for 4 hours with Flash enabled. However, when Flash is turned off, the MacBook is able to survive for more than 6 hours.

Indeed, Apple CEO Steve Jobs explicitly said that all products made by his company will not be supported by features of Flash from Adobe, including the products of their new MacBook Air.

It was recently disclosed by a company spokesman Bill Evans said that Apple will refrain from installing the Adobe Flash platform on all Macs in the future.
However, the MacBook users are still able to get Flash by downloading it via the Adobe website.

Sunday, November 7, 2010

Top 10 Android Phones in 2010

The presence of Google's mobile operating system, Android seized the attention of the global handset vendor. A number of vendors vying to using 'green robots' or android on their phone product.
Currently there are approximately 34 models of phones using the Android operating system, all spread across multiple vendors. The latest data show sales of android phone sufficient increase in the market. At least Android phones sold approximately 60 thousand units every day around the world.

Support for Android applications is increasing, a number of vendors provide support for the operating system. But from some phone models released by the vendors, there are several phones that are categorized as the best Android phones based on the capabilities and features possessed by each phone.

Here are the Top 10 Android phones in 2010 and its specifications:
1. Samsung Epic 4G

Specs:
- Manufacturer : Samsung
- Network | OS : CDMA 800/1900 | Android 2.1
- Screen size | Screen resolution : 4 inch | 480 x 800
- Touchscreen | Keyboard : capacitive, SUPER-AMOLED | Querty
- Processor : 1000 MHz Samsung-Intrinsity S5PC110
- Memory | Slot : RAM 512 MB ROM 512 MB | microSD, microSDHC, TransFlash up to 32GB
- Wi-Fi | USB | Bluetooth : 802.11b/g/n | 2.0 | 3.0
- Headphones | GPS | Battery : 3.5mm jack | Yes | Li - Ion 1500 mAh
- Camera | Flash : Main 4.9 MP, AF, Secondary 0.3 MP Video 1280x720 | LED
- Dimensions | Weight : 4.90 x 2.54 x 0.56 inch (124 x 65 x 14 mm) | 5.46 oz (155 g)
- Other :Radio FM

2. HTC EVO 4G

Specs :
- Manufacturer : HTC
- Network | OS : 3G and 4G | Android 2.1
- Screen size | Screen resolution : 4.3 inch | 480 x 800 pixels
- Touchscreen | Keyboard : capacitive multi-touch | Virtual
- Processor : Snapdragon QSD8650 1GHz
- Memory | Slot : 512MB RAM, 1GB ROM | microSD
- Wi-Fi | USB | Bluetooth | GPS : Yes | Yes | Yes | Yes
- Headphones | Battery : 3.5mm jack | Li-Ion 1500 mAh
- Camera | Flash : 8 MP camera, video, front 1.3 MP camera | dual-LED flash
- Dimensions | Weight : 122 x 66 x 12.7 mm | 170 g(6 oz)
- Other : Integrated kickstand Mobile Hotspot feature HDMI-out port

3. Motorola Droid X

Specs :
- Manufacturer : Motorola
- Network | OS : GSM 850/900/1800/1900-3G HSDPA 850/1900/2100 | Android 2.1
- Screen size | Screen resolution : 4.3 inch | 480 x 854 pixels
- Touchscreen | Keyboard : Capacitive, Multi-touch | Virtual
- Processor : TI OMAP3630-1000, 1000 MHz
- Memory | Slot : 512MB RAM 8GB internal storage | microSD, up to 32GB
- Wi-Fi | USB | Bluetooth | GPS : Yes | microUSB 2.0 | 2.1 with A2DP | Yes
- Headphones | Battery : 3.5mm jack | Li-Ion,1540 mAh Talk time: 8 hrs StandbyTime: 220 hrs
- Camera | Flash : 8 MP, AF, 720p video | Dual LED
- Dimensions | Weight : 5.02x2.58x0.39 inches (127.5x65.5x9.9 mm) | 5.47 oz (155 g)
- Other : HDMI, 3G MOBILE HOTSPOT

4. HTC Droid Incredible

Specs :
- Manufacturer : HTC
- Network | OS : CDMA dual band (1900/800 MHz) 3G | Android 2.1
- Screen size | Screen resolution : 3.70 inch | 480 x 800 pixels
- Touchscreen | Keyboard : Capacitive, Multi-touch, Amoled | Virtual
- Processor : Snapdragon, 1000 MHz
- Memory | Slot : 512 MB RAM / 512 MB ROM | microSD to 16GB, 8GB included
- Wi-Fi | USB | Bluetooth | GPS : Yes | Yes | Yes | Yes
- Headphones | Battery : 3.5mm jack | Li-Ion 1300 mAh
- Camera | Flash : 8MP camera, AF, Video | Dual LED
- Dimensions | Weight : 4.63 x 2.30 x 0.47 inches | 130g

5. Google Nexus One

Specs :
- Manufacturer : HTC
- Network | OS : GSM | Android 2.1
- Screen size | Screen resolution : 3.7 inch | 800x480 AMOLED
- Touchscreen | Keyboard : Capacitive | Virtual
- Processor : 1 GHz Snapdragon
- Memory | Slot : 512 ROM / 512 RAM | microSD
- Wi-Fi | USB | Bluetooth | GPS : Yes | microUSB | Yes | Yes
- Headphones | Battery : 3.5mm jack | 1400 mAh
- Camera | Flash : 5 MP AF | 1 LED flash
- Color : two tone gray

6. Samsung Fascinate

Specs :
- Manufacturer : Samsung
- Network | OS : GSM 850/900/1800/1900-3G HSDPA 900/1900/2100 | Android 2.1 (Eclair)
- Screen size | Screen resolution : 4.0 inch | 480 x 800 pixels
- Touchscreen | Keyboard : Super AMOLED capacitive, Multi-touch | Virtual
- Processor : ARM Cortex A8 1GHz
- Memory | Slot : 8 GB/16GB storage, 512 MB RAM | microSD, up to 32GB
- Wi-Fi | USB | Bluetooth | GPS : 802.11 b/g/n; DLNA | 2.0 | Yes, v3.0 with A2DP | Yes
- Headphones | Battery : 3.5mm jack | Li-Ion 1500 mAh Stand-by: up to 750 h (2G)
- Camera | Flash : 5 MP AF | 1 LED flash
- Other | Color : Proximity sensor for auto turn-off Stereo FM radio | Black and Grey

7. Samsung Vibrant

Specs :
- Manufacturer : Samsung
- Network | OS : GSM 850/900/1800/1900 UMTS 1700/2100 | Android 2.1
- Screen size | Screen resolution : 4 inch | 480 x 800 Pixels
- Touchscreen | Keyboard : capacitive, SUPER-AMOLED | Virtual
- Processor : 1000 MHz Samsung-Intrinsity S5PC110
- Memory | Slot : RAM 512 MB ROM 15.2 GB | microSD, microSDHC, TransFlash
- Wi-Fi | USB | Bluetooth | GPS : 802.11b/g/n | 2.0 | 3.0 | Yes
- Headphones | Battery : 3.5mm jack | Li-Io 1500 mAh Talk time 6.5 hrs
- Camera : 4.9 MP, AF
- Other | Color : FM radio | Black

8. Samsung Captivate

Specs :
- Manufacturer : Samsung
- Network | OS : GSM 850/900/1800/1900 UMTS 2100/1900/850 | Android 2.1
- Screen size | Screen resolution : 4 inch | 480 x 800 Pixels
- Touchscreen | Keyboard : capacitive, SUPER-AMOLED | Virtual
- Processor : 1000 MHz Samsung-Intrinsity S5PC110
- Memory | Slot : RAM 512 MB ROM 15.2 GB | microSD, microSDHC, TransFlash
- Wi-Fi | USB | Bluetooth | GPS : 802.11b/g/n | 2.0 | 3.0 | Yes
- Headphones | Battery : 3.5mm jack | 1500 mAh
- Camera : 4.9 MP, AF
- Dimensions | Weight : 4.18 x 2.50 x 0.39 inch (106 x 64 x 10 mm) | 4.50 oz (128 g)

9. Motorola Droid 2

Specs :
- Manufacturer : Motorola
- Network | OS : CDMA 800/1900 | Android 2.2 OS (Froyo), Motoblur
- Screen size | Screen resolution : 3.7 inch | 854 x 480 Pixels
- Touchscreen | Keyboard : Capacitive, multi-touch | Slider QWERTY
- Processor : 1GHz Hummingbird
- Memory | Slot : 512MB of RAM, 8GB internal | microSD up to 32GB, 8GB included
- Wi-Fi | USB | Bluetooth | GPS : 802.11 b/g/n | Yes | Yes | Yes
- Headphones | Battery : 3.5mm jack | Li-Ion 1400 mAh Talk time: 6.4h Standby time:up to 315h
- Camera | Flash : 5 MP AF, video | 2x LED flash
- Dimensions | Weight : 60 x 115.8 x 13.7 mm | 169 g
- Other | Color : HDMI, 3G mobile hot spot | Black

10. Motorola Droid

Specs :
- Manufacturer : Motorola
- Network | OS : CDMA 800/1900 | Android 2.0
- Screen size | Screen resolution : 3.5inch | 480 x 854 pixels
- Touchscreen | Keyboard : AMOLED capacitive Multi-touch | Slider QWERTY
- Processor : 550MHz processor
- Memory | Slot : 576 MB RAM; 512 MB ROM | microSD 16GB
- Wi-Fi | USB | Bluetooth | GPS : Yes | Yes | Yes | 2.1
- Headphones | Battery : 3.5mm jack | Li-Ion 1400 mAh
- Camera | Flash : 5 MP, supports DVD-quality video recording | dual-LED flash
- Weight : 169 g

References:
- Androphones.com
- pcworld.com