Jumat, 11 Desember 2009

Latest Book Review: Android Wireless Application Development

Thought we'd share with you some comments from our readers. Recently, our youngest and most loyal fan kicked off his future career in mobile software development by "reviewing" our recent software development book, Android Wireless Application Development.

His verdict: Tasty!


"I can also create user interface components at runtime programmatically? Fascinating. Read on!"


"Need my diaper changed. Is there an app for that?"



"I especially enjoyed the bunny pictures!"

"Forget baby sign language, I'm learning Java so I can write killer apps for the Droid phone! I can use royalties I rake in from the Android Market to pay for college... in 18 years."

Minggu, 06 Desember 2009

Consumer Confusion or Funny Feature?

In testing one of our apps on the Archos 5 Internet Tablet, I ran across something I found to be funny. See that screen shot? The one that looks like the emulator when the camera application is launched?

Yeah, that's on the Archos device.

I find it funny because I know exactly where that came from. But consumers? They might get confused by this. Ideally, the camera Intent would do something useful to inform the user:
  • Provide a warning message that the device doesn't have a camera
  • Go directly to the gallery picker instead
Or is this the right behavior so developers can just be lazy and not worry about there being a camera on all devices? And that is the final problem: the device behaves as if it has a camera when it doesn't. It might be convenient for running apps that don't know about the device features, but it actually makes it harder for well written apps.

(P.S. I'm not trying to pick on the Archos device, specifically. It's just the only Android device I have that doesn't have a camera.)

Sabtu, 05 Desember 2009

Another New Android Tablet, Another New Android Market

The Camangi WebStation is a new (actually, still pre-order) web tablet running Android 1.5. It looks like a nice machine with a neat UI around a big 7" screen. In looking at the details, though, it seems that it, too, isn't running with the Google add-ons. (Yes, there's a Gmail logo on this screen, but the page showing info on email shows just a browser page.) So, no Android Market. As with the Archos 5 Internet Tablet, Camangi has gone and created their own market: the Camangi Market.
On the plus side, developers take note: If you're one of the first 20 to submit an application, you can win $100 off for the device. At least they're thinking about developers. :)
A new Android device is a good thing. It shows even further support for the platform. However, it is fragmenting the market by creating yet another device with a different specifications and a new market for getting Android apps. Does the good outweigh the bad? Is it really that hard to get the Google add-ons, including Android Market? Will Android Market ever break off from the Google add-ons and provide a really good, cross-device experience for both end-users and developers?

Jumat, 04 Desember 2009

Quick Tip: Eclipse, Source Control, and default.properties


Here's a quick tip for you:

When using Eclipse project properties to change the Project Build Target, make sure the default.properties file is writeable. This may mean checking it out from source control before editing the properties. In our configuration, the Perforce file is not writable and changing the Project Build Target settings with Eclipse does not check out the default.properties file from source control. So, I have to first check it out, then modify the Eclipse settings.

Although default.properties is automatically generated by the Android Tools, the catch is it must also be checked in source control. Usually, this does not trigger an error, either. Instead, the default.properties file will just be out of sync with the settings and possible create strange behavior.

Kamis, 03 Desember 2009

Android SDK API Level 6!


