Tuesday, September 29, 2009

Now available: Android 1.6 NDK

Today Android 1.6 NDK, release 1 is available for download from the Android developer site.

To recap, the NDK is a companion to the SDK that provides tools to generate and embed native ARM machine code within your application packages. This native code has the same restrictions as the VM code, but can execute certain operations much more rapidly. This is useful if you're doing heavy computations, digital processing, or even porting existing code bases written in C or C++.

If you already use the Android 1.5 NDK, upgrading to this release is highly recommended. It provides the following improvements:

  • The ability to use OpenGL ES 1.1 headers and libraries
    If your application targets Android 1.6, your native code can now directly call OpenGL ES 1.1 functions to perform graphics rendering. This will help those programs that need to send large amounts of vertex data to the GPU. Note, however, that activity lifecycle and surface creation must still be performed from the VM. This NDK contains a new sample ("san-angeles") that shows exactly how to do that with a GLSurfaceView object.

  • The ability to target either Android 1.5 or 1.6 devices
    The NDK parses your project's properties to know which platform release it is targeting. It will then automatically use the proper headers and libraries to generate your native code. Any application that targets 1.5 will run on Android 1.5, Android 1.6 and any future official system release. Targeting 1.6 should, thus, only be done if your application requires new 1.6 features / APIs, like the ability to call OpenGL ES 1.x headers from native code.

  • The ability to put your native sources under your application's project tree
    You can now conveniently place all your sources (C, C++ and Java) under the same tree, for editing or version control purposes.

  • Many fixes to the NDK's build scripts
    The changes to the build scripts fix some annoying bugs and also increase host system compatibility.

If you have any questions, please join us in the Android NDK forum.

Monday, September 28, 2009

Zipalign: an easy optimization

The Android 1.6 SDK includes a tool called zipalign that optimizes the way an application is packaged. Doing this enables Android to interact with your application more efficiently and thus has the potential to make your application and the overall system run faster. We strongly encourage you to use zipalign on both new and already published applications and to make the optimized version available—even if your application targets a previous version of Android. We'll get into more detail on what zipalign does, how to use it, and why you'll want to do so in the rest of this post.

In Android, data files stored in each application's apk are accessed by multiple processes: the installer reads the manifest to handle the permissions associated with that application; the Home application reads resources to get the application's name and icon; the system server reads resources for a variety of reasons (e.g. to display that application's notifications); and last but not least, the resource files are obviously used by the application itself.

The resource-handling code in Android can efficiently access resources when they're aligned on 4-byte boundaries by memory-mapping them. But for resources that are not aligned (i.e. when zipalign hasn't been run on an apk), it has to fall back to explicitly reading them—which is slower and consumes additional memory.

For an application developer like you, this fallback mechanism is very convenient. It provides a lot of flexibility by allowing for several different development methods, including those that don't include aligning resources as part of their normal flow.

Unfortunately, the situation is reversed for users—reading resources from unaligned apks is slow and takes a lot of memory. In the best case, the only visible result is that both the Home application and the unaligned application launch slower than they otherwise should. In the worst case, installing several applications with unaligned resources increases memory pressure, thus causing the system to thrash around by having to constantly start and kill processes. The user ends up with a slow device with a poor battery life.

Luckily, it's very easy to align the resources:

  • Using ADT:
    • ADT (starting with 0.9.3) will automatically align release application packages if the export wizard is used to create them. To use the wizard, right click the project and choose "Android Tools" > "Export Signed Application Package..." It can also be accessed from the first page of the AndroidManifest.xml editor.
  • Using Ant:
    • The Ant build script that targets Android 1.6 (API level 4) can align application packages. Targets for older versions of the Android platform are not aligned by the Ant build script and need to be manually aligned.
    • Debug packages built with Ant for Android 1.6 applications are aligned and signed by default.
    • Release packages are aligned automatically only if Ant has enough information to sign the packages, since aligning has to happen after signing. In order to be able to sign packages, and therefore to align them, Ant needs to know the location of the keystore and the name of the key in build.properties. The name of the properties are key.store and key.alias respectively. If those properties are present, the signing tool will prompt to enter the store/key passwords during the build, and the script will sign and then align the apk file. If the properties are missing, the release package will not be signed, and therefore will not get aligned either.
  • Manually:
    • In order to manually align a package, zipalign is in the tools folder of the Android 1.6 SDK. It can be used on application packages targeting any version of Android. It should be run after signing the apk file, using the following command:
      zipalign -v 4 source.apk destination.apk
  • Verifying alignment:
    • The following command verifies that a package is aligned:
      zipalign -c -v 4 application.apk

We encourage you manually run zipalign on your currently published applications and to make the newly aligned versions available to users. And don't forget to align any new applications going forward!

Friday, September 25, 2009

A Note on Google Apps for Android

Lately we've been busy bees in Mountain View, as you can see from the recent release of Android 1.6 to the open-source tree, not to mention some devices we're working on with partners that we think you'll really like. Of course, the community isn't sitting around either, and we've been seeing some really cool and impressive things, such as the custom Android builds that are popular with many enthusiasts. Recently there's been some discussion about an exchange we had with the developer of one of those builds, and I've noticed some confusion around what is and isn't part of Android's open source code. I want to take a few moments to clear up some of those misconceptions, and explain how Google's apps for Android fit in.

