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>
onDownload(link)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 
onAgreeChecked()210   function onAgreeChecked() {
211     if ($("input#agree").is(":checked")) {
212       $("a#downloadForRealz").removeClass('disabled');
213     } else {
214       $("a#downloadForRealz").addClass('disabled');
215     }
216   }
217 
onDownloadNdkForRealz(link)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 
function()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
276 command line or with build scripts, you can instead download the stand-alone Android SDK Tools.
277 These packages provide the basic SDK tools for app development, without an IDE.
278 Also 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
291 var: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
310 var: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
320 var: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 
onDownload(link, button, bundle)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 
onAgreeChecked()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 
onDownloadForRealz(link)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 
function()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">
576 var axel = Math.random() + "";
577 var a = axel * 10000000000000;
578 document.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