Froyo coming July 13th - are you ready?

by Maps.Huge.Info (Maps API Guru) » Mon, 12 Jul 2010 21:16:56 GMT


Sponsored Links
 As many of you may have heard, Froyo is coming to the Verizon Droid
starting July 13th. That means millions of devices will be running
Froyo. There are a couple of important changes that need to be made in
order to be "Froyo compliant," here's what I've found:

Store app on SD card

This is a really easy modification, just add:
android:installLocation="auto"
ro your manifest statement and build with level 8.

The important change, and this one seems to be a lot more difficult to
find, is it seems Froyo is a lot more picky on null tests. Be sure
your app tests values for null or you'll get the dreaded FC.

Another thing you should do at this time is update your launcher icon.
The new flat style should be used at this point, along with adding the
various resolutions. This also is easy, just add the correct drawable
directories and the associated icons:

drawable - default, works with 1.5
drawable-hdpi - for "high" resolution devices
drawable-mdpi - for "medium" resolution devices

See:  http://developer.android.com/guide/practices/ui_guidelines/icon_design.html 
for full details on inco specs.

Anyone have other tips for Froyo compliance?

--



Froyo coming July 13th - are you ready?

by Mark Murphy » Mon, 12 Jul 2010 21:21:52 GMT


 On Mon, Jul 12, 2010 at 9:16 AM, Maps.Huge.Info (Maps API Guru)



Be very careful. Many applications should not do this:

 http://developer.android.com/guide/appendix/install-location.html #ShouldNot


Could you clarify what you mean here? NullPointerException has not
changed, AFAIK.

-- 
Mark Murphy (a Commons Guy)
 http://commonsware.com  |  http://github.com/commonsguy 
 http://commonsware.com/blog  |  http://twitter.com/commonsguy 

Android App Developer Books:  http://commonsware.com/books 

--


Sponsored Links


Froyo coming July 13th - are you ready?

by Maps.Huge.Info (Maps API Guru) » Mon, 12 Jul 2010 21:32:58 GMT


 I found my app crashes in Froyo under some circumstances. It seems
that Froyo just is more critical when encountering nulls than previous
versions.

You're right (as always!) about being careful with the SD card, I
should have included that link. I think the majority of apps should
fall into the "should" category when it comes to storage on the SD
card.

-John Coryat





--



Froyo coming July 13th - are you ready?

by TreKing » Mon, 12 Jul 2010 21:49:37 GMT


 On Mon, Jul 12, 2010 at 8:16 AM, Maps.Huge.Info (Maps API Guru) <




I had not heard, thanks for the update.



IMO, this is only really relevant to large-size apps. Mine are < 300K so I'm
not going to bother. I don't need more edge-cases to test. Especially since
the phones that are getting 2.2 (N1, Droid, etc) are the ones with larger
storage space to being with.

Meanwhile, Google's own large size apps don't even take advantage of this
feature. Google Earth, you 22MB behemoth, I'm looking at you.

Be sure your app tests values for null or you'll get the dreaded FC.

Wait, what? Nulls were OK before?

It seems that Froyo just is more critical when encountering nulls than


Can you elaborate on this? Because I would expect a null to always be bad.
How were nulls NOT crashing your app before?


The new flat style should be used at this point, along with adding the

Eh. Doesn't the launcher style change with almost every new major Android
version? What's the point in continuing to update your app icon? Especially
when a huge majority of people are still using 1.5 and 1.6 with the "old"
style. I'd rather focus on new features / bugs fixes.



Besides the obvious test your apps on the emulator / device with 2.2? Nope.

-------------------------------------------------------------------------------------------------
TreKing - Chicago transit tracking app for Android-powered devices
 http://sites.google.com/site/rezmobileapps/treking 

--



Froyo coming July 13th - are you ready?

by Maps.Huge.Info (Maps API Guru) » Mon, 12 Jul 2010 22:37:44 GMT


 I think you will find that your users will demand you allow them to
store your app on the SD card, if this is possible with your app
anyway. Users will download apps until they fill them up, then will
want more. That's just human nature. If you can save them a couple
megs by moving your app to SD card, they will keep your app, otherwise
it will be uninstalled.

As for null checking, the specific instance for me was checking a
location provider that had been switched off by the user. Perhaps in
previous versions this resulting in a non-null value but in Froyo it
caused a crash. The simple answer was to check for null first. Bad
programming on my part, corrected for Froyo.

