sdkpage.cs revision d0f655c8182de92cffaa59f0314c0c1d1d10d667
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/repository/<?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/repository/<?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/repository/<?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/repository/<?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/repository/<?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/repository/<?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/repository/<?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/repository/<?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>
154  <a onClick="return onDownload(this)"
155     href="http://dl.google.com/android/repository/<?cs var:ndk.linux32.legacy_download ?>"><?cs var:ndk.linux32.legacy_download ?></a>
156    </td>
157    <td><?cs var:ndk.linux32.legacy_bytes ?></td>
158    <td><?cs var:ndk.linux32.legacy_checksum ?></td>
159  </tr> -->
160  <tr>
161    <td>Linux 64-bit (x86)</td>
162    <td>
163  <a onClick="return onDownload(this)"
164     href="http://dl.google.com/android/repository/<?cs var:ndk.linux64_download ?>"><?cs var:ndk.linux64_download ?></a>
165    </td>
166    <td><?cs var:ndk.linux64_bytes ?></td>
167    <td><?cs var:ndk.linux64_checksum ?></td>
168  </tr>
169  <!--  <tr>
170    <td>
171  <a onClick="return onDownload(this)"
172     href="http://dl.google.com/android/repository/<?cs var:ndk.linux64.legacy_download ?>"><?cs var:ndk.linux64.legacy_download ?></a>
173    </td>
174    <td><?cs var:ndk.linux64.legacy_bytes ?></td>
175    <td><?cs var:ndk.linux64.legacy_checksum ?></td>
176  </tr> -->
177
178  </table>
179
180  <?cs ########  HERE IS THE JD DOC CONTENT ######### ?>
181  <?cs call:tag_list(root.descr) ?>
182
183
184
185<script>
186  function onDownload(link) {
187
188    $("#downloadForRealz").html("Download " + $(link).text());
189    $("#downloadForRealz").attr('href',$(link).attr('href'));
190
191    $("#tos").fadeIn('slow');
192
193    location.hash = "download";
194    return false;
195  }
196
197
198  function onAgreeChecked() {
199    if ($("input#agree").is(":checked")) {
200      $("a#downloadForRealz").removeClass('disabled');
201    } else {
202      $("a#downloadForRealz").addClass('disabled');
203    }
204  }
205
206  function onDownloadNdkForRealz(link) {
207    if ($("input#agree").is(':checked')) {
208      $("#tos").fadeOut('slow');
209
210      $('html, body').animate({
211          scrollTop: $("#Installing").offset().top
212        }, 800, function() {
213          $("#Installing").click();
214      });
215
216      return true;
217    } else {
218      $("label#agreeLabel").parent().stop().animate({color: "#258AAF"}, 200,
219        function() {$("label#agreeLabel").parent().stop().animate({color: "#222"}, 200)}
220      );
221      return false;
222    }
223  }
224
225  $(window).hashchange( function(){
226    if (location.hash == "") {
227      location.reload();
228    }
229  });
230
231</script>
232
233  <?cs else ?>
234<?cs # end if NDK ...
235#
236#
237#
238#
239#
240#
241# the following is for the SDK
242#
243# (nested in if/else redirect and if/else NDK)
244#
245#
246#
247#
248?>
249  <?cs if:android.whichdoc == "online" ?>
250
251
252<?cs ########  HERE IS THE JD DOC CONTENT FOR ONLINE ######### ?>
253<?cs call:tag_list(root.descr) ?>
254
255
256
257
258<div class="pax col-13 online" style="margin:0;">
259
260
261<h3>SDK Tools Only</h3>
262
263<p>If you prefer to use a different IDE or run the tools from the
264command line or with build scripts, you can instead download the stand-alone Android SDK Tools.
265These packages provide the basic SDK tools for app development, without an IDE.
266Also see the <a href="<?cs var:toroot ?>tools/sdk/tools-notes.html">SDK tools release notes</a>.</p>
267
268  <table class="download">
269    <tr>
270      <th>Platform</th>
271      <th>Package</th>
272      <th>Size</th>
273      <th>SHA-1 Checksum</th>
274  </tr>
275  <tr>
276    <td rowspan="2">Windows</td>
277    <td>
278  <a onclick="return onDownload(this)" id="win-tools" href="http://dl.google.com/android/<?cs
279var:sdk.win_installer
280?>"><?cs var:sdk.win_installer ?></a> (Recommended)
281    </td>
282    <td><?cs var:sdk.win_installer_bytes ?> bytes</td>
283    <td><?cs var:sdk.win_installer_checksum ?></td>
284  </tr>
285  <tr>
286    <!-- blank TD from Windows rowspan -->
287    <td>
288  <a onclick="return onDownload(this)" href="http://dl.google.com/android/<?cs var:sdk.win_download
289?>"><?cs var:sdk.win_download ?></a>
290    </td>
291    <td><?cs var:sdk.win_bytes ?> bytes</td>
292    <td><?cs var:sdk.win_checksum ?></td>
293  </tr>
294  <tr>
295    <td><nobr>Mac OS X</nobr></td>
296    <td>
297  <a onclick="return onDownload(this)" id="mac-tools" href="http://dl.google.com/android/<?cs
298var:sdk.mac_download
299?>"><?cs var:sdk.mac_download ?></a>
300    </td>
301    <td><?cs var:sdk.mac_bytes ?> bytes</td>
302    <td><?cs var:sdk.mac_checksum ?></td>
303  </tr>
304  <tr>
305    <td>Linux</td>
306    <td>
307  <a onclick="return onDownload(this)" id="linux-tools" href="http://dl.google.com/android/<?cs
308var:sdk.linux_download
309?>"><?cs var:sdk.linux_download ?></a>
310    </td>
311    <td><?cs var:sdk.linux_bytes ?> bytes</td>
312    <td><?cs var:sdk.linux_checksum ?></td>
313  </tr>
314  </table>
315
316
317
318<h3>All Android Studio Packages</h3>
319
320<p>Select a specific Android Studio package for your platform. Also see the
321<a href="<?cs var:toroot ?>tools/revisions/studio.html">Android Studio release notes</a>.</p>
322
323  <table class="download">
324    <tr>
325      <th>Platform</th>
326      <th>Package</th>
327      <th>Size</th>
328      <th>SHA-1 Checksum</th>
329  </tr>
330
331  <tr>
332    <td rowspan="3">Windows</td>
333    <td>
334  <a onclick="return onDownload(this)" id="win-bundle"
335    href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_exe_download ?>"
336    ><?cs var:studio.win_bundle_exe_download ?></a><br>(Recommended)
337    </td>
338    <td><?cs var:studio.win_bundle_exe_bytes ?> bytes</td>
339    <td><?cs var:studio.win_bundle_exe_checksum ?></td>
340  </tr>
341
342  <tr>
343    <!-- blank TD from Windows rowspan -->
344    <td>
345  <a onclick="return onDownload(this)"
346    href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.win_notools_exe_download ?>"
347    ><?cs var:studio.win_notools_exe_download ?></a><br>(No SDK tools included)
348    </td>
349    <td><?cs var:studio.win_notools_exe_bytes ?> bytes</td>
350    <td><?cs var:studio.win_notools_exe_checksum ?></td>
351  </tr>
352
353  <tr>
354    <!-- blank TD from Windows rowspan -->
355    <td>
356  <a onclick="return onDownload(this)"
357    href="https://dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_download ?>"
358    ><?cs var:studio.win_bundle_download ?></a>
359    </td>
360    <td><?cs var:studio.win_bundle_bytes ?> bytes</td>
361    <td><?cs var:studio.win_bundle_checksum ?></td>
362  </tr>
363
364  <tr>
365    <td><nobr>Mac OS X</nobr></td>
366    <td>
367  <a onclick="return onDownload(this)" id="mac-bundle"
368    href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.mac_bundle_download ?>"
369    ><?cs var:studio.mac_bundle_download ?></a>
370    </td>
371    <td><?cs var:studio.mac_bundle_bytes ?> bytes</td>
372    <td><?cs var:studio.mac_bundle_checksum ?></td>
373  </tr>
374
375  <tr>
376    <td>Linux</td>
377    <td>
378  <a onclick="return onDownload(this)" id="linux-bundle"
379    href="https://dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.linux_bundle_download ?>"
380    ><?cs var:studio.linux_bundle_download ?></a>
381    </td>
382    <td><?cs var:studio.linux_bundle_bytes ?> bytes</td>
383    <td><?cs var:studio.linux_bundle_checksum ?></td>
384  </tr>
385  </table>
386
387
388
389</div><!-- end pax -->
390
391
392
393</div><!-- end col-13 for lower-half content -->
394
395
396
397
398<script>
399  if (location.hash == "#Requirements") {
400    $('.reqs').show();
401  } else if (location.hash == "#ExistingIDE") {
402	 $('.ide').show();
403  }
404
405  var os;
406  var bundlename;
407  var $toolslink;
408
409  if (navigator.appVersion.indexOf("Mobile")!=-1) {
410    // Do nothing for any "mobile" user agent
411  } else if (navigator.appVersion.indexOf("Win")!=-1) {
412    os = "Windows";
413    bundlename = '#win-bundle';
414    $toolslink = $('#win-tools');
415  } else if (navigator.appVersion.indexOf("Mac")!=-1) {
416    os = "Mac";
417    bundlename = '#mac-bundle';
418    $toolslink = $('#mac-tools');
419  } else if (navigator.appVersion.indexOf("Linux")!=-1 && navigator.appVersion.indexOf("Android")==-1) {
420    os = "Linux";
421    bundlename = '#linux-bundle';
422    $toolslink = $('#linux-tools');
423  }
424
425  if (os != undefined) {
426    $('#not-supported').hide();
427
428    /* set up primary Android Studio download button */
429    $('.download-bundle-button').append(" <br/><span class='small'>for " + os + "</span>");
430    $('.download-bundle-button').click(function() {return onDownload(this,true,true);}).attr('href', bundlename);
431  }
432
433
434  function onDownload(link, button, bundle) {
435
436    /* set text for download button */
437    if (button) {
438      $("#downloadForRealz").html($(link).text());
439    } else {
440      $("#downloadForRealz").html("Download " + $(link).text());
441    }
442
443    $("#downloadForRealz").attr('bundle', bundle);
444    $("a#downloadForRealz").attr("name", $(link).attr('href'));
445
446    $("#tos").show();
447    $("#landing").hide();
448
449    location.hash = "top";
450    return false;
451  }
452
453
454  function onAgreeChecked() {
455    /* verify that the TOS is agreed */
456    if ($("input#agree").is(":checked")) {
457
458      /* if downloading the bundle */
459      if ($("#downloadForRealz").attr('bundle')) {
460        /* construct the name of the link we want */
461        linkId = $("a#downloadForRealz").attr("name");
462        /* set the real url for download */
463        $("a#downloadForRealz").attr("href", $(linkId).attr("href"));
464      } else {
465        $("a#downloadForRealz").attr("href", $("a#downloadForRealz").attr("name"));
466      }
467
468      /* reveal the download button */
469      $("a#downloadForRealz").removeClass('disabled');
470    } else {
471      $("a#downloadForRealz").addClass('disabled');
472    }
473  }
474
475  function onDownloadForRealz(link) {
476    if ($("input#agree").is(':checked')) {
477      location.hash = "";
478      location.hash = "top";
479      $("div.sdk-terms").slideUp();
480      $("h1#tos-header").text('Now downloading...');
481      $(".sdk-terms-intro").text('You\'ll be redirected to the install instructions in a moment.');
482      $("#sdk-terms-form").fadeOut('slow', function() {
483        setTimeout(function() {
484          if ($("#downloadForRealz").attr('bundle') == 'true') {
485            // User downloaded the studio Bundle
486            window.location = "/sdk/installing/index.html?pkg=studio";
487          } else {
488            // User downloaded the SDK Tools
489            window.location = "/sdk/installing/index.html?pkg=tools";
490          }
491        }, 3000);
492      });
493      ga('send', 'event', 'SDK', 'IDE and Tools', $("#downloadForRealz").html());
494      return true;
495    } else {
496      $("label#agreeLabel").parent().stop().animate({color: "#258AAF"}, 200,
497        function() {$("label#agreeLabel").parent().stop().animate({color: "#222"}, 200)}
498      );
499      return false;
500    }
501  }
502
503  $(window).hashchange( function(){
504    if (location.hash == "") {
505      location.reload();
506    }
507  });
508
509</script>
510
511
512
513</div><!-- end the wrapper used for relative/absolute positions  -->
514<?cs # THIS DIV WAS OPENED IN INDEX.JD ?>
515
516
517
518
519  <?cs else ?> <?cs # end if online ?>
520
521    <?cs if:sdk.preview ?><?cs # it's preview offline docs ?>
522      <p>Welcome developers! We are pleased to provide you with a preview SDK for the upcoming
523    Android 3.0 release, to give you a head-start on developing applications for it.
524    </p>
525
526      <p>See the <a
527    href="<?cs var:toroot ?>sdk/preview/start.html">Getting Started</a> document for more information
528    about how to set up the preview SDK and get started.</p>
529    <style type="text/css">
530    .non-preview { display:none; }
531    </style>
532
533    <?cs else ?><?cs # it's normal offline docs ?>
534
535      <?cs ########  HERE IS THE JD DOC CONTENT FOR OFFLINE ######### ?>
536      <?cs call:tag_list(root.descr) ?>
537      <style type="text/css">
538        body .offline { display:block; }
539        body .online { display:none; }
540      </style>
541      <script>
542        $('.reqs').show();
543      </script>
544    <?cs /if ?>
545
546  <?cs /if ?> <?cs # end if/else online ?>
547
548<?cs /if ?> <?cs # end if/else NDK ?>
549
550<?cs /if ?> <?cs # end if/else redirect ?>
551
552
553</div><!-- end jd-content -->
554
555<?cs if:!sdk.redirect ?>
556<?cs include:"footer.cs" ?>
557<?cs /if ?>
558
559</div><!-- end g-unit -->
560
561<?cs include:"trailer.cs" ?>
562
563<!-- Start of Tag -->
564<script type="text/javascript">
565var axel = Math.random() + "";
566var a = axel * 10000000000000;
567document.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>');
568</script>
569<noscript>
570<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>
571</noscript>
572<!-- End of Tag -->
573</body>
574</html>
575
576
577
578