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