Writing user interface layouts for Android applications is easy, but it can sometimes be difficult to optimize them. Most often, heavy modifications made to existing XML layouts, like shuffling views around or changing the type of a container, lead to inefficiencies that go unnoticed.
Starting with the
SDK Tools Revision 3 you can use a tool called
layoutopt to automatically detect common problems. This tool is currently only available from the command line and its use is very simple – just open a terminal and launch the
layoutopt command with a list of directories or XML files to analyze:
$ layoutopt samples/
samples/compound.xml
7:23 The root-level <FrameLayout/> can be replaced with <merge/>
11:21 This LinearLayout layout or its FrameLayout parent is useless samples/simple.xml
7:7 The root-level <FrameLayout/> can be replaced with <merge/>
samples/too_deep.xml
-1:-1 This layout has too many nested layouts: 13 levels, it should have <= 10!
20:81 This LinearLayout layout or its LinearLayout parent is useless
24:79 This LinearLayout layout or its LinearLayout parent is useless
28:77 This LinearLayout layout or its LinearLayout parent is useless
32:75 This LinearLayout layout or its LinearLayout parent is useless
36:73 This LinearLayout layout or its LinearLayout parent is useless
40:71 This LinearLayout layout or its LinearLayout parent is useless
44:69 This LinearLayout layout or its LinearLayout parent is useless
48:67 This LinearLayout layout or its LinearLayout parent is useless
52:65 This LinearLayout layout or its LinearLayout parent is useless
56:63 This LinearLayout layout or its LinearLayout parent is useless
samples/too_many.xml
7:413 The root-level <FrameLayout/> can be replaced with <merge/>
-1:-1 This layout has too many views: 81 views, it should have <= 80! samples/useless.xml
7:19 The root-level <FrameLayout/> can be replaced with <merge/>
11:17 This LinearLayout layout or its FrameLayout parent is useless
For each analyzed file, the tool will indicate the line numbers of each tag that could potentially be optimized. In some cases, layoutopt will also offer a possible solution.
The current version of layoutopt contains a dozen rules used to analyze your layout files and future versions will contain more. Future plans for this tool also include the ability to create and use your own analysis rules, to automatically modify the layouts with optimized XML, and to use it from within Eclipse and/or a standalone user interface.
Windows users: to start layoutopt, open the file called layoutopt.bat in the tools directory of the SDK and on the last line, replace %jarpath% with -jar %jarpath%.

View full post on Android Developers Blog
Tags: "mac, all, Android, android app, Android Applications, blackberry monospace font, body margin, bold number, cache:e7okfhju_mqj:blog.7touchgroup.com/tag/layoutopt/ layoutopt.bat, classic selection, color, color 000000, def, Droid, droid app, droid applications, entity, FrameLayout, Google, inefficiencies, interface, interface layouts, layout, layoutopt, layouts, line, LinearLayout, lt 80, Mac Classic, Markup, meta, Monaco, monaco monospace, monospace font, monospace font blackberry, name, Optimize, parent, Pre, proxy, Q, revision 3, root, root level, sdk tools, Source, source mac, Start, String, string color, string source, tag, Tool, user, user interface, Xml
This entry was posted
on Friday, July 17th, 2009 at 8:40 am and is filed under Mobile Development.
You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.