SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
ISTLab

                                                                                     java.lang.RuntimeException: Unable to resume activity {com.pinapps.android/
   java.lang.RuntimeException: Unable to start activity                              com.facebook.LoginActivity}: com.facebook.FacebookException: Cannot call LoginActivity
   ComponentInfo{com.pinapps.android/com.pinapps.android.ActAppDetails}:             with a null calling package. This can occur if the launchMode of the caller is singleInstance.
   java.lang.NullPointerException                                                    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2138)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2153)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1682)
   at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3553)    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
   at android.app.ActivityThread.access$700(ActivityThread.java:140)                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1233)           at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Handler.dispatchMessage(Handler.java:99)                            at android.os.Looper.loop(Looper.java:130)
   at android.os.Looper.loop(Looper.java:137)                                        at android.app.ActivityThread.main(ActivityThread.java:3701)
   at android.app.ActivityThread.main(ActivityThread.java:4898)                      at java.lang.reflect.Method.invokeNative(Native Method)




                   What BigData tell us about
   at java.lang.reflect.Method.invokeNative(Native Method)                            at java.lang.reflect.Method.invoke(Method.java:507)
   at java.lang.reflect.Method.invoke(Method.java:511)                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
   1008)                                                                             at dalvik.system.NativeStart.main(Native Method) Caused by:
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)                   com.facebook.FacebookException: Cannot call LoginActivity with a null calling package.
   at dalvik.system.NativeStart.main(Native Method) Caused by:                       This can occur if the launchMode of the caller is singleInstance.
   java.lang.NullPointerException                                                    at com.facebook.LoginActivity.onResume(LoginActivity.java:110)




                        Android Errors
   at com.pinapps.android.FragAppMedia.onCreateView(FragAppMedia.java:126)           at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1176)
   at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)          at android.app.Activity.performResume(Activity.java:3882)
                                                                                     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2128)
   ... 12 more                                                                       ... 12 more
   java.lang.RuntimeException: Unable to start activity                              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pinapps.android/
   ComponentInfo{com.pinapps.android/com.pinapps.android.ActSplash}:                 com.pinapps.android.ActAppDetails}: java.lang.IllegalStateException: ViewPager does not
   android.view.InflateException: Binary XML file line #2: Error inflating class        have adapter instance.
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1670)     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1686)      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
   at android.app.ActivityThread.access$1500(ActivityThread.java:118)                at android.app.ActivityThread.access$600(ActivityThread.java:130)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:932)            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
   at android.os.Handler.dispatchMessage(Handler.java:99)                            at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:130)                                        at android.os.Looper.loop(Looper.java:137)
   at android.app.ActivityThread.main(ActivityThread.java:3706)                      at android.app.ActivityThread.main(ActivityThread.java:4745)
   at java.lang.reflect.Method.invokeNative(Native Method)                            at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:507)                                at java.lang.reflect.Method.invoke(Method.java:511)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
   841)                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)                   at dalvik.system.NativeStart.main(Native Method) Caused by:
   at dalvik.system.NativeStart.main(Native Method) Caused by:                       java.lang.IllegalStateException: ViewPager does not have adapter instance.
   android.view.InflateException: Binary XML file line #2: Error inflating class        at com.viewpagerindicator.TitlePageIndicator.setViewPager(TitlePageIndicator.java:716)
   at android.view.LayoutInflater.createView(LayoutInflater.java:518)                  at com.pinapps.android.ActAppDetails.onCreate(ActAppDetails.java:129)
   at                                                                                at android.app.Activity.performCreate(Activity.java:5008)
   com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInfl   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
   ater.java:56)                                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)           ... 11 more




                                     What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013                                                                  1
Tuesday, April 9, 13
ISTLab
                                                                                                             ISTLab




                       I’m Panos Papadopoulos
                       Founder & CEO at BugSense
                       @panosjee



                                                            I’m Maria Kechagia
                                                          PhD student at AUEB
                                                          Researcher at ISTLab


                           What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013            2
Tuesday, April 9, 13
You are here because of

  ANDROID BUGS
