Optimizing Layouts

Inflating layouts into your Activities is an expensive process. Each additional nested layout and View can have a dramatic impact on the performance and seamlessness of your applications.

In general, it's good practice to keep your layouts as simple as possible, but also to avoid needing to inflate an entirely new layout for small changes to an existing one.

The following points include some best practice guidelines for creating efficient layouts. Note that they are not exhaustive.

> Avoid unnecessary nesting: Don't put one layout within another unless it is necessary. A Linear Layout within a Frame Layout, both of which are set to fill_parent, does nothing but add extra time to inflate. Look for redundant layouts, particularly if you've been making significant changes to an existing layout.

> Avoid using too many Views: Each additional View in a layout takes time and resources to inflate. A layout shouldn't ever include more than 80 Views or the time taken to inflate it becomes significant.

> Avoid deep nesting: As layouts can be arbitrarily nested, it's easy to create complex, deeply nested hierarchies. While there is no hard limit, it's good practice to restrict nesting to fewer than 10 levels.

It's important that you optimize your layout hierarchies to reduce inefficiencies and eliminate unnecessary nesting.

To assist you, the Android SDK includes the layoutopt command line tool. Call layoutopt, passing in the name of the layout resource (or a resource folder) to have your layouts analyzed and to receive recommendations for fixes and improvements.

Mobile Apps Made Easy

Mobile Apps Made Easy

Quick start guide to skyrocket your offline and online business success with mobile apps. If you know anything about mobile devices, you’ve probably heard that famous phrase coined by one of the mobile device’s most prolific creators proclaiming that there’s an app for pretty much everything.

Get My Free Training Guide


Post a comment