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