Everyone knows that mobile is a big deal, but for a long time it was hard to be a mobile app developer. Competing interests and the slow pace of platform innovation made it hard to create innovative apps. For our part, Google offers a lot of services — such as Google Search, Google Maps, and so on — and we found delivering those services to users' phones to be a very frustrating experience. But we also found that we weren't alone, so we formed the Open Handset Alliance, a group of like-minded partners, and created Android to be the platform that we all wished we had. To encourage broad adoption, we arranged for Android to be open-source. Google also created and operates Android Market as a service for developers to distribute their apps to Android users. In other words, we created Android because the industry needed an injection of openness. Today, we're thrilled to see all the enthusiasm that developers, users, and others in the mobile industry have shown toward Android.

With a high-quality open platform in hand, we then returned to our goal of making our services available on users' phones. That's why we developed Android apps for many of our services like YouTube, Gmail, Google Voice, and so on. These apps are Google's way of benefiting from Android in the same way that any other developer can, but the apps are not part of the Android platform itself. We make some of these apps available to users of any Android-powered device via Android Market, and others are pre-installed on some phones through business deals. Either way, these apps aren't open source, and that's why they aren't included in the Android source code repository. Unauthorized distribution of this software harms us just like it would any other business, even if it's done with the best of intentions.

I hope that clears up some of the confusion around Google's apps for Android. We always love seeing novel uses of Android, including custom Android builds from developers who see a need. I look forward to seeing what comes next!

Thursday, September 24, 2009

ADC 2 Judging Has Begun!

ADC 2 App LogoADC 2 Judging App ScreenshotI am happy to announce that Android Developer Challenge 2's first round of judging has begun!

As a reminder, user voting determines which apps will make it to the second round. Voting will occur through an application called Android Developer Challenge 2, which is now available for download from Android Market. Android Developer Challenge 2 presents apps for each user to download and score according to a set of criteria, such as originality and effective use of the Android platform, among others. The first round of judging will last at least two weeks from today. Judging will continue until we receive a sufficient number of votes to identify the top 20 applications in each of the 10 categories (200 apps total) that qualify for the second round.

During the second round, judging will occur through a combination of user voting and input from a panel of industry experts. User voting will continue to occur via Android Developer Challenge 2 and will account for 40% of the final score that each app receives in round two. The remaining 60% of the final score will be determined by the industry expert panel.

It has been a little less than a year since the first Android-powered phones became available. Today, there are more than 10,000 applications available in Android Market. We are pleased by the energy and commitment demonstrated by developers in such a short period of time. Our goal with Android Developer Challenge 2 is to inspire the developer community to produce even more innovative apps for Android. Now on to the voting!

Download Android Developer Challenge 2:

QR code for ADC2 app download

Wednesday, September 23, 2009

An introduction to Text-To-Speech in Android

We've introduced a new feature in version 1.6 of the Android platform: Text-To-Speech (TTS). Also known as "speech synthesis", TTS enables your Android device to "speak" text of different languages.

Before we explain how to use the TTS API itself, let's first review a few aspects of the engine that will be important to your TTS-enabled application. We will then show how to make your Android application talk and how to configure the way it speaks.

Languages and resources

About the TTS resources

The TTS engine that ships with the Android platform supports a number of languages: English, French, German, Italian and Spanish. Also, depending on which side of the Atlantic you are on, American and British accents for English are both supported.

The TTS engine needs to know which language to speak, as a word like "Paris", for example, is pronounced differently in French and English. So the voice and dictionary are language-specific resources that need to be loaded before the engine can start to speak.

Although all Android-powered devices that support the TTS functionality ship with the engine, some devices have limited storage and may lack the language-specific resource files. If a user wants to install those resources, the TTS API enables an application to query the platform for the availability of language files and can initiate their download and installation. So upon creating your activity, a good first step is to check for the presence of the TTS resources with the corresponding intent:

Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);

A successful check will be marked by a CHECK_VOICE_DATA_PASS result code, indicating this device is ready to speak, after the creation of our android.speech.tts.TextToSpeech object. If not, we need to let the user know to install the data that's required for the device to become a multi-lingual talking machine! Downloading and installing the data is accomplished by firing off the ACTION_INSTALL_TTS_DATA intent, which will take the user to Android Market, and will let her/him initiate the download. Installation of the data will happen automatically once the download completes. Here is an example of what your implementation of onActivityResult() would look like:

private TextToSpeech mTts;
protected void onActivityResult(
int requestCode, int resultCode, Intent data) {
if (requestCode == MY_DATA_CHECK_CODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
mTts = new TextToSpeech(this, this);
} else {
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(
TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}

In the constructor of the TextToSpeech instance we pass a reference to the Context to be used (here the current Activity), and to an OnInitListener (here our Activity as well). This listener enables our application to be notified when the Text-To-Speech engine is fully loaded, so we can start configuring it and using it.

Languages and Locale

At Google I/O, we showed an example of TTS where it was used to speak the result of a translation from and to one of the 5 languages the Android TTS engine currently supports. Loading a language is as simple as calling for instance:

mTts.setLanguage(Locale.US);

to load and set the language to English, as spoken in the country "US". A locale is the preferred way to specify a language because it accounts for the fact that the same language can vary from one country to another. To query whether a specific Locale is supported, you can use isLanguageAvailable(), which returns the level of support for the given Locale. For instance the calls:

mTts.isLanguageAvailable(Locale.UK))
mTts.isLanguageAvailable(Locale.FRANCE))
mTts.isLanguageAvailable(new Locale("spa", "ESP")))

will return TextToSpeech.LANG_COUNTRY_AVAILABLE to indicate that the language AND country as described by the Locale parameter are supported (and the data is correctly installed). But the calls:

