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/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="http://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="http://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="http://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="http://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="http://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="http://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="http://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="http://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="http://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="http://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="http://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>
onDownload(link)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 
onAgreeChecked()209   function onAgreeChecked() {
210     if ($("input#agree").is(":checked")) {
211       $("a#downloadForRealz").removeClass('disabled');
212     } else {
213       $("a#downloadForRealz").addClass('disabled');
214     }
215   }
216 
onDownloadNdkForRealz(link)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 
function()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
275 command line or with build scripts, you can instead download the stand-alone Android SDK Tools.
276 These packages provide the basic SDK tools for app development, without an IDE.
277 Also 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="http://dl.google.com/android/<?cs
290 var: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="http://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="http://dl.google.com/android/<?cs
309 var: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="http://dl.google.com/android/<?cs
319 var: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)" 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)"
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)"
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)" 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)" 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 
onDownload(link, button, bundle)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     $("a#downloadForRealz").attr("name", $(link).attr('href'));
454 
455     $("#tos").show();
456     $("#landing").hide();
457 
458     location.hash = "top";
459     return false;
460   }
461 
462 
onAgreeChecked()463   function onAgreeChecked() {
464     /* verify that the TOS is agreed */
465     if ($("input#agree").is(":checked")) {
466 
467       /* if downloading the bundle */
468       if ($("#downloadForRealz").attr('bundle')) {
469         /* construct the name of the link we want */
470         linkId = $("a#downloadForRealz").attr("name");
471         /* set the real url for download */
472         $("a#downloadForRealz").attr("href", $(linkId).attr("href"));
473       } else {
474         $("a#downloadForRealz").attr("href", $("a#downloadForRealz").attr("name"));
475       }
476 
477       /* reveal the download button */
478       $("a#downloadForRealz").removeClass('disabled');
479     } else {
480       $("a#downloadForRealz").addClass('disabled');
481     }
482   }
483 
onDownloadForRealz(link)484   function onDownloadForRealz(link) {
485     if ($("input#agree").is(':checked')) {
486       location.hash = "";
487       location.hash = "top";
488       $("div.sdk-terms").slideUp();
489       $("h1#tos-header").text('Now downloading...');
490       $(".sdk-terms-intro").text('You\'ll be redirected to the install instructions in a moment.');
491       $("#sdk-terms-form").fadeOut('slow', function() {
492         setTimeout(function() {
493           if ($("#downloadForRealz").attr('bundle') == 'true') {
494             // User downloaded the studio Bundle
495             window.location = "/sdk/installing/index.html?pkg=studio";
496           } else {
497             // User downloaded the SDK Tools
498             window.location = "/sdk/installing/index.html?pkg=tools";
499           }
500         }, 3000);
501       });
502       ga('send', 'event', 'SDK', 'IDE and Tools', $("#downloadForRealz").html());
503       return true;
504     } else {
505       return false;
506     }
507   }
508 
function()509   $(window).hashchange( function(){
510     if (location.hash == "") {
511       location.reload();
512     }
513   });
514 
515 </script>
516 
517 
518 
519 </div><!-- end the wrapper used for relative/absolute positions  -->
520 <?cs # THIS DIV WAS OPENED IN INDEX.JD ?>
521 
522 
523 
524 
525   <?cs else ?> <?cs # end if online ?>
526 
527     <?cs if:sdk.preview ?><?cs # it's preview offline docs ?>
528       <p>Welcome developers! We are pleased to provide you with a preview SDK for the upcoming
529     Android 3.0 release, to give you a head-start on developing applications for it.
530     </p>
531 
532       <p>See the <a
533     href="<?cs var:toroot ?>sdk/preview/start.html">Getting Started</a> document for more information
534     about how to set up the preview SDK and get started.</p>
535     <style type="text/css">
536     .non-preview { display:none; }
537     </style>
538 
539     <?cs else ?><?cs # it's normal offline docs ?>
540 
541       <?cs ########  HERE IS THE JD DOC CONTENT FOR OFFLINE ######### ?>
542       <?cs call:tag_list(root.descr) ?>
543       <style type="text/css">
544         body .offline { display:block; }
545         body .online { display:none; }
546       </style>
547       <script>
548         $('.reqs').show();
549       </script>
550     <?cs /if ?>
551 
552   <?cs /if ?> <?cs # end if/else online ?>
553 
554 <?cs /if ?> <?cs # end if/else NDK ?>
555 
556 <?cs /if ?> <?cs # end if/else redirect ?>
557 
558 
559 </div><!-- end jd-content -->
560 
561 <?cs if:!sdk.redirect ?>
562 <?cs include:"footer.cs" ?>
563 <?cs /if ?>
564 
565 </div><!-- end g-unit -->
566 
567 <?cs include:"trailer.cs" ?>
568 
569 <!-- Start of Tag -->
570 <script type="text/javascript">
571 var axel = Math.random() + "";
572 var a = axel * 10000000000000;
573 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>');
574 </script>
575 <noscript>
576 <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>
577 </noscript>
578 <!-- End of Tag -->
579 </body>
580 </html>
581 
582 
583 
584