1 <?cs include:"doctype.cs" ?>
2 <?cs include:"macros.cs" ?>
3 <html<?cs if:devsite ?> devsite<?cs /if ?>>
4 <?cs if:sdk.redirect ?>
6 <title>Redirecting...</title>
7 <meta http-equiv="refresh" content="0;url=<?cs var:toroot ?>sdk/<?cs
8 if:sdk.redirect.path ?><?cs var:sdk.redirect.path ?><?cs
9 else ?>index.html<?cs /if ?>">
12 <?cs include:"head_tag.cs" ?>
14 <body class="gc-documentation
15 <?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
16 elif:design ?>design<?cs
17 elif:distribute ?>distribute<?cs
18 /if ?>" itemscope itemtype="http://schema.org/CreativeWork">
20 <?cs include:"header.cs" ?>
25 ?>class="col-13" id="doc-col"<?cs /if ?> >
27 <?cs if:sdk.redirect ?>
32 <a href="<?cs var:toroot ?>sdk/<?cs
33 if:sdk.redirect.path ?><?cs var:sdk.redirect.path ?><?cs
34 else ?>index.html<?cs /if ?>"><?cs
35 if:sdk.redirect.path ?><?cs var:sdk.redirect.path ?><?cs
36 else ?>Download the SDK<?cs /if ?>
40 <?cs # else, if NOT redirect ...
43 # The following is for SDK/NDK pages
48 <?cs if:header.hide ?><?cs else ?>
49 <h1 itemprop="name"><?cs var:page.title ?></h1>
51 <div id="jd-content" itemprop="description">
53 <?cs if:sdk.not_latest_version ?>
55 <p><strong>This is NOT the current Android SDK release.</strong></p>
56 <p><a href="/sdk/index.html">Download the current Android SDK</a></p>
69 # the following is for the NDK
71 # (nested in if/else redirect)
78 <table class="download" id="download-table">
82 <th style="white-space:nowrap">Size (Bytes)</th>
86 <td>Windows 32-bit</td>
88 <a onClick="return onDownload(this)"
89 href="http://dl.google.com/android/ndk/<?cs var:ndk.win32_download ?>"><?cs var:ndk.win32_download ?></a>
91 <td><?cs var:ndk.win32_bytes ?></td>
92 <td><?cs var:ndk.win32_checksum ?></td>
96 <a onClick="return onDownload(this)"
97 href="http://dl.google.com/android/ndk/<?cs var:ndk.win32.legacy_download ?>"><?cs var:ndk.win32.legacy_download ?></a>
99 <td><?cs var:ndk.win32.legacy_bytes ?></td>
100 <td><?cs var:ndk.win32.legacy_checksum ?></td>
103 <td>Windows 64-bit</td>
105 <a onClick="return onDownload(this)"
106 href="http://dl.google.com/android/ndk/<?cs var:ndk.win64_download ?>"><?cs var:ndk.win64_download ?></a>
108 <td><?cs var:ndk.win64_bytes ?></td>
109 <td><?cs var:ndk.win64_checksum ?></td>
113 <a onClick="return onDownload(this)"
114 href="http://dl.google.com/android/ndk/<?cs var:ndk.win64.legacy_download ?>"><?cs var:ndk.win64.legacy_download ?></a>
116 <td><?cs var:ndk.win64.legacy_bytes ?></td>
117 <td><?cs var:ndk.win64.legacy_checksum ?></td>
120 <td>Mac OS X 32-bit</td>
122 <a onClick="return onDownload(this)"
123 href="http://dl.google.com/android/ndk/<?cs var:ndk.mac32_download ?>"><?cs var:ndk.mac32_download ?></a>
125 <td><?cs var:ndk.mac32_bytes ?></td>
126 <td><?cs var:ndk.mac32_checksum ?></td>
130 <a onClick="return onDownload(this)"
131 href="http://dl.google.com/android/ndk/<?cs var:ndk.mac32.legacy_download ?>"><?cs var:ndk.mac32.legacy_download ?></a>
133 <td><?cs var:ndk.mac32.legacy_bytes ?></td>
134 <td><?cs var:ndk.mac32.legacy_checksum ?></td>
136 <td>Mac OS X 64-bit</td>
138 <a onClick="return onDownload(this)"
139 href="http://dl.google.com/android/ndk/<?cs var:ndk.mac64_download ?>"><?cs var:ndk.mac64_download ?></a>
141 <td><?cs var:ndk.mac64_bytes ?></td>
142 <td><?cs var:ndk.mac64_checksum ?></td>
146 <a onClick="return onDownload(this)"
147 href="http://dl.google.com/android/ndk/<?cs var:ndk.mac64.legacy_download ?>"><?cs var:ndk.mac64.legacy_download ?></a>
149 <td><?cs var:ndk.mac64.legacy_bytes ?></td>
150 <td><?cs var:ndk.mac64.legacy_checksum ?></td>
153 <td>Linux 32-bit (x86)</td>
155 <a onClick="return onDownload(this)"
156 href="http://dl.google.com/android/ndk/<?cs var:ndk.linux32_download ?>"><?cs var:ndk.linux32_download ?></a>
158 <td><?cs var:ndk.linux32_bytes ?></td>
159 <td><?cs var:ndk.linux32_checksum ?></td>
163 <a onClick="return onDownload(this)"
164 href="http://dl.google.com/android/ndk/<?cs var:ndk.linux32.legacy_download ?>"><?cs var:ndk.linux32.legacy_download ?></a>
166 <td><?cs var:ndk.linux32.legacy_bytes ?></td>
167 <td><?cs var:ndk.linux32.legacy_checksum ?></td>
170 <td>Linux 64-bit (x86)</td>
172 <a onClick="return onDownload(this)"
173 href="http://dl.google.com/android/ndk/<?cs var:ndk.linux64_download ?>"><?cs var:ndk.linux64_download ?></a>
175 <td><?cs var:ndk.linux64_bytes ?></td>
176 <td><?cs var:ndk.linux64_checksum ?></td>
180 <a onClick="return onDownload(this)"
181 href="http://dl.google.com/android/ndk/<?cs var:ndk.linux64.legacy_download ?>"><?cs var:ndk.linux64.legacy_download ?></a>
183 <td><?cs var:ndk.linux64.legacy_bytes ?></td>
184 <td><?cs var:ndk.linux64.legacy_checksum ?></td>
187 <th>Additional Download</th>
189 <th style="white-space:nowrap">Size (Bytes)</th>
190 <th>MD5 Checksum</th>
193 <td>STL debug info</td>
195 <a onClick="return onDownload(this)"
196 href="http://dl.google.com/android/ndk/<?cs var:ndk.debug_info_download ?>"><?cs var:ndk.debug_info_download ?></a>
198 <td><?cs var:ndk.debug_info_bytes ?></td>
199 <td><?cs var:ndk.debug_info_checksum ?></td>
203 <?cs ######## HERE IS THE JD DOC CONTENT ######### ?>
204 <?cs call:tag_list(root.descr) ?>
209 function onDownload(link) {
211 $("#downloadForRealz").html("Download " + $(link).text());
212 $("#downloadForRealz").attr('href',$(link).attr('href'));
214 $("#tos").fadeIn('slow');
216 location.hash = "download";
221 function onAgreeChecked() {
222 if ($("input#agree").is(":checked")) {
223 $("a#downloadForRealz").removeClass('disabled');
225 $("a#downloadForRealz").addClass('disabled');
229 function onDownloadNdkForRealz(link) {
230 if ($("input#agree").is(':checked')) {
231 $("#tos").fadeOut('slow');
233 $('html, body').animate({
234 scrollTop: $("#Installing").offset().top
236 $("#Installing").click();
241 $("label#agreeLabel").parent().stop().animate({color: "#258AAF"}, 200,
242 function() {$("label#agreeLabel").parent().stop().animate({color: "#222"}, 200)}
248 $(window).hashchange( function(){
249 if (location.hash == "") {
257 <?cs # end if NDK ...
264 # the following is for the SDK
266 # (nested in if/else redirect and if/else NDK)
272 <?cs if:android.whichdoc == "online" ?>
275 <?cs ######## HERE IS THE JD DOC CONTENT FOR ONLINE ######### ?>
276 <?cs call:tag_list(root.descr) ?>
281 <h4><a href='' class="expandable"
282 onclick="toggleExpandable(this,'.pax');hideExpandable('.myide,.reqs');return false;"
283 >VIEW ALL DOWNLOADS AND SIZES</a></h4>
286 <div class="pax col-13 online" style="display:none;margin:0;">
289 <p class="table-caption"><strong>ADT Bundle</strong></p>
290 <table class="download">
295 <th>MD5 Checksum</th>
298 <td>Windows 32-bit</td>
300 <a onClick="return onDownload(this)" id="win-bundle32"
301 href="http://dl.google.com/android/adt/<?cs var:sdk.win32_bundle_download ?>"><?cs var:sdk.win32_bundle_download ?></a>
303 <td><?cs var:sdk.win32_bundle_bytes ?> bytes</td>
304 <td><?cs var:sdk.win32_bundle_checksum ?></td>
307 <td>Windows 64-bit</td>
309 <a onClick="return onDownload(this)" id="win-bundle64"
310 href="http://dl.google.com/android/adt/<?cs var:sdk.win64_bundle_download ?>"><?cs var:sdk.win64_bundle_download ?></a>
312 <td><?cs var:sdk.win64_bundle_bytes ?> bytes</td>
313 <td><?cs var:sdk.win64_bundle_checksum ?></td>
316 <td><nobr>Mac OS X 64-bit</nobr></td>
318 <a onClick="return onDownload(this)" id="mac-bundle64"
319 href="http://dl.google.com/android/adt/<?cs var:sdk.mac64_bundle_download ?>"><?cs var:sdk.mac64_bundle_download ?></a>
321 <td><?cs var:sdk.mac64_bundle_bytes ?> bytes</td>
322 <td><?cs var:sdk.mac64_bundle_checksum ?></td>
325 <td>Linux 32-bit</td>
327 <a onClick="return onDownload(this)" id="linux-bundle32"
328 href="http://dl.google.com/android/adt/<?cs var:sdk.linux32_bundle_download ?>"><?cs var:sdk.linux32_bundle_download ?></a>
330 <td><?cs var:sdk.linux32_bundle_bytes ?> bytes</td>
331 <td><?cs var:sdk.linux32_bundle_checksum ?></td>
334 <td>Linux 64-bit</td>
336 <a onClick="return onDownload(this)" id="linux-bundle64"
337 href="http://dl.google.com/android/adt/<?cs var:sdk.linux64_bundle_download ?>"><?cs var:sdk.linux64_bundle_download ?></a>
339 <td><?cs var:sdk.linux64_bundle_bytes ?> bytes</td>
340 <td><?cs var:sdk.linux64_bundle_checksum ?></td>
345 <p class="table-caption"><strong>SDK Tools Only</strong></p>
346 <table class="download">
351 <th>MD5 Checksum</th>
354 <td rowspan="2">Windows<br>32 & 64-bit</td>
356 <a onclick="return onDownload(this)" href="http://dl.google.com/android/<?cs var:sdk.win_download
357 ?>"><?cs var:sdk.win_download ?></a>
359 <td><?cs var:sdk.win_bytes ?> bytes</td>
360 <td><?cs var:sdk.win_checksum ?></td>
363 <!-- blank TD from Windows rowspan -->
365 <a onclick="return onDownload(this)" id="win-tools" href="http://dl.google.com/android/<?cs
366 var:sdk.win_installer
367 ?>"><?cs var:sdk.win_installer ?></a> (Recommended)
369 <td><?cs var:sdk.win_installer_bytes ?> bytes</td>
370 <td><?cs var:sdk.win_installer_checksum ?></td>
373 <td><nobr>Mac OS X</nobr><br>32 & 64-bit</td>
375 <a onclick="return onDownload(this)" id="mac-tools" href="http://dl.google.com/android/<?cs
377 ?>"><?cs var:sdk.mac_download ?></a>
379 <td><?cs var:sdk.mac_bytes ?> bytes</td>
380 <td><?cs var:sdk.mac_checksum ?></td>
383 <td>Linux<br>32 & 64-bit</td>
385 <a onclick="return onDownload(this)" id="linux-tools" href="http://dl.google.com/android/<?cs
386 var:sdk.linux_download
387 ?>"><?cs var:sdk.linux_download ?></a>
389 <td><?cs var:sdk.linux_bytes ?> bytes</td>
390 <td><?cs var:sdk.linux_checksum ?></td>
394 </div><!-- end pax -->
398 </div><!-- end col-13 for lower-half content -->
404 if (location.hash == "#Requirements") {
406 } else if (location.hash == "#ExistingIDE") {
414 if (navigator.appVersion.indexOf("Win")!=-1) {
416 bundlename = '#win-bundle';
417 $toolslink = $('#win-tools');
418 } else if (navigator.appVersion.indexOf("Mac")!=-1) {
420 bundlename = '#mac-bundle';
421 $toolslink = $('#mac-tools');
422 } else if (navigator.appVersion.indexOf("Linux")!=-1) {
424 bundlename = '#linux-bundle';
425 $toolslink = $('#linux-tools');
429 $('#not-supported').hide();
431 /* set up primary adt download button */
432 $('#download-bundle-button').show();
433 $('#download-bundle-button').append("Download Eclipse ADT <br/><span class='small'>with the Android SDK for " + os + "</span>");
434 $('#download-bundle-button').click(function() {return onDownload(this,true,true);}).attr('href', bundlename);
436 /* set up sdk tools only button */
437 $('#download-tools-button').show();
438 $('#download-tools-button').append("Download the stand-alone Android SDK Tools for " + os);
439 $('#download-tools-button').click(function() {return onDownload(this,true);}).attr('href', $toolslink.attr('href'));
445 function onDownload(link, button, bundle) {
447 /* set text for download button */
449 $("#downloadForRealz").html($(link).text());
451 $("#downloadForRealz").html("Download " + $(link).text());
454 /* if it's a bundle, show the 32/64-bit picker */
456 $("#downloadForRealz").attr('bundle','true');
457 if ($("#downloadForRealz").text().indexOf("Mac") == -1) {
458 $("p#bitpicker").show();
460 /* mac is always 64 bit, so set it checked */
461 $("p#bitpicker input[value=64]").attr('checked', true);
463 /* save link name until the bit version is chosen */
464 $("#downloadForRealz").attr('name',$(link).attr('href'));
466 /* if not using bundle, set download button to ignore bitpicker and set url */
467 $("#downloadForRealz").attr('bundle','false');
468 $("#downloadForRealz").attr('href',$(link).attr('href'));
469 /* set picker checked as a fake default */
470 $("p#bitpicker input[value=64]").attr('checked', true);
471 $("a#next-link").html("Setting Up an Existing IDE").attr('href',toRoot + 'sdk/installing/index.html');
474 $("#tos").fadeIn('fast');
475 $("#landing").fadeOut('fast');
477 location.hash = "download";
482 function onAgreeChecked() {
483 /* verify that the TOS is agreed and a bit version is chosen */
484 if ($("input#agree").is(":checked") && $("#bitpicker input:checked").length) {
486 /* if downloading the bundle */
487 if ($("#downloadForRealz").attr('bundle')) {
488 /* construct the name of the link we want based on the bit version */
489 linkId = $("a#downloadForRealz").attr("name") + $("#bitpicker input:checked").val();
490 /* set the real url for download */
491 $("a#downloadForRealz").attr("href", $(linkId).attr("href"));
494 /* reveal the download button */
495 $("a#downloadForRealz").removeClass('disabled');
497 $("a#downloadForRealz").addClass('disabled');
501 function onDownloadForRealz(link) {
502 if ($("input#agree").is(':checked') && $("#bitpicker input:checked").length) {
503 $("div.sdk-terms").slideUp();
504 $("h1#tos-header").text('Now redirecting to the install instructions...');
505 $("#sdk-terms-form,.sdk-terms-intro").fadeOut('slow', function() {
506 setTimeout(function() {
507 if ($("#downloadForRealz").attr('bundle') == 'true') {
508 // User downloaded the ADT Bundle
509 window.location = "/sdk/installing/index.html?pkg=adt";
511 // User downloaded the SDK Tools
512 window.location = "/sdk/installing/index.html?pkg=tools";
516 _gaq.push(['_trackEvent', 'SDK', 'ADT and Tools', $("#downloadForRealz").html()]);
519 $("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#258AAF"}, 200,
520 function() {$("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#222"}, 200)}
526 $(window).hashchange( function(){
527 if (location.hash == "") {
536 </div><!-- end the wrapper used for relative/absolute positions -->
537 <?cs # THIS DIV WAS OPENED IN INDEX.JD ?>
542 <?cs else ?> <?cs # end if online ?>
544 <?cs if:sdk.preview ?><?cs # it's preview offline docs ?>
545 <p>Welcome developers! We are pleased to provide you with a preview SDK for the upcoming
546 Android 3.0 release, to give you a head-start on developing applications for it.
550 href="<?cs var:toroot ?>sdk/preview/start.html">Getting Started</a> document for more information
551 about how to set up the preview SDK and get started.</p>
552 <style type="text/css">
553 .non-preview { display:none; }
556 <?cs else ?><?cs # it's normal offline docs ?>
558 <?cs ######## HERE IS THE JD DOC CONTENT FOR OFFLINE ######### ?>
559 <?cs call:tag_list(root.descr) ?>
560 <style type="text/css">
561 body .offline { display:block; }
562 body .online { display:none; }
569 <?cs /if ?> <?cs # end if/else online ?>
571 <?cs /if ?> <?cs # end if/else NDK ?>
573 <?cs /if ?> <?cs # end if/else redirect ?>
576 </div><!-- end jd-content -->
578 <?cs if:!sdk.redirect ?>
579 <?cs include:"footer.cs" ?>
582 </div><!-- end g-unit -->
584 <?cs include:"trailer.cs" ?>
586 <!-- Start of Tag -->
587 <script type="text/javascript">
588 var axel = Math.random() + "";
589 var a = axel * 10000000000000;
590 document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
593 <iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>