mTts.isLanguageAvailable(Locale.CANADA_FRENCH))
mTts.isLanguageAvailable(new Locale("spa"))

will return TextToSpeech.LANG_AVAILABLE. In the first example, French is supported, but not the given country. And in the second, only the language was specified for the Locale, so that's what the match was made on.

Also note that besides the ACTION_CHECK_TTS_DATA intent to check the availability of the TTS data, you can also use isLanguageAvailable() once you have created your TextToSpeech instance, which will return TextToSpeech.LANG_MISSING_DATA if the required resources are not installed for the queried language.

Making the engine speak an Italian string while the engine is set to the French language will produce some pretty interesting results, but it will not exactly be something your user would understand So try to match the language of your application's content and the language that you loaded in your TextToSpeech instance. Also if you are using Locale.getDefault() to query the current Locale, make sure that at least the default language is supported.

Making your application speak

Now that our TextToSpeech instance is properly initialized and configured, we can start to make your application speak. The simplest way to do so is to use the speak() method. Let's iterate on the following example to make a talking alarm clock:

String myText1 = "Did you sleep well?";
String myText2 = "I hope so, because it's time to wake up.";
mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, null);
mTts.speak(myText2, TextToSpeech.QUEUE_ADD, null);

The TTS engine manages a global queue of all the entries to synthesize, which are also known as "utterances". Each TextToSpeech instance can manage its own queue in order to control which utterance will interrupt the current one and which one is simply queued. Here the first speak() request would interrupt whatever was currently being synthesized: the queue is flushed and the new utterance is queued, which places it at the head of the queue. The second utterance is queued and will be played after myText1 has completed.

Using optional parameters to change the playback stream type

On Android, each audio stream that is played is associated with one stream type, as defined in android.media.AudioManager. For a talking alarm clock, we would like our text to be played on the AudioManager.STREAM_ALARM stream type so that it respects the alarm settings the user has chosen on the device. The last parameter of the speak() method allows you to pass to the TTS engine optional parameters, specified as key/value pairs in a HashMap. Let's use that mechanism to change the stream type of our utterances:

HashMap<String, String> myHashAlarm = new HashMap();
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM,
String.valueOf(AudioManager.STREAM_ALARM));
mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, myHashAlarm);
mTts.speak(myText2, TextToSpeech.QUEUE_ADD, myHashAlarm);

Using optional parameters for playback completion callbacks

Note that speak() calls are asynchronous, so they will return well before the text is done being synthesized and played by Android, regardless of the use of QUEUE_FLUSH or QUEUE_ADD. But you might need to know when a particular utterance is done playing. For instance you might want to start playing an annoying music after myText2 has finished synthesizing (remember, we're trying to wake up the user). We will again use an optional parameter, this time to tag our utterance as one we want to identify. We also need to make sure our activity implements the TextToSpeech.OnUtteranceCompletedListener interface:

mTts.setOnUtteranceCompletedListener(this);
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM,
String.valueOf(AudioManager.STREAM_ALARM));
mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, myHashAlarm);
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,
"end of wakeup message ID");
// myHashAlarm now contains two optional parameters
mTts.speak(myText2, TextToSpeech.QUEUE_ADD, myHashAlarm);

And the Activity gets notified of the completion in the implementation of the listener:

public void onUtteranceCompleted(String uttId) {
if (uttId == "end of wakeup message ID") {
playAnnoyingMusic();
}
}

File rendering and playback

While the speak() method is used to make Android speak the text right away, there are cases where you would want the result of the synthesis to be recorded in an audio file instead. This would be the case if, for instance, there is text your application will speak often; you could avoid the synthesis CPU-overhead by rendering only once to a file, and then playing back that audio file whenever needed. Just like for speak(), you can use an optional utterance identifier to be notified on the completion of the synthesis to the file:

HashMap<String, String> myHashRender = new HashMap();
String wakeUpText = "Are you up yet?";
String destFileName = "/sdcard/myAppCache/wakeUp.wav";
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, wakeUpText);
mTts.synthesizeToFile(wakuUpText, myHashRender, destFileName);

Once you are notified of the synthesis completion, you can play the output file just like any other audio resource with android.media.MediaPlayer.

But the TextToSpeech class offers other ways of associating audio resources with speech. So at this point we have a WAV file that contains the result of the synthesis of "Wake up" in the previously selected language. We can tell our TTS instance to associate the contents of the string "Wake up" with an audio resource, which can be accessed through its path, or through the package it's in, and its resource ID, using one of the two addSpeech() methods:

mTts.addSpeech(wakeUpText, destFileName);

This way any call to speak() for the same string content as wakeUpText will result in the playback of destFileName. If the file is missing, then speak will behave as if the audio file wasn't there, and will synthesize and play the given string. But you can also take advantage of that feature to provide an option to the user to customize how "Wake up" sounds, by recording their own version if they choose to. Regardless of where that audio file comes from, you can still use the same line in your Activity code to ask repeatedly "Are you up yet?":

mTts.speak(wakeUpText, TextToSpeech.QUEUE_ADD, myHashAlarm);

When not in use...

The text-to-speech functionality relies on a dedicated service shared across all applications that use that feature. When you are done using TTS, be a good citizen and tell it "you won't be needing its services anymore" by calling mTts.shutdown(), in your Activity onDestroy() method for instance.

Conclusion

Android now talks, and so can your apps. Remember that in order for synthesized speech to be intelligible, you need to match the language you select to that of the text to synthesize. Text-to-speech can help you push your app in new directions. Whether you use TTS to help users with disabilities, to enable the use of your application while looking away from the screen, or simply to make it cool, we hope you'll enjoy this new feature.

