3 ms·
As a developer, layout and screen size is not the main problem with Android. To be honest, Android isn't even the problem. It's hardware that Android is built
by joeblau 12y ago
As a developer, layout and screen size is not the main problem with Android. To be honest, Android isn't even the problem. It's hardware that Android is built on that is the problem. If a handset is broken down into all of it's sensors [Speaker, Camera, Light Sensor, Microphone, Compass, Accelerometer, Clock, NFC, GPS, Screen, BLE, Wifi, Altimeter, Speedometer, CPU] that's where the fragmentation problem is. It's hard to say which devices contain certain sensors (CPU, Screen, Camera, Mic, and Speakers are pretty standard). Of the devices that have most of those sensors, it's hard to say say which devices have those sensors working correctly.
I attended a Facebook/Parse hackathon where FB detailed issues about a certain bug in specific CPU's with respect to a C++ based photo processing library. Certain Android phones would randomly crash. There is also the infamous compass video [1] where multiple devices all with different hardware report different readings. As a developer, the Android Emulator makes me think I'm going to have a consistent user experience, but based on hardware, I may not.
In my personal experience, I built this game (http://joeblau.com/orb./ http://joeblau.com/orb./) which runs on iOS and Android and I noticed a crazy bug where it would only crash on S4's from Sprint, not from Verizon or AT&T. I re-worked some code to get the application working eventually, but the fact that something would only break on a specific carrier's version of the hardware was crazy to me. The problem is not Android; Android as an OS is actually very good. The problem is HTC, Samsung, Motorola and all of the other hardware manufacturers that build the handsets. Thankfully Google is doing what it can to address the hardware issue by announcing their Android One program, but that hurts other hardware competitors.
[1] - https://vine.co/v/MgWLMmmwUQQ https://vine.co/v/MgWLMmmwUQQ
- npsimons 12y agoThis was addressed at the Linux Plumbers Conference and the Linux kernel mailing list a few years ago. The problem is not just hardware manufacturers trying to differentiate themselves, but carriers fucking around with software loads trying to differentiate themselves. On the hardware side at least, this resulted in virtually a brand new port to every new SBC that came out, even though they were almost all ARM. It used to be you could run Linux on MIPS, SPARC, Alpha, PowerPC, Intel, etc, and not be able to tell the difference from an end user perspective. Then everyone got dollar signs in their eyes, and Google managed to fudge the whole "open" thing so that people were okay with binary drivers (I also blame Ubuntu for acceptance of this), and now you see the mess it's resulted in. Don't get me wrong, I'll take the Android bazaar with its wide variety of choice every day (and twice on Sunday) over the one-size-fits-all-we'll-tell-you-what-you-need style of iOS, but the insanity with differentiating things via closed methods needs to stop. And the Android/Linux developers are aware of the problem and dealing with it the best they can; the problem is all the handset manufacturers and carriers fucking things up.
- Aldo_MX 12y ago> the problem is all the handset manufacturers and carriers fucking things up A thousand times this! It seems that carriers exist for the solely purpose of fucking things up.
- gue5t 12y agoThank you for calling out Ubuntu (a wolf in sheep's clothing in many ways, despite the significant role Ubuntu has played in bringing great people to the Linux community and the fact that they do a lot of good too) and fronting open-source drivers. HN seems mostly ignorant of how critical free drivers are while it continues to flock around diatribes against far-downstream effects of relying on closed blobs. User freedom stems fundamentally from the ability to make use of the components in devices they own. For the uninitiated: that's exactly what drivers do.
- ewzimm 12y agoFree drivers are the way to go, but pushing proprietary drivers was never really Ubuntu's fault. It has been a lack of development of free software drivers because of non-cooperation by hardware vendors. But the community has stepped up with better support for historically unsupported things like accelerated video. If you install 14.04, it does not recommend proprietary drivers except in cases where there is still a lack of options. I'm not saying Canonical is entirely innocent, but they do employ a lot of fervent free software advocates and developers. What we need to fix the situation is more pressure on hardware vendors to release specifications and free software. Perhaps if Ubuntu Touch takes off, Canonical will be in a better position to provide that pressure.
- npsimons 12y agoWhat we need to fix the situation is more pressure on hardware vendors to release specifications and free software. Very much this. Even with the vast power that kernel developers wield, even with offers to write (for free!) and integrate drivers into mainline[1], the biggest pull is still consumers. Push your hardware vendors to (at a minimum) release specs; it's the right thing to do. [1] - For seven freaking years this offer has stood: http://article.gmane.org/gmane.linux.kernel/487536 http://article.gmane.org/gmane.linux.kernel/487536 And yet we still have retarded fucking hardware companies who won't release specs. Fuck 'em - don't buy from them.
- saurik 12y ago> I noticed a crazy bug where it would only crash on S4's from Sprint, not from Verizon or AT&T. I re-worked some code to get the application working eventually, but the fact that something would only break on a specific carrier's version of the hardware was crazy to me. I was looking into this a few days ago (for a much more off-the-wall reason I won't go into) and it turns out that Samsung actually will ship devices under the same brand (such as "Galaxy S5") that use entirely unrelated SoCs depending on the radios the device is intending to support: some devices use Qualcomm's Snapdragon, and some use Samsung's own Exynos, so there are tons of possibilities open for these kinds of "Sprint-specific" issues :(. http://www.cnet.com/news/the-chips-of-samsungs-galaxy-s5-exynos-and-snapdragon/ http://www.cnet.com/news/the-chips-of-samsungs-galaxy-s5-exy...
- jinushaun 12y agoThe problem with Android is that the API offers no guarantee that your call will work correctly on all devices. This is especially true for anything related to sensors like the camera. It is up to the manufacturers and carriers to honor that contract and they simply don't do a good job of it.