Jelly Bean changes ?

Informatix

Expert
Licensed User
Longtime User
I see that a lot of apps are updated because of Jelly Bean. I tried my own apps with the emulator and I didn't notice anything special. What are the major changes introduced in Jelly Bean and what are the consequences ? With Google, I find only informations for the end user.

EDIT: my question is not about the new features, but about the problems encountered because of these changes.
 
Last edited:

boten

Active Member
Licensed User
Longtime User
One thing I noticed about Jelly Bean:

My App (KillSud on google play) draws text (canvas.drawtext) in a rather restricted area. It was developed on a Froyo device and was later tested on ICS device. Worked fine on both devices.

Some users who DL'd my app complained that numbers are unreadable, so I solved it by drawing the 2 sets of numbers on different, overlapping panels where the front panel has transparent background. My users said it now works fine on devices that showed the problem.

My ICS device had the version with only one panel. Today I upgraded to JB and realized that the numbers are unreadable. So I upgraded my now JB device to the latest version of my own app and it works fine.

So it seems to me that some drawing functions behave differently in JB than in previous versions of Android.

I'll be glad to hear from the "internalists" of Android if that is the case.
 
Upvote 0

Woinowski

Active Member
Licensed User
Longtime User
My App is totally broken with Jelly Bean

My problem is that in CardBoard (https://play.google.com/store/apps/details?id=de.woinowski.cardboard) moving around cards (implemented as panels) does not work any more. I had tried a quick fix, but this does not help.

My analysis so far:
- Touch and redraw may be out of order, so that when you do a dragging implementation, the usual delta method (save position at up or last move, move panle by delta and so on...) does not work
- p.BringToFront within in a touch event causes the touch to be cancelled (not in previous Android versions)

I am at a loss and I fear a change in Basic4Android would also not help. Meaning: I need to do a redesign of touch event handling, which I am not looking forward to.

At the heart of the problem seem to be some tricks to "improve" user experience with touch events. Unless your App gets broken, that is :sign0148:

On Android 4.1 for Developers | Android Developers I found the following about that:

"To ensure a consistent framerate, Android 4.1 extends vsync timing across all drawing and animation done by the Android framework. Everything runs in lockstep against a 16 millisecond vsync heartbeat — application rendering, touch events, screen composition, and display refresh — so frames don’t get ahead or behind.

Android 4.1 also adds triple buffering in the graphics pipeline, for more consistent rendering that makes everything feel smoother, from scrolling to paging and animations.

Android 4.1 reduces touch latency not only by synchronizing touch to vsync timing, but also by actually anticipating where your finger will be at the time of the screen refresh. This results in a more reactive and uniform touch response. In addition, after periods of inactivity, Android applies a CPU input boost at the next touch event, to make sure there’s no latency."
 
Upvote 0

Informatix

Expert
Licensed User
Longtime User
My problem is that in CardBoard (https://play.google.com/store/apps/details?id=de.woinowski.cardboard) moving around cards (implemented as panels) does not work any more. I had tried a quick fix, but this does not help.

My Floating Window class works like a charm with JellyBean (on a real device and with the emulator). A drag&drop done with my CheckList class works fine too under JellyBean. So your comment about the "old method" of dragging a panel is wrong. Do you use the latest version of B4A, with updated libraries ?

The thing I discovered by playing with the new versions (3+) and pushing a bit the limits is that is better to disable the hardware acceleration in some cases. In all my projects until now, I didn't see where was the improvement (it's not obvious at all), but I clearly saw the issues. In my last project, UltimateListView, the performance is a lot better without this optimization and I use less memory. I suppose that is not true for every device.
 
Upvote 0

Woinowski

Active Member
Licensed User
Longtime User
Not an issue with B4A version

Do you use the latest version of B4A, with updated libraries ?

Yes, all up to date. And since this really started exactly with jelly bean, I do not think the hardware accelaration is the issue.
 
Upvote 0
Top