Thursday, September 17, 2009

Introducing Quick Search Box for Android

One of the new features we're really proud of in the Android 1.6 release is Quick Search Box for Android. This is our new system-wide search framework, which makes it possible for users to quickly and easily find what they're looking for, both on their devices and on the web. It suggests content on your device as you type, like apps, contacts, browser history, and music. It also offers results from the web search suggestions, local business listings, and other info from Google, such as stock quotes, weather, and flight status. All of this is available right from the home screen, by tapping on Quick Search Box (QSB).

What we're most excited about with this new feature is the ability for you, the developers, to leverage the QSB framework to provide quicker and easier access to the content inside your apps. Your apps can provide search suggestions that will surface to users in QSB alongside other search results and suggestions. This makes it possible for users to access your application's content from outside your application—for example, from the home screen.

The code fragments below are related to a new demo app for Android 1.6 called Searchable Dictionary.


The story before now: searching within your app

In previous releases, we already provided a mechanism for you to expose search and search suggestions in your app as described in the docs for SearchManager. This mechanism has not changed and requires the following two things in your AndroidManifest.xml:

1) In your <activity>, an intent filter, and a reference to a searchable.xml file (described below):

<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable" />

2) A content provider that can provide search suggestions according to the URIs and column formats specified by the Search Suggestions section of the SearchManager docs:

<!-- Provides search suggestions for words and their definitions. -->
<provider android:name="DictionaryProvider"
android:authorities="dictionary"
android:syncable="false" />

In the searchable.xml file, you specify a few things about how you want the search system to present search for your app, including the authority of the content provider that provides suggestions for the user as they type. Here's an example of the searchable.xml of an Android app that provides search suggestions within its own activities:

<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/search_label"
android:searchSuggestAuthority="dictionary"
android:searchSuggestIntentAction="android.intent.action.VIEW">
</searchable>

Note that the android:searchSuggestAuthority attribute refers to the authority of the content provider we declared in AndroidManifest.xml.

For more details on this, see the Searchability Metadata section of the SearchManager docs.

Including your app in Quick Search Box

In Android 1.6, we added a new attribute to the metadata for searchables: android:includeInGlobalSearch. By specifying this as "true" in your searchable.xml, you allow QSB to pick up your search suggestion content provider and include its suggestions along with the rest (if the user enables your suggestions from the system search settings).

You should also specify a string value for android:searchSettingsDescription, which describes to users what sorts of suggestions your app provides in the system settings for search.

<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/search_label"
android:searchSettingsDescription="@string/settings_description"
android:includeInGlobalSearch="true"
android:searchSuggestAuthority="dictionary"
android:searchSuggestIntentAction="android.intent.action.VIEW">
</searchable>

These new attributes are supported only in Android 1.6 and later.

What to expect

The first and most important thing to note is that when a user installs an app with a suggestion provider that participates in QSB, this new app will not be enabled for QSB by default. The user can choose to enable particular suggestion sources from the system settings for search (by going to "Search" > "Searchable items" in settings).

You should consider how to handle this in your app. Perhaps show a notice that instructs the user to visit system settings and enable your app's suggestions.

Once the user enables your searchable item, the app's suggestions will have a chance to show up in QSB, most likely under the "more results" section to begin with. As your app's suggestions are chosen more frequently, they can move up in the list.

Shortcuts

One of our objectives with QSB is to make it faster for users to access the things they access most often. One way we've done this is by 'shortcutting' some of the previously chosen search suggestions, so they will be shown immediately as the user starts typing, instead of waiting to query the content providers. Suggestions from your app may be chosen as shortcuts when the user clicks on them.

For dynamic suggestions that may wish to change their content (or become invalid) in the future, you can provide a 'shortcut id'. This tells QSB to query your suggestion provider for up-to-date content for a suggestion after it has been displayed. For more details on how to manage shortcuts, see the Shortcuts section within the SearchManager docs.


QSB provides a really cool way to make your app's content quicker to access by users. To help you get your app started with it, we've created a demo app which simply provides access to a small dictionary of words in QSB—it's called Searchable Dictionary, and we encourage you to check it out.

Wednesday, September 16, 2009

New MSI Notebook 12.1” Wind U210

MSI Computer announced the availability of the new Wind U210 notebook this afternoon. Weighing in at just 3.2 pounds, Wind U210 is MSI’s first notebook to feature the AMD Athlon Neo MV-40 1.6 GHz processor. The newest edition to the Wind family of ultraportables, also features a 250 GB hard drive, 2GB of DDR2 memory, and an energy efficient 6-cell battery with a 4+ hour life. The new Wind U210 is available now at Amazon.com and Newegg.com for just $429.99.

MSI paired the Wind U210’s 12.1” HD (1366x768) 16:9 aspect ratio LCD with ATI Radeon X1250 for crystal clear graphics. The combination delivers a bright widescreen visual experience with exceptional color saturation and crisp imagery. The Wind U210 also features MSI's EDS (Ergonomic De-stress) keyboard with keys that are 51% larger than those on a standard keyboard. The larger keys greatly improve finger contact range, which reduces stress on fingers and wrists to provide a more comfortable typing experience. Additionally, MSI included a 1.3M webcam, HDMI port, 3 USB 2.0 ports, VGA port, and a 4x1 card reader in the U210.



FULL SPECIFICATIONS BELOW


