$30 off During Our Annual Pro Sale. View Details »

Android Fragmentation

Android Fragmentation

A brief talk given at MinneBar 2013 about the basics of battling fragmentation on Android.

Daniel Lew

April 06, 2013
Tweet

More Decks by Daniel Lew

Other Decks in Programming

Transcript

  1. Android Fragmentation
    Daniel Lew
    4/6/2013
    Sunday, November 24, 13

    View Slide

  2. Problem
    • There too many phones!
    • Afraid to enter the Android arena?
    • There are solutions to most problems!
    Sunday, November 24, 13

    View Slide

  3. Compatible Screens
    Sunday, November 24, 13

    View Slide

  4. Source:  Kirill  Grouchnikov,  Google
    Sunday, November 24, 13

    View Slide

  5. Screen Break Points
    • Determine when to switch from one layout to
    another
    • Can break on fragments or custom views.
    Sunday, November 24, 13

    View Slide

  6. Play Store Break Points
    Sunday, November 24, 13

    View Slide

  7. Play Store Break Points
    Sunday, November 24, 13

    View Slide

  8. Play Store Break Points
    Sunday, November 24, 13

    View Slide

  9. Play Store Break Points
    Sunday, November 24, 13

    View Slide

  10. Fragments
    • Can be rearranged across different screen
    sizes
    • Can be reused
    Sunday, November 24, 13

    View Slide

  11. Fragments - Rearranged
    Sunday, November 24, 13

    View Slide

  12. Fragments - Rearranged
    Sunday, November 24, 13

    View Slide

  13. Custom Views
    • Collection of standard Views, wrapped in a
    custom View
    • Customize for each configuration
    Sunday, November 24, 13

    View Slide

  14. Sunday, November 24, 13

    View Slide

  15. Sunday, November 24, 13

    View Slide

  16. Sunday, November 24, 13

    View Slide

  17. Compatible Code
    Sunday, November 24, 13

    View Slide

  18. Reflection
    • Standard Java reflection
    • Only run code if the Class/Method exists
    Sunday, November 24, 13

    View Slide

  19. Branched Code
    • Build.VERSION.SDK_INT
    if (Build.VERSION.SDK_INT >=9)
    // Run code only available on API 9+
    • Android 2.2+ does not cause VerifyErrors if
    unavailable classes/methods are never run.
    Sunday, November 24, 13

    View Slide

  20. Proxy Classes
    • Create a class that encapsulates switched
    code
    • Class uses either reflection or branching
    • Access class without caring about which
    version of Android you are running
    Sunday, November 24, 13

    View Slide

  21. Backwards-Compatible
    Libraries
    Sunday, November 24, 13

    View Slide

  22. Android Support
    Library
    • Google provided library
    • Supports Fragments, LoaderManager,
    Notifications, Sharing
    • Includes classes not in vanilla Android
    (Pagers)
    • http://developer.android.com/tools/extras/
    support-library.html
    Sunday, November 24, 13

    View Slide

  23. ActionBarSherlock
    • Action bars pre-3.0
    • Well supported
    • http://actionbarsherlock.com/
    Sunday, November 24, 13

    View Slide

  24. NineOldAndroids
    • Backwards-compatible property animation
    library
    • All old animations aren't performant, but
    better than nothing.
    • http://nineoldandroids.com/
    Sunday, November 24, 13

    View Slide

  25. HoloEverywhere
    • Consistent theming across devices
    • https://github.com/Prototik/
    HoloEverywhere
    • If you don't want a library, import from
    Android Open Source Project itself.
    Sunday, November 24, 13

    View Slide

  26. Resource Qualifiers
    • All files under /res/
    are resources
    • Format: /res/-
    /
    • Qualifiers can be
    applied to any
    resource
    Sunday, November 24, 13

    View Slide

  27. Useful Resource
    Qualifiers
    • Orientation
    • -landscape, -portrait
    • Screen size
    • -small, -medium, -large, -xlarge
    • -sw600dp, -sh900dp, etc.
    • Platform
    • -v11, -v14, etc.
    Sunday, November 24, 13

    View Slide

  28. What to Qualify
    • Layouts
    • Dimensions (and integers)
    • Booleans
    • Styles and themes
    Sunday, November 24, 13

    View Slide

  29. Links
    • Blog: http://daniel-codes.blogspot.com/
    • Email: [email protected]
    Sunday, November 24, 13

    View Slide