blob: f18c62dcbdc504bb3d9b513b83ac304e0104912c [file] [log] [blame]
Roman Nurik73790462011-12-22 16:18:19 -08001<!DOCTYPE html>
2<html lang="en">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <title>
6
7Android Design - Backwards Compatibility
8 </title>
9 <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
10 <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic">
11 <link rel="stylesheet" href="../static/yui-3.3.0-reset-min.css">
12 <link rel="stylesheet" href="../static/default.css">
13
14 </head>
15 <body>
16
17 <div id="page-container">
18
19 <div id="page-header"><a href="../index.html">Android Design</a></div>
20
21 <div id="main-row">
22
23 <ul id="nav">
24
25 <li class="nav-section">
26 <div class="nav-section-header"><a href="../index.html">Get Started</a></div>
27 <ul>
28 <li><a href="../get-started/creative-vision.html">Creative Vision</a></li>
29 <li><a href="../get-started/principles.html">Design Principles</a></li>
30 <li><a href="../get-started/ui-overview.html">UI Overview</a></li>
31 </ul>
32 </li>
33
34 <li class="nav-section">
35 <div class="nav-section-header"><a href="../style/index.html">Style</a></div>
36 <ul>
37 <li><a href="../style/devices-displays.html">Devices and Displays</a></li>
38 <li><a href="../style/themes.html">Themes</a></li>
39 <li><a href="../style/touch-feedback.html">Touch Feedback</a></li>
40 <li><a href="../style/metrics-grids.html">Metrics and Grids</a></li>
41 <li><a href="../style/typography.html">Typography</a></li>
42 <li><a href="../style/color.html">Color</a></li>
43 <li><a href="../style/iconography.html">Iconography</a></li>
44 <li><a href="../style/writing.html">Writing Style</a></li>
45 </ul>
46 </li>
47
48 <li class="nav-section">
49 <div class="nav-section-header"><a href="../patterns/index.html">Patterns</a></div>
50 <ul>
51 <li><a href="../patterns/new-4-0.html">New in Android 4.0</a></li>
52 <li><a href="../patterns/gestures.html">Gestures</a></li>
53 <li><a href="../patterns/app-structure.html">App Structure</a></li>
54 <li><a href="../patterns/navigation.html">Navigation</a></li>
55 <li><a href="../patterns/actionbar.html">Action Bar</a></li>
56 <li><a href="../patterns/multi-pane-layouts.html">Multi-pane Layouts</a></li>
57 <li><a href="../patterns/swipe-views.html">Swipe Views</a></li>
58 <li><a href="../patterns/selection.html">Selection</a></li>
59 <li><a href="../patterns/notifications.html">Notifications</a></li>
60 <li><a href="../patterns/compatibility.html">Compatibility</a></li>
61 <li><a href="../patterns/pure-android.html">Pure Android</a></li>
62 </ul>
63 </li>
64
65 <li class="nav-section">
66 <div class="nav-section-header"><a href="../building-blocks/index.html">Building Blocks</a></div>
67 <ul>
68 <li><a href="../building-blocks/tabs.html">Tabs</a></li>
69 <li><a href="../building-blocks/lists.html">Lists</a></li>
70 <li><a href="../building-blocks/grid-lists.html">Grid Lists</a></li>
71 <li><a href="../building-blocks/scrolling.html">Scrolling</a></li>
72 <li><a href="../building-blocks/spinners.html">Spinners</a></li>
73 <li><a href="../building-blocks/buttons.html">Buttons</a></li>
74 <li><a href="../building-blocks/text-fields.html">Text Fields</a></li>
75 <li><a href="../building-blocks/seek-bars.html">Seek Bars</a></li>
76 <li><a href="../building-blocks/progress.html">Progress &amp; Activity</a></li>
77 <li><a href="../building-blocks/switches.html">Switches</a></li>
78 <li><a href="../building-blocks/dialogs.html">Dialogs</a></li>
79 <li><a href="../building-blocks/pickers.html">Pickers</a></li>
80 </ul>
81 </li>
82
83 <li>
Roman Nurikc894fb72012-01-10 23:59:20 -080084 <div id="back-dac-section"><a href="../../index.html">Developers</a></div>
Roman Nurik73790462011-12-22 16:18:19 -080085 </li>
86
87 </ul>
88
89 <div id="content">
90
91
92 <div class="layout-content-row content-header">
93 <div class="layout-content-col span-9">
94 <h2>Backwards Compatibility</h2>
95 </div>
96 <div class="paging-links layout-content-col span-4">
97 <a href="#" class="prev-page-link">Previous</a>
98 <a href="#" class="next-page-link">Next</a>
99 </div>
100 </div>
101
102
103
104
105<p>Significant changes in Android 3.0 included:</p>
106<ul>
107<li>Deprecation of navigation hardware keys (Back, Menu, Search, Home) in favor of handling navigation
108 via virtual controls (Back, Home, Recents).</li>
109<li>Robust pattern for the use of menus in action bars.</li>
110</ul>
111<p>Android 4.0 brings these changes for tablets to the phone platform.</p>
112
113<h2>Adapting Android 4.0 to Older Hardware and Apps</h2>
114
115<div class="layout-content-row">
116 <div class="layout-content-col span-6">
117
118<h4>Phones with virtual navigation controls</h4>
119<p>Android apps written for Android 3.0 and later display actions in the action bar. Actions that don't
120fit in the action bar or aren't important enough to be displayed at the top level appear in the
121action overflow.</p>
122<p>Users access the action overflow by touching it in the action bar.</p>
123
124 </div>
125 <div class="layout-content-col span-7">
126
127 <img src="../static/content/compatibility_virtual_nav.png">
128
129 </div>
130</div>
131
132<div class="layout-content-row">
133 <div class="layout-content-col span-6">
134
135<h4>Phones with physical navigation keys</h4>
136<p>Android phones with traditional navigation hardware keys don't display the virtual navigation bar at
137the bottom of the screen. Instead, the action overflow is available from the menu hardware key. The
138resulting actions popup has the same style as in the previous example, but is displayed at the bottom of the screen.</p>
139
140 </div>
141 <div class="layout-content-col span-7">
142
143 <img src="../static/content/compatibility_physical_buttons.png">
144
145 </div>
146</div>
147
148<div class="layout-content-row">
149 <div class="layout-content-col span-6">
150
151<h4>Legacy apps on phones with virtual navigation controls</h4>
152<p>When you run an app that was built for Android 2.3 or earlier on a phone with virtual navigation
153controls, an action overflow control appears at the right side of the virtual navigation bar. You
154can touch the control to display the app's actions in the traditional Android menu styling.</p>
155
156 </div>
157 <div class="layout-content-col span-7">
158
159 <img src="../static/content/compatibility_legacy_apps.png">
160
161 </div>
162</div>
163
164
165
166
167 <div class="layout-content-row content-footer">
168 <div class="paging-links layout-content-col span-9">&nbsp;</div>
169 <div class="paging-links layout-content-col span-4">
170 <a href="#" class="prev-page-link">Previous</a>
171 <a href="#" class="next-page-link">Next</a>
172 </div>
173 </div>
174
175 </div>
176
177 </div>
178
179 <div id="page-footer">
180
181 <p id="copyright">
182 Except as noted, this content is licensed under
Roman Nurikc894fb72012-01-10 23:59:20 -0800183 <a href="http://creativecommons.org/licenses/by/2.5/">
Roman Nurik73790462011-12-22 16:18:19 -0800184 Creative Commons Attribution 2.5</a>.<br>
185 For details and restrictions, see the
Roman Nurikc894fb72012-01-10 23:59:20 -0800186 <a href="http://developer.android.com/license.html">Content License</a>.
Roman Nurik73790462011-12-22 16:18:19 -0800187 </p>
188
189 <p>
Roman Nurikc894fb72012-01-10 23:59:20 -0800190 <a href="http://www.android.com/terms.html">Site Terms of Service</a> &ndash;
191 <a href="http://www.android.com/privacy.html">Privacy Policy</a> &ndash;
192 <a href="http://www.android.com/branding.html">Brand Guidelines</a>
Roman Nurik73790462011-12-22 16:18:19 -0800193 </p>
194
195 </div>
196 </div>
197
198 <script src="../static/jquery-1.6.2.min.js"></script>
199 <script>
200 var SITE_ROOT = '../';
201 </script>
202 <script src="../static/default.js"></script>
203
204
205 <script type="text/javascript">
206 var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
207 document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
208 </script>
209 <script type="text/javascript">
210 var pageTracker = _gat._getTracker("UA-5831155-1");
211 pageTracker._trackPageview();
212 </script>
213 </body>
214</html>