Tuesday, April 9, 13
ISTLab
                                                                                                           ISTLab


                                     BigData Research

                                40M crashes
                                 3M stack traces
                               320M devices
                       From Mar 1 to May 30 2012

                         What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013             4
Tuesday, April 9, 13
ISTLab
                                                                                                              ISTLab


                   Crashing apps lead to user churn
                       Total Users



                       Affected Users



                       Lost Users




                            What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013             5
Tuesday, April 9, 13
ISTLab
                                                                                                                      ISTLab


                                                The Process


                        Android        Java Stack               Data
                                                              Cleaning                Data               Heuristics
                         Apps            Traces




                                               API                         Crash
                       Suggestions           Design                       Causes
                                                                       Categorization                   Signatures
                                            Problems




                                                                   6
                             What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013                    6
Tuesday, April 9, 13
ISTLab
                                                                                                             ISTLab


                                    Heuristic Function

                                       (﴾F+ (﴾A+ I∗)﴿∗)﴿ | (﴾F∗ (﴾A+ I∗)﴿+)﴿E
                       This expresses various scenarios in which an exception can occur

                          Within the Android framework: F + E

                          Within the application: F ∗ A+ E

                          When the application calls an api: F∗ A+ I+ E

                          Within an api-‐registered application callback: F∗ (﴾A+ I+ A+)﴿+ E

                          When an api-‐registered application callback calls an api: F∗ (﴾A+ I+)﴿+ E




                           What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013             7
Tuesday, April 9, 13
ISTLab
                                                                                                         ISTLab


                                        API Minefield




                       What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013             8
Tuesday, April 9, 13
ISTLab
                                                                                                                     ISTLab


                                             Crash Categories

                         Memory Exhaustion                                                                            28

            Rece conditions and deadlocks                                                                             28

                Missing/Corrupted Resource                                           14

                                 Unclassified                             10

                        Invalid format/syntax                  5

                           Indexing problem                    5

                       Connectivity Problems               4

      Improper component identification                3

                       Insufficient Permission         3

                                                 0                  7.5                   15                  22.5         30




                                 What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013                9
Tuesday, April 9, 13
ISTLab
                                                                                                         ISTLab


          You are not to blame for all crashes!


                           86% app context
                            3% Android context
                           11% API context

                       What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013             10
Tuesday, April 9, 13
ISTLab
                                                                                                                ISTLab

                                  Memory Exhaustion
                                    java.lang.outofmemory
                                      java.lang.outofmemory

                       37%      Although after Honeycomb bitmaps are stored into the
                                Dalvik heap, such exceptions continue to puzzle
                                developers. as mobile devices become smaller and
                                applications have heavier graphics, there is a need for
                                thrifty memory use and good performance.

                                                            Resource auto-‐resize interface
                                                            Restricted use of cache structures
                                                            Cheap file formats
                                                            Fixed heap memory
                                                            Use profiling (﴾Tracker Tab, MAT, HeapViz, etc.)﴿




                             What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013              11
Tuesday, April 9, 13
ISTLab
                                                                                                              ISTLab

                       Race Conditions & Deadlocks
                       android.database.sqlite.SQLiteOpenHelper.getReadableDatabase
                                        android.os.AsyncTask.execute
                              java.util.concurrent.RejectedExcutionException


                   28%      A lot of problems arise around the SQLite and the AsyncTask
                            classes, as they require extra attention concerning
                            multithreading errors.




                                                      Use non-‐blocking algorithms
                                                      Use Java’s non-‐locking primitives and higher level
                                                    concurrency abstractions.
                                                      Verification (﴾Java PathExplorer)﴿
                                                      Static checking (﴾Dimmunix, Jlint, FindBugs, Julia)﴿




                            What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013             12
Tuesday, April 9, 13
ISTLab
                                                                                                              ISTLab

                       Missing/Corrupted Resources
                       org.jaudiotagger.audio.exceptions.InvalidAudioFrameException



                   14%      The system fails to locate or open an external file. Note that,
                            here, we refer to external resources, such as an image or an
                            audio file, and not application components..




                                                       Use try/catch blocks
                                                       Use static analysis tools like Motorola Dev checker




                            What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013             13
