hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bob Lee <crazybob...@gmail.com>
Subject Re: HttpClient in Android
Date Thu, 18 Mar 2010 22:24:28 GMT
While I don't work for Google anymore, Android is an open source project, so
I like to think I can still make contributions (at least after I launch my
current product :-)).

On Thu, Mar 18, 2010 at 2:55 PM, Oleg Kalnichevski <olegk@apache.org> wrote:

> The current snapshot of HttpClient 4.x still maintains API compatibility
> with the version shipping with Android.
>

Last I checked, the mainline HttpClient made incompatible changes after
Android shipped (protected member modifications count). This is why Android
hasn't just dropped in an upgrade. Android could certainly benefit from bug
fixes; I don't think stale connection checking works, for example.


> I understand that in the grand scheme of things we are very small. Now that
> Android is a major success we are no longer needed.


The HttpClient library is heavily used in Android apps, so it's very much
needed. I use it in my app. Any bug fixes and performance improvements could
have a big impact on overall performance, battery life and stability.

I can think of a few options going forward:

  1. Redo the incompatible changes in a way that's compatible with both
Android's version and the mainline HttpClient. This may or may not be
possible. I haven't dug too deeply.

  2. Maybe the changes are in an obscure part of the API that we're certain
no one uses. We'd deliberately introduce a compatibility bug to fix a # of
bugs that actually affect users. I recall that one of the incompatible
changes fixed stale connection checking.

  3. Make the HttpClient library optional. Include it for older Android apps
by default. Newer apps will need to import it using use-library. Newer apps
will be able to bundle their own updated version of HttpClient (or some
other lib). We should probably do this either way.

Bob

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message