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>SHA1 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>
onDownload(link)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 
onAgreeChecked()198   function onAgreeChecked() {
199     if ($("input#agree").is(":checked")) {
200       $("a#downloadForRealz").removeClass('disabled');
201     } else {
202       $("a#downloadForRealz").addClass('disabled');
203     }
204   }
205 
onDownloadNdkForRealz(link)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 
function()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
264 command line or with build scripts, you can instead download the stand-alone Android SDK Tools.
265 These packages provide the basic SDK tools for app development, without an IDE.
266 Also 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
279 var: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
298 var: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
308 var: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 
onDownload(link, button, bundle)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 
onAgreeChecked()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 
onDownloadForRealz(link)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 
function()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">
565 var axel = Math.random() + "";
566 var a = axel * 10000000000000;
567 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>');
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