You can leave your old launcher icons in the drawable sub directory,
they will still be used by 1.5 apps. If you add the new resolution
drawable sub directories, along with new launcher icons, the 1.6+
devices will recognize them and act accordingly. It only takes a few
minutes to update them, the new styles are easier to build then the
old, tilted design. Your choice though.

-John Coryat

--



Froyo coming July 13th - are you ready?

by TreKing » Mon, 12 Jul 2010 23:34:41 GMT


 On Mon, Jul 12, 2010 at 9:35 AM, Maps.Huge.Info (Maps API Guru) <




Right, but if you app is < 300K, as in my case, it's almost negligible and
not worth the effort, IMO. If the user needs space, something that small
probably won't be at the top of the uninstall list since it probably won't
make room for much else anyway.

As for null checking, the specific instance for me was checking a

Ah, so it was an API change, not that nulls were handled differently. Good
to know.



Good point. =)

-------------------------------------------------------------------------------------------------
TreKing - Chicago transit tracking app for Android-powered devices
 http://sites.google.com/site/rezmobileapps/treking 

--



Froyo coming July 13th - are you ready?

by Maps.Huge.Info (Maps API Guru) » Mon, 12 Jul 2010 23:46:02 GMT


 >

My apps are < 200k but I had users demand they be installed on the SD
card. It may be a matter of perception rather than logic, as is the
case with most user interactions. The effort involved is negligible,
it's a simple matter of adding the statement to the manifest and
recompiling with level 8. Twenty seconds of effort.

-John Coryat

--



Froyo coming July 13th - are you ready?

by Tobias Eisentraeger » Mon, 12 Jul 2010 23:50:30 GMT


 How does that affect the user being able to simply copy a paid app?
When It's not marked as copy protected, but still a paid app through the
Market, can the user install the moved app then on a different phone? Or is
it somehow tied to his user account?

On Mon, Jul 12, 2010 at 5:45 PM, Maps.Huge.Info (Maps API Guru) <



>



Froyo coming July 13th - are you ready?

by Al Sutton » Mon, 12 Jul 2010 23:50:55 GMT


 It's not just user demand. It allows the OS to choose to put your app on SD in 
case it's internal space is filling up before the user tries to install your 
app.

Al.
--

* Looking for Android Apps? - Try  http://andappstore.com/  *

======
Funky Android Limited is registered in England & Wales with the company number  
6741909. 

The views expressed in this email are those of the author and not necessarily 
those of Funky Android Limited, it's associates, or it's subsidiaries.





>



Froyo coming July 13th - are you ready?

by Al Sutton » Mon, 12 Jul 2010 23:56:13 GMT


 The method used makes use of device specific encryption so you can't take an SD 
from one device, plug it into another, and use the apps installed on the first 
device.

If you don't explicitly state in your manifest you'll allow your app to be 
installed on an SD card it will only be installed on the devices internal 
memory.

Al.
--

* Looking for Android Apps? - Try  http://andappstore.com/  *

======
Funky Android Limited is registered in England & Wales with the company number  
6741909. 

The views expressed in this email are those of the author and not necessarily 
those of Funky Android Limited, it's associates, or it's subsidiaries.





>



Froyo coming July 13th - are you ready?

by TreKing » Tue, 13 Jul 2010 00:14:32 GMT


 On Mon, Jul 12, 2010 at 10:45 AM, Maps.Huge.Info (Maps API Guru) <




Users demand a lot of things. Usually they're clinging to new buzzwords
without any concept of what it actually entails.



Sure, twenty seconds to enable. Did you bother testing this new feature as
well or are you just assuming everything "will just work"? The amount of
time testing and, eventually, fixing issues that arise because of this
is immeasurable. As with anything new added to Android, I'm very wary of any
possible as-of-yet-unknown side-effects this may have.

For example, add copy-protection and your app and it disappears from Market
on some devices.
Add bluetooth, and same problem on some devices.
Use the MyLocationOverlay class and get a random exception thrown on only a
small set of devices.
Etc, etc.

According to the docs Mark linked to regarding this feature, there are many
things to consider when using this new feature - it's definitely not as
simple as you make it out to be. With every change you make, regardless of
how minute, given the matrix of android versions and phone models, you're
increasing the chances your app will break in one form or another.

And for what? So some uneducated users can save 200K? Screw that.

"If it ain't broke, don't fix it", as they say. IMHO, of course.

-------------------------------------------------------------------------------------------------
TreKing - Chicago transit tracking app for Android-powered devices
 http://sites.google.com/site/rezmobileapps/treking 

--



Froyo coming July 13th - are you ready?

by Maps.Huge.Info (Maps API Guru) » Tue, 13 Jul 2010 00:58:51 GMT


 >