Tuesday, April 9, 13
ISTLab
                                                                                                              ISTLab

            Improper Component Identification
                                 android.content.ActivityNotFoundException


                            A lot of applications crash due to either undeclared
                       3%   application components (﴾i.e. activities, services, broadcast
                            receivers, or content providers)﴿, in the AndroidManifest.xml
                            file, or system failure to detect a suitable component for a
                            specific task.
                            Malicious apps can try to launch an activity in order to exploit
                            the permissions of the running app.

                                                              Check the existence of the necessary
                                                            application
                                                              User easy to remember codes




                            What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013             14
Tuesday, April 9, 13
ISTLab
                                                                                                              ISTLab

                             Insufficient Permission
                                         android.app.Activity.startActivity
                                              java.lang.SecurityException

                            This case can be probably caused by a missing or insufficient
                       3%   permission for the particular activity, in the
                            AndroidManifest.xls file. Also, there is the possibility for more
                            than one entries to exist (﴾with different properties)﴿, for this
                            activity, in the AndroidManifest.xls file. The system manager,
                            however, allows unique activities characterized by a unique id.

                                                              Check the permissions related to a
                                                            component, before calling it to start.
                                                              Provide Clear documentation
                                                              User menu




                            What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013             15
Tuesday, April 9, 13
ISTLab
                                                                                                                            ISTLab


                           Top 10 Root cause Exceptions

                                   java.lang.NullPointerException                                                              29

                                     java.lang.outOfMemoryError                                    14

                              java.lang.IllegalArgumentException                         7

                                      java.lang.RuntimeException                     5

                                   java.lang.IllegalStateException               4

         android.view.WindowManager$BadTokenException                        3

                          android.database.sqlite.SQLiteException            3

                           java.lang.IndexOutOfBoundsException           2

                       java.lang.ArrayIndexOutOfBoundsException          2

                                   java.io.FileNotFoundException         2

                                                                     0                       7.5        15           22.5           30




                                   What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013                       16
Tuesday, April 9, 13
10 api calls result in



                       17%
                         of the crashes


Tuesday, April 9, 13
ISTLab
                                                                                                                   ISTLab


                            Most Risky Android APIs
                                  android.app.Activity.setContentView                                              4
                                            android.app.Dialog.dismiss                          2
                                     android.view.LayoutInflater.inflate                        2
                                      android.app.Activity.startActivity             1
                       android.graphics.BitmapFactory.decodeResource                 1
                                              android.app.Dialog.show                1
  com.android.internal.view.BaseSurfaceHolder.unlockCanvasAndPost                    1
                                android.graphics.Bitmap.createBItmap                 1
                                                   java.util.ArrayList.get           1
                                     android.view.LayoutInflater.inflate             1

                                                                             0           1       2             3    4




                             What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013                 18
Tuesday, April 9, 13
ISTLab
                                                                                                         ISTLab




             #DROIDCON #LIVE #BUGSENSE
                            http://www.bugsense.com/live


                        One of the first 10 attendees to
                        tweet wins a mastiha liquor!
                       What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013             19
Tuesday, April 9, 13
ISTLab
                                                                                                            ISTLab




                                     Questions?

                       BugSense helps you analyze & troubleshoot your mobile
                                      applications in minutes

                                           http://www.bugsense.com




                          What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013         20
Tuesday, April 9, 13

Mais conteúdo relacionado

Semelhante a Bug sense droidcon-13

DEVIEW2013: Automating Performance Tests for Android Applications
DEVIEW2013: Automating Performance Tests for Android ApplicationsDEVIEW2013: Automating Performance Tests for Android Applications
DEVIEW2013: Automating Performance Tests for Android ApplicationsKyungmin Lee
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
Icpc2010 bettenburg
Icpc2010 bettenburgIcpc2010 bettenburg
Icpc2010 bettenburgSAIL_QU
 
