The Care and Feeding of the Android GPU
bonch writes "Charles Ying argues that Android's UX architecture has serious technical issues because, unlike the iPhone and Windows 7, Android composites the interface in software to retain compatibility with lower-class devices. Additionally, Android runs Java bytecode during animation, and garbage collection blocks the drawing system. Google engineers dismiss the desire for hardware-accelerated compositing and cite more powerful hardware and an avoidance of temporary objects as a solution to the collection pauses, but Ying argues that will just lead to [a lower] average battery life compared to devices like the iPhone."
the interface never seems as polished without hardware acceleration, Just look at Mesa and a full linux desktop running ATI or Nvidia drivers with compiz.
Look at Samsung's Galaxy S browser. GPU accelerated and tile-based. I’m told it’s a result of Samsung’s PowerVR GPU optimizations.
Doesn't that require that the device have a PowerVR GPU on board? What about devices without PowerVR like the NexusOne, does it run on that?
When you optimize to GPUs, you have to optimize to all GPUs. I realize there are common instruction sets but the main selling point of Android is its versatility. If I start coding for only Snapdragon processors with PowerVR GPUs because it has a better UX, then it sort of destroys any benefit I get from Android and I might as well code for iOS because I know what that hardware will always be. A lot of the benefits of Android applications being Java byte code completely independent of the hardware are overlooked in this proposition.
The developers don't know what future devices are going to use for GPUs or their instruction sets. From one of the links Romain says:
New devices might allow us to overcome the past limitations that made GPU support a not-so-good solution.
Doesn't optimization for particular hardware exacerbate their issues with fragmentation?
Well, it's open source, there's always the smug answer that Charles Ying can go fork Android himself and add this and watch all the handset manufacturers flock to his side. If you think it's best, get a team together and do it.
From Ying's article:
Wake up, Android team. Windows Phone 7 just lapped you.
Can anyone tell me why that AnandTech article from March is evidence that Windows Phone 7 has lapped Android? And why it just happened?
My work here is dung.
So instead of supporting a wide range of products they should pull support cause in the future all those wasted cycles will lead to an average battery life? In the future...
Is there some reason people continue to think Java is a good idea in handhelds? It's almost a religion, and no amount of dissuading seems enough to change people's minds.
Dog is my co-pilot.
Waiting for hardware to improve in light of today's slow phone makers just puts things in their hands. Users are lots faster at switching back from an annoyingly slow phone than the company making it is to silently upgrade that product line with faster hardware.
Outside of academia, JS and Flash became alternatives over the hardware hungry Java Applet segment. Google must be the party best-aware of how fragmentation and lack of telco UPDATES put a hamper on the Android name. That they are stating they want the fragmented market to uniformly float up to levels where the worst phones are not unusably slow just shows that they are not evaluating the markets right. Netbooks have been out ~5 years, yet hardware never got past 1GB of RAM and speeds never got near the raw power to watch Youtube that low-end laptops have had for years.
Doesn't optimization for particular hardware exacerbate their issues with fragmentation?
Ssshhhh, fragmentation is a myth!
"I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)
There is this new thing called "conditional compilation" which allows one to include code that both optimizes for certain hardware and contains generic code that could work on all devices. I hear it's the new rage of how you make code work on multiple hardware and software platforms.
Can anyone tell me why that AnandTech article from March is evidence that Windows Phone 7 has lapped Android? And why it just happened?
He's talking about the fact that Windows Phone 7 has advanced GPU acceleration built in from the beginning in several facets of the environment. Android doesn't and it's a few years older.
It certainly hasn't lapped it in terms of sales or momentum, but it could. Android has both the advantage and the curse of being more open and versatile - WP7 has the possibility of a more restrained set of hardware differences and can build in more low-level functionality.
There is this new thing called "conditional compilation" which allows one to include code that both optimizes for certain hardware and contains generic code that could work on all devices. I hear it's the new rage of how you make code work on multiple hardware and software platforms.
Yeah and now you're talking about a massively different user experience on different devices ... that's really annoying to application developers.
One possible way to fix this, if it is indeed a problem, is to do exactly what Apple is doing. This short writeup describes it well (read the section titled "OpenCL Compiler"):
http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/OpenCL_MacProgGuide/OpenCLontheMacPlatform/OpenCLontheMacPlatform.html
Each graphics card is running a low level virtual machine (LLVM, also the name of the compiler used, noteable for this ability) which emits optimized instructions on the target card. A different backend may be required for each graphics card, but each generation is not so different than the last.
I watch youtube on my netbook just fine. It has 2GB of ram and an SSD. WTF are you on about?
...are more efficient batteries. Google could save a lot of headache by putting some of its billions in to rechargeable battery research.
He who knows best knows how little he knows. - Thomas Jefferson
Yeah and now you're talking about a massively different user experience on different devices ... that's really annoying to application developers.
So basically no different than the current situation?
I don't know enough about the Android graphics API, but if it's designed properly it should be possible for the client to always call the same function and the underlying implementation to select the code path most optimized for the platform. Mac OS X has one CoreGraphics API, and it either composites on the GPU or on the CPU depending on what's available. I don't see why Amdroiid can't do the same.
Don't blame me, I voted for Baltar.
There is this new thing called "conditional compilation" which allows one to include code that both optimizes for certain hardware and contains generic code that could work on all devices. I hear it's the new rage of how you make code work on multiple hardware and software platforms.
You mean like the rage of having your code get more and more complex every time a handset comes out?
"I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)
That's great for those who want it, but how about those of us who'd rather bang closer to the metal?
Belief is the currency of delusion.
My netbook may only have 1 GB of RAM, but I watch Youtube, Hulu and Netflix on it in standard definition, no real troubles?
... "I read part of it all the way through." -- Movie Mogul Sam Goldwyn (and some slashdot readers)
Surprisingly perceptive for a troll......
OS X uses llvm just-in-time compilation in the graphics stack. If the hardware supports it, it's sent to the GPU. Otherwise, it's done in software. Since android is based on dalvik, they shouldn't have a problem doing something similar. Sure, they need to support cheap pieces of shit, but that doesn't mean they can't support anything else.
Do you even lift?
These aren't the 'roids you're looking for.
You mean like the rage of having your code get more and more complex every time a handset comes out?
So basically the situation that already exists. All these new devices tend to need new drivers added to the kernel and they usually do some sort of tweaking to the kernel. Seriously, if they can't handle complexity then they shouldn't be the ones maintaining and developing an OS. Such work is just inherently complex.
I agree with you that the product cycle is longer in the mobile phone business.
If netbooks are still limited it's because intel has strict restrictions on devices using the atom. In order not to cannibalize its own market share on other markets.
But in the end, the phone maker policy of not upgrading embarked software benefits this approach because software will always have hardware synchronized with. I agrre it's a misery for the user, still hardcore projects enable power users to keep pace. And not that much people needs a phone optimized for "fast latest 3D games". Those people and the crazy geeks will always want to have bleeding edge and will buy. The other people like me will use their phone and its handy apps as long as it is working. By the way, that's how we should behave to save the planet.
Going along this line of reasoning is simliar to what microsoft does, once the basic foundation is mammoth size and wanting,
complain about everything else all the while expanding the mammoth to a full blown Sauropod.
Dual core + higher powered procs on a phone = bad idea, you probably need a personalized body electricty generator to keep it juiced.
I think at some point someone has to decide to support a few GPUs or the companies themselves provide their certified drivers for android.
Even now with the latest android phone the interface is still choppy compared to the silky smoothness of the iphone you can take it to a dual core but have feeling its going to be the same.
Its like comparing mesa to running compiz under proper ati/nvidia drivers everything just looks in place.
-S
Waiting for better hardware
That was the very purpose of inefficient Java.
(to sell Sun's 'better' hardware)
Smartphone and no GPU? That is not a smartphone in 2011.
You mean it's like a real, honest to goodness, computer operating system? Oh no! The horror! Guess you should stop making software for Windows, Linux, and OSX then, since the hardware can provided different capabilities for systems using the same operating system!
You don't need to optimize for all of them. Go ahead and pick some of the more popular ones that already exist and optimize for those. Manufacturers are still free to choose different hardware or write their own code, which they are perfectly free to do being that Android is open.
Having a few 'better' options isn't going to be worse than the lowest common denominator crap that's going on now.
why do you post at zero? why do you pretend to use your real name?
you're completely pathetic, feeb.
The article gets into how Silverlight uses the GPU to accelerate certain operations as he is referring too in his post.
I assume using "just" is a reference to the fact that it's not even 3 months old in terms of being on the open market.
OMG Android is making a play that's designed to let lower cost, highly capable devices subsist in the marketplace? How horrible is that?
I switched from Evil Major Network (TM) to Metro PCS a little over a year ago, and haven't regretted it for a SECOND. It is so nice, getting what you paid for, rather than wondering how much you'll be overcharged for what you aren't even sure you got... it's the ONLY way to survive teen children!
And even Metro PCS, the low price leader, offers a couple of Android phones that are highly capable and useful. For less than $300 I was able to upgrade my wife's shatty phone with a nice, capable Android phone with GPS, navigation, browser, email, games, full-screen youtube, Facebook, Marketplace et al (AKA "the works") and a good, full day of battery life. She LOVES the phone! In case you are wondering, it was the Samsung LG Optimus. And the network cost went from $40/month to (gasp!) $50...
Talk about having your cake and eating it too?
Say what you want, Android's strategy is working, as demonstrated by its continuing skyrocketing market share.
I have no problem with your religion until you decide it's reason to deprive others of the truth.
Somebody should really invent a programming interface for graphics. You could use hardware or software rendering for the same code, or generally a mixture of both, depending on the capabilities. It could be called "open graphics library" or something.
Escher was the first MC and Giger invented the HR department.
Google engineers dismiss the desire for hardware-accelerated compositing
It that one engineer or more than one? Because one can make a mistake, but more than one, that would be a fail! I don't care what hardware does, ASIC solution is always better than emulation. I have to agree with Charles Ying - "On mobile, power efficiency is king"
Man I hate Java programmers. They're always have to work around the limitations of that craptacular system and act like it's a good thing. No, no it's not. It's a broken, slow, poorly designed piece of crap.
Debian seems to handle it just fine and (based on gcc) they're compiling for 14 different platforms* and 3 different kernels (linux, hurd, freebsd)
Is it that difficult to setup a similar thing in the app store? "Oh it looks like you're running an ARMv5 and a PowerVR GPU. We'll give you this binary."
Or, you do what Apple has always done with Fat Binaries. 68k to PPC. PPC to PPC64. PPC* to i386. i386 to x86_64. You could have one single fat binary that supported ppc, ppc64, i386 and x86_64. And it "Just worked". They were literally checkboxes in XCode. How many GPU and CPU solutions are there for the Android? This isn't low level Assembly code, it's compiled Java.
*alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel powerpc s390 sh4 sparc sparc64
Let me tell you one thing about that: Java isn't the problem. In my definition of feeding the GPU: triangles/sec, fillrate and OpenGLES objects/sec, Java is just 10% behind a raw C benchmark like glbenchmark 1.1/2.0. They quoted 880kT/s, I managed 750kT/s in non native code. And to get that, you have to carefully feed the GPU with the right batch sizes, don't issue too many state changes, pack things interleaved in the video buffer, don't use dynamic point lights, etc etc. It isn't as bad as an NDS, but the Snapdragon GPU is quite hard to tame.
The problem with using the GPU is that every context switch requires a complete reinitialization of the GL context, even on a PC, alt tabbing into and from fullscreen games takes ages - it's fine when specific applications which requires the speed use it directly, but it's not when going from one activity to another gives you a loading screen.
Animation performance and touch responsiveness? Is that the best he can come up with for such a title? I have no idea what he's talking about, but scrolling the browser works just fine here on a not-so-recent HTC Desire. The only time things break down is when the garbage collector halts everything for a third of a second (see DDMS/logcat messages), and those pauses are reduced to sub 5ms in the new builds. That's tons more useful than rendering surfaces to quads and using OpenGL ES to draw them, and IMO, the Android team made the right decision.
Show me an issue of fragmentation. No, that one game everyone talks about doesn't count; it's not a result of OS fragmentation, but a result of some devices not meeting minimum hardware requirements.
My blog
It seems like something like Meego (Linux+GL+Qt) would be the best way to go, if you are not an Apple device.
I never understood why anyone would want to interpret byte-code on a battery powered device. Or give up control of garbage collection. Maybe the VM enforces things like local file system access, but a few lines in the kernel can enforce that too.
Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
Yes, a graphics API or HAL with drivers for each GPU is the only real way to achieve parity with other platforms. It makes sense to do that if Android wants to get accelerated graphics (which it should).
Symbian^3 also needs a GPU and has very good power management and doesn't support older hardware ... oh, but wait, this is Slashdot....Symbian bad and old fashioned and hopeless...Android good.....
This is all just my personal opinion.
Well, as expected, Android is targeted at average mass consumers, so average battery life is acceptable. What gives?
That depends on the optimization and how that chipset actually handles throwing stuff on the screen. 'Optimize' may not just mean "format the data this certain way and it'll fly through the processors more quickly", it could also mean "use more polygons and lower-res textures because the chipset is better at moving verts around than filling texels". It doesn't matter that it's not low-level if it affects how the whole engine works.
"I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)
Add to that, you really don't need to optimise the code that you use for compositing on the GPU. A low-end mobile GPU can render something on the order of three million textured triangles per second. A typical mobile UI has a few dozen UI elements, with one texture and two triangles (one square) each. Even really crappy code is not going to come close to taxing the GPU. That's why we do compositing on the GPU - because it can run in its lowest-clocked mode and still provide fast performance, which lets you use the CPU for something else (or down-clock it too and save battery life).
I am TheRaven on Soylent News
No, that one game everyone talks about doesn't count; it's not a result of OS fragmentation, but a result of some devices not meeting minimum hardware requirements.
What do you think fragmentation is?
What I find funny about this argument is that the same group of people claiming fragmentation will never be an issue is also the same group of people that claims that PC games aren't as good as they could be (graphically) because they cater to the lowest common denominator.
"I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)
and cite more powerful hardware and an avoidance of temporary objects as a solution to the collection pauses
LOL.
Java is pretty much only GC language I'm aware of where temp objects are passed to GC. Perl (and I'm sure myriad of other GC languages) at compile time takes note what objects are not used outside of the context and destroys them immediately. IIRC Java is the only language where they blankly send all stuff to GC, regardless. Obviously that that in long term hurts latencies: GC has to recycle them eventually and if there is no spare CPU/core, then it has to take the time from other threads.
All hope abandon ye who enter here.
Have we not learned anything from the desktop ? In 2011, as an app developer, you shouldn't be optimizing for any specific GPU. The platform's graphics API should be optimizing for whatever hardware it supports. New device ? New drivers! If Samsung's PowerVR implementation makes such a big difference, then we will see other hardware designs adopt the PowerVR. You don't need to reinvent the wheel every single time. Media-minded people will favour devices with faster GPUs, just like we do with PCs.
I'm only tangentially exposed to Android, but what I've seen so far is an already inconsistent hardware panorama. It seems no two manufacturers support the same version of Android, which leads to situations like today where the Samsung Galaxy S is leaps and bounds above all others. Adding proper GPU support will only widen that gap. As consumers, we benefit from developments that embarass the shitty manufacturers and goad them into releasing better hardware for the money.
And on a more lateral-thinking level, if you're a fan of Android, you want them to pull together and release something that can adequately compete with iOS and Windows Phone 7. Allowing mediocre hardware manufacturers to completely undermine the OS design is not the way to beat Apple.
-Billco, Fnarg.com
no android based system will ever, ever be as great as the iPhone. clearly it is foolish to even dream of such a thing.
what is becoming more and more obvious with each passing month is that nobody cares. Android is outselling everything else by an ever increasing margin.
-Lod
It sounds like the Google engineer is taking the sane approach. He is trying stuff and testing the speed. Sounds like he'd try GPU if it helped.
massively different user experience on different devices
consider: different user experience on massively different devices
Why should it be otherwise? Should a quad-core i7 SLI provide exactly the same 'user experience' as an Atom netbook? Obviously not. It is not reasonable to expect the same results from increasingly diverse hardware. Android will be found on the lowest end freebee 'smart' phone China can make, while also appearing on the most outrageous hardware that doesn't present an immediate fire hazard. Where, exactly, was it written that the limits of one must apply to the other?
This problem has been solved over and over again. An architecture must exist that provides fall-back software implementations of hardware accelerated functions. When some app performs poorly due to inadequate hardware the user may find some other preoccupation or upgrade to a sufficient device.
What is the problem? At the moment it appears to be Google's obstinacy. This is a losing battle for them; they're creating a differentiating point among the manufacturers because the manufacturers can alter Android, including accelerating stuff with hardware. Marketing will then make claims about how xyz's Android is better than the other Androids because of xyz's special sauce (that may or may not port easily to some other collection of chips.) If the manufacturers don't the users will.
Lets hope Google wises up and deals with the issue properly.
Lurking at the bottom of the gravity well, getting old
Nice try. You slipped in the phrase "OS fragmentation" when what people refer to is hardware fragmentation, which is what the last part of your statement is describing.
I find it funny that the article mentions Galaxy S, and the browser from the recent JPU/X/Y firmware. I've used the JPU/Y browser on a day to day basis, and it's horrible. Pinch-to-zoom is very smooth, and the tiling isn't really an issue, but the page sometimes gets very distorted when panning. I haven't noticed any improvements when scrolling, it's choppy as it ever was. The JPU/Y browser has made me even consider changing to Opera/Firefox/Miren or something else as my day to day browser.
Sent from my Galaxy S i9000 running XXJPY and voodoo.
You mean desktop computers, those complicated machines that mobile devices and tablets are replacing? People are trying to get away from managing device drivers and hardware compatibility bugs.
I never understood why anyone would want to interpret byte-code on a battery powered device.
What processor architecture should android have chosen to be stuck with? Bytecode allows you to change in the future without recompiling your apps, and the threat of change allows phone makers to push chip suppliers on price and power.
why can't you understand the meaning of the word pretend?
cower behind your chosen pseudonym.
When you optimize to GPUs, you have to optimize to all GPUs. I realize there are common instruction sets but the main selling point of Android is its versatility.
Yes
That's why Apple uses LLVM to compile from 'generic GPU code' to 'GPU code optimized to Blah', that's on Mac OS and maybe on the iPhone as well
http://llvm.org/Users.html
how long until
Like the battle for the desktop, the battle for the portable will be won not by the platform that is the most sophisticated, but by the company that puts the most product in the hands of the most people. I don't see either Microsoft or Apple relinquishing enough control to allow either of their platforms to kill off Android at this point, but keep on dreaming, kids!
Try running Skype videoconferencing on you netbook. On an MSI Wind, Skype complains the CPU is too wimpy. Low resolution YouTube is hardly a good benchmark, it runs fine even on a Android G1. Compressed video decoding is much less CPU-intensive than compressed video encoding.
I've abandoned my search for truth; now I'm just looking for some useful delusions.
Actually Android does not use Java bytecode at all.
Java is the language used to program for Android, but the code compiles into Dalvik bytecode. There is no J2ME support at all, or any Java virtual machine on the device.
http://en.wikipedia.org/wiki/Android_(operating_system)#Features
Look at Java Support.
It's easier to fight for one's principles than to live up to them.
Bzzzt. Android doesn't run Java, it runs Dalvik. For developer convenience, Google provides a compiler accepting Java source code, but producing Dalvik bytecode. Google also forked Apache harmony so a bunch of the well-known-to-Java-developer libraries are available under Dalvik. Google purposely avoided everything about Java except for its syntax and open libraries. Oracle sued Google anyway, a matter still before the courts.
Speaking as a former Googler, the smart people spin is somewhat overrated. Arrogant people is closer to the truth, and "smart" tends to mean "good at avoiding work".
Have you got your LWN subscription yet?
Great, so you want another pile of suboptimal backward compatibility to win rather than a well engineered solution?
If you want your software to run on really cheap and nasty hardware you have to make some pretty unforgivable software compromises. At least Microsoft, Apple and others have standards.
Will win what? What constitutes victory? Does "winning" mean that something else "loses"? What does "lose" mean in this context? Apple makes more money off of their minority share of cell phone sales than any other company. Their share of the total profits on PC sales is over twice their market share. Is that winning or losing? Microsoft makes even more money (for now) with higher margins and they haven't done much in terms of new products in a decade. Are they winners or losers? The largest device manufacturers whether PC or phone have minuscule profit margins per device. They have to sell millions of these things to stay alive. Are they winners or losers? If Android ends up on 60% of all smart devices and the vendors who make and sell them account for only 30% or less of the profits, are they winners or losers?
Very often, people confuse simple with simplistic. The nuance is lost on most. - Clement Mok
So some random person on the Internet who doesn't appear to have much to do with Android points out a couple of not-really-problems, and suddenly everyone is supposed to drop everything and fix them?
If you search for "charles ying android" every link comes back with a reference to this single blog post. I could take him seriously if I'd ever heard of him in the context of Android development, or even at all...
Why can't you read? He asked why you pretend to use your real name.
You post at zero because you're a troll living in your mother's basement.
You're an idiot.
I never understood why anyone would want to interpret byte-code on a battery powered device.
Allowing hardware diversity, while still providing a single binary (VM) interface to apps, might be a good reason.
People are trying to get away from managing device drivers and hardware compatibility bugs.
Maybe I'm just weird, but that's not why my desktop and laptop computers have been getting lonely lately. It's because my mobile device is, you know, mobile.
MCSE? No, sir...I don't do Windows. Yes, I am an idealist. What's your point?
Hmm, let me check, nope no one mentioned that, so I fail to see why it matters. If I want to use skype I do it from the nice beefy HTPC and use the nice camera there too.
No. You only take the complexity hit on the second device.
The rest rely on the well known and well used methodology for dealing with diverse hardware you've already constructed.
It's like the 80s and 90s never happened or some such.
"mobile" doesn't change any of the problems.
A Pirate and a Puritan look the same on a balance sheet.
I really don't understand statements like this. It's obvious from statements like this that Charles Ying has a personal vendetta against the Android platform. By implementing the "average" weasel word (most people thinking average = bad), he is really trying to taint the whole platform. When I read this statement, my pea brain parses it similar to: "An Android phone has battery life +/- 5% within the working range of a comparable iPhone, given similar tasks". Both statements basically say the same thing, one with weasel words, the other without.
Yes, there are problems with the Android platform, however such is true with all hardware / software platforms.
The Apple fanboy needs to repeat the propaganda that the new messiah (iphone) is some how different from the old messiah (MacOS).
A Pirate and a Puritan look the same on a balance sheet.
Speaking as a former Googler, the smart people spin is somewhat overrated.
And you say that as an unbiased observer with no axe to grind, right? :-)
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
If success of the sub-optimal solution prevents the ascendancy of a monopoly even worse than Microsoft's then HELL YES.
Of course pointing to either Apple or Microsoft as the "savior" here is a fallacy. Each has it's own problems, even at the "engineering" level.
A Pirate and a Puritan look the same on a balance sheet.
"mobile" doesn't change any of the problems.
No, but 3D does. But I guess the people following gaming aren't the same people that follow 3D development on handheld devices.
"I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)
And you say that as an unbiased observer with no axe to grind, right? :-)
Right. I still own all my Google shares. However I am now properly disillusioned about a number of Google myths, but don't trust me. Ask any Googler, former or otherwise. In the latter case, make sure to do it out of earshot of other Googlers.
There are smart people at Google, and if they are really smart they learn early to keep their heads down. This seems to be the main sequence for large tech companies. Microsoft is far advanced on that path and Google seems more than a little determined to follow. The stack ranking system is nearly a carbon copy of Microsoft's, which in turn was copied from GE, and look how well that worked out. The result is inevitable degradation of the engineering culture. Now, warning about the negative consequences is not the same as axe grinding, quite the opposite.
Have you got your LWN subscription yet?
On Mac, it's called CoreGraphics.
On Linux, it's called QPainter or Cairo.
On Windows, there are so many APIs that I don't feel like naming them all.
Android's graphics stack with the policy "let's do everything in software" is possibly one of the worst features of the platform. Most smartphones are capable of at least OpenGL ES 1.1, if not 2.0... and if you don't care about 2.0's features, there's only one API your compositor needs to implement to support ALL of the mobile GPU's out there. How's that for fragmentation? Of course, on dumb framebuffer phones, you'd probably want to implement a software fallback, as most software OpenGL ES implementations would probably be slower.
So Android needs two compositing backends then... how sad for them. Seriously, the fact that I need a 1.2ghz Cortex A9 to smoothly scroll though a list of icons is just pathetic. I mean, a NES can do that at 60fps... the magic of hardware acceleration.
No matter what, there will be people from both sides that come up with some reason why their product is better. It's business, and nothing more. They really don't care about if it is the truth or not, nor do they really care about the customer. Their intent is to get a customer to buy a product, no matter what they have to say to do so.
Apple never lowers the prices on its products, but instead comes out with 'new' versions of the same product that are nothing more than a software upgrade. How many people reading this post have purchased more than one iPhone, which is in my opinion one of the biggest ripoffs ever? You do this because they convince you that some 'feature' can only be added to a new phone, which 99% of the time is utter crap. The same with other companies.
It's all business in the end, just remember that.
Thanks. I just found 2GB netbooks
do exist. What you own is as good as experimental until it is easier to find on shelves; reminds me of the topic of the Google Nexus. It was just as hard to locate out in the wild in users' hands.
Meanwhile, here is the projected price of your device in 2009 ($350) and here is how pricewise ($728) it is just it is piled together with the laptop category.
How about ARMv5TE and ARMv7-A?
The 1GB barrier is an Intel/Microsoft business decision requirement to allow selling of WinXP/Win7Starter at a reduced cost. It was never a technical issue.
I don't have an android phone so perhaps someone can inform me if I'm in the wrong here... but I would assume that the android store has some sort of filtration system that doesn't show games which require a touch screen to users of phones without touch screens. Games that require serious power would similarly be limited from lower end phones. I can't imagine all of the apps currently in the Apple app store work on the original iPod touch/iPhone. I can see how it might be disappointing for someone with a cheap/old phone not to be able to use the new whizbang app someone else has, but I would also assume there'd be some expectation of not being able to do "high-end" stuff on your "low-end" phone. *shrug*
Check out my lame java blog at www.javachopshop.com
Look at WDDM 1.0 in Vista and to a lesser degree WDDM 1.1 in Win7. It fucked up 2D big time. I didn't see anyone warn me about the design flaw that WDDM was, either.
[appleinsider.com]
Yeah, I'm sure we'll find a nice, unbiased presentation of the "issue" in there.
That Apple seems to honestly believe Android's supposed "fragmentation" is a disadvantage versus their complete integration shows a remarkable inability to learn from the mistakes they made that cost them the desktop. Watching Android march past iOS is like watching the 80s and early 90s play out all over again.
Java2D? :-)
But how is that any different than the massively different user experience between the iPad and a Touch and an iPhone 4? Rovio's popular Angry Birds game has more choppy animations on the iPad than on some of the unsupported Android devices, btw.
On Mac, it's called CoreGraphics. On Linux, it's called QPainter or Cairo. On Windows, there are so many APIs that I don't feel like naming them all.
lol...open graphics library
Winning in this case means "defining the de-facto standard in the industry". Apple and Microsoft will of course remain profitable, just as mainframes for IBM have remained profitable, but none the less they have "lost" in that they do not really matter outside of their established niches.
Why those over the stock browser? I haven't really tried any of the others, never had reason to. (Although I played with Dolphin because it had pinch/zoom earlier). I have an N1, btw.
-]Phreak Out[-
Nice try. You slipped in the phrase "OS fragmentation" when what people refer to is hardware fragmentation, which is what the last part of your statement is describing.
No, they mean both. Also, carrier fragmentation and app store fragmentation.
I don't see how you can completely dismiss OS fragmentation, when most handset makers (and carriers) make rather notable modifications to the versions of Android they ship, and often leave their users stuck with obsolete versions.
The rage happens when you install HelloWorld and it fills all available storage.
Qt is compile anywhere, run anywhere. Sure, there is some management of binaries (each platform gets its own) but build scripts take care of this. Scripts then deal with selecting the right binary.
Imagine an app store where you upload your code, it compiles for each platform and it installs the right version to the device automatically. Want AgryBirds for Android? No problem. iOS? No problem. Desktop, no Problem!
One app store to rule them all.
Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
Why own firearms? What are you afraid of? Who are you cowering from? Your mum's face?
LOL. You sound like the "IBM guy" in the 80's arguing that the IBM PC-AT will crush the clones due to its obvious technical superiority. Compaq *destroyed* IBM in the PC market, because they realized that great technology can be defeated with even greater business model. In other words, while technical flaws can be fixed, fundamentally self-limiting business models can't. This is not to say that Apple and Microsoft will not continue to be profitable, but that Android will eat their lunch for the same kinds of reasons that other flawed technologies won against their (temporarily) superior competition.
There was such a thing as "IBM compatible" in the '80s and '90s. There no such hardware reference for Android. Apple is correcting many of the mistakes made during that time frame, while Google is making entirely new ones.
In fact, it's extremely difficult to find all that many ways that this *is* like that time frame. The only thing that is similar is it's Apple's platform vs a platform shared among many manufacturers. In almost every other way, there are notable differences.
For example, things like price and features are not downsides for Apple. In fact, Apple quite often is the winner in these measures. And cell carriers distort the market. Watch what happens once Verizon carries the iPhone. I really doubt most Android buyers actually specifically want Android. It's just the nicest phone for the cheapest price on their carrier of choice with the least offensive data plan.
Or put another way, do you think "Android phone" or "iPhone" had the higher place on people's Christmas lists this year?
Guess you should stop making software for Windows, Linux, and OSX then, since the hardware can provided different capabilities for systems using the same operating system!
Yeah, instead you can use the phrase 'lowest common denominator' over and over again.
"I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)
Additionally, Android runs Java bytecode during animation
Except in the real world, where Android uses a non-Java VM with its own bytecode, and doesn't run Java bytecode at all.
There's a myth going around that battery life is strongly affected by how efficient your code is. On most phone, it's simply not true. By far the biggest power drains are the screen and the radios (cellular, wifi, bluetooth). On Android, there's even a handy battery monitor built in that you can use to confirm this (Settings->About phone->Battery use). I can spend half an hour playing a high end, graphics intensive game (Hero of Sparta) on my Nexus One, and when I then check the battery use, I find that even while I was playing the screen and the cellular radio standby were still the dominant uses of power.
"I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
massively different user experience on different devices
consider: different user experience on massively different devices
Why should it be otherwise? Should a quad-core i7 SLI provide exactly the same 'user experience' as an Atom netbook? Obviously not.
All you've done here is just restated the fact that Android is fragmented.
It is not reasonable to expect the same results from increasingly diverse hardware. Android will be found on the lowest end freebee 'smart' phone China can make, while also appearing on the most outrageous hardware that doesn't present an immediate fire hazard. Where, exactly, was it written that the limits of one must apply to the other?
It's written into the license and business model Google chose for Android. Sure, it's not a universal rule, but it is a good rule of thumb. Just like your Atom vs i7 example, most Windows apps aren't written to take advantage of multiple cores, even those that could really benefit from it. So the i7 gets stuck running software designed for the Atom and its single and dual-core ilk. It's the nature of a fragmented market.
This problem has been solved over and over again. An architecture must exist that provides fall-back software implementations of hardware accelerated functions. When some app performs poorly due to inadequate hardware the user may find some other preoccupation or upgrade to a sufficient device.
"Find some other preoccupation" is not a consumer-friendly answer. The alternative you mention is not as simple to do in a market dominated by multi-year contracts and relatively complex upgrade procedures. It's also very difficult to know which device to even upgrade to! It's not like PCs where you can say, "well, this game needs a 5770 and a Core i5 quad" and you can just spec out an upgrade to give you that. It's more like, "this app is slow. which phone can run it better?", which will leave most consumers confounded, and they will be forced to opt for the "find some other preoccupation" route, which is going to really sour their experience.
What is the problem? At the moment it appears to be Google's obstinacy. This is a losing battle for them; they're creating a differentiating point among the manufacturers because the manufacturers can alter Android, including accelerating stuff with hardware. Marketing will then make claims about how xyz's Android is better than the other Androids because of xyz's special sauce (that may or may not port easily to some other collection of chips.) If the manufacturers don't the users will.
How exactly do you expect this to work out in the real consumer world? How are people going to know which Android phone is faster/better than the others? It's like that checkout lane story from a couple weeks ago. No matter what you choose, you likely didn't choose the best one. Normal people aren't going to put in the effort to keep up with the latest Android news.
Lets hope Google wises up and deals with the issue properly.
They won't. It's essentially impossible to properly deal with this issue, because it's inherent with the very thing that has been so valuable to Android. The openness that allowed Android to spread across so many handset makers has to deal with the effects of being available from so many handset makers. You can't have your cake and eat it too.
doesn't show games which require a touch screen to users of phones without touch screens
Luckily, a touch screen is a requirement for Android (although no specifying the quality of the touchscreen), so that's not a problem. And yes, the Market does have a filter in place to only show apps that can run on your phone. Not sure about performance differences, but certainly it filters for hardware features (e.g, cameras, screen resolutions) and OS versions...
Do you also understand the meaning of the phrase "suck my asshole"? Because that's what you're doing. You're sucking my asshole. And enjoying it. fag.
Bloody hell that's difficult to read. Since you're obviously new to the internet you should be aware that using caps generally denotes 'shouting', try reading your post with that in mind and see how ridiculous it sounds.
Ummm, that would be an example of hardware fragmentation, there.
Heh. Nice to hear, sounds like MS.
I'm running Dolphin HD mostly for better tabbing support, and the ability to download any file (including those I don't have an app for). I know the latter is a feature of Astro File Manager, but I use Root Explorer for my File Manager, and don't really want Astro.
Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
It seems like something like Meego (Linux+GL+Qt) would be the best way to go
I would be a lot more excited about Meego if it didn't use rpm for package management. While there is not much difference between rpm and deb capabilities technically, deb repositories tend to be a lot better put together and maintained. I use both on a regular basis.
Have you got your LWN subscription yet?
Ah, you do not know who you are cowering from. Must be lonely, being afraid of everyone.
You two are the same person, aren't you? What is it called when you troll yourself?
I think your joke went over most people's heads (your post is modded Insightful instead of Funny). For those who are wondering, the answer is OpenGL.
Better throw in some XML for good measure...
Couple problems here. First, we're talking about mobile devices here. Yes, you can get a 32GB microSD for your phone, but it's expensive, and most people aren't going to have one yet. Fat binaries would take much more space on the memory card, and more bandwidth to download (watch those caps!), which makes it infeasible. As to having the app store give you a binary for a specific hardware setup, that would be asking thousands of tiny, independent app developers to try to maintain and compile their code for that same array of architectures, which would likely be sufficiently problematic that many of them would simply stop developing, or would only target their preferred architectures, further fragmenting the app market.
There is absolutely a hardware reference for Android. It requires a CPU based on the ARM11 or newer architecture, at least 256MB of RAM, at least so much (not sure on exact numbers, "enough to fit Android + system Apps") flash storage, and a touchscreen. That's the same as saying "IBM compatible," which really just meant "80286 or better CPU, enough RAM to run DOS, a screen, and a keyboard." The inability to run Need for Speed: Shift or whatever on a low-end Android device does not "fragmentation" make. There were plenty of computers that were fully "IBM compatible" in the early 90s that couldn't run DOOM.
It's the EXACT same situation. Apple releases one line of products that is locked down to their OS, expensive, and internally inferior to the like-priced competition. The competition - be it Microsoft then or Google now - licenses their operating system for use on a slew of competing products covering all ranges of performance, at a lower price.
Mark my words: in a decade, most people won't even remember Apple was ever a major player in the smartphone market. They'll be forced to re-image themselves as a "boutique" product for idiots who value form over function and cost-effectiveness, just like their PCs.
Or to use your example: how many people got Macs for Christmas in the 80s? How about now?
iPhone and Windows 7 both have a GPU as standard. Android is the only platform where the GPU is optional. Google created the fragmentation by leaving the minimum hardware requirements lower. On the upside, some Android devices will be cheaper. On the downside the OS is crappier because it has to cater for lower spec. devices.
IMHO, sarcasm is insightful, rather than funny.
Furthermore, moderation can be used to augment the message, instead of simply commenting on the quality of the message. For example, a post saying "I just shat myself" could be modded informative. This might explain why I am often moderated insightful when meaning to be funny, and vice versa.
Escher was the first MC and Giger invented the HR department.
"Bloody hell that's difficult to read. Since you're obviously new to the internet you should be aware that using caps generally denotes 'shouting', try reading your post with that in mind and see how ridiculous it sounds." - by Anonymous Coward on Tuesday January 04, @06:51PM (#34760198)
First, see my subject-line above... & secondly? Well, if you don't like it?? Don't read it!
APK
P.S.=> Pretty simple (& as far as 'being new to the internet', please... lol, I was probably online when you were in diapers, or before you were even conceived... apk
There is absolutely a hardware reference for Android. It requires a CPU based on the ARM11 or newer architecture, at least 256MB of RAM, at least so much (not sure on exact numbers, "enough to fit Android + system Apps") flash storage, and a touchscreen. That's the same as saying "IBM compatible,"
No, it's not.
which really just meant "80286 or better CPU, enough RAM to run DOS, a screen, and a keyboard."
No it wasn't. IBM compatible defines a lot of things, including BIOS and various busses.
With things like a smartphones, there are far too many variables for it to be like "IBM compatible".
The inability to run Need for Speed: Shift or whatever on a low-end Android device does not "fragmentation" make. There were plenty of computers that were fully "IBM compatible" in the early 90s that couldn't run DOOM.
And if your CPU wasn't a 386, or a 486 DX2 50 (for optimum performance), you knew you couldn't run DOOM. With a smartphone, the user doesn't know which chips will run an app well or not. There's no proper frame of reference.
So, yeah, simply not being able to run some game on slower phones "does not 'fragmentation' make", that's just the tip of the iceberg.
It's the EXACT same situation. Apple releases one line of products that is locked down to their OS, expensive, and internally inferior to the like-priced competition.
That's a load of bullshit. When I looked into this, I was shocked that many Android phones cost more than the iPhone, yet have lesser features, including having abysmally small flash memory.
Mark my words: in a decade, most people won't even remember Apple was ever a major player in the smartphone market.
HAHAHA. You should have started your post off with this. It's a real gem.
They'll be forced to re-image themselves as a "boutique" product for idiots who value form over function and cost-effectiveness, just like their PCs.
No, only blindered geeks image Apple as a "boutique" product maker. Form is inextricably tied to function. Macs are very cost-effective. They just don't have a low end (which consumers would like) and they don't have DIY kits (like the geeks like). But when you go into the price range where Macs are, you tend to find nothing but inferior PCs at usually superior prices.
Or to use your example: how many people got Macs for Christmas in the 80s? How about now?
Significantly more got them now than in the '80s. I'm not sure what your point is.
It's also very difficult to know which device to even upgrade to! It's not like PCs where you can say, "well, this game needs a 5770 and a Core i5 quad" and you can just spec out an upgrade to give you that. It's more like, "this app is slow. which phone can run it better?", which will leave most consumers confounded, and they will be forced to opt for the "find some other preoccupation" route, which is going to really sour their experience.
Do you think consumers in the 80s were any smarter than the modern day counterparts? How do you think consumers knew which IBM clone had what specs to run which game? They went to a store and asked some guy there "will this run such and such?" and found a computer that fits their needs. The same thing can happen with phones. The consumer walks into the store for their upgrade and says "I have such and such slow phone. I need a phone that is faster." and the clerk, just like in the 80s, points to the various phones and says which ones are faster or not.
It's the exact same situation.
If only Android could be rewritten in Javascript..
Better throw in some XML for good measure...
Good idea! I propose we call this monstrosity WebOS.
It's yet another blog post from an iOS user about how terrible android is, meanwhile millions of android users are wondering what he is talking about.
The stack ranking system is nearly a carbon copy of Microsoft's
The promotion systems are nothing like each other between those two companies (I've worked at both). The (optional) peer stack ranking at Google is a small part of the peer-driven review system. Microsoft (at least when I was there) had the traditional manager-driven reviews and ranking. It is true that those very different sources of data led to an overall ranking at both companies, but I don't see how else you'd apply a threshold consistently. Unlike most tech companies, Google has no fixed maximum of people that can be promoted or given raises, just guidelines on what it takes to meet the threshold.
The result is inevitable degradation of the engineering culture.
Google has a near-weekly meeting where you can question anyone up to the CEO, and a culture that says that just about any topical question is fair game. This is an important check on culture degradation, and I've certainly not seen anything like it at another company with over a thousand employees.
Google certainly has its share of issues with bad hires that don't get along well, or projects and offices that get overrun with people who bring traditional IT-company culture with them from their former workplaces. Perhaps you were stuck in such a situation and I apologize. However the difference between Google and Microsoft (for me at least) is still night and day.
1.) Is your "critique" on topic? No.
2.) Is there an english grammar/writing style section of this forums?? No.
3.) Are you the "master of 'postology'" online??? No.
---
"3 strikes you're out!"
APK
P.S.=>
"From the person who makes baseless assumptions about people he/she does not know." - by Anonymous Coward on Tuesday January 04, @10:05PM (#34761760)
I know you well enough to know you are off topic, & attempting to "preach" to me, on how to write online... this isn't english class, & this isn't a paper for a grade in academia, nor is it a legal correspondence... so, there you are!
Additionally: I am 46 yrs. of age, & the first time I was online on the internet (before the web) frequently was in the early - to - mid 1980's during my 1st degree (iirc, it was 1985 in fact in the computer labs doing ftp transfers + telnet work, & later I was doing GOPHER in the early 1990's before the web - then, finally, once DOS 3.3-6.22 came along, it was online doing BBS systems circa 1992-1994, then 1994 onwards, to the present day on the "web")...
Were you even ALIVE then? apk
Ahem...
Add to that this... Most SoC's run a fairly narrow and slow memory bus. Also, GPU's tend to be WAY slower than CPUs...
Fancy racing a 4 * 150Mhz pipe GPU against a 1 Ghz, superscalar CPU with 64/128 bit SIMD extensions?
Who will win?
Answer... the memory bus. You can TRY and get the CPU and GPU to work together but all that will happen is that the memory bus will get swamped and everything slows down.
GPUs can render polys with straight edges. UIs frequently want curved, rounded objects with complex gradients and complex blend modes not supported by GPUs.
TBH the article is nonsense. Android composites using OpenGL. Individual applications render with SKIA for 2D. The SKIA API is deliberately immediate mode to reduce latency (GPU's do not multitask and have rubbish MMUs). All applications are back buffered so they cache bitmaps pretty well. Bitmap copying is minimal.
Maybe a scene graph would help - but you'd increase latency greatly and (if GPU accelerated) you'd make the GPU task switch - not quick on many (most) GPUs.
Also - Poly throughput isn't the problem - fill rate is... (see Memory Bus above).
Burnttoys.
Time flies like an arrow. Fruit flies like a banana.
When you optimize to GPUs, you have to optimize to all GPUs. I realize there are common instruction sets but the main selling point of Android is its versatility. If I start coding for only Snapdragon processors with PowerVR GPUs because it has a better UX [..]
OpenGL ES 2 == OpenGL ES 2. Just write one compositor that uses it, and one that doesn't. Problem solved. The iPhone 3G and earlier didn't have OpenGL ES 2 either, but that didn't stop Apple from utilizing it for the UX on the 3GS and upwards.
No, but then vendors have to compile for and test on 14 different platforms and 3 different kernels. There are definitely diminishing returns there, and the 90% of the configurations with 10% of the users will be left with untested and potentially buggy. "Normal people" want Android to be Android and choose a device based on the sleekness of its ads and cuteness of its logo, rather than based on chipset model numbers.
We'll probably end up in a Wintel type scenario, but it's a noble effort even if it's doomed.
Lack of control and all kinds of unfixable problems is what you get when you make wrong technical decisions. Why has Java raised to the level of popularity it enjoys today? Because it's convenient for idiots and managers alike. Ever heard about a C program pausing to garbage-collect? Ever saw your Spectrum stagger in the middle of anything? Your 1984 Macintosh? Your SNES? Though so.
Now keep on making enjoying computers more and more difficult just because the average Joe Programmer has bills to pay and the corporations and the general public don't give a crap until it's late and then... oh look! new shiny thing!! wants!!
I never understood why would one even need VM on device such as smarthphone. Whe executing code on some imaginary 16 or 32-bit CPU when you clearly have very solid real one - ARM ?
ARM is in practically all devices and nothing indicates that this is going to change any day soon.
So, why complicate things with some modified Java engines and as a collateral damage getting sued by the Oracle ?
I would gravitate toward lean&mean clean&simple solutions - for example C ( with an assembly as an option for time critical bit or two) within simple, preferably Linux-based environment.
Any basic 3D engine does this: you get to customize many aspects and constants to optimize rendering. How does optimizing for the GPU differs from this? The app store could support this, like Debian does.
So lonely. So sad.
Actually, make it one texture and 18 triangles. Edges aren't scaled the same way as centers.
Do it all in html5/js.
Liberty freedom are no1, not dicks in suits.
Which is it dude, LG and Samsung?
LG have some good low end capable devices with crap screens (eg GT540)
Theres no such thing as a Samsung LG Optimus, its only LG Optimus by LG ok, just LG.
Liberty freedom are no1, not dicks in suits.
Unfortunately, we don't have the technology yet.
It would need programming tools that doesn't exist yet, a shitload of money a thousands of developers.
The closest thing there is OpenGL
It's also very difficult to know which device to even upgrade to! It's not like PCs where you can say, "well, this game needs a 5770 and a Core i5 quad" and you can just spec out an upgrade to give you that. It's more like, "this app is slow. which phone can run it better?", which will leave most consumers confounded, and they will be forced to opt for the "find some other preoccupation" route, which is going to really sour their experience.
Do you think consumers in the 80s were any smarter than the modern day counterparts?
Absolutely. Specifically, consumers who bought computers in the '80s and early '90s. Because computers were still relatively rare back then, so it was a self-selected geek subset that bought computers.
How do you think consumers knew which IBM clone had what specs to run which game? They went to a store and asked some guy there "will this run such and such?" and found a computer that fits their needs.
They looked at the box. Back then, everyone knew what CPU they had, which was the only thing that really mattered for Doom.
The same thing can happen with phones. The consumer walks into the store for their upgrade and says "I have such and such slow phone. I need a phone that is faster." and the clerk, just like in the 80s, points to the various phones and says which ones are faster or not.
It's the exact same situation.
It's not. Because it's not simply a matter of a choosing a phone with a faster CPU. Now it's a many-dimensional feature matrix. It's far, far more complex. Especially given how hidden the internal specs are, and the fact that things like responsiveness of the touch display and upgradeability are not even discernible from the specs, and other things are orthogonal to performance, like keyboard style, size, camera, etc.
And it's not like people are going to walk into the store knowing ahead of time which apps they will end up wanting to run, and it's not feasible to upgrade your phone just to play Angry Birds today, then again for Epic Citadel tomorrow.
Also, back then, the computer salesman could state objectively that a given PC was superior or not than some other. This is almost still true today, except that it's not always clear between things like AMD or Intel, ATI vs Nvidia, and even whether quad core but slower clock is better than faster clock, but dual core, because of variability in usage patterns.
Anyway, the point being, the consumer has no way to know which phone is the right one to pick.
The silly thing here is Android proponents acting like fragmentation isn't an issue. It undeniably is. With the iPhone, the matrix is essentially either current or previous gen, different flash storage capacities, and sometimes color. With the iPhone, you know that the current gen will run *all* apps on the App Store at the best performance.
This is an inevitable side-effect of Android's key strength. You can't have the one without the other. And for the iPhone, this is why the single source is such a key benefit.
If you want choice, you *must* give up usability and overall user experience. But you do get choice. If you favor usability and user experience, you give up choice. It's no surprise that a lot of geeks are fine with the downsides of choice, and prefer the benefits choice has to offer. And it's no surprise that the average consumer would rather give up choice for a better experience.
What is surprising, however, is the legions of geeks who can't seem to grasp this.
I have a Galaxy S and the browser is the stock Android one. I even did an MD5 comparison of the binary (my phone is rooted) with a vanilla ROM to confirm. If there is any optimisation it must be at the driver level.
The biggest improvement to performance I have ever seen for Android is the One Click Lag Fix you can download from the Market (needs root). It creates a new EXT2 formatted disk image and copies all your apps and their core data to it. Apparently the next revision of Android will have a better filesystem anyway but OCLF alone makes things much snappier on Froyo. That suggests that the bottleneck isn't the GPU or CPU most of the time, it is the speed of flash memory and by extension the amount of available RAM (since more RAM = more caching and less flushing.)
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
The stack ranking system is nearly a carbon copy of Microsoft's
The promotion systems are nothing like each other between those two companies (I've worked at both). The (optional) peer stack ranking at Google is a small part of the peer-driven review system. Microsoft (at least when I was there) had the traditional manager-driven reviews and ranking. It is true that those very different sources of data led to an overall ranking at both companies, but I don't see how else you'd apply a threshold consistently.
Google talks a great peer review system but does not walk a great peer review system. Peer review, whether positive and negative, can be and is routinely ignored by managers. There are no checks and balances, ask around.
Unlike most tech companies, Google has no fixed maximum of people that can be promoted or given raises, just guidelines on what it takes to meet the threshold.
And "exceeds" are only given out to friends, and except for the lowest ranked employees, promotions likewise. There are exceptions of course, but the rule is pretty much the same as Microsoft, just not quite as far advanced down the GE path.
The result is inevitable degradation of the engineering culture.
Google has a near-weekly meeting where you can question anyone up to the CEO, and a culture that says that just about any topical question is fair game. This is an important check on culture degradation, and I've certainly not seen anything like it at another company with over a thousand employees.
This is nice its true, but you also better take care to softball your questions. "Larry I heard you can do one armed pushups, can I see you do it?" Avoid "is it true you expect new hires to accept below market compensation for the privilege of working at the world's most awesome company?"
Google certainly has its share of issues with bad hires that don't get along well, or projects and offices that get overrun with people who bring traditional IT-company culture with them from their former workplaces. Perhaps you were stuck in such a situation and I apologize. However the difference between Google and Microsoft (for me at least) is still night and day.
It would not surprise me if your Microsoft experience was way worse than your Google experience. I was in fact in a satellite office with serious leadership issues, however I spent plenty of time in MTV as well and I observed the same issues in many situations. Just not as bad as Microsoft, but in the absence of concert remedial action, well on the way to being a carbon copy. I did in fact witness the degradation of the engineering process over the years I was there. And getting back to the topic at hand, you can see the result in the many little stupid issues in the shipped software, that never get fixed year after year. For example, when my phone knows exactly where I am and I type in the name of a restaurant, why am I shown a map of China? When I get a upgrade completion notification on the main screen, why must I start the application to dismiss it? Why can't I write an application that bypasses Java completely, when everybody knows Java is an intellectual property minefield?
Have you got your LWN subscription yet?
Modded "Insightful". How ironic.
If you want choice, you *must* give up usability and overall user experience. But you do get choice. If you favor usability and user experience, you give up choice. It's no surprise that a lot of geeks are fine with the downsides of choice, and prefer the benefits choice has to offer. And it's no surprise that the average consumer would rather give up choice for a better experience.
You're absolutely right but there is some middle ground as well, which is the strategy Microsoft has taken with WP7. They have determined a range of hardware to tune the user experience. Sure it limits choice a bit but you don't end up with devices that struggle to run the OS & apps and destroy the user experience and platform reputation.
Additionally developers know what the minimum spec is and can work with that to ensure the performance of their software is consistent across devices.
I think it's great that we have these 3 different platforms addressing effectively the same market with 3 different strategies all with different up- and downsides. It means you generally have a good option no matter which demographic you fall into.
So sure. So misguided. So cold. So lonely. So sad.
cower some more, feeb.
you're completely pathetic.
All you've done here is just restated the fact that Android is fragmented.
That is because some people seem have difficulty inculcating this fact into their minds. Android is already fragmented. Whether you or Google or anyone else likes it or not. This fragmentation will not be reversed, prevented or otherwise mitigated. It will grow rapidly. Whatever Android becomes will accommodate this simple imperative.
It's written into the license and business model Google chose for Android
You are reading into the license more than exists; nothing prevents a manufacturer from building devices with capabilities that far exceed 'typical.' They are actively competing on every dimension including speed, capacity, price, size, exclusivity, etc. Nothing prevents developers from making apps that leverage those capabilities. After the device sale there are, effectively, no limits.
So the i7 gets stuck running software designed for the Atom and its single and dual-core ilk....It's the nature of a fragmented market.
Yes, it is, including the fragmented Android market. The PC market includes widely purchased and highly successful software that specifies quad cores as optimal. Those lacking the means accept less than optimal results or do not indulge. Android is now, and will continue to be, the same.
which is going to really sour their experience
This is already happening. Just google "angry birds too slow". Sour people are inevitable and they don't have a veto over everyone else.
How exactly do you expect this to work out in the real consumer world?
Same as consumers work out every other purchase decision they make. They'll decide what they want and seek something capable of doing it. Later, when they learn what they really want they do something else. The smartphone market has years to go before it achieves the sort of maturity you appear to expect of it. These are playthings for wealthy urbanites. Adopt appropriate expectations.
you likely didn't choose the best
'best' has no meaning. The calculation defies any credible model. People will trade in a car if they believe their pet dog is unhappy with it. Anyone claiming to measure 'best' is a charlatan. Anyone believing the results is a fool.
Normal people aren't going to put in the effort
Normal? Right there I know I'm dealing with a slew of preconceptions that won't entertain reason. People will certainly put in the effort. Just before they make a purchase. How is this any different from any other significant expenditure? Phones aren't special. People have been buying phones for years based on their arbitrary criteria and available information.
And it's no surprise that the average consumer would rather give up choice for a better experience.
Android devices began outselling iPhones during Q1/2 2010. Your premise that consumers would rather give up choice is a fiction. iPhone is just another choice on a big, fast changing menu.
Will you now attempt to discount market reality by citing 'price' as a explanation for these results? Price is a factor in choice. Only fanbois believe there is a trump card for the technically superior.
WinPhone7 just lapped Android because they just shipped with GPU compositing, like the iPhone.
This means that the WinPhone7 devices will have better responsiveness and battery life, unlike thisNexus S I'mposting from.
That suggests that the bottleneck isn't the GPU or CPU most of the time, it is the speed of flash memory and by extension the amount of available RAM (since more RAM = more caching and less flushing.)
Unfortunately, that doesn't really make any sense since the Galaxy S series has similar(probably even same) flash to the iPad and Samsung Windows Phone 7 units, but at least the iPad doesn't suffer from the same lag.
(I have an iPad and a Nexus S.)