Yes, I tested it on a Froyo equipped device (N1), however, I didn't
test it on every possible device. It didn't affect the non-Froyo
devices in my possession nor did I received any negative indications
from my beta group. The app was installed by approximately 200 users
from all over the US, no issues reported. That seems to me that it's
stable.

Feel free to follow your own instinct, I still suggest that those apps
that can be moved to have this simple feature enabled. Really, what
can you lose? If it becomes a problem, simply take it out. Seems like
a winner to me, but then again, I've been labeled an optimist.

-John Coryat

--



Froyo coming July 13th - are you ready?

by TreKing » Tue, 13 Jul 2010 01:53:06 GMT


 On Mon, Jul 12, 2010 at 11:58 AM, Maps.Huge.Info (Maps API Guru) <




That's good to hear. However, we don't all have beta groups and multiple
devices to test with. I suspect that the vast majority of devs only find out
about issues after releasing to Market and getting a flood of complaints (in
the comments of course).

Really, what can you lose?

A lot of time, and a good chunk of your ratings if things go wrong. Why risk
it for a 200K app?



And get even more complaints for taking a feature away after adding it.

Although this brings up an interesting point. What happens if you enable
this, have people use it, then take it out? What happens to the ones that
have installed to the SD when they update?



Nothing wrong with that - I'm fairly optimistic myself. But I'm also
practical. I don't see the point in adding in a new entry to "the list of
things that could go wrong", regardless of how "simple" it may be, simply
because it's the cool new thing in Android when it won't add much value (for
me at least). To each his own, right?

-------------------------------------------------------------------------------------------------
TreKing - Chicago transit tracking app for Android-powered devices
 http://sites.google.com/site/rezmobileapps/treking 

--



Froyo coming July 13th - are you ready?

by Nathan » Tue, 13 Jul 2010 02:07:51 GMT


 On Jul 12, 6:16am, "Maps.Huge.Info (Maps API Guru)"


I've heard it, but not from Verizon or Motorola. So it could be the
same optimism that predicted 2.1 updates for Hero as early as
February.

Given how much carriers and manufacturers string people along for
updates, the only real test is if you know someone who got an update.
Somebody with a Droid please post on July 14th and tell us whether it
was just another rumor.

I would like to know if it is real. It might change my strategy for
development pinch/zoom features if Froyo will make it to 2.1 devices
in a reasonable time.


I'm 500k. I've already had one request for it. According to this
though, I shouldn't do it:

 http://developer.android.com/intl/de/guide/appendix/install-location.html 

because I run a Service. But since my service writes to the SD Card,
it is hosed anyway if you unmount it.

I thought about:
How many people will demand this feature, whether they need it or not?
How many will contact me or see my website and be satisified with my
perfectly logical explanation of why they don't get it?
How many will just simply skip my application and/or post negative
comments on it?

I think that third category is large enough, given my experience so
far with Android users.

So, like you, I'll be pulling the trigger and will be prepared to pull
it back.




I've never really had a tilted icon (no artists in house), but more
resolutions wouldn't be bad to add.


Nathan

--



Froyo coming July 13th - are you ready?

by Phil Nickinson » Tue, 13 Jul 2010 02:10:26 GMT


 It is just an unconfirmed rumor. There have been no official statements
about when it's coming. Not saying it's not gonna happen, just saying it's
not official.





>



Other Threads

1. need help to send unicode

In my application, I want to send 16 bit unicode as SMS. Can any one
help me to do so.
Thanks

-- 

2. Retrieving a set of rows from the sqlite database

I want to do:

SELECT * FROM <TableName> WHERE <attribute(id)> IN <ArrayList type>

but theres an error
04-24 21:18:41.748: ERROR/Error(29495):
android.database.sqlite.SQLiteException: no such table: 1: , while
compiling: SELECT * FROM Main WHERE id IN [1]

basically i want to select those rows with Attribute(id) which are
present in an ArrayList...
but the format of the ArrayList is not the same as the one reqd for
this type of query(i guess)
and i think this is the reason, its not workin correctly


Also,
if i query it with:
SELECT * FROM <TableName> WHERE <attribute(id)> IN <Integer>
it shows me the correct result... but obv it only selects that
particular id's row...

note: ArrayList is replaced with Integer... (which is the data-type of
my attribute(id))


Thanks in advance :)

-- 

3. Cannot reenable screen lock

4. how to animate one item of layer-list

5. dose ContentObserver can observe ONE row in a table?

6. Passing UNICODE in the COLUMN NAMES in sqlite

7. compile libwebcore.so ?