CPU :AMD Athlon Neo MV-40 (1.6 GHz)
OS :Genuine Windows® Vista Home Premium
LCD:12.1” HD WXGA 16:9 (1366x768 resolution)
Chipset :AMD RS690 + SB600
Graphic :ATI Radeon X1250
Memory :2 GB DDR2
Storage :250 GB (2.5" SATA HDD)
Wireless :802.11b/g/n
Battery :6-Cell
Webcam :1.3
I/O :HDMI x 1 , USB 2.0 x 3 , Mic-in , Headphone, RJ45
Card Reader 4 in 1 (XD/SD/MMC/Memory Stick)
Dimensions :7.4” x 11.7” x 1.2”
Weight :3.2 lbs with 6-Cell battery
Warranty :1 years which. includes 1 years global warranty
Colors Available
White and Black

source

Lenovo ThinkPad T400s Multi-Touch Notebook Review

In case you haven't noticed, Lenovo has a thing for re-introducing machines with a tweak here or there and maybe a dash of new functionality. The IdeaPad S10-2 is a great example of that, as is the partially-new, multi-touch ThinkPad T400s. Frankly, the ThinkPad T400s that emerged in June wasn't all that different than the original ThinkPad T400. The T400s offered a slimmer profile, a tweaked keyboard, a few new internal hardware upgrades and optional WAN connectivity. The new T400s, which is equipped with Windows 7 and a multi-touch display, adds one major feature: touch.


But really, is adding touch input to an already decent notebook enough to make you think twice about buying a Lenovo? Or better yet, could it convince existing T400 and T400s owners to upgrade? In the pages to come, we'll take a look at how think machine performs with a new operating system. Unlike the original T400s that we reviewed earlier in the summer, our multi-touch T400s shipped with Windows 7 Professional, whereas the earlier T400s shipped with a variety of Vista options.

Of course, those interested in gaining multi-touch will have to pay for the privilege. The original T400s started at just $1599. The T400s Multi-Touch starts at $1999. That's a $400 premium just for the fancy display, and if you feel like computing with an upgraded 2.53GHz CPU and an SSD, be prepared to shell out even more. There's no doubt that this machine could end up pushing $3000 before all was said and done, which just seems outrageous regardless of how cutting-edge the whole multi-touch aspect is. That said, when you consider what Apple gets for a Macbook Pro with less functionality than this, perhaps it's not all that exorbitant?

source

Tuesday, September 15, 2009

Android 1.6 SDK is here

I am happy to let you know that Android 1.6 SDK is available for download. Android 1.6, which is based on the donut branch from the Android Open Source Project, introduces a number of new features and technologies. With support for CDMA and additional screen sizes, your apps can be deployed on even more mobile networks and devices. You will have access to new technologies, including framework-level support for additional screen resolutions, like QVGA and WVGA, new telephony APIs to support CDMA, gesture APIs, a text-to-speech engine, and the ability to integrate with Quick Search Box. What's new in Android 1.6 provides a more complete overview of this platform update.

The Android 1.6 SDK requires a new version of Android Development Tools (ADT). The SDK also includes a new tool that enables you to download updates and additional components, such as new add-ons or platforms.

You can expect to see devices running Android 1.6 as early as October. As with previous platform updates, applications written for older versions of Android will continue to run on devices with Android 1.6. Please test your existing apps on the Android 1.6 SDK to make sure they run as expected.

Over the next several weeks, we will publish a series of blog posts to help you get ready for the new developer technologies in Android 1.6. The following topics, and more, will be covered: how to adapt your applications to support different screen sizes, integrating with Quick Search Box, building gestures into your apps, and using the text-to-speech engine.

If you are interested to see some highlights of Android 1.6, check out the video below.


Happy coding!

Thursday, September 3, 2009

ASUS N81Vp Notebook Review


ASUS N81Vp with 14.1-inch display size is designed as a multimedia notebook to handle all the tasks the user, the latest games and HD video decoding. Asus used components 4GB RAM, Intel Core 2 Duo T9550, ATI Mobility 4650 graphics with GDDR3 1GB memory. ASUS notebooks are also N81Vp looks classy from the outside, almost equal to the class design HP DV series. Exterior design of glossy black and bronze paint dark metalick with pinstripe pattern of vertical lines broken.


While in its interior, there is a change in color to the color of gold and copper on the touchpad, the keyboard is also black. With display brightness set to 70 percent, wireless is also active, the notebook can last only 2 hours and 20 minutes prior to the standby mode with the battery portion 3 percent. Power consumption is also a fluctuation between 19 to 21 watts.

Advantages ASUS N81Vp:
Perfect cooling system
Fast processor
Good quality design
Port more than 17-inch notebook

Disadvantages: battery life is less

Asus N81Vp Specifications:

OS: Windows Vista Home Premium (SP1, 32-bit)
Processor: Intel Core 2 Duo T9550 (2.66GHz, 6MB L2 Cache, 1066MHz FSB)
Display: 14.1 “Widescreen TFT LED backlighting (1366×768)
Memory: 4GB PC2-6400 DDR2 SDRAM 800MHz
Chipset: ATI Mobility Radeon 4650 1GB GDDR3
Harddisk: 320GB 7200RPM SATA
Optical: Dual Layer CD / DVD Recordable
Camera: 1.3 megapixels
Wireless: Atheros AR928X B / G Wireless and Bluetooth Version 2.0 + EDR
Weight: 5lbs 11.1oz
Dimension: 13.5 x 10.1 x 1.6 ”
Warranty: 2 years
Battery: 6-cell 11.1V 4800mAh
Price estimate: $ 1,399

via dhanti

Laptop CPUs- Component Guide

From single core Pentiums to high-end Core 2 quad-core processors, here’s what you need to know about CPUs.

The central processor unit, or CPU, is the brain of your notebook. It’s the component that executes the complex calculations that allow you to launch a Web browser, play songs in iTunes, and run your operating system. Processors come in three varieties: single-core, dual-core, and quad-core. Here are the things you need to consider when evaluating a notebook’s CPU.



Clockspeed

All CPUs are assigned a clock speed in megahertz (MHz) or gigahertz (GHz), but the latter is far more common in modern computers. Generally, the faster the clock speed, the better performance you’ll see.

Number of Cores

Single-core processors utilize, as the name suggests, a lone CPU. As such, it’s the not as powerful as multicore processors. Dual-core is the next step up, combining two independent processors onto one physical chipset to deliver more potent processing power. Quad-core, the current power king, ups the ante by combining four processors into one package. Notebook manufacturers, however, place these CPUs—and the various processor brands that live within each category—into very specific laptops classes depending on the machines’ need for power output and battery life.

CPUs for Netbooks

Designed for netbooks and nettops, Intel’s Atom processor is designed for extremely light computing, such as Web surfing, checking e-mail, and instant messaging. The Atom is currently available in 800-MHz to 2.0-GHz varieties, but we recommend avoiding anything less than 1.6 GHz, or you’ll get gray hair from waiting,

Though rare in comparison to Intel, Via’s Nano CPU is also a good choice. It comes in a broader ranger of clock speeds (1.0 GHz to 1.8 GHz), and we’ve found anything above 1.3 GHz to be acceptable.

In addition, AMD’s 1.6-GHz Athlon Neo CPU is also available in ultrathin laptops. Neo’s performance is good, but battery life is not as strong as what you’ll get from an Intel chip.

Ultrathin Notebooks

The new class of ultrathin, low-cost PCs are powered by Intel’s ULV (Ultra-Low Voltage) platform. This class of CPUs include processors from the Celeron, Core 2 Solo, and Pentium brand. The chipsets specialize in delivering long battery life; the ULV-powered Acer Aspire Timeline 3810T (6415) lasted over 8 hours on our LAPTOP Battery Test. These CPUs feature clock speeds ranging from 800 MHz to 1.4 GHz.

If you need more performance, consider a business ultraportable with a low-voltage Core 2 Duo processor, like the Toshiba Portégé R600-ST520W or Lenovo ThinkPad X301. Just expect to pay a hefty premium.

Mainstream Notebooks

If you’d like a notebook with more processing power, mainstream notebooks are the way to go, as they feature the higher-end members of Intel’s Core 2 Duo family. While you won’t find notebooks with the thin body of a ULV-powered machine, you’ll still be able to play games and dabble in multimedia content creation. You may even be able to get a system with long battery life.

No matter what mainstream notebook you get, you’ll want a Mac or PC running at 2.0 GHz. If extra processing punch is high on your list, however, we suggest a minimum clock speed of 2.4 GHz.

Laptop hunters on a budget may want to check out AMD’s offerings (Athlon, Sempron, and Turion), which are typically cheaper than their Intel counterparts. Intel’s dual-core Pentium is also acceptable for budget buyers.

Desktop Replacements


If you’re a hardcore gamer, or someone who does a lot of demanding work (CAD, professional graphic design, video editing, etc.) and cares more about performance than portability, settle for nothing less than a large notebook with an Intel Core 2 Quad CPU. Such a system will likely have a battery life of less than 2 hours, weigh more than 8 pounds, and cost more than $1,500. However, if speed is your main priority, the trade-offs are worth it.
Loading...


Jeffrey L. Wilson | laptopmag

Samsung to Introduce Two New CULV Laptops

Samsung is expected to announce two new CULV based laptops soon, the X420 and X520. The laptops will be based on an ultra-thin design with high battery life.

The Samsung X420 is based on Intel's Pentium Dual Core SU2700 1.30 GHz processor, with a 250GB 5400RPM hard drive and 3GB DDR3 RAM. However, an optical drive is not included.


It's equipped with a 14-inch screen and weighs 3.7 pounds. The Samsung X520 will be equipped with a similar SU2700 CPU which consumes ultra low power along with a 320GB hard drive and 4GB DDR3 memory. The X520 comes with a 15.6-inch display and weighs around 4.6 pounds. Both laptops include integrated Intel GMA X4500M cards. All the standard ports, including HDMI, are in place.

The laptops come with a standard 6-cell battery which delivers around nine hours of battery time. The laptops are expected to be introduced by the end of October after the official release of Windows 7. They will be available in Europe with a retail price of around €700 or $1000.

Jesper Berg | laptoplogic

Alienware m17x Review

The M17x is Alienware's flagship gaming notebook. It features a stealthy design, aluminum chassis, and a customizable lighting system. Our review unit is packed to the gills with dual Nvidia graphics cards, an Intel Extreme processor, and 8GB of RAM. Does the M17x live up to Alienware's claim of being the fastest gaming notebook on the market? Read our review to find out.




Alienware M17x review unit has the following specifications:

* 17-inch WUXGA (1920x1200) edge-to-edge display
* "Space Black" chassis
* Windows Vista Home Premium 64-bit
* Intel Core 2 Extreme QX9300 (2.53GHz/12MB/1066MHz) quad-core processor
(overclockable)
* Dual Nvidia GeForce GTX 280M 1GB graphics cards in SLI
* Switchable to integrated Nvidia GeForce 9400M 256MB graphics card
* 8GB DDR3-1333 RAM (2x 4GB)
* 1TB RAID 0 (500GB 7200RPM x2) hard drive array
* Slot-load Blu-ray reader
* AlienFX lighting system
* 9-cell battery


Some News from Android Market

I'm pleased to let you know about several updates to Android Market. First, we will soon introduce new features in Android Market for Android 1.6 that will improve the overall experience for users. As part of this change, developers will be able to provide screenshots, promotional icons and descriptions that will better show off applications and games.

We have also added four new sub-categories for applications: sports, health, themes, and comics. Developers can now choose these sub-categories for both new and existing applications via the publisher website. Finally, we have added seller support for developers in Italy. Italian developers can go to the publisher website to upload applications and target any of the countries where paid applications are currently available to users.

To take advantage of the upcoming Android Market refresh, we encourage you to visit the Android Market publisher website and upload additional marketing assets. Check out the video below for some of the highlights.

Tuesday, September 1, 2009

Asus U20A Review


Certainly never seen a butterfly with beautiful wings flying to and fro is not it? Well, strength, beauty, and thinness of butterfly wings that’s inspired when designing notebook Asus with these U20A series.

Therefore, despite the wide screen, 12.1 “, Asus U20A designed not as thick and heavy as notebooks in its class. Thinnest part of the notebook is 2.75 cm, while the most 2.9 cm thick. The weight of the following notebook 6-cell battery it was only 1.834 kg. In fact this notebook comes complete with an optical drive, aka DVD-RW drive. Li-Ion battery of its own weight 298 grams.


One cause of light and thin U20A is the use of Intel processors CULV (consumer ultra low voltage), the Intel SU2700 combined with the Intel GS45 chipset, X4500 graphics MHD and a Wi-Fi Link 5100 Wi-Fi. Thin and light notebooks with long-lasting batteries, plus an affordable price is going up the ladder of popularity. More days, more and more notebook of this type available in the market, such as Acer and MSI Slim Timeline X.

But if Asus was able U20A beat his rivals? Let us examine one by one facility of this thin notebook.

Physical
We start from the outside view. Like most notebooks, Asus U20A body made of plastic. All the shiny black body. In the middle of the glossy cover that Asus logo appears.

As usual, the glossy cover was pretty inviting enough fingerprint impressions that we must often wipe. The same thing happened with palmrest panel and LCD frame.

Minimal Screws
Let us turn this notebook for a while. At the bottom we will see the two compartments. Close hinges are smaller, and is a place of memory. DDR memory compartment is only locked by one screw, so easy to open if we want to upgrade memory.

The other compartment is where the hard drive. This compartment is also minimal screws, only guarded by two screws. The lack of screws is easier for us to upgrade their own hard drive.

Screen
When his cover is opened we will see the layer-featured LCD LED-backlit. Size 12.1 “with a resolution of 1280×800 pixels standards. LCD screen is framed by a glossy black panel with cover U20A. There was little effect of reflection from this shiny frame.

Display LED backlit screen was bright, sharp, clear, and precise. At any level of 50 percent, the display is looking very bright. Light level adjustable LCD itself, or from sensors that will adjust the light level in the room where the notebook.

Webcams
In the middle of the LCD panel, as usual, installed a 2-megapixel Webcam. Activate by double-clicking on the menu icon LifeFrame. This camera can set the frequency. When you first activated, you will be presented box contains the location and the recommended frequency of Asus. Webcam quality was good, almost without pause. Images looked bright and clear.

Results recorded images can be saved in BMP, JPG, or GIF. Quite a few options that can be done by recording the picture. Among other images can be added emotion, frames, accessories, date. Resolution images can be selected between 160×120, 176×144, 320×240, 640×480, and 1280×1024.

Sequential shooting (continuous shot) shall be done. The options are 3, 5, 12, or 15 frames per second. If the room where the object is felt less light, do not forget to turn on the flash. Moda bidiknya can choose between Night Scene, Portrait, Slow Shutter and Custom.

Voice recorder is also available in LifeFrame applications. What’s interesting is Game bid. Here, two images can be positioned in a frame, with a choice: vs.., Pair?, And the symmetry face. The effect is very interesting. Symmetry face if elected, it will present a vertical white lines on the screen Webcam. Position your face in the line, and see the effect. If you’re down, on the right side of your face will attend the ‘fat’ and on the left side of the present version of the ‘thin’.

Clean the Rear
The back of the notebook is clean. No nothing there, except slot Li-Ion batteries. So when I first had to charge the rechargeable batteries, we got confused. We did not find a hole to plug, DC plug-in at the back of this. On the other sides we did not find the hole. Inquired had inquired, was the DC-in jack hidden in a rounded right hinge – a clever way to make the notebook is clean of the hole.

Condition of the back of the net from this hole with two opposite sides of a solid port. Look at the right side. Besides DC hole-in at the hinge, each present a single USB port, LAN port, an ExpressCard slot and a DVD-RW drive.

We shifted to the left side. Well, this side really colonized various ports. There are two USB 2.0 ports located by a separate air vent, a VGA port, one HDMI port and SD card slot. Appearing in the front two jacks: microphone and headphones.

Meanwhile at the front, two Altec Lansing speakers ready to let out the sound. Unfortunately in our opinion, the sound quality of big named players is less clear. His bass-less steady.

Keyboard and Touchpad
Keyboard panel is impressive U20A. The buttons have a light sensor and could be burning brightly in the darkness. To turn on the light sensor, press Fn-A. Light level can be controlled by pressing Fn-F3/F4/F5.

These buttons is wide enough to each other so comfortable to wear. No need too loud knock on every button.

Who also seized the attention of the touchpad. Not because of the width and right-left buttons into one button that turns out wide chrome uncomfortable suppressed because it was a little inside. But since this touchpad also be lit with a pattern of dots follow the direction of movement of our fingertips.

As a result, this notebook can actually be used perfectly in total darkness, including in aircraft. For all glowing – keys, display, and touchpad – by itself. Unfortunately U20A touchpad is too sensitive, especially if used for a long time.

Wireless Features
For wireless connections in the U20A, Asus provides Intel’s Wi-Fi 802.11/draft-n, and Bluetooth v2.1. Just do not look for Wi-Fi switch on the body of this notebook.

In this notebook, Asus liked the style shortcut keys to control various things. So to activate or turn off the Wi-Fi and Bluetooth, we need to press Fn-F2 key.

Two Power Button
Maybe you will be confused to see there are two power buttons – each on the left and right upper panel of the keyboard. Both activate the computer.

The difference is, the power button on the left is a shortcut button, to turn into notebooks without operating system or access the hard disk. The emphasis will activate special modes Asus Express Gate. Express Gate adaah basically a mini operating system. This mode is very useful for those who are always mobile, and often need to the Internet or view files quickly.

Within eight seconds left after the power button is pressed, the notebook can be used.
We can listen to music or watching movies from the CD / DVD or USB flash disk, call via Skype, and talk (chat) with instant messaging, including playing games online via a wireless connection (Wi-Fi).

We are also free to look at pictures or images on the USB flash disk or digital camera connected to a notebook via a USB port Photo Manager. Read PDF files that fester in the USB flash disk can be by clicking on the file twice.

We just can not keep or take anything to / from disk. System-based Asus Express Gate Splashtop operating system it’s not accessing the notebook hard disk, including operating system activates. That’s why quick access.

To exit the ExpressGate mode, just turn off the computer off via the power button that appears at the bottom right corner of the screen. Or choose to go to the OS, which will enable the notebook as if we press the power button to the right. In normal conditions, we can access anything on the hard drive. It took 1 minute 32 seconds before the bersistem notebook Windows Vista Ultimate can be used.

Bundle Software
Asus software membundelkan enough in his U20A. For software, is paired Adobe Reader 9 and MS Office (trial version), Cyberlink DVD Suite, Lightscribe Direct Disc Labeling, and Picasa 3.

In addition there is Asus Multiframe and LifeFrame to activate the Webcam. Another bonus is the Norton Internet Security antivirus for free for three months.

Included in a SmartLogon Asus Utility Manager, AI Recovery Burner, Splendid Utility, and Asus FancyStart. Splendid Utility controls the screen with six options: Normal, Gamma, Vivid, Theater, Soft, and My Profile. To My Profile, you can set their own color temperature, RGB sync, colorfulness, and save it to a hotkey.

Manager SmartLogon quite interesting, because it allows us to login by using faces. Webcams will be automatically switched on in here and ask us to enter the password and press Capturing photos to create a gallery face. Logon level can be selected from the most stringent (high) to loose (low).

Meanwhile FancyStart used to change the startup screen. Here we can adjust the sound options, background images, frames and modes that will be displayed.

Battery
Our test unit came standard with DDR2 3GB RAM, hard disk 2.5 “320GB and battery 4400mAh Li-Ion 10.8 V Batteries weighing 298 grams was able to support notebook – in our experiments – a maximum of 4 hours 12 minutes. This is when we activate this feature Power4Gear Entertainment batteries.

In other settings, namely Battery Saving, notebooks can be used for 3 hours 24 minutes. While the High Performance setting, time-life to 3 hours 49 minutes.

Power4Gear battery usage settings (High Performance, Entertainment, Quiet Office, Battery Saving) is diaturkan Asus, but we can also change or add it yourself. Entertainment Power4Gear example, will turn off the display within 5 minutes if the notebook uses power from the batteries, or 15 minutes when using the power from the grid. Computers also will be included in the sleep mode after 15 minutes. While in High Performance, nothing is off when the notebook using the power from batteries or from the grid.

Mouse Free
In packaging, in addition to batteries and charger, Asus includes a mini optical mouse. This optical mouse connected via USB cable to be parsed from around the mouse body. But in our opinion, the mouse is less comfortable to wear due to lack of precision.

One thing about the adapter. Our test unit equipped with a charger Asus with two flat feet. As a result when power will recharge the batteries, we have to use the converter – a little inconvenient.
***

U20A Asus is compelling because it can be used even in total darkness. Unfortunately after about 1 hour use, the bottom of the unit was quite hot, so recommended to always use a mat or as a portable lap desk.

One note, the unit we tested was quite different from the units on the market. For example, the processor and RAM on our test unit is a 1.3 MHz Intel SU2700 and 3GB RAM DDR2, while on the market higher, the Intel Core 2 Solo ULV 1.4 GHz Su3500 with 4GB of RAM DDR2. Also our test unit mengemaskan and 320GB hard drive 2MP Webcam, while circulating in the market and 500GB hard drive provides 1.3 MP Webcam with 6-cell battery is claimed to stand working 8 hours, and additional bonus in the form of bags. But both are sold without operating systems.

PLUS: The light sensor on the keyboard, screen and touchpad; rich software bundle; international warranty; bright screen; Express Gate; RAM and hard drive upgrades easy.

MINUS: A bit of heat; feet flat adapter

source :laptopny