blob: d98146ad181a6a6948a457c7e3ce29439065415e [file] [log] [blame]
Dirk Dougherty541b4942014-02-14 18:31:53 -08001<?cs include:"doctype.cs" ?>
2<?cs include:"macros.cs" ?>
3<html<?cs if:devsite ?> devsite<?cs /if ?>>
4<?cs if:sdk.redirect ?>
5 <head>
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 ?>">
10 </head>
11<?cs else ?>
12 <?cs include:"head_tag.cs" ?>
13<?cs /if ?>
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">
19 <a name="top"></a>
20<?cs include:"header.cs" ?>
21
22
23<div <?cs if:fullpage
24?><?cs else
25?>class="col-13" id="doc-col"<?cs /if ?> >
26
27<?cs if:sdk.redirect ?>
28
29<div class="g-unit">
30 <div id="jd-content">
31 <p>Redirecting to
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 ?>
37 </a> ...</p>
38
39<?cs else ?>
40<?cs # else, if NOT redirect ...
41#
42#
43# The following is for SDK/NDK pages
44#
45#
46?>
47
48<?cs if:header.hide ?><?cs else ?>
49<h1 itemprop="name"><?cs var:page.title ?></h1>
50<?cs /if ?>
51 <div id="jd-content" itemprop="description">
52
53<?cs if:sdk.not_latest_version ?>
54 <div class="special">
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>
57 </div>
58<?cs /if ?>
59
60
61<?cs if:ndk ?>
62<?cs #
63#
64#
65#
66#
67#
68#
69# the following is for the NDK
70#
71# (nested in if/else redirect)
72#
73#
74#
75#
76?>
77
78 <table class="download" id="download-table">
79 <tr>
80 <th>Platform</th>
81 <th>Package</th>
82 <th style="white-space:nowrap">Size (Bytes)</th>
83 <th>MD5 Checksum</th>
84 </tr>
85 <tr>
86 <td>Windows 32-bit</td>
87 <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>
90 </td>
91 <td><?cs var:ndk.win32_bytes ?></td>
92 <td><?cs var:ndk.win32_checksum ?></td>
93 </tr>
94 <!-- <tr>
95 <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>
98 </td>
99 <td><?cs var:ndk.win32.legacy_bytes ?></td>
100 <td><?cs var:ndk.win32.legacy_checksum ?></td>
101 </tr> -->
102 <tr>
103 <td>Windows 64-bit</td>
104 <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>
107 </td>
108 <td><?cs var:ndk.win64_bytes ?></td>
109 <td><?cs var:ndk.win64_checksum ?></td>
110 </tr>
111 <!-- <tr>
112 <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>
115 </td>
116 <td><?cs var:ndk.win64.legacy_bytes ?></td>
117 <td><?cs var:ndk.win64.legacy_checksum ?></td>
118 </tr> -->
119 <tr>
120 <td>Mac OS X 32-bit</td>
121 <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>
124 </td>
125 <td><?cs var:ndk.mac32_bytes ?></td>
126 <td><?cs var:ndk.mac32_checksum ?></td>
127 </tr>
128 <!-- <tr>
129 <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>
132 </td>
133 <td><?cs var:ndk.mac32.legacy_bytes ?></td>
134 <td><?cs var:ndk.mac32.legacy_checksum ?></td>
135 </tr> -->
136 <td>Mac OS X 64-bit</td>
137 <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>
140 </td>
141 <td><?cs var:ndk.mac64_bytes ?></td>
142 <td><?cs var:ndk.mac64_checksum ?></td>
143 </tr>
144 <!-- <tr>
145 <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>
148 </td>
149 <td><?cs var:ndk.mac64.legacy_bytes ?></td>
150 <td><?cs var:ndk.mac64.legacy_checksum ?></td>
151 </tr> -->
152 <tr>
153 <td>Linux 32-bit (x86)</td>
154 <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>
157 </td>
158 <td><?cs var:ndk.linux32_bytes ?></td>
159 <td><?cs var:ndk.linux32_checksum ?></td>
160 </tr>
161 <!-- <tr>
162 <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>
165 </td>
166 <td><?cs var:ndk.linux32.legacy_bytes ?></td>
167 <td><?cs var:ndk.linux32.legacy_checksum ?></td>
168 </tr> -->
169 <tr>
170 <td>Linux 64-bit (x86)</td>
171 <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>
174 </td>
175 <td><?cs var:ndk.linux64_bytes ?></td>
176 <td><?cs var:ndk.linux64_checksum ?></td>
177 </tr>
178 <!-- <tr>
179 <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>
182 </td>
183 <td><?cs var:ndk.linux64.legacy_bytes ?></td>
184 <td><?cs var:ndk.linux64.legacy_checksum ?></td>
185 </tr> -->
186 <tr>
187 <th>Additional Download</th>
188 <th>Package</th>
189 <th style="white-space:nowrap">Size (Bytes)</th>
190 <th>MD5 Checksum</th>
191 </tr>
192 <tr>
193 <td>STL debug info</td>
194 <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>
197 </td>
198 <td><?cs var:ndk.debug_info_bytes ?></td>
199 <td><?cs var:ndk.debug_info_checksum ?></td>
200 </tr>
201 </table>
202
203 <?cs ######## HERE IS THE JD DOC CONTENT ######### ?>
204 <?cs call:tag_list(root.descr) ?>
205
206
207
208<script>
209 function onDownload(link) {
210
211 $("#downloadForRealz").html("Download " + $(link).text());
212 $("#downloadForRealz").attr('href',$(link).attr('href'));
213
214 $("#tos").fadeIn('slow');
215
216 location.hash = "download";
217 return false;
218 }
219
220
221 function onAgreeChecked() {
222 if ($("input#agree").is(":checked")) {
223 $("a#downloadForRealz").removeClass('disabled');
224 } else {
225 $("a#downloadForRealz").addClass('disabled');
226 }
227 }
228
229 function onDownloadNdkForRealz(link) {
230 if ($("input#agree").is(':checked')) {
231 $("#tos").fadeOut('slow');
232
233 $('html, body').animate({
234 scrollTop: $("#Installing").offset().top
235 }, 800, function() {
236 $("#Installing").click();
237 });
238
239 return true;
240 } else {
241 $("label#agreeLabel").parent().stop().animate({color: "#258AAF"}, 200,
242 function() {$("label#agreeLabel").parent().stop().animate({color: "#222"}, 200)}
243 );
244 return false;
245 }
246 }
247
248 $(window).hashchange( function(){
249 if (location.hash == "") {
250 location.reload();
251 }
252 });
253
254</script>
255
256 <?cs else ?>
257<?cs # end if NDK ...
258#
259#
260#
261#
262#
263#
264# the following is for the SDK
265#
266# (nested in if/else redirect and if/else NDK)
267#
268#
269#
270#
271?>
272 <?cs if:android.whichdoc == "online" ?>
273
274
275<?cs ######## HERE IS THE JD DOC CONTENT FOR ONLINE ######### ?>
276<?cs call:tag_list(root.descr) ?>
277
278
279
280
281<h4><a href='' class="expandable"
282 onclick="toggleExpandable(this,'.pax');hideExpandable('.myide,.reqs');return false;"
283 >DOWNLOAD FOR OTHER PLATFORMS</a></h4>
284
285
286<div class="pax col-13 online" style="display:none;margin:0;">
287
288
289<p class="table-caption"><strong>ADT Bundle</strong></p>
290 <table class="download">
291 <tr>
292 <th>Platform</th>
293 <th>Package</th>
294 <th>Size</th>
295 <th>MD5 Checksum</th>
296 </tr>
297 <tr>
298 <td>Windows 32-bit</td>
299 <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>
302 </td>
303 <td><?cs var:sdk.win32_bundle_bytes ?> bytes</td>
304 <td><?cs var:sdk.win32_bundle_checksum ?></td>
305 </tr>
306 <tr>
307 <td>Windows 64-bit</td>
308 <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>
311 </td>
312 <td><?cs var:sdk.win64_bundle_bytes ?> bytes</td>
313 <td><?cs var:sdk.win64_bundle_checksum ?></td>
314 </tr>
315 <tr>
316 <td><nobr>Mac OS X 64-bit</nobr></td>
317 <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>
320 </td>
321 <td><?cs var:sdk.mac64_bundle_bytes ?> bytes</td>
322 <td><?cs var:sdk.mac64_bundle_checksum ?></td>
323 </tr>
324 <tr>
325 <td>Linux 32-bit</td>
326 <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>
329 </td>
330 <td><?cs var:sdk.linux32_bundle_bytes ?> bytes</td>
331 <td><?cs var:sdk.linux32_bundle_checksum ?></td>
332 </tr>
333 <tr>
334 <td>Linux 64-bit</td>
335 <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>
338 </td>
339 <td><?cs var:sdk.linux64_bundle_bytes ?> bytes</td>
340 <td><?cs var:sdk.linux64_bundle_checksum ?></td>
341 </tr>
342 </table>
343
344
345<p class="table-caption"><strong>SDK Tools Only</strong></p>
346 <table class="download">
347 <tr>
348 <th>Platform</th>
349 <th>Package</th>
350 <th>Size</th>
351 <th>MD5 Checksum</th>
352 </tr>
353 <tr>
354 <td rowspan="2">Windows<br>32 &amp; 64-bit</td>
355 <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>
358 </td>
359 <td><?cs var:sdk.win_bytes ?> bytes</td>
360 <td><?cs var:sdk.win_checksum ?></td>
361 </tr>
362 <tr>
363 <!-- blank TD from Windows rowspan -->
364 <td>
365 <a onclick="return onDownload(this)" id="win-tools" href="http://dl.google.com/android/<?cs
366var:sdk.win_installer
367?>"><?cs var:sdk.win_installer ?></a> (Recommended)
368 </td>
369 <td><?cs var:sdk.win_installer_bytes ?> bytes</td>
370 <td><?cs var:sdk.win_installer_checksum ?></td>
371 </tr>
372 <tr>
373 <td><nobr>Mac OS X</nobr><br>32 &amp; 64-bit</td>
374 <td>
375 <a onclick="return onDownload(this)" id="mac-tools" href="http://dl.google.com/android/<?cs
376var:sdk.mac_download
377?>"><?cs var:sdk.mac_download ?></a>
378 </td>
379 <td><?cs var:sdk.mac_bytes ?> bytes</td>
380 <td><?cs var:sdk.mac_checksum ?></td>
381 </tr>
382 <tr>
383 <td>Linux<br>32 &amp; 64-bit</td>
384 <td>
385 <a onclick="return onDownload(this)" id="linux-tools" href="http://dl.google.com/android/<?cs
386var:sdk.linux_download
387?>"><?cs var:sdk.linux_download ?></a>
388 </td>
389 <td><?cs var:sdk.linux_bytes ?> bytes</td>
390 <td><?cs var:sdk.linux_checksum ?></td>
391 </tr>
392 </table>
393
394</div><!-- end pax -->
395
396
397
398</div><!-- end col-13 for lower-half content -->
399
400
401
402
403<script>
404 if (location.hash == "#Requirements") {
405 $('.reqs').show();
406 } else if (location.hash == "#ExistingIDE") {
407 $('.ide').show();
408 }
409
410 var os;
411 var bundlename;
412 var $toolslink;
413
414 if (navigator.appVersion.indexOf("Win")!=-1) {
415 os = "Windows";
416 bundlename = '#win-bundle';
417 $toolslink = $('#win-tools');
418 } else if (navigator.appVersion.indexOf("Mac")!=-1) {
419 os = "Mac";
420 bundlename = '#mac-bundle';
421 $toolslink = $('#mac-tools');
422 } else if (navigator.appVersion.indexOf("Linux")!=-1) {
423 os = "Linux";
424 bundlename = '#linux-bundle';
425 $toolslink = $('#linux-tools');
426 }
427
428 if (os) {
429 $('#not-supported').hide();
430
431 /* set up primary adt download button */
432 $('#download-bundle-button').show();
433 $('#download-bundle-button').append("Download the SDK <br/><span class='small'>ADT Bundle for " + os + "</span>");
434 $('#download-bundle-button').click(function() {return onDownload(this,true,true);}).attr('href', bundlename);
435
436 /* set up sdk tools only button */
437 $('#download-tools-button').show();
438 $('#download-tools-button').append("Download the SDK Tools for " + os);
439 $('#download-tools-button').click(function() {return onDownload(this,true);}).attr('href', $toolslink.attr('href'));
440 } else {
441 $('.pax').show();
442 }
443
444
445 function onDownload(link, button, bundle) {
446
447 /* set text for download button */
448 if (button) {
449 $("#downloadForRealz").html($(link).text());
450 } else {
451 $("#downloadForRealz").html("Download " + $(link).text());
452 }
453
454 /* if it's a bundle, show the 32/64-bit picker */
455 if (bundle) {
456 $("#downloadForRealz").attr('bundle','true');
457 if ($("#downloadForRealz").text().indexOf("Mac") == -1) {
458 $("p#bitpicker").show();
459 } else {
460 /* mac is always 64 bit, so set it checked */
461 $("p#bitpicker input[value=64]").attr('checked', true);
462 }
463 /* save link name until the bit version is chosen */
464 $("#downloadForRealz").attr('name',$(link).attr('href'));
465 } else {
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');
472 }
473
474 $("#tos").fadeIn('fast');
475 $("#landing").fadeOut('fast');
476
477 location.hash = "download";
478 return false;
479 }
480
481
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) {
485
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"));
492 }
493
494 /* reveal the download button */
495 $("a#downloadForRealz").removeClass('disabled');
496 } else {
497 $("a#downloadForRealz").addClass('disabled');
498 }
499 }
500
501 function onDownloadForRealz(link) {
502 if ($("input#agree").is(':checked') && $("#bitpicker input:checked").length) {
503 $("div.sdk-terms").slideUp();
504 $("#sdk-terms-form,.sdk-terms-intro").fadeOut('slow');
505 $("#next-steps").fadeIn('slow');
506 $("h1#tos-header").text('Get Ready to Code!');
507 _gaq.push(['_trackEvent', 'SDK', 'ADT and Tools', $("#downloadForRealz").html()]);
508 return true;
509 } else {
510 $("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#258AAF"}, 200,
511 function() {$("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#222"}, 200)}
512 );
513 return false;
514 }
515 }
516
517 $(window).hashchange( function(){
518 if (location.hash == "") {
519 location.reload();
520 }
521 });
522
523</script>
524
525
526
527</div><!-- end the wrapper used for relative/absolute positions -->
528<?cs # THIS DIV WAS OPENED IN INDEX.JD ?>
529
530
531
532
533 <?cs else ?> <?cs # end if online ?>
534
535 <?cs if:sdk.preview ?><?cs # it's preview offline docs ?>
536 <p>Welcome developers! We are pleased to provide you with a preview SDK for the upcoming
537 Android 3.0 release, to give you a head-start on developing applications for it.
538 </p>
539
540 <p>See the <a
541 href="<?cs var:toroot ?>sdk/preview/start.html">Getting Started</a> document for more information
542 about how to set up the preview SDK and get started.</p>
543 <style type="text/css">
544 .non-preview { display:none; }
545 </style>
546
547 <?cs else ?><?cs # it's normal offline docs ?>
548
549 <?cs ######## HERE IS THE JD DOC CONTENT FOR OFFLINE ######### ?>
550 <?cs call:tag_list(root.descr) ?>
551 <style type="text/css">
552 body .offline { display:block; }
553 body .online { display:none; }
554 </style>
555 <script>
556 $('.reqs').show();
557 </script>
558 <?cs /if ?>
559
560 <?cs /if ?> <?cs # end if/else online ?>
561
562<?cs /if ?> <?cs # end if/else NDK ?>
563
564<?cs /if ?> <?cs # end if/else redirect ?>
565
566
567</div><!-- end jd-content -->
568
569<?cs if:!sdk.redirect ?>
570<?cs include:"footer.cs" ?>
571<?cs /if ?>
572
573</div><!-- end g-unit -->
574
575<?cs include:"trailer.cs" ?>
576
577<!-- Start of Tag -->
578<script type="text/javascript">
579var axel = Math.random() + "";
580var a = axel * 10000000000000;
581document.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>');
582</script>
583<noscript>
584<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>
585</noscript>
586<!-- End of Tag -->
587</body>
588</html>
589
590
591