Testing Big in JavaScript
Testing Big in JavaScriptTesting Big in JavaScript
Testing Big in JavaScriptRobert DeLuca
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
Lecture #4 activities & fragments
Lecture #4  activities & fragmentsLecture #4  activities & fragments
Lecture #4 activities & fragmentsVitali Pekelis
 
DIY in 5 Minutes: Testing Django App with Pytest
DIY in 5 Minutes: Testing Django App with Pytest DIY in 5 Minutes: Testing Django App with Pytest
DIY in 5 Minutes: Testing Django App with Pytest Inexture Solutions
 
Develop Android/iOS app using golang
Develop Android/iOS app using golangDevelop Android/iOS app using golang
Develop Android/iOS app using golangSeongJae Park
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Sauce Labs
 
Java - OOPS and Java Basics
Java - OOPS and Java BasicsJava - OOPS and Java Basics
Java - OOPS and Java BasicsVicter Paul
 
ESW #1 - Developing For Android
ESW #1 - Developing For AndroidESW #1 - Developing For Android
ESW #1 - Developing For Androideatsleepweb
 
[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...BeMyApp
 
AI_BIRDER: USING ARTIFICIAL INTELLIGENCE AND DEEP LEARNING TO CREATE A MOBILE...
AI_BIRDER: USING ARTIFICIAL INTELLIGENCE AND DEEP LEARNING TO CREATE A MOBILE...AI_BIRDER: USING ARTIFICIAL INTELLIGENCE AND DEEP LEARNING TO CREATE A MOBILE...
AI_BIRDER: USING ARTIFICIAL INTELLIGENCE AND DEEP LEARNING TO CREATE A MOBILE...mlaij
 
Ai_Birder: Using Artificial Intelligence and Deep Learning to Create a Mobile...
Ai_Birder: Using Artificial Intelligence and Deep Learning to Create a Mobile...Ai_Birder: Using Artificial Intelligence and Deep Learning to Create a Mobile...
Ai_Birder: Using Artificial Intelligence and Deep Learning to Create a Mobile...mlaij
 
Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformApigee | Google Cloud
 
Building Large Scale PHP Web Applications with Laravel 4
Building Large Scale PHP Web Applications with Laravel 4Building Large Scale PHP Web Applications with Laravel 4
Building Large Scale PHP Web Applications with Laravel 4Darwin Biler
 
Droidcon: Sean Owen: Driving Downloads via Intents- 29/10/2010
Droidcon: Sean Owen: Driving Downloads via Intents- 29/10/2010Droidcon: Sean Owen: Driving Downloads via Intents- 29/10/2010
Droidcon: Sean Owen: Driving Downloads via Intents- 29/10/2010Skills Matter
 
GDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android NGDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android NImam Raza
 

Semelhante a Bug sense droidcon-13 (20)

DEVIEW2013: Automating Performance Tests for Android Applications
DEVIEW2013: Automating Performance Tests for Android ApplicationsDEVIEW2013: Automating Performance Tests for Android Applications
DEVIEW2013: Automating Performance Tests for Android Applications
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Icpc2010 bettenburg
Icpc2010 bettenburgIcpc2010 bettenburg
Icpc2010 bettenburg
 
JavaYDL18
JavaYDL18JavaYDL18
JavaYDL18
 
Ruby conf2012
Ruby conf2012Ruby conf2012
Ruby conf2012
 
Testing Big in JavaScript
Testing Big in JavaScriptTesting Big in JavaScript
Testing Big in JavaScript
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Lecture #4 activities & fragments
Lecture #4  activities & fragmentsLecture #4  activities & fragments
Lecture #4 activities & fragments
 
DIY in 5 Minutes: Testing Django App with Pytest
DIY in 5 Minutes: Testing Django App with Pytest DIY in 5 Minutes: Testing Django App with Pytest
DIY in 5 Minutes: Testing Django App with Pytest
 
Develop Android/iOS app using golang
Develop Android/iOS app using golangDevelop Android/iOS app using golang
Develop Android/iOS app using golang
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)
 
Java - OOPS and Java Basics
Java - OOPS and Java BasicsJava - OOPS and Java Basics
Java - OOPS and Java Basics
 
