This document discusses developing fault-tolerant Android apps. It begins by outlining some of the difficulties in testing Android apps given the platform's device diversity. It then lists the top 5 most common Android crash errors, which account for over 85% of crashes. These include NullPointerExceptions, OutOfMemoryErrors, WindowManager errors, IllegalArgumentExceptions, and SQLiteExceptions. The document provides examples and explanations for each error type. It also briefly compares crash rates between iOS and Android platforms.
droidcon 2012: Developing Fault Tolerant, “German-Engineered” Android Apps, ...Droidcon Berlin
German engineering is world renowned for high quality and stability – how come its Android apps can’t be the same? I’m co-founder and CEO of Crittercism, a real-time crash reporting and error analysis platform for mobile apps. Our SDK has recorded hundreds of millions of app loads, and is used by both indie developers and large enterprises like Netflix and AT&T. I have deep insights into what issues are plaguing Android developers the most, which Android platforms are the most difficult to develop on, and finally, which devices cause the most crashes.
Informe ComScore: Internet en España durante 2012Finect
Las conclusiones más destacadas de este estudio:
• España es líder en el uso de Smarphones : España es el país con mayor penetración de smartphones en EU5, con un 66% de los usuarios de móvil.
• 17 millones de españoles navegaron diariamente en diciembre de 2012, un 9% más respecto al año anterior.
• En diciembre 2012, más del 80% de los teléfonos adquiridos por los españoles entre 15-34 años fueron smartphones
• La visualización de videos desde el móvil creció un 164% en España el año pasado.
• Casi 4 millones de españoles que tenían un smartphone también poseían una tableta en diciembre de 2012
droidcon 2012: Developing Fault Tolerant, “German-Engineered” Android Apps, ...Droidcon Berlin
German engineering is world renowned for high quality and stability – how come its Android apps can’t be the same? I’m co-founder and CEO of Crittercism, a real-time crash reporting and error analysis platform for mobile apps. Our SDK has recorded hundreds of millions of app loads, and is used by both indie developers and large enterprises like Netflix and AT&T. I have deep insights into what issues are plaguing Android developers the most, which Android platforms are the most difficult to develop on, and finally, which devices cause the most crashes.
Informe ComScore: Internet en España durante 2012Finect
Las conclusiones más destacadas de este estudio:
• España es líder en el uso de Smarphones : España es el país con mayor penetración de smartphones en EU5, con un 66% de los usuarios de móvil.
• 17 millones de españoles navegaron diariamente en diciembre de 2012, un 9% más respecto al año anterior.
• En diciembre 2012, más del 80% de los teléfonos adquiridos por los españoles entre 15-34 años fueron smartphones
• La visualización de videos desde el móvil creció un 164% en España el año pasado.
• Casi 4 millones de españoles que tenían un smartphone también poseían una tableta en diciembre de 2012
Mobile App User Experience Myths, DebunkedApteligent
What data science can teach you about app performance & user experience.
Myth #1: Crash Data is All I Need
Myth #2: Release Planning Happens Once
Myth #3: User Behavior & Business Insights are separate from App Performance
This slideshow features a breakdown of Apteligent’s Crash & Churn data report: our data, research methods, and results.
It includes information on:
- Where is this data coming from?
- How app crashes impact user churn
- Whether an app falls into an App Store category that is sensitive to crashes
- mCommerce example
was used in Apteligent
Apteligent - Choosing the Right SDKs to Optimize App PerformanceApteligent
A typical app has 15 different SDKs. Our Apteligent expert gives you a guide on how to choose the right SDK that doesn't cause the app to crash, slow down, or drain the battery.
Apteligent Data Report Google IO EditionApteligent
This Apteligent data report celebrates Google IO and focuses on the Android ecosystem. We’ve analyzed Android fragmentation (or lackthereof!), Google Fi device usage, crashes that are isolated to specific devices and operating systems, and Android TV vs Apple TV usage. We finish by telling you which device manufacturers are the quickest to push out Android updates to their users. We’ve analyzed tens of thousands of apps and hundreds of billions of data points.
This Apteligent data report dives into Apple and analyzes iOS 9.3. The report details how issues with iOS 9.3 have been greatly exaggerated. We also look at adoption rates, data by app store category, and overall device popularity. We’ve analyzed tens of thousands of apps and hundreds of billions of data points.
7 Tips for Optimizing Mobile App MetricsApteligent
Learn best practices from Fortune 500 companies on how to optimize the app metrics that deliver a 5-star mobile experience such as app load time, crash rate, and battery drain.
50 Beautifully Designed Apple Watch AppsApteligent
See how companies are building great customer experiences using Apple’s latest technology, and prepare to be inspired. Get it here -> http://bit.ly/1CbcJAk
State of Mobile Benchmark Report - MWC 2015 EditionApteligent
With access to global mobile metrics across all platforms, devices, and verticals, we've compiled the most insightful trends in our annual State of Mobile Report. Data is more than numbers; it tells the story of how you'll build a better mobile app.
Accenture Digital: iOS 8 What You Need to KnowApteligent
Only months after its last update, Apple’s iOS 8 presents a host
of new features that will once again redefine how consumers and enterprises use iOS devices. Based on our initial hands-on experience, we believe this is the most fundamental update to iOS for enterprises and developers to date. Organisations will need a clear strategy to get the most out of the changes.
Apple Edition: iOS Mobile Experience ReportApteligent
Download this extensive 25-page industry-first iOS Mobile App Performance report to see how your mobile apps are impacted by various factors.
Key takeaways from this report include:
- If I enter a new geographic market, what impact will it have on my iOS app’s responsiveness?
- How does performance vary for iOS users on WiFi or carrier networks?
50 Connected Devices - How Mobile and the Internet of Things Will Affect YouApteligent
What happens when everything we touch is connected to the Internet? Welcome to the Internet of Things (IoT). At Crittercism, we live and breathe mobile. Browse this presentation to learn about the connected devices all around you – in your pocket, on your kitchen counter, in your backyard.
Want to learn more about how Crittercism can help your connected devices and IoT strategy? Visit http://bit.ly/OptimizeIoT today
Mobile App User Experience Myths, DebunkedApteligent
What data science can teach you about app performance & user experience.
Myth #1: Crash Data is All I Need
Myth #2: Release Planning Happens Once
Myth #3: User Behavior & Business Insights are separate from App Performance
This slideshow features a breakdown of Apteligent’s Crash & Churn data report: our data, research methods, and results.
It includes information on:
- Where is this data coming from?
- How app crashes impact user churn
- Whether an app falls into an App Store category that is sensitive to crashes
- mCommerce example
was used in Apteligent
Apteligent - Choosing the Right SDKs to Optimize App PerformanceApteligent
A typical app has 15 different SDKs. Our Apteligent expert gives you a guide on how to choose the right SDK that doesn't cause the app to crash, slow down, or drain the battery.
Apteligent Data Report Google IO EditionApteligent
This Apteligent data report celebrates Google IO and focuses on the Android ecosystem. We’ve analyzed Android fragmentation (or lackthereof!), Google Fi device usage, crashes that are isolated to specific devices and operating systems, and Android TV vs Apple TV usage. We finish by telling you which device manufacturers are the quickest to push out Android updates to their users. We’ve analyzed tens of thousands of apps and hundreds of billions of data points.
This Apteligent data report dives into Apple and analyzes iOS 9.3. The report details how issues with iOS 9.3 have been greatly exaggerated. We also look at adoption rates, data by app store category, and overall device popularity. We’ve analyzed tens of thousands of apps and hundreds of billions of data points.
7 Tips for Optimizing Mobile App MetricsApteligent
Learn best practices from Fortune 500 companies on how to optimize the app metrics that deliver a 5-star mobile experience such as app load time, crash rate, and battery drain.
50 Beautifully Designed Apple Watch AppsApteligent
See how companies are building great customer experiences using Apple’s latest technology, and prepare to be inspired. Get it here -> http://bit.ly/1CbcJAk
State of Mobile Benchmark Report - MWC 2015 EditionApteligent
With access to global mobile metrics across all platforms, devices, and verticals, we've compiled the most insightful trends in our annual State of Mobile Report. Data is more than numbers; it tells the story of how you'll build a better mobile app.
Accenture Digital: iOS 8 What You Need to KnowApteligent
Only months after its last update, Apple’s iOS 8 presents a host
of new features that will once again redefine how consumers and enterprises use iOS devices. Based on our initial hands-on experience, we believe this is the most fundamental update to iOS for enterprises and developers to date. Organisations will need a clear strategy to get the most out of the changes.
Apple Edition: iOS Mobile Experience ReportApteligent
Download this extensive 25-page industry-first iOS Mobile App Performance report to see how your mobile apps are impacted by various factors.
Key takeaways from this report include:
- If I enter a new geographic market, what impact will it have on my iOS app’s responsiveness?
- How does performance vary for iOS users on WiFi or carrier networks?
50 Connected Devices - How Mobile and the Internet of Things Will Affect YouApteligent
What happens when everything we touch is connected to the Internet? Welcome to the Internet of Things (IoT). At Crittercism, we live and breathe mobile. Browse this presentation to learn about the connected devices all around you – in your pocket, on your kitchen counter, in your backyard.
Want to learn more about how Crittercism can help your connected devices and IoT strategy? Visit http://bit.ly/OptimizeIoT today
This document provides a high level analysis of device performance metrics pulled from the Crittercism big data platform for August 2013:
- Top 100 Samsung Android devices (based on app loads)
- Installed base of ~250M (Android) devices
- Total of 10B+ app loads
testCloud & Crittercism: How to Continuously Ensure Mobile App QualityApteligent
JOIN OUR NEXT JOINT WEBINAR: Tuesday, February 18, 2014 at 11am.
http://bit.ly/1eSGhfp
Build better, faster mobile apps.
The joint testCloud and Crittercism solution enables enterprises to seamlessly integrate quality assurance services with mobile application performance management.
The focus of the joint webinar is the massive cost that are hidden within faulty applications, mostly stemming from inadequate quality assurance measures. We describe how a leading mobile app uses testCloud in conjunction with Crittercism, demonstrating how critical bugs can be found quickly in a cost-efficient way and how to systematically test apps on every available mobile platform.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
2. [droidcon ~]$ whoami
• Andrew Levy
– Co-founder & CEO @Crittercism
• Crittercism
– Real-time crash reports and error analysis for mobile
developers
– Analyzed well over a billion application loads in the
past few months
– Backed by Google Ventures, Kleiner-Perkins, and
others
www.crittercism.com - @crittercism
3. What’s Ahead
1. Testing Difficulties
2. Top 5 Android Crashes
3. iOS vs Android, which crashes less???
4. Quick peak at Crittercism’s Error Analysis
5. Questions
6. Free Stickers
www.crittercism.com - @crittercism
4. Android Device Diversity
Example app shortly after launch: has 30k DAU, 175k unique users, 50 different devices
www.crittercism.com - @crittercism
5. iOS Fragmentation
This app has over 850,000
users, 26 diff app versions, 12
different devices
www.crittercism.com - @crittercism
6. iOS 5.0.1 iOS 5.1
How Many iOS Versions Released? November 10 March 7
2011 2012
4.2.5
February 7, 2011
4.2.6
February 10, 2011
4.3
March 9, 2011
4.3.1
March 25, 2011
4.2.7
April 14, 2011
4.3.2
April 14, 2011
1.0 2.0 3.2.1 4.2.8
June 29, 2007 J 11, 2008
uly J 15, 2010
uly May 4, 2011
1.1 1.1.5 4.0.1 4.2.9
September 14, 2007 J 15, 2008
uly J 15, 2010
uly J 15, 2011
uly
1.1.1 2.0.2 3.0 3.2.2 4.3.4
September 27, 2007 August 18, 2008 June 17, 2009 August 11, 2010 J 15, 2011
uly
1.1.2 2.1 3.0.1 3.1.3 4.0.2 4.2.10
November 12, 2007 September 9, 2008 J 31, 2009
uly February 2, 2010 August 11, 2010 J 25, 2011
uly
1.0.2 1.1.4 2.2 3.1 4.0 4.2.1 4.3.5
August 21, 2007 February 26, 2008 November 21, 2008 September 9, 2009 June 21, 2010 November 22, 2010 J 25, 2011
uly
1.0.1 1.1.3 2.0.1 2.2.1 3.1.2 3.2 4.1 4.3.3 5.0
J 31, 2007
uly January 15, 2008 August 4, 2008 January 27, 2009 October 8, 2009 April 3, 2010 September 8, 2010 May 4, 2011 October 12, 2011
iOS Versions
2008 2009 2010 2011 2012
www.crittercism.com - @crittercism
7. Android Testing
Build & Test
• Integrated Testing Tools in your IDE
• OEMs (developer.samsung.com, developer.motorola.com, etc)
• 3rd Party Solutions
• Robotium, MonkeyRunner, Robolectric, etc
• Remote Device Testing
• Also offered by OEMs
• Device Anywhere, uTest, Mob4Hire, Perfecto Mobile, etc.
• Crashes still make it out into the wild
• QA Matrix/Permutations
www.crittercism.com - @crittercism
10. java.lang.NullPointerException
• “works for me” is not a good test, there are a
thousand Android devices
– Assume the worst, common places of NPE:
• #1 location in code for NPEs seems to be onResume()
– Probably due to devs assuming class members accessible after
onPause()
• Data from intents
• Peripheral/Sensor data (Camera, GPS, etc)
– Some of these errors can be device/manufacturer specific
• Broadcast receivers
www.crittercism.com - @crittercism
13. java.lang.OutOfMemoryError
Memory Leak in Dalvik: Keeping a reference to an object longer than needed
Not the best idea:
try
{
// allocate lots of objects
}
catch(OutOfMemoryError oom)
{
// recycle some objects
}
www.crittercism.com - @crittercism
14. java.lang.OutOfMemoryError
Memory Leak in Dalvik: Keeping a reference to an object longer than needed
Biggest Culprit: Bitmaps
– memory usage
• width px * height px * 4 bytes (for ARGB images)
– SoftReferences, recycle
– Pre Honeycomb (<3.0) native heap, now in the normal
heap
• Use hprof -- if using Eclipse, Memory Analyzer (MAT)
ListViews
- Use convertView & viewHolder Pattern
www.crittercism.com - @crittercism
15. java.lang.OutOfMemoryError
• What about the NDK?
– In the past some devs built their C++ code on
other platforms, then used tools on that platform
to analyze
– New as of November 5, 2011:
• Valgrind 3.7.0 adds preliminary ARM Android support
(2.3.x)
– May need rooted AOSP build, need libc with debug symbols
www.crittercism.com - @crittercism
18. android.view.WindowManager$BadTok
enException
Biggest Culprit: Dialogs
• Common error for beginners, creating a dialog via
getApplicationContext()
– Android docs are wrong, need to create dialog in context of an Activity
www.crittercism.com - @crittercism
19. android.view.WindowManager$BadTok
enException
Biggest Culprit: Dialogs
• Anything that changes the context of the activity will cause issues
– Showing a dialog after activity’s onPause is called (phone call, Back, Home, etc)
– Examples
• Screen Rotation during a ProgressBar
– The most common (and not recommended) fix:
» Add android:configChanges="orientation” to manifest, just
onConfigurationChanged is called
– Recommended:
» save your instance state, re-set any activity context references to the new
one
• Launch dialog with an old/null context
– Be sure to use DialogFragment, old dialogs are deprecated
www.crittercism.com - @crittercism
22. java.lang.IllegalArgumentException
(extends java.lang.RuntimeException)
• Common Examples:
– ContentProvider does not exist
• i.e. try the Network Location Provider in the emulator
• Don’t use undocumented Content Providers
– Using unknown or invalid View IDs
• Confusing a string identifier and integer value wrt setValue()
– Activity is finished already, but you call dismiss on a dialog
www.crittercism.com - @crittercism
23. java.lang.RuntimeException
• Common Pitfalls
– Forgetting to add an Activity to the Manifest
– Failing to close a camera service before using it again
• Some phones have a race condition with releasing the camera, be sure
to make these calls in surfaceDestroyed
1. cameraObject.setPreviewCallback(null); // prevent race condition
2. cameraObject.stopPreview();
3. cameraObject.release();
– Loading UI elements directly from a background thread
– Trying to use a recycled bitmap
www.crittercism.com - @crittercism
26. android.database.sqlite.SQLiteException
• Use the database helper, accessing DB file directly
prone to errors
– Read/write permissions, SD card issues, etc.
• Use only one SQLite connection
– Even if you use threads, share one connection
• Prepared Queries with unknown columns is a common
mistake
• SQL Syntax Errors
www.crittercism.com - @crittercism
27. Crashes on iOS & Android
www.crittercism.com - @crittercism
28. Crashes on iOS & Android
Hard to read pie chart
www.crittercism.com - @crittercism
And it’s not just a problem on Android. Let’s think about iOS. How many version of iOS do you think have been released in the past 4 years? There’s been a total of 41 operating systems released so far – about 1 version a month. iOS version 5.0 which comes out tomorrow will be the 13th new operating system this year. 17 versions for AndroidiOS 5.0.2 delayed because of memory leaks
A lot of these solutions are just functional tests, but simply cant scale to the number of permutations of device configurations and application use, give a shoutout to bitbar
Save your state properly! Use instance state, persistent storage, or some of the built in
Libc debug logcat
Reported as a bug 1.5 years ago, still not fixed
Pre honeycomb, will need compatibility library
Boring one, Not one clear leader here for the cause of issue, lets say you want to display an integer in a label, if you forget to cast it to a string it’ll look for an ID of string resource instead
These are easy to run into. The common theme here is clear your resources when you’re done, close your file descriptors, not only will it contribute to memory issues but you may end up running into a RuntimeException anyway. Of course, be careful once you clear a resource, and then try to use the cleared resource again!