Mozilla's Android incarnation of Firefox 4 does not run on devices using the older ARMv6 processor, and it does not support Adobe Flash. Firefox 4 for Android – officially released on Tuesday – runs only on devices that use ARMv7 processors, including phones such as the Google Nexus One, the HTC Evo, and the Motorola Droid X, as …
Pity about the Arm6 devices, but this is bound to happen with an open hardware platform... The failed devices seem to be those with the smaller screen too, so how much they are used for mobile browsing is debatable.
Works great on my Desire Z though... And it has Adblock! YAY!
So now if I really want to see flash I'll just use the built in browser, but for when I want webpages up quick with no adds and stupid animations eating my bandwidth, FF4 4 Android should be hard to beat!
Well.. fuck you very much.
Oh well, there's plenty more
So, I can't run Firefox, never mind, there's plenty more that do run, and run perfectly acceptably on my phone, so, not much of a loss.
Grand-ma's baggy pants...
Now with added stains!
Back to Opera again. I don't know why I bother trying the others.
It is nice, though
It really is a nice mobile browser, and Sync only gets better as it goes. Unless you're on ARMv6, I guess. But then while Fennec has been a concept/pre-release piss-around for a long time, it's only now becoming an actual final release doodad you can install and play with, so I guess there's still a lot of development left to do.
When i look at most websites...
I just want text and static pictures. I pREFER that vids run non-proprietary and just WORK. Why is flash needed for all that shit? Yeh, i know games run flash, but I don't generally play games on my computers nor on my hand held.
Now, is there a plug-in for Better Privacy? I 'm going to look..
Incompetence - nothing to do with performance
I can tell you right now why they pulled the ARMv6 version - because ARMv6 and earlier ARM architectures don't come with automatic transparent unaligned access fixup. ARMv7 devices to. What does this mean, you ask?
Some processors (ARM, SPARC) don't actually work with memory pointers that aren't word aligned. On ARM, that means 4 byte aligned (32-bit). So if you ask it to dereference a pointer, for the sake of the argument, pointing at adress of 6 bytes, it will truncate your pointer to a 4 byte boundary and feed you 2 bytes of garbage at the beginning, and not give you the last two bytes of what you were expecting. This will typically lead to a crash in very short order.
x86 has a transparent automatic fixup for this in hardware, as does ARMv7. But there is a performance penalty to be paid for this. On ARMv5 and ARMv6 under Linux, you can actually enable a kernel level software based fixup for this by doing "echo 2 > /proc/cpu/alignment". But that's even slower than the hardware solution. To see just how crap your software already is, do "cat /proc/cpu/alignment" on your ARMv5/ARMv6 Android phone/slate and you will see just how many such unaligned access violations were detected (they still get detected and counted, it's the fixup that's expensive).
I actually have a Firefox bug filed for an issue like this on normal ARM Linux - not Android, but the nature of the problem is fundamentally the same.
So don't let the developers BS you with performance arguments - that is totally bogus. The reason they can't produce a working version for ARMv5 and ARMv6 is due to x86 induced brain damage that leads to people using horrible practices like casting structs into char arrays (hint - char get byte aligned by GCC, so when you end up dereferencing an element in it, you get garbage).
And if you think that's bad - I also have a similar bug filed against e2fsprogs (yes - the thing that the integrity of your file system depends on - now fscking your file system means something other than you would hope).
On SPARC this is solved by the compiler aligning everything correctly, but ARM has traditionally been the platform for competent programmers working with very tight memory, and aligning everything to a 4 byte boundary means wasting a few bytes of memory - which you may not have on your SoC (an extra £1 for a bigger SoC times 1M units adds up to enough to justify spending an extra man-year on squeezing the code into a bit less RAM).
Then again, a web browser requiring 512MB of RAM _without flash_ says something about developer competence in itself - compared to that, the sort of bad practice that leads to unaligned accesses is small potatoes.
But at least the source code is open, so DIY fixes are an option.
It's not like we can download Adobe Flash source code and recompile it for ARMv7 for instance. Only Adobe can do that.
I wonder by how much the data size would increase if they recompiled with alignment set to 4 bytes - assuming all their code is free of nasty offset hacks.
I think that just about summed it up. :-)
So Opera Mobile and Firefox 4 both go to final versions within a few days of each other.
However, Opera have managed to get the Flash Plug-in to work, and Mozilla haven't.
That would be ok in a beta version, but not in a final version, so that's a big fail Mozilla!
And to anyone who might comment that Flash is bloatware/resource hungry/buggy/slow/security risk/carrier of smallpox etc, all I can say is that I want the option to run Flash on certain sites ok? The Android browsers (Webkit-based and now Opera) all you to load Flash on demand which is a far better compromise than the iOS one of not supporting it at all!
Still keeping it
if only because I know it will get better, and also because I'm sick of apps that install to the SD card of my Desire but still use loads of internal memory. Firefox (13.84MB) takes up only 164KB.
Re: Still keeping it
So you're still wasting 164KB. And there's nothing wrong with the built in browser - it's certainly a lot lighter.
Opera Mobile 11
Runs on ALL Android devices (smartphones and tablets), and supports Flash too...
It's also WAY better than Firefox. I really don't understand why people bother with Firefox anymore....
How much memory!
512mb! A piece of bloatware even MS would be ashamed of.
What did they do - take the desktop version and bundle it with an ARM x86 emulator?
Thanks to Gordan for a very informative post. I will add that storing word-sized object at unaligned addresses is not only bad because the CPU has to do a fix-up that essentially involves loading two words and doing some shifting and masking. It is also bad because a word-sized object can span two cache lines, so loading this can require two cache lines to be evicted.
It is not like aligned allocation is a new idea or very complicated, so a compiler that does not by default align everything to their natural alignment is just plain stupid. By natural aligment I mean that bytes can be allocated to any address (on a byte-addressed machine), 16-bit values to 16-bit aligned addresses and so on, for all powers of 2 up to the size of a cache line (typically 128 or 256 bits). Values that are not a power of two in size should be aligned to the nearest power-of-two alignment (again, up to the size of a cache line).
This can waste a bit of memory, but you get much better performance.
Never mind "will it run Crysis?"
Will it run Firefox?
In theory, Joke Alert icons are useful because they invariably accompany completely unfunny posts.
In practice, however, I always end up reading them and regretting doing it. Is there a way of filtering them out automatically please?
Re: Joke Alerts
"Is there a way of filtering them out automatically please?"
Yes: engage the human brain's amazing pattern recognition features.
Hope you didn't bother to read this!
@AC Re: Joke Alerts
You forgot the "Joke Alert" icon.
Why would anybody run FF on a phone?!
It runs like a dog on my gaming-spec desktop, so it's going nowhere near my phone.
It runs like a dog on my gaming-spec desktop
Sorry to tell you but there's something very wrong with your system then.
Firefox 4 on desktop...
...runs fine if you have a half-decent machine - however their extension/plugin/addon (stupid, stupid naming everywhere) ecosystem is a complete CRAP: there are a lot of them out there that will bring Firefox 4 randomly to a crawl. For that people rightfully can blame Firefox - it's in the browser after all...
Runs beautifully on my Desire, and now I can has adblock. Ok happy now :)
(If the desktop version isn't running smoothly on your gaming-spec desktop, then something is wrong, it's running great on this 2yo laptop I'm using right now)
You may want to check out AdBlock for Android from bigtincan. It's a much lighter weight way to get ad blocking if you have a rooted device.
It's AdFree Android and IIRC it's a hostfile update redirecting known ad hosts to the loopback connection.
What's the 'arm in that?
ARMv6 processors aren't just limited to older Android devices, they are almost universally used in low to middle range phones as well. The popular Orange San Francisco (ZTE Blade) has a v6 processor, and that has an 800x480 screen, which is quite suitable for mobile browsing.
The problem for the average punter is that it isn't obvious which phone has which processor. The San Francisco has a Qualcomm MSM7227 processor. It *is* an ARMv6 based device, but you have to dig a bit to discover that. Try wandering into a local mobile phone emporium, picking an Android phone and asking the sales person if it has an ARMv7 processor because you want to run Firefox (and Flash, BBC iPlayer, etc).
Android apps that don't run on all Adnroid phones....?
That's your fragmentation right there, then.
Can anyone say "Angry Birds"? ;o)
Firefox mobile is a total PoS so far - just go with Skyfire or Dolphin...
...because it won't change anytime soon: the architecture is a behemoth, a huge, slow-moving animal that never will be able to compete in its current form with aforementioned browsers, period.
Opera is on my blacklist for multiple serious privacy issues - in short you should NOT trust Opera, period.
FAIL as in E-P-I-C F-A-I-L for Firefox.
Firefox mobile is a total PoS so far - just go with Skyfire or Dolphin...
Tell you what, explain how Dolphin will cope with synchronised multiple nested bookmarks (<400), and I'll stop using FF.
If you can, that would be great, because I can't get a peep out of the Dolphin devs on this & other issues I have.
Casting (typedef) structs to char* WTF!?
Utterly evil, never mind that it could be structs compiled (#pragma) packed or unpacked, or both options in different libs and the calling code (the horror, the horror...)
Its a big sign that someone is not paying attention to architecture and portability issues.
I deleted from my EVO 4g it this AM
It was good while it lasted. Yesterday, I installed FFOX 4, then the update. I installed Ad Block Plus and liked that ability. But, startup is atrociously slow. Thirty seconds to a MINUTE or longer to display the home page?
This morning, it got worse after I installed (maybe foolishly) URL fixer. It would just hang after rebooting ffox. Fortunately, my phone did not crash. Still, I'm starting to wonder whether URL Fixer had borked the ffox install. FFOX was hanging for longer than a minute, just showing the orange fox. My system RAM availability ballooned from 50MB or so to 120MB. Yet, when ffox ran correctly, the RAM consumed was over 40 mb, and eventually close to 60 MB, taking my system availability down to around 50 MB.
I'm tempted to reinstall it and re-update it and skip URL fixer, but I'm worried that it'll still take up to or more than 30 seconds to open up. The basic browser is MUCH faster to start up. Dolphin HD with 9 tabs open is zippier, although Dolphin doesn't yet (I have to see if this AM's update negates this sentence's comment) remember tabs on a proper close. A crash will trigger recovery of the tabs open at the point of crash.
I want to try it again, but I want ffox to use as little RAM as Dolphin does when it has 9 tabs open, and I want ffox to open FAST, not take 30 or so seconds to start.