ESW #1 - Developing For Android
ESW #1 - Developing For AndroidESW #1 - Developing For Android
ESW #1 - Developing For Android
 
[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...[Ultracode Munich #4] Short introduction to the new Android build system incl...
[Ultracode Munich #4] Short introduction to the new Android build system incl...
 
AI_BIRDER: USING ARTIFICIAL INTELLIGENCE AND DEEP LEARNING TO CREATE A MOBILE...
AI_BIRDER: USING ARTIFICIAL INTELLIGENCE AND DEEP LEARNING TO CREATE A MOBILE...AI_BIRDER: USING ARTIFICIAL INTELLIGENCE AND DEEP LEARNING TO CREATE A MOBILE...
AI_BIRDER: USING ARTIFICIAL INTELLIGENCE AND DEEP LEARNING TO CREATE A MOBILE...
 
Ai_Birder: Using Artificial Intelligence and Deep Learning to Create a Mobile...
Ai_Birder: Using Artificial Intelligence and Deep Learning to Create a Mobile...Ai_Birder: Using Artificial Intelligence and Deep Learning to Create a Mobile...
Ai_Birder: Using Artificial Intelligence and Deep Learning to Create a Mobile...
 
Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps Platform
 
Building Large Scale PHP Web Applications with Laravel 4
Building Large Scale PHP Web Applications with Laravel 4Building Large Scale PHP Web Applications with Laravel 4
Building Large Scale PHP Web Applications with Laravel 4
 
Droidcon: Sean Owen: Driving Downloads via Intents- 29/10/2010
Droidcon: Sean Owen: Driving Downloads via Intents- 29/10/2010Droidcon: Sean Owen: Driving Downloads via Intents- 29/10/2010
Droidcon: Sean Owen: Driving Downloads via Intents- 29/10/2010
 
GDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android NGDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android N
 

Mais de Droidcon Berlin

Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility Droidcon Berlin
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_backDroidcon Berlin
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86Droidcon Berlin
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building AndroidDroidcon Berlin
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentationDroidcon Berlin
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Droidcon Berlin
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkraussDroidcon Berlin
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014Droidcon Berlin
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Droidcon Berlin
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidconDroidcon Berlin
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devicesDroidcon Berlin
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradioDroidcon Berlin
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon Berlin
 
Droidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon Berlin
 
Droidcon2013 bootstrap luedeke
Droidcon2013 bootstrap luedekeDroidcon2013 bootstrap luedeke
Droidcon2013 bootstrap luedekeDroidcon Berlin
 

Mais de Droidcon Berlin (20)

crashing in style
crashing in stylecrashing in style
crashing in style
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility
 
Details matter in ux
Details matter in uxDetails matter in ux
Details matter in ux
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_back
 
droidparts
droidpartsdroidparts
droidparts
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86
 
5 tips of monetization
5 tips of monetization5 tips of monetization
5 tips of monetization
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building Android
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentation
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkrauss
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidcon
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devices
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicro
 
Droidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenberg
 
Droidcon2013 bootstrap luedeke
Droidcon2013 bootstrap luedekeDroidcon2013 bootstrap luedeke
Droidcon2013 bootstrap luedeke
 

Último

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Bug sense droidcon-13

  • 1. ISTLab java.lang.RuntimeException: Unable to resume activity {com.pinapps.android/ java.lang.RuntimeException: Unable to start activity com.facebook.LoginActivity}: com.facebook.FacebookException: Cannot call LoginActivity ComponentInfo{com.pinapps.android/com.pinapps.android.ActAppDetails}: with a null calling package. This can occur if the launchMode of the caller is singleInstance. java.lang.NullPointerException at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2138) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2153) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1682) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3553) at android.app.ActivityThread.access$1500(ActivityThread.java:117) at android.app.ActivityThread.access$700(ActivityThread.java:140) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1233) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:130) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:3701) at android.app.ActivityThread.main(ActivityThread.java:4898) at java.lang.reflect.Method.invokeNative(Native Method) What BigData tell us about at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 1008) at dalvik.system.NativeStart.main(Native Method) Caused by: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775) com.facebook.FacebookException: Cannot call LoginActivity with a null calling package. at dalvik.system.NativeStart.main(Native Method) Caused by: This can occur if the launchMode of the caller is singleInstance. java.lang.NullPointerException at com.facebook.LoginActivity.onResume(LoginActivity.java:110) Android Errors at com.pinapps.android.FragAppMedia.onCreateView(FragAppMedia.java:126) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1176) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) at android.app.Activity.performResume(Activity.java:3882) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2128) ... 12 more ... 12 more java.lang.RuntimeException: Unable to start activity java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pinapps.android/ ComponentInfo{com.pinapps.android/com.pinapps.android.ActSplash}: com.pinapps.android.ActAppDetails}: java.lang.IllegalStateException: ViewPager does not android.view.InflateException: Binary XML file line #2: Error inflating class have adapter instance. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1670) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1686) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) at android.app.ActivityThread.access$1500(ActivityThread.java:118) at android.app.ActivityThread.access$600(ActivityThread.java:130) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:932) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:130) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:3706) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 841) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) at dalvik.system.NativeStart.main(Native Method) Caused by: at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalStateException: ViewPager does not have adapter instance. android.view.InflateException: Binary XML file line #2: Error inflating class at com.viewpagerindicator.TitlePageIndicator.setViewPager(TitlePageIndicator.java:716) at android.view.LayoutInflater.createView(LayoutInflater.java:518) at com.pinapps.android.ActAppDetails.onCreate(ActAppDetails.java:129) at at android.app.Activity.performCreate(Activity.java:5008) com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInfl at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) ater.java:56) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568) ... 11 more What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 1 Tuesday, April 9, 13
  • 2. ISTLab ISTLab I’m Panos Papadopoulos Founder & CEO at BugSense @panosjee I’m Maria Kechagia PhD student at AUEB Researcher at ISTLab What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 2 Tuesday, April 9, 13
  • 3. You are here because of ANDROID BUGS Tuesday, April 9, 13
  • 4. ISTLab ISTLab BigData Research 40M crashes 3M stack traces 320M devices From Mar 1 to May 30 2012 What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 4 Tuesday, April 9, 13
  • 5. ISTLab ISTLab Crashing apps lead to user churn Total Users Affected Users Lost Users What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 5 Tuesday, April 9, 13
  • 6. ISTLab ISTLab The Process Android Java Stack Data Cleaning Data Heuristics Apps Traces API Crash Suggestions Design Causes Categorization Signatures Problems 6 What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 6 Tuesday, April 9, 13
  • 7. ISTLab ISTLab Heuristic Function (﴾F+ (﴾A+ I∗)﴿∗)﴿ | (﴾F∗ (﴾A+ I∗)﴿+)﴿E This expresses various scenarios in which an exception can occur Within the Android framework: F + E Within the application: F ∗ A+ E When the application calls an api: F∗ A+ I+ E Within an api-‐registered application callback: F∗ (﴾A+ I+ A+)﴿+ E When an api-‐registered application callback calls an api: F∗ (﴾A+ I+)﴿+ E What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 7 Tuesday, April 9, 13
  • 8. ISTLab ISTLab API Minefield What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 8 Tuesday, April 9, 13
  • 9. ISTLab ISTLab Crash Categories Memory Exhaustion 28 Rece conditions and deadlocks 28 Missing/Corrupted Resource 14 Unclassified 10 Invalid format/syntax 5 Indexing problem 5 Connectivity Problems 4 Improper component identification 3 Insufficient Permission 3 0 7.5 15 22.5 30 What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 9 Tuesday, April 9, 13
  • 10. ISTLab ISTLab You are not to blame for all crashes! 86% app context 3% Android context 11% API context What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 10 Tuesday, April 9, 13
  • 11. ISTLab ISTLab Memory Exhaustion java.lang.outofmemory java.lang.outofmemory 37% Although after Honeycomb bitmaps are stored into the Dalvik heap, such exceptions continue to puzzle developers. as mobile devices become smaller and applications have heavier graphics, there is a need for thrifty memory use and good performance. Resource auto-‐resize interface Restricted use of cache structures Cheap file formats Fixed heap memory Use profiling (﴾Tracker Tab, MAT, HeapViz, etc.)﴿ What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 11 Tuesday, April 9, 13
  • 12. ISTLab ISTLab Race Conditions & Deadlocks android.database.sqlite.SQLiteOpenHelper.getReadableDatabase android.os.AsyncTask.execute java.util.concurrent.RejectedExcutionException 28% A lot of problems arise around the SQLite and the AsyncTask classes, as they require extra attention concerning multithreading errors. Use non-‐blocking algorithms Use Java’s non-‐locking primitives and higher level concurrency abstractions. Verification (﴾Java PathExplorer)﴿ Static checking (﴾Dimmunix, Jlint, FindBugs, Julia)﴿ What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 12 Tuesday, April 9, 13
  • 13. ISTLab ISTLab Missing/Corrupted Resources org.jaudiotagger.audio.exceptions.InvalidAudioFrameException 14% The system fails to locate or open an external file. Note that, here, we refer to external resources, such as an image or an audio file, and not application components.. Use try/catch blocks Use static analysis tools like Motorola Dev checker What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 13 Tuesday, April 9, 13
  • 14. ISTLab ISTLab Improper Component Identification android.content.ActivityNotFoundException A lot of applications crash due to either undeclared 3% application components (﴾i.e. activities, services, broadcast receivers, or content providers)﴿, in the AndroidManifest.xml file, or system failure to detect a suitable component for a specific task. Malicious apps can try to launch an activity in order to exploit the permissions of the running app. Check the existence of the necessary application User easy to remember codes What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 14 Tuesday, April 9, 13
  • 15. ISTLab ISTLab Insufficient Permission android.app.Activity.startActivity java.lang.SecurityException This case can be probably caused by a missing or insufficient 3% permission for the particular activity, in the AndroidManifest.xls file. Also, there is the possibility for more than one entries to exist (﴾with different properties)﴿, for this activity, in the AndroidManifest.xls file. The system manager, however, allows unique activities characterized by a unique id. Check the permissions related to a component, before calling it to start. Provide Clear documentation User menu What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 15 Tuesday, April 9, 13
  • 16. ISTLab ISTLab Top 10 Root cause Exceptions java.lang.NullPointerException 29 java.lang.outOfMemoryError 14 java.lang.IllegalArgumentException 7 java.lang.RuntimeException 5 java.lang.IllegalStateException 4 android.view.WindowManager$BadTokenException 3 android.database.sqlite.SQLiteException 3 java.lang.IndexOutOfBoundsException 2 java.lang.ArrayIndexOutOfBoundsException 2 java.io.FileNotFoundException 2 0 7.5 15 22.5 30 What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 16 Tuesday, April 9, 13
  • 17. 10 api calls result in 17% of the crashes Tuesday, April 9, 13
  • 18. ISTLab ISTLab Most Risky Android APIs android.app.Activity.setContentView 4 android.app.Dialog.dismiss 2 android.view.LayoutInflater.inflate 2 android.app.Activity.startActivity 1 android.graphics.BitmapFactory.decodeResource 1 android.app.Dialog.show 1 com.android.internal.view.BaseSurfaceHolder.unlockCanvasAndPost 1 android.graphics.Bitmap.createBItmap 1 java.util.ArrayList.get 1 android.view.LayoutInflater.inflate 1 0 1 2 3 4 What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 18 Tuesday, April 9, 13
  • 19. ISTLab ISTLab #DROIDCON #LIVE #BUGSENSE http://www.bugsense.com/live One of the first 10 attendees to tweet wins a mastiha liquor! What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 19 Tuesday, April 9, 13
  • 20. ISTLab ISTLab Questions? BugSense helps you analyze & troubleshoot your mobile applications in minutes http://www.bugsense.com What BigData Analysis tell us about Android Errors @ DroidCon DE, 11 April 2013 20 Tuesday, April 9, 13