Tampilkan postingan dengan label upgrade. Tampilkan semua postingan
Tampilkan postingan dengan label upgrade. Tampilkan semua postingan

Selasa, 06 April 2010

Android Fragmentation

Android is fragmented. There, we said it (okay, so we said it yet again)!

Seriously, it's the so-called elephant in the room. According to Wikipedia , there are 3 dozen Android smartphones, and a handful of tablets and e-readers currently on the market. The list of upcoming Android devices is just as lengthy. But are all the new handsets running the latest and greatest Android platform? Of course not! Some recently released phones are still running Android 1.6. Older models are still running Android 1.5. Even the Motorola Droid is still rolling out the Android 2.1 update-this week! And remember, Android 2.0 (API Level 5) barely exists in the real world, as it was quickly replaced by Android 2.0.1 (API Level 6). It's not easy to keep track of all the Android devices out there, with their varied SDK versions, screen sizes and hardware capabilities. And that, my friend, is exactly what we're talking about when we say fragmentation.


Just How Fragged are We?

The Android platform has reasonably addressed the task of targeting different screen sizes, resolutions and orientations-not to say it's trivial, but at least there are methods of going about doing so. It still adds work as more variations reach the market, but goes a long way towards reducing the burden compared to some other platforms. In addition, various hardware configurations are relatively straightforward to query for or, at least, put smart error handling in for. (Admittedly, some devices don't behave correctly when they're missing certain hardware, and even if considered a bug, in many cases the burden is on the developer to create work-arounds.)

The answer largely depends on what type of developer you are.


What's an Android Developer to Do?

If you're a hobby developer, you'll likely want to target the handset you own. After all, who wants to write an app that can't run on their own phone? Perhaps start with the Android phone you've got, and then move on to the biggest and most stable Android handsets available to your target users.

If you're a mass market developer, you'll likely need to target the lowest available version that allows your application to perform the features it requires. You'll need to target as many phones as possible.

If you're a game company or technology company designing awesome new features, you'll probably want to target the Android devices with the very latest version of the platform, and those with the best performance so all of your nifty features run smoothly.


Is Fragmentation Going to Get Better, or Worse?

Better, and worse-but there is hope on the horizon. Google has recently come forward saying they have a plan on addressing at least part of the fragmentation issue. To us, the fact that Google has stepped forward and admitted that fragmentation is a problem is a very good sign.

Technically speaking, Android is a community developed, open source project run by the Open Handset Alliance. Google is but one of about 70 member companies, and not even the biggest though they may be one of the most influential. But, the reality is the Android is Google's baby. They created it and they should really control it, open source or not-someone's got to. Sure, getting community involvement is great, but direction must be provided by someone; going democratic only works when everyone (developers, manufacturers, operators) is on the same page and they just aren't. Platforms like the Apple iPhone haven't had this problem because they are a tightly locked down platform with a reasonably small set of devices, limited operators, and more controlled versioning; the iPhone is also a more mature platform and not going through rapid and successive improvements in a short time frame-it pisses their loyal user base off royally if they release one device only to have a new and improved one available three months later. On the Android platform, we've got an explosion of devices with a very broad range of features, price ranges, and networks.

Android Team to Adjust SDK Releases Based on Fragmentation Concerns

Anyway, Google has said that they will slow down the rollout of new Android SDK versions. The Android tools were separated from the SDK in Android 1.6, so now tools can be updated separately from the SDK. Google will also separate out the Android apps that generally ship with the platform so they can be updated on demand without a new SDK rollout to the field. This is basically the desktop model. Apple doesn't need to ship a new Mac OS X to ship a new version of Safari, iTunes, or Xcode. Microsoft doesn't need to ship a new version of Windows to update Internet Explorer, Outlook, or Visual Studio. So, why should Google ship a new version of the Android SDK just to get a new version of the browser, map app, email client, or any of the other apps out?

By splitting the Android SDK into components, its users, developers, handset manufacturers, and carriers should be able to work more effectively. Users won't have to wait for their manufacturer and carrier to approve a full firmware release just to get a security bug fix in the browser. Developers will have fewer platform targets to worry about; instead, there may be more downloadable, add-on components to manage. Manufacturers won't have to try to keep up with the crazy speed with which the Android platform has been progressing. (During our current book project, we saw the number of platform levels go from 3 to 7. That's pretty crazy!) And, finally, carriers won't be burdened by so many full firmware updates that always leave them at risk of confused users or broken handsets. Remember, the operator is the first line of support. Large rollouts are costly for them. With the desktop model, people call their manufacturer or developer first, not their ISP or OS maker; the opposite is true for phone apps and carriers.


Where Do We Go From Here?

The exact nature of how this will play-out is unknown. Claims that everything will settle down and become totally managable are likely overly optimistic. Will the Android team truly be able to add new platform features through add-ons rather than full platform upgrades? Hopefully, but we'll see.

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

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!

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.

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.

ANDROID BOOK © 2008 Template by:
SkinCorner