sdkpage.cs revision 95948b88ec17e5b0f5b9cdcc43b08989cec2a34a
1<?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  >VIEW ALL DOWNLOADS AND SIZES</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.version ?>/<?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.version ?>/<?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.version ?>/<?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.version ?>/<?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.version ?>/<?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 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);
435
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'));
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      $("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";
510          } else {
511            // User downloaded the SDK Tools
512            window.location = "/sdk/installing/index.html?pkg=tools";
513          }
514        }, 500);
515      });
516      _gaq.push(['_trackEvent', 'SDK', 'ADT and Tools', $("#downloadForRealz").html()]);
517      return true;
518    } else {
519      $("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#258AAF"}, 200,
520        function() {$("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#222"}, 200)}
521      );
522      return false;
523    }
524  }
525
526  $(window).hashchange( function(){
527    if (location.hash == "") {
528      location.reload();
529    }
530  });
531
532</script>
533
534
535
536</div><!-- end the wrapper used for relative/absolute positions  -->
537<?cs # THIS DIV WAS OPENED IN INDEX.JD ?>
538
539
540
541
542  <?cs else ?> <?cs # end if online ?>
543
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.
547    </p>
548
549      <p>See the <a
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; }
554    </style>
555
556    <?cs else ?><?cs # it's normal offline docs ?>
557
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; }
563      </style>
564      <script>
565        $('.reqs').show();
566      </script>
567    <?cs /if ?>
568
569  <?cs /if ?> <?cs # end if/else online ?>
570
571<?cs /if ?> <?cs # end if/else NDK ?>
572
573<?cs /if ?> <?cs # end if/else redirect ?>
574
575
576</div><!-- end jd-content -->
577
578<?cs if:!sdk.redirect ?>
579<?cs include:"footer.cs" ?>
580<?cs /if ?>
581
582</div><!-- end g-unit -->
583
584<?cs include:"trailer.cs" ?>
585
586<!-- Start of Tag -->
587<script type="text/javascript">
588var axel = Math.random() + "";
589var a = axel * 10000000000000;
590document.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>');
591</script>
592<noscript>
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>
594</noscript>
595<!-- End of Tag -->
596</body>
597</html>
598
599
600
601