What Every App Developer Should Know About Android
- By Ville-Veikko Helppi
- October 2nd, 2014
- 2 Comments
In today’s fast-paced mobile market, consumers have no calm for mobile apps that concede their experience. “Crashes” and “Not working” are a many common feedback1 on Google Play for inconstant or indolent apps (including games). Those comments and ratings make hundreds of millions of intensity downloaders skip those lousy apps. Sounds harsh, though that’s a approach it is.
An app succeeds not by chance. It is a outcome of a right decisions finished during a right time. The many successful mobile app developers2 know a significance of performance, peculiarity and robustness opposite a array of mobile inclination that their business use.
Examples everywhere of usually how simply a developer can go very, unequivocally wrong with their app. An app can act differently on a accumulation mobile devices3, even ones regulating a same OS chronicle and matching hardware components.
During Q1 of this year (1 Jan to 31 March), we collected a poignant volume of information from Testdroid Cloud7 on tests finished by many mobile app and diversion developers. Testdroid Cloud is an online cloud-based height for mobile developers to exam that their apps work ideally on a inclination that their business use.
During this period, over 17.7 million tests were run on 288 striking Android hardware models. To be clear, opposite versions of some renouned models were tested though are counted in a information as one striking device (such as a Samsung Galaxy S4 GT-i95058 regulating 4.2.2, API spin 17). Some renouned inclination also had opposite versions of a singular OS, such as a Google Nexus 7 ME370T9 with Android OS chronicle 4.1.2 (API spin 16), 4.2.2 (API spin 17) and 4.3 (API spin 18).
All tests were automated, regulating customary Android instrumentation10 and opposite test-automation frameworks11. In box we are not informed with instrumentation, Android has a tutorial12 that explains simple exam automation. Also, a tests held problems by logs, screenshots, opening analysis, and a success-failure rate of exam runs.
Note: The information includes all exam results, from a beginning theatre (=APK ready) to when a focus gets “finalized.” Therefore, it includes a accurate problems that developers encountered during this process.
The idea for this investigate was to code a many common problems and hurdles that Android developers face with a inclination they build for. The 288 singular Android device models16 paint a poignant volume of Android use: approximately 92 to 97% of tellurian Android volumes, depending on how it gets totalled and what regions and markets are included. This investigate represents conspicuous coverage of Android use globally, and it shows a many apparent problems as good as a standing of Android hardware and program from a developer’s indicate of view.
We’ll dive low into twin areas of a research: Android software17 and hardware18. The program territory focuses on OS versions and OEM customizations, and a hardware territory breaks down to a member spin (display, memory, chipset, etc.).
Android Software
Your app is software, though a lot of other program is concerned in mobile devices, too. And this “other” program can make your program perform differently (read “wrong”). What can we do to make certain your program works good with a rest of a program in inclination today? Let’s initial demeanour during some of a many common program issues gifted by app developers.
Android OS has been blamed for height fragmentation19, creation things unequivocally formidable for developers, users and flattering many any actor in a ecosystem to keep up. However, that is not accurately a case. The OS unequivocally frequency creates things moment by itself — generally for app developers. More mostly it also involves OEM updates, hardware and many other factors — in further to a OS.
One reason given Android is tremendously renouned among mobile enthusiasts and has fast leaped forward of Apple’s iOS in marketplace share is given it comes in inclination of all shapes23, prices and forms, from tens of opposite OEMs.
Also, a infrastructural program of Android24 is robust, providing an glorious height with a apparent Linux kernel, middleware and other program on top. In a following sections, we’ll demeanour during a formula of a research, damaged down by OS version, OEM customizations and program dependencies.
How to Read a Graphs
The commentary from this investigate are plotted on graphs. In those graphs, a dim black line is a median (50%) of a disaster commission of opposite inclination in that group. The lines above a bars symbol a tip quartile (75%), and a lines subsequent symbol a reduce quartile (25%). The dashed lines are a limit (top or right) and smallest (bottom or left). The circles paint outliers.
OS And Platform Versions
We’ll start with a many critical means in a problems gifted by app developers: Android OS versions25. This dramatically affects that APIs developers can use and how those APIs are upheld in accumulation of devices.
Many developers have gifted all of a good new features, improvements and additions that Android has brought chronicle by version26. Some late-comers have played with usually a latest versions, though some have been building apps given a early days as days of Cupcake (1.5) and Doughnut (1.6). Of course, these versions are not applicable anymore.
The following list shows a recover dates for a several OS versions (along with their formula names) and records given certain versions were expelled or were not used on a inclination being tested.
The many standard conditions with app developers who wish to maximize support for all probable variants is that they’ll start contrast from chronicle 4.0 (Ice Cream Sandwich, API spin 14). However, if we unequivocally wish to maximize coverage, start from chronicle 2.3.3 (Gingerbread, API spin 10) and exam all probable combinations adult to a latest recover of Kit Kat (currently 4.4.4 and, hopefully soon, Android L). Versions comparison than 4.0 still have critical use — and will continue to for some time.
When it comes to a latest versions of Android — and let’s count Ice Cream Sandwich (4.0.3 to 4.0.433), Jelly Bean (4.1.1 to 4.334) and Kit Kat (4.4 to 4.4.235) among them — Ice Cream Sandwich is clearly a many strong platform. OEM updates were apparently a slightest cryptic on this version, and a infancy of tested apps worked unequivocally good on API spin 15 (4.0.3 to 4.0.4).
The ascent to Jelly Bean and API spin 16 didn’t significantly deliver new disfavour issues, and a median disaster commission remained comparatively low. However, API spin 16 had many outlier cases, and for good reasons. For instance, some-more problems were reported with Vsync, extendable notifications and generally with support for a tighten shade and home shade rotation.
API spin 17 brought improvements to a tighten screen, and this chronicle was generally stabile adult to chronicle 4.2.2. The disaster rate went adult when a infancy of OEMs introduced their updates to this version. Apparently, it became some-more cryptic for users than before versions.
Key Findings From OS Versions
- On average, 23% of apps act differently when a new chronicle is installed. The median blunder percent was a smallest with Ice Cream Sandwich (1%), afterwards Jelly Bean (8%), Honeycomb (8%), Kit Kat (21%) and, finally, Gingerbread (30%). This is indeed reduce than what was found in a investigate conducted with Q4 information (a 35% disaster rate).
- Despite aged Android versions being used unequivocally small and Gingerbread being a oldest actively in use, some applications (40% of those tested) still work on even comparison versions (below 2.2). In other words, if an app works on chronicle 2.2, afterwards it will work 40% of a time in even comparison versions as well.
- Over 50% of Android OS updates introduced problems that finished apps destroy in testing.
- Testing unsuccessful 68% of a time when 5 apps were incidentally picked out of 100.
- The normal generation of contrast was 57 cycles per platform. Old versions were tested reduction than new ones: Gingerbread (12 exam cycles), Ice Cream Sandwich (17), Jelly Bean (58) and Kit Kat (95).
- An normal contrast cycle reduced 1.75% of bugs in a formula overall.
Note: A exam cycle constitutes an iteration of a sold exam book executed in one app version. When an app is altered and a exam stays a same, that is counted as a new exam cycle.
Tips and Takeaways
- For maximal coverage possibly geographically or globally, regulating as many earthy inclination as probable is recommended. Track your aim audience’s use of opposite OS versions. The tellurian standing of versions is accessible on Google’s dashboard37.
- All OS versions above 2.3.3 are still relevant. This will not expected change shortly given users of Gingerbread and Ice Cream Sandwich paint scarcely one entertain of all Android users, and many of them do not refurbish (or would have finished so already).
- If we wish to cover 66% of OS volume, afterwards contrast with Kit Kat (4.4.x) and Jelly Bean (4.1 to 4.3) is adequate (covering API 16 to 19).
- To cover 75% of OS volumes, afterwards exam from chronicle 4.0.3 (API spin 15).
- We suggest contrast a following inclination to maximize coverage:
- Amazon Kindle Fire D01400 — 2.3.4
- HTC Desire HD A9191 — 2.3.5
- Huawei Fusion 2 U8665 — 2.3.6
- Sony Xperia U ST25i — 2.3.7
- Asus Eee Pad Transformer TF101 — 4.0.3
- LG Lucid 4G — 4.0.4
- HTC One S X520e — 4.1.1
- Motorola Droid XYBOARD 10.1 MX617 4.1.2
- Acer Iconia B1-A71 — 4.2
- BQ Aquaris 5 HD — 4.2.1
- HTC One mini M4 — 4.2.2
- Samsung Galaxy Note II GT-N7100 — 4.3
- LG Google Nexus 5 D821 — 4.4
- HTC One M8 — 4.4.2
Note: These inclination were comparison given they are a good bottom to exam certain height versions, with opposite OEM customizations included. These inclination are not a many problematic; rather, they were comparison given they produce good coverage38 and are deputy of matching inclination (with a same chronicle OS, from a same manufacturer, etc.).
OEM Customizations
One stumbling retard with Android — like any open-source plan — is a customizability, that exposes a whole height to problems. What is called “fragmentation” by developers would be deliberate a indicate of split for OEMs. In new years, all Android OEMs have energetically built their possess UI layers39, skins and other middleware on tip of vanilla Android. This is a poignant source of a fragmentation that affects developers.
In further to UI layers, many OEMs have introduced bequest software40 — tailored to Android — and it, too, is preventing developers from building their apps to work equally opposite opposite brands of phones.
Drivers also means vital problems41, many associated to graphics. Certain chipset manufacturers have finished an generally bad pursuit during updating their graphics drivers, that creates a colors in apps, games and any striking calm unsuitable opposite phones. Developers competence confront wholly opposite tone schemes on several Android devices, nothing tighten to what they intended.
Key Findings Related to OEM Customizations
- No surprise, Samsung inclination are among a many strong and a many problematic. For example, Galaxy Nexus GT-I9250 is one of a many strong inclination in all categories, while a Samsung Infuse 4G SGH-I997 unsuccessful a many in those same categories.
- Asus devices, along with Xiaomi devices, are a many robust. Xiaomi implements Android differently, however; for instance, pop-ups make a controllability of some inclination impossible.
- Coolpad has, by volume, a many problems. Among a biggest brands, HTC has a slightest error-prone devices.
- All of a vast brands — HTC, Samsung, Sony and LG — have customizations that are cryptic for certain forms of applications. For example, Sony’s customizations breaks some simple functionality, such as observation PDFs. Samsung’s customizations has problems with holding photos with a camera and interrupting calls.
Tips and Takeaways
- The many common myth is that Nexus inclination are a best for testing. Those inclination typically have a latest OS chronicle and small to no OEM customization.
- Pay courtesy to carrier- and operator-branded inclination as well. Some of them exercise Android totally differently, regardless of a name of a device or brand.
Dependencies On Other Software
Some applications need entrance to other apps. For example, many apps and games incorporate amicable media, and in a misfortune implementations, developers have insincere that any device integrates renouned amicable media apps. Some inclination come with those amicable media apps preinstalled, though if not, afterwards your focus usually won’t work properly. Unfortunately, problems with program dependency spin into problems for app developers.
Key Findings Related to Dependencies on Other Software
- 92% of apps confederate with a given height to uncover ads.
- 65% of apps confederate with during slightest one amicable media platform.
- 48% of apps confederate with during slightest twin amicable media platforms.
- 33% of apps confederate with during slightest 3 or some-more amicable media platforms.
Tips and Takeaways
Check either a program that your focus depends on is commissioned on all devices. Do not assume that all of those third-party apps and other program exist on any device!
Android Hardware
The Android device eco-system continues to grow and evolve. Many handset manufacturers continue to shake out inclination with extraordinary specifications and hardware and with opposite form factors. Naturally, a perfect series of probable device configurations45 presents a plea to developers. Ensuring that an focus works good on a widest operation of inclination is essential and is a easiest approach to equivocate frustrating finish users.
Most developer delicately import a pros and cons of contrast on emulators and contrast on genuine devices46 to follow a right strategy. Typically, emulators are used in initial stages of development, while genuine inclination are brought in after in a game. Your choice of height on that to build your subsequent vast thing should be as honest as probable — from day one. In a experience, that is a cornerstone of formulating a successful app — and gaining those hundreds of millions of downloads.
Screen Resolution, Display and Colors
The pivotal to success with any app — generally games — is to get a UI and graphics right. This is a plea given there are a lot of opposite resolutions, a lot of ways to benefaction calm and, naturally, a lot of opposite hardware.
With new high-end inclination gaining recognition among users, a Android eco-system seems to be fast headed towards high-resolution displays. High-resolution screens apparently make for a improved user experience, though to take advantage of this, developers need to refurbish their apps and exam for them47.
However, arrangement resolution51 is not always a means of headaches for developers. In fact, applications destroy some-more mostly given of shade orientation, density, tone and a altogether peculiarity of a device’s screen. For example, many games humour from poor-quality displays. For instance, a symbol in a certain partial of a UI competence get shown in a opposite shade than a one dictated by a engineer — or, in some cases, a totally opposite color.
This is a common issue. It can outcome not usually from hardware components, though also when arrangement drivers are implemented incorrectly. Graphical calm could even be invisible in some apps given of tone liughtness or low pixel density. This kind of disaster is apparent from screenshots in a tests.
No warn that as a arrangement fortitude gets higher, apps benefaction fewer problems. There are a few exceptions to this, though they can be attributed to how certain OEMs use several resolutions55 in both low- and high-end devices.
The Android OS provides a sourroundings to rise apps consistently56 opposite devices, and it handles many of a work of adjusting any application’s UI to a given screen. Also, it comes with APIs that enables a developer to optimize an application’s UI for a sold shade distance or density57. For example, we competence wish one UI for tablets and another for handsets. Although a OS beam and resizes to make an focus work on opposite screens, we should still optimize your focus for opposite shade sizes58 and densities. In doing so, you’ll urge a user knowledge on all devices, and users will trust that your focus was designed for their sold device, rather than simply stretched to fit their screen.
Key Findings Related to Screen Resolution
- The median of blunder was a smallest in resolutions of 2560 × 1600 pixels (0.4%), afterwards 1280 × 800 (0.7%) and 1280 × 720 pixels (1.5%). It was top in resolutions of 400 × 240 (45%) and 320 × 240 pixels (44%).
- The many standard problem relates not to fortitude or a scaling of graphical content, though to how calm adjusts to a course of a screen. According to a data, problems with shade course are 78% some-more expected than problems with a scaling of graphical content.
- Wrong tone themes and tone sets were reported in 18% of devices, while 24% of apps seemed rightly on all 288 opposite devices.
- In some cases, an Android OS refurbish or OEM refurbish bound a arrangement issue, though a commission was comparatively low (6%).
- Apps worked scarcely a same on high- and low-end inclination (based on chipset) with a same fortitude (just a 2% difference).
- In general, a bigger a device’s display, a some-more expected an app will perform better.
Tips and Takeaways
- Design graphical calm for mixed shade sizes, though make it scale to opposite sizes automatically. This is particularly a pattern issue.
- Many problems with resolution, arrangement and tone can be avoided by conceptualizing an focus rightly in a initial place and by contrast it wholly on genuine Android devices. Emulators won’t produce arguable formula or lead to a strong application.
Memory
Anything can occur when an Android device runs out of memory59. So, how does your focus work when a device is low on memory?
Developers understanding with this problem rather often. Many apps won’t run on certain Android inclination given they devour too many memory. Typically, a many renouned apps60 — ones rated with 4 and 5 stars — do not have this problem given memory government has been implemented a right way, or else they have been expelled from being downloaded on low-end inclination entirely. Too many of today’s apps were creatively grown for high-end inclination and can’t be run on low-end devices. What is transparent is that we can simply tackle this problem by checking how your app works with opposite memory capacities.
Memory seems to significantly impact how a device copes with an application. If a device’s RAM is equal to or reduction than 512 MB, afterwards a device will pile-up 40% of a time when certain applications are running.
If a device’s RAM is aloft than 512 MB, afterwards a device will pile-up approximately 10% of a time. That is statistically significant.
Key Findings Related to RAM
- The median of blunder was lowest with RAM of 1024 MB (1%), afterwards 1536 MB (3%) and subsequent 768 MB (16%). It was top with RAM of 336 (45%) and 168 MB (44%).
- Approximately 10% of apps run on inclination with some-more than 512 MB pile-up due memory-related issues.
- Many OEMs do not give their inclination a 512 MB of RAM that Google recommends as a minimum. Such inclination are 87% some-more expected to have problems than inclination with some-more memory.
- The luck of disaster drops 41% for inclination that enclose some-more than 576 MB of memory.
Chipsets
The disproportion in opening between silicon chipsets64 (CPU, GPU, etc.) is flattering amazing. This is not indispensably apparent to finish users. Some people compensate too many courtesy to a CPU’s time rate, rather than a chipset and other factors that impact a opening of a device.
Imagine building something that is targeted during high-end inclination though that runs on low-end hardware. It simply wouldn’t work. The user knowledge would apparently humour given a high-end app regulating on a low-end chipset with a low clock-frequency rate would humour in performance. Many apps humour exceedingly given a activities on shade are synced with a clock, and a UI can’t modernise fast adequate to keep adult with it. For users, this translates into feeble implemented graphics, blinking screens and ubiquitous slowness.
Let’s initial demeanour during a time rate of inclination that we tested.
To review chipsets some-more easily, we categorized them formed on their series of cores: single, twin and quad.
Unlike a CPU design in chipsets — that is made essentially by ARM77 — a graphics apportionment is made by mixed vendors, that gives some semiconductor companies a coherence to collect and select that GPU goes best with a CPU in their chipsets.
Back in a day, a primary pursuit of a graphics label was to describe high-end graphical calm and 3-D images on a screen. Today, GPUs are used for many some-more than games and are as essential as a CPU, if not some-more so.
Today, all of a new Android OS versions — Ice Cream Sandwich, Jelly Bean, Kit Kat and so on — rest heavily on a GPU given a interface and all animations are rendered on it, that is how you’re means to grasp transition effects that are buttery smooth. Today’s inclination have many some-more GPU cores than CPU cores, so all graphics and rendering-intensive tasks are rubbed by them.
Key Findings Related to Chipset
- Single core
The median of blunder was lowest in Intel Atom Z2420 (0.2%), afterwards in Qualcomm Snapdragon S2 MSM8255T (1.1%). - Dual core
The median of blunder was lowest in MediaTek MT8317 (0.3%), afterwards in Intel Atom Z2560 (0.4%). - Quad core
The median of blunder was lowest in both MediaTek MT8125 (0.2%) and Qualcomm Snapdragon 600 APQ8064AB and APQ8064T (0.2%). - Many high-end inclination are updated to a latest chronicle of Android and get a latest OEM updates, that creates them some-more exposed to problems (67%) than low-end inclination with a strange OS version.
- Clock rate doesn’t directly relate with performance. Some benchmarks uncover poignant alleviation in performance, even when a user knowledge and a apps on those chipsets and inclination don’t urge significantly.
- Power expenditure is naturally a bigger problem in some batteries, and some inclination run out of battery life quickly. However, this is firmly associated to a peculiarity and age of a battery and can't be attributed only to a chipset.
Tips and Takeaways
- Thoroughly exam your focus on all kinds of inclination — low end, mid-range and high finish — if it has complicated graphics (such as apps with video streaming) or uses a GPU heavily, to safeguard maximal opening opposite an ecosystem.
- Do not assume that your app works opposite opposite chipsets. Chipsets have a lot of differences between them!
Other Hardware (Sensors, GPS, Wi-Fi, etc.)
Misbehaving sensors — and we’re not articulate about sensors that are feeble calibrated78 or that can't be calibrated — means several problems in games that take submit from a approach a user handles a device. With GPS, a famous problems are navigating indoors and not being means to strech satellites from some locations. To take a matching instance with media streaming, video that is meant to be noticed in landscape mode competence work good in landscape mode, though a user would have to stagger a device 180 degrees to see it right. Frankly, there is no approach to scrupulously exam course with an emulator; also, things associated to a accelerometer, geo-location and pull notifications can't be emulated or could produce false results.
Network issues come adult any now and then, and a delayed network will unequivocally expected impact a usability and knowledge of your application.
Conclusion
In this article, we’ve focused on twin areas — Android program and hardware — and what app developers need to know about both. The Android eco-system is constantly changing and new devices, OS versions and hardware come out any week. This naturally presents a vast plea to focus developers.
Testing on genuine inclination before to launch will make your app significantly some-more robust. In a subsequent article, we will dive low into this topic, covering a many essential contrast methods, frameworks, inclination and other infrastructure compulsory to maximize testing.
How do we exam mobile apps, and what inclination do we use and why? Let us know that aspects of mobile app contrast we would like us to cover in a subsequent article.
(da, al, ml, il)
Footnotes
- 1 http://news.sky.com/story/1320558/downloads-drop-as-appetite-for-new-apps-wanes
- 2 http://www.appannie.com/indexes/all-stores/rank/overall/
- 3 http://www.androidcentral.com/devices
- 4 http://www.smashingmagazine.com/wp-content/uploads/2014/09/01-testdroid-phones-opt.jpg
- 5 http://www.testdroid.com/
- 6 http://www.smashingmagazine.com/wp-content/uploads/2014/09/01-testdroid-phones-opt.jpg
- 7 http://www.testdroid.com/
- 8 http://pdadb.net/index.php?m=specsid=4234
- 9 http://pdadb.net/index.php?m=specsid=3929
- 10 http://developer.android.com/tools/testing/testing_android.html#Instrumentation
- 11 http://en.wikipedia.org/wiki/Test_automation#Framework_approach_in_automation
- 12 http://developer.android.com/tools/testing/testing_android.html
- 13 http://www.smashingmagazine.com/wp-content/uploads/2014/09/02-testdroid-infography-opt.jpg
- 14 http://www.testdroid.com/
- 15 http://www.smashingmagazine.com/wp-content/uploads/2014/09/02-testdroid-infography-opt.jpg
- 16 http://opensignal.com/reports/fragmentation-2013/
- 17 http://en.wikipedia.org/wiki/Android_version_history
- 18 http://tech.firstpost.com/news-analysis/all-you-need-to-know-about-mobile-phone-chipsets-27704.html
- 19 https://developer.android.com/about/dashboards/index.html
- 20 http://www.smashingmagazine.com/wp-content/uploads/2014/09/03-android-os-distribution-opt.png
- 21 https://developer.android.com/about/dashboards/index.html
- 22 http://www.smashingmagazine.com/wp-content/uploads/2014/09/03-android-os-distribution-opt.png
- 23 http://developer.android.com/training/design-navigation/multiple-sizes.html
- 24 http://en.wikipedia.org/wiki/Android_(operating_system)#Software_stack
- 25 http://en.wikipedia.org/wiki/Android_version_history
- 26 http://www.smashingmagazine.com/2013/05/08/brave-new-world-designing-for-a-maturing-android/
- 27 http://www.smashingmagazine.com/wp-content/uploads/2014/09/04-q1-releasedates-opt.png
- 28 http://www.testdroid.com
- 29 http://www.smashingmagazine.com/wp-content/uploads/2014/09/04-q1-releasedates-opt.png
- 30 http://www.smashingmagazine.com/wp-content/uploads/2014/09/05-q1-failed-releaseVersion-opt.png
- 31 http://www.testdroid.com
- 32 http://www.smashingmagazine.com/wp-content/uploads/2014/09/05-q1-failed-releaseVersion-opt.png
- 33 http://en.wikipedia.org/wiki/Android_version_history#Android_4.0.3.E2.80.934.0.4_Ice_Cream_Sandwich_.28API_level_15.29
- 34 http://en.wikipedia.org/wiki/Android_version_history#Android_4.1_Jelly_Bean_.28API_level_16.29
- 35 http://en.wikipedia.org/wiki/Android_version_history#Android_4.4_KitKat_.28API_level_19.29
- 36 https://community.verizonwireless.com/thread/824084
- 37 http://developer.android.com/about/dashboards/index.html
- 38 http://opensignal.com/reports/fragmentation-2013/
- 39 http://www.tested.com/tech/android/460386-state-oem-skins-android/
- 40 http://forum.xda-developers.com/showthread.php?t=2570435
- 41 http://www.xda-developers.com/android/three-all-in-one-solutions-for-android-driver-issues/
- 42 http://www.smashingmagazine.com/wp-content/uploads/2014/09/06-q1-failed-oneCore-color-opt.png
- 43 http://www.testdroid.com
- 44 http://www.smashingmagazine.com/wp-content/uploads/2014/09/06-q1-failed-oneCore-color-opt.png
- 45 http://opensignal.com/reports/fragmentation-2013/
- 46 http://insights.wired.com/profiles/blogs/the-best-advice-for-app-developers-skip-emulators#axzz38bhWO19j
- 47 http://testdroid.com/testdroid/5876/test-early-test-often-testing-as-part-of-your-app-development
- 48 http://www.smashingmagazine.com/wp-content/uploads/2014/09/07-color-error-opt.jpg
- 49 http://www.testdroid.com
- 50 http://www.smashingmagazine.com/wp-content/uploads/2014/09/07-color-error-opt.jpg
- 51 http://developer.android.com/guide/practices/screens_support.html#testing
- 52 http://www.smashingmagazine.com/wp-content/uploads/2014/09/08-q1-failed-screenReso-opt.png
- 53 http://www.testdroid.com
- 54 http://www.smashingmagazine.com/wp-content/uploads/2014/09/08-q1-failed-screenReso-opt.png
- 55 http://developer.android.com/about/dashboards/index.html
- 56 http://www.smashingmagazine.com/2014/01/10/four-ways-to-build-a-mobile-app-part2-native-android/
- 57 http://www.smashingmagazine.com/2012/06/01/getting-to-know-android/
- 58 http://www.androiduipatterns.com/
- 59 https://source.android.com/devices/low-ram.html
- 60 http://www.appannie.com/indexes/all-stores/rank/overall/
- 61 http://www.smashingmagazine.com/wp-content/uploads/2014/09/09-q1-failed-ram-opt.png
- 62 http://www.testdroid.com
- 63 http://www.smashingmagazine.com/wp-content/uploads/2014/09/09-q1-failed-ram-opt.png
- 64 http://tech.firstpost.com/news-analysis/all-you-need-to-know-about-mobile-phone-chipsets-27704.html
- 65 http://www.smashingmagazine.com/wp-content/uploads/2014/09/10-q1-failed-cpu-opt.png
- 66 http://www.testdroid.com
- 67 http://www.smashingmagazine.com/wp-content/uploads/2014/09/10-q1-failed-cpu-opt.png
- 68 http://www.smashingmagazine.com/wp-content/uploads/2014/09/11-q1-failed-oneCore-opt.png
- 69 http://www.testdroid.com
- 70 http://www.smashingmagazine.com/wp-content/uploads/2014/09/11-q1-failed-oneCore-opt.png
- 71 http://www.smashingmagazine.com/wp-content/uploads/2014/09/12-q1-failed-dualCore-opt.png
- 72 http://www.testdroid.com
- 73 http://www.smashingmagazine.com/wp-content/uploads/2014/09/12-q1-failed-dualCore-opt.png
- 74 http://www.smashingmagazine.com/wp-content/uploads/2014/09/13-q1-failed-quadcore-opt.png
- 75 http://www.testdroid.com
- 76 http://www.smashingmagazine.com/wp-content/uploads/2014/09/13-q1-failed-quadcore-opt.png
- 77 http://www.arm.com
- 78 http://android.stackexchange.com/questions/59532/how-can-i-calibrate-the-tilting-sensor-on-android
↑ Back to topShare on Twitter
What Every App Developer Should Know About Android
Nenhum comentário:
Postar um comentário