SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
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

Más contenido relacionado

Similar 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
 

Similar 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
 

Más 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
 

Más 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

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Último (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

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