Congratulations to the Android SDK for leveling once again! (I can't help but think of gaming when the API Level is mentioned.) We're now at Level 6, which corresponds to Android 2.0.1, Release 1.

The SDK Tools have been updated, as well, to Release 4, which now requires the updated Eclipse plug-in 0.9.5.

Many handsets still have Android 1.6 and, if rumors are to be believed, will remain so. Thus, Android 1.6, Release 2, is now available to resolve some platform issues. It also requires SDK Tools, Release 4. Curiously, though, it has not "leveled up." Will this be an issue? How will applications and developers know if their Android 1.6 has defects found in Release 1 or not?
Get it all* now while it's hot! :)


*If I'm counting correctly, that's four new things:
  • Android 2.0.1, Release 1, SDK
  • Android 1.6, Release 2, SDK
  • SDK Tools, Release 4
  • Eclipse ADT Plug-in 0.9.5

Selasa, 24 November 2009

Project Pitfalls: 10 Business Risks of Android Development

Android is an exciting new platform to develop for, but there are a number of risks associated with Android projects which should not be overlooked. Here’s a short list of what we see as the project pitfalls of Android development at this time. Read more...

[Note: We're blogging over at Network World all this month. Head on over to register to win a free copy of our book!]

Minggu, 22 November 2009

Android Needs Google For Now

Today, we’re seeing two types of Android devices on the market: those with a basic, “vanilla” installation of Android and those with Android and Google services. This means developers and manufacturers have choices as to whether or not to integrate tightly with Google services. This decision requires some serious thought. Read more...

[Note: We're blogging over at Network World all this month. Head on over to register to win a free copy of our book!]

Jumat, 20 November 2009

Key Questions Any Good Mobile Application Business Plan Should Answer

Coming up with the right business model for your mobile application can be tricky. Here are some of the key questions any good mobile application business plan should answer. Read more...

[Note: We're blogging over at Network World all this month. Head on over to register to win a free copy of our book!]

Kamis, 19 November 2009

19 Ways to Make "Free" Mobile Application Pricing Profitable

In terms of app pricing, one of the first questions to ask yourself is: are you going to charge users or give the app away for “free”? But can you give away your app and still make money? Here are 19 ways you can try. Read more...

[Note: We're blogging over at Network World all this month. Head on over to register to win a free copy of our book!]

Minggu, 15 November 2009

Chapter Excerpt: The Mobile Software Development Process

A free chapter excerpt of our Android book is available online at Network World.


The mobile development process is much like the traditional desktop software process with a couple of distinct differences. Understanding how differences affect your development team is critical to running a successful mobile development project. This information and insight into the mobile development process is invaluable to veterans and those new to mobile development, to those in management and planning and the developers and testers in the trenches. In this chapter, we take a look at each step in the mobile software development process and discuss some of the peculiarities of mobile development.

Check out the full excerpt: http://www.networkworld.com/subnets/google/110109-chapter18-android-wireless.html.

Sabtu, 14 November 2009

Tip: Dealing With Expired Debug Certificates


If you've been developing on Android for a while, you'll eventually see this error (or something like it):


Error generating final archive: Debug certificate expired on 11/3/09 8:59 AM!

This will happen once a year. The default debug certificate is set to have just a one year expiry. The easy solution is to simply delete the debug.keystore file and let the SDK generate a new one the next time you build.

Why not create one that won't expire after a year, though? This command will do just that:


keytool -genkey -keypass android -keystore debug.keystore -alias androiddebugkey -storepass android -validity 10000 -dname "CN=Android Debug,O=Android,C=US"

Run this from wherever the debug.keystore file needs to be generated and you'll get 10,000 days before needing to deal with this again, instead of merely 365.

Rabu, 11 November 2009

Some Thoughts on Mobile Application Business Plans

Mobile developers are struggling to determine the appropriate business plans for their applications. Over the past few weeks, we've been talking to a lot of mobile business professionals--some veterans of the mobile marketplace and many just getting started. With easy and accessible mobile platforms like Android, writing a mobile application is often the easy part, but monetizing your application can be a real challenge. We're going to be talking a lot about different mobile application business strategies this month, but we thought we'd kick this topic off with a few high level thoughts. With so many new players in this field, we're seeing many developers and development companies struggle to figure out how to make money with applications. Read more...

[Note: We're blogging over at Network World all this month. Head on over to register to win a free copy of our book!]

Selasa, 03 November 2009

Six Hot Android Topics at DroidCamp

We're currently in Berlin attending droidcamp and droidcon conferences. Droidcamp, primarily for Android developers, was quite a success today, with many great sessions. We listened to the developer buzz and went to a bunch of sessions. Here is our take on the hot topics simmering within the Android community here in Germany. Read more...

[Note: We're blogging over at Network World all this month. Head on over to register to win a free copy of our book!]

Busy in Berlin

We had a great day at droidcamp today in Berlin. We presented two sessions, attended others, wrote a little about it over on Network World, and even had time to enjoy a beer with many of the droidcamp gang at a local pub.

Read about some of the hot topics discussed in our article, Six Hot Android Topics at DroidCamp. We had slides for one of our presentations, too. They're available here:


Finally, over at Network World, you can win a free copy of our book! See here for details.


Minggu, 01 November 2009

Android 2.0 & Droidcon!


It seems like we were justing about Android 1.6. Oh, wait, we were! Well, we have to admit: Android 2.0 is a little underwhelming from the developer point of view. It seems more like Android 1.7. Still, it's great progress and items like the account manager for using multiple accounts across the handset will be great for users and developers alike.

One item we liked, especially since we're on the road this month attending conferences and checking out the Android phones available in Europe, is the built-in update abilities that simply add support for Android 2.0 instead of require a completely new installation and configuration. All we had to do was run the SDK and AVK manager, update to the latest and run the Eclipse updates to get the newest plugin and we were good to go with 2.0!

On code we've tested, we haven't noticed any new issues with 2.0. However, if you run across any issues with our book code, please let us know! Once we've returned from our travels, we'll do a more thorough evaluation--with one of the new Android 2.0 handsets.

We're on the road? That's right! We're just days away from Droidcon in Berlin! See you there!

Sabtu, 31 Oktober 2009

The Top Five Business Benefits of Android

With the Android 2.0 release newly available, perhaps you’re wondering if the Android platform is right for your business or your project. Here are the top five benefits of Android from a business perspective (primarily for prospective application developers). Read more...

[Note: We're blogging over at Network World all this month. Head on over to register to win a free copy of our book!]

Sabtu, 26 September 2009

Next Book: The Teaser

We have have slipped a clue or two in before this. However, this little clue should give away a fair bit of what we're working on for our next book. By request, this is being targeted as a less advanced book when compared to the previous one (which is, of course, available now).
Enjoy! ;)

Selasa, 15 September 2009

Android 1.6 SDK Now Available

Welcome to API Level 4!
The Android 1.6 SDK is now available for download. Many of the highlights are good for users and manufacturers, such as a Market update and support for CDMA hardware. What's good for users is good for developers. Also included is a new gestures framework and a tool for creating gestures, multi-lingual and accent text-to-speech, and better search capabilities.
The API changes list is relatively small; this is an incremental upgrade with some nice features, but not a sweeping change by any means.
The update is set to be on handsets as early as October, according to the release notes.


Kamis, 10 September 2009

Android App Widget Article on User Interaction Published

Our next article about Android App Widgets has been published over at developer.com. This time, we talk about how to add user interaction to an App Widget using the limited RemoteViews ability to register Intents to trigger when a user touches an item. This article builds upon our previous article, which discussed building an App Widget with a custom -- and user configurable -- update rate.
Go build some great interactive widgets now!

Kamis, 03 September 2009

Android Wireless Application Development Now available!

Our first book, Android Wireless Application Development, is now in stock and available for purchase.


Senin, 17 Agustus 2009

Referring to Android Resources Using URIs

In addition to loading Android resources using the Resource manager, you can also reference resources using a specially-formatted URI. Resource URIs can be referenced by resource type/name or by resource identifier. This can be especially useful if you are using a control like a VideoView which takes either a file path or a URI for the video source.

For example, let's say we have a VideoView and we want to load a resource from the raw resources called myvideo.3gp. We could construct a URI in two ways:

Using the resource id, the format is:

"android.resource://[package]/[res id]"

Uri path = Uri.parse("android.resource://com.androidbook.samplevideo/" + R.raw.myvideo);

or, using the resource subdirectory (type) and resource name (filename without extension), the format is:

"android.resource://[package]/[res type]/[res name]"

Uri path = Uri.parse("android.resource://com.androidbook.samplevideo/raw/myvideo");


This Uri can then be used to source the VideoView as follows:

VideoView myVid = (VideoView) findViewById(R.id.VideoView1);
myVid.setVideoURI(path);


You can now refer to any resource by URI.

Jumat, 14 Agustus 2009

Sample Chapter From Our Book Available

Our first book, Android Wireless Application Development, is very close to hitting the shelves. Amazon currently lists August 28th availability. Of course, you can still get the Rough Cuts and check it out early!

A free sample chapter, Introducing Android, is now available on informIT. Check it out and give us feedback!


Kamis, 06 Agustus 2009

Creating an App Widget with Custom Timing

App Widgets are a popular new feature with the Android 1.5 SDK. Writing a basic App Widget would seem straightforward, however some properties turn out to get in the way of simple features.
The Android documentation for App Widgets references the ability to let users choose the duration between updates. In practice, the update duration property of an App Widget is immutable. Our latest article on developer.com addresses this, giving code and instruction on creating an Android App Widget with a user-customizable update duration.

Selasa, 28 Juli 2009

When "Eclipse loading framework information into layout resource editor" Fails

The Android Development Plug-in for Eclipse is a great tool many Android developers rely upon. I personally use some features much more than others. For example, I rarely use the Layout Resource editor to preview layout files. Instead, I just edit the XML directly and run it in the Emulator. (I have also been known to edit HTML with notepad, that's just how I roll.)

So it came as a bit of a surprise (read: annoyance) when I tried to do just that--preview a layout file in Eclipse--the other day and it failed. Eclipse seemed to try to load the layout designer saying, "Eclipse is loading framework information and the Layout library from the SDK folder." Then it up and failed to load it. Over and over. You couldn't see the layout preview, nor the Properties pane or the Outline mode to add new controls to the layout tree.

You might be wondering why I bothered to investigate this since I could have just gone back to the XML and blown it off. Well, I needed a screenshot of the Layout preview mode for our new book. Nuff said.

At first, I thought it was just me overestimating the tool's abilities, trying to preview a layout that was too complex for the preview (this happens often when I include some of the more complex View controls in layouts). So I created a new project with its simple default layout file, and that didn't load either. So that wasn't it.

I did a quick search on the Android developer forums and a couple people were complaining on the forums about this over a year ago. One person suggested recreating your workspace. Well, that didn't work, either. I widened my search to the web and ran across a little note on Brian Klug's wiki, suggesting that the older versions of the Android plug-in JAR files might be hanging around, mucking things up. Thanks, Brian! This sent me in the right direction.

We've had a number of new revisions of Android lately. which have improved (greatly) the Android tool chain, that have had several new JAR file updates. Next, I had to find the android JAR files on my machine. First, I checked where Brian had suggested: c:\eclipse\plugins (basically, in the plugins directory of the eclipse installation path). As my luck would have it, they were not there. Instead, a quick file search for "com.android*.jar" showed that they were hiding in C:\Users\YourUserName\.eclipse\org.eclipse.platform_3.4.0_867647348\features.

With a little investigation, I found several older versions (0.8.x and 0.9.0) of the android JAR files installed with the new ones (0.9.1 is the latest for Android SDK 1.5 r3). I shut down Eclipse, deleted all the older JAR files, leaving only the 0.9.1 versions.
Specifically, I only kept these two android JAR files:
  • com.android.ide.eclipse.adt_0.9.1.v200905011822-1621
  • com.android.ide.eclipse.ddms_0.9.1.v200905011822-1621
When I relaunched Eclipse, the layout preview began to function again. Incidentally, this was on a Windows installation of the Android tools. When I checked the Mac install of Android 1.5 R3, the JAR files were hanging about in (rather than the expected /Developer/Applications/eclipse/plugins~/.eclipse), but the layout preview did load without issue.

Sabtu, 18 Juli 2009

Run Android on Your Machine with LiveAndroid

LiveAndroid, a community project hosted at Google Code open source hosting, is determined to make a LiveCD that will run Android on a typical Intel-based laptop. As of their second release, many things work, including the mouse. The LiveCD will easily boot in the free VirtualBox environment, and can boot on many machines, too. Their work is based on previous work done to port Android to the Asus eee 701.
For developers making software for handsets, this isn't terribly interesting. However, if you want to prepare your software to run on some of the first Android netbooks, this could be a great way to start limited testing, especially when it comes to larger screen sizes.
The wiki pages have lots of discussion about how to use it, what hardware works, how to configure the network, and how the various special keys are mapped. I highly recommend reading these pages before trying to use this.
Have fun running Android natively (or virtually) on your machine -- without the emulator.

Latest Android 1.5 SDK, Release 3, Fixes Emulator Defects


Have you missed the ability to call or SMS from one emulator instance to another? Have you be tearing your hair out over the hang when getting the SensorManager? Well, look no further than the third release of the Android 1.5 SDK. It fixes these issues, and more.
Download it from the usual SDK site: http://developer.android.com/sdk/
Read more about the fixes in the release notes.

Jumat, 26 Juni 2009

Scripting on Android


Did you know you could script for Android? With Python, Lua, and more languages coming? And not just for Android, either... but on Android devices?
Well, you can. A couple of weeks back, the Android Scripting Environment project was discussed and downloads are available now for alpha versions of this application. One frequently cited example as a Lua script that, in under 20 lines of code, allows the phone to be silenced -- or not -- by just flipping it over.
Check out the Android Scripting Environment now for some on-the-go scripting fun!

The Android NDK 1.5 Release 1

Google announced that the Android 1.5 NDK Release 1 is available. No, this isn't another SDK. Instead, it's the Native Development Toolkit, which basically allows developers to use C or C++ for development -- with a whole bunch of limitations.
The gist of the goal of the NDK is to provide a way for CPU-intensive operations to be implemented outside of the Dalvik virtual machine to increase performance. The libraries available are limited and it's not designed to allow development of entire applications using native code.
Read more about it at the Android Developer site.

Kamis, 11 Juni 2009

Choosing an XML Parser for Android

When new versions of the Android SDK come out, I often like to peruse the more detailed changes. A while back, I ran across mention of including the XmlPullParser API for enhanced mobile XML parsing performance. Busy at the time, I didn't do much with it. The curiousity ultimately got the better of me and the result is an article on the XML parser performance comparing the SAX, DOM, and Pull Parser performance on Android. Feedback is welcome via the email address listed at the article.

Kamis, 28 Mei 2009

Android Developer Challenge 2 Details Appearing

Google has announced some early details for the next Android Developer Challenge. Submissions will begin in August across ten categories. In this challenge, there will be two rounds. It's the first round that's new and exciting for developers and users:

Users get to download, rank, and rate specific, but random, applications submitted to the challenge by, what else, but an Android application! This round will result in 200 finalists: twenty in each of the ten categories. The second round will be rated with Google-selected judges, as before, but their ratings will only count for 55% of the total score, with the other 45% coming from the community ratings. Three winners from each category will be chosen to win $100k, $50k, and $25k US dollar prizes. From all of the entries, overall winners (best of all entries, regardless of category) will be awarded an additional $150k, $50k, and $25k.

Finally, Google has provided a little teaser to encourage developers to go to their events:
attendees of selected developer events will be provided with devices intended for use in developing submissions for ADC 2
The categories for this challenge include the following:

  • Education/Reference
  • Games: Casual/Puzzle
  • Games: Arcade/Action
  • Social Networking
  • Lifestyle
  • Productivity/Tools
  • Media
  • Entertainment
  • Travel
  • Misc
Terms and conditions for the challenge are forthcoming. It's still unclear who is eligible, what applications will be eligible, and so on. Find out more as details become available from the Google Android Developer Challenge site.

Jumat, 15 Mei 2009

Android Development Tip: Managing AVDs with the Eclipse Android Development Tools Plug-In

I've updated my Eclipse development environment a number of times in the past few weeks, what with the Android 1.5 preview, then the release version. I checked for updates this week and noticed yet another version of the ADT Eclipse plugin was available. One interesting new feature added in the latest version is an Android Virtual Device (AVD) manager, accessible from within Eclipse.

All emulator instances using the Android 1.5 SDK require an AVD configuration. Sure, you can use the android command line interface to create and manage AVDs, but if you just want to create a simple AVD quickly, you can now use the little wizard provided with the ADT plugin. The AVD manager button is added to your Eclipse toolbar. It looks like a little black cell phone.



Simply click it and the AVD manager will launch, listing all AVDs on your system. You can Add and Delete AVDs, as well as Refresh the AVD listing.


When creating a new AVD, you can set the following information:
  • The AVD friendly name
  • The Target Android system
  • The Skin
  • Whether or not to create an SD Card Image

  • You cannot create custom hardware profiles. That, you still need to use the android command line tool for.

Senin, 27 April 2009

Android SDK 1.5r1 Available for Download

imageRelease 1 of the Android 1.5 SDK is available for download now. Additionally, a system image for the ADP1 (Android Developer Phone from Google) is available for 1.5 now, as well.

This is the third full release of Android, corresponding to API Level 3 (Android 1.1r1 was Level 2 and Android 1.0r1 and 1.0r2 corresponded to Level 1).

This time, though, the Google map services are in an SDK add-on. A vanilla API Level 3 distribution may not contain these. Testing this is made possible through an emulator target that contains these services and one that doesn't, where even clicking on a map link from within an application won't work.

This capability opens the door to other third-party add-ons, a very exciting potential.

Rabu, 22 April 2009

Android 1.5: Going Live Within The Next Few Weeks

image
The much-awaited Android 1.5 SDK update is coming soon to a development environment near you. This update is based on the Cupcake branch of the Android source project and features substantial improvements and additions to the Android APIs, as well as developer tool suite updates and some much-needed UI polish and performance improvements to the overall Android user experience.

You can find a short list of highlights coming in Android 1.5 as part of the Android Developer SDK 1.5 preview on the Android Developer website as well as download the pre-release ("preview") version of Android SDK 1.5 and give it a spin.

You may also find the Cupcake branch roadmap useful.

The SDK 1.5 is expected to be released within the next few weeks. An over-the-air update will likely be sent to Android phones in the field soon thereafter.

What are you looking forward to in this release? We're looking forward to being able to create home screen widgets.

Jumat, 20 Februari 2009

Android Wireless Application Development Book Available for Pre-order!

We're exciting to announce that our book, Android Wireless Application Development, is now available for pre-order from Safari Rough Cuts!
You'll be able to start reading chapters in advance of the print copy if you buy it now. The rough cuts program also allows people to comment on the book and help make it better. Let us know what you think!

Jumat, 13 Februari 2009

Android Application Market for Paid Apps


Paid applications are now being accepted for the Android Market. This is great news for developers who want to make money and create premium applications. Collecting money uses Google Checkout, so developers will also need an account with Google Checkout. Paid applications will be available next week for US customers, and in other countries over the next few months.

Read more at the Google mobile blog entry and at the Android Market publishing site.

Senin, 09 Februari 2009

Android 1.1 in Distribution


If you follow gadget blogs, you've probably seen that Android 1.1 is heading out to T-Mobile G1 handsets. Until today, though, you may have wondered if this affects you or not. Well, it might.

The Android 1.1 SDK Release 1 is a now available from Google. All Android 1.0 SDK applications will function without change on 1.0, according to Google. However, if you want to begin using the new APIs introduced in Android SDK 1.1, you'll need to download it and begin using it.

The Android 1.1 firmware is being pushed out to all G1 users. According to T-Mobile, everyone with a G1 should have received the update notification within a week or two. This means that if you're developing an application that could benefit from the SDK changes, it probably is reasonable to require the upgrade.

As for changes in the new firmware and SDK, they include some bug fixes and a few new features. Many of the features are in built-in applications, but there are a few for developers:
  • Can now determine user ID programmatically for app
  • Can now get padding for a View, useful for implementing new ones
  • Support for Marquee in TextView
  • Can now broadcast SMS and WAP PUSH via new permissions

Download the new SDK here.

(P.S. He's supposed to be smiling. :o)

ANDROID BOOK © 2008 Template by:
SkinCorner