blob: f21f07d58e83c4ff7019a7c6fff11efd555f390c [file] [log] [blame]
David Friedman53b7c752015-04-10 18:19:45 -07001<?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)"
David Friedmand0f655c2016-03-09 12:31:17 -080089 href="http://dl.google.com/android/repository/<?cs var:ndk.win32_download ?>"><?cs var:ndk.win32_download ?></a>
David Friedman53b7c752015-04-10 18:19:45 -070090 </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)"
David Friedmand0f655c2016-03-09 12:31:17 -080097 href="http://dl.google.com/android/repository/<?cs var:ndk.win32.legacy_download ?>"><?cs var:ndk.win32.legacy_download ?></a>
David Friedman53b7c752015-04-10 18:19:45 -070098 </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)"
David Friedmand0f655c2016-03-09 12:31:17 -0800106 href="http://dl.google.com/android/repository/<?cs var:ndk.win64_download ?>"><?cs var:ndk.win64_download ?></a>
David Friedman53b7c752015-04-10 18:19:45 -0700107 </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)"
David Friedmand0f655c2016-03-09 12:31:17 -0800114 href="http://dl.google.com/android/repository/<?cs var:ndk.win64.legacy_download ?>"><?cs var:ndk.win64.legacy_download ?></a>
David Friedman53b7c752015-04-10 18:19:45 -0700115 </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)"
David Friedmand0f655c2016-03-09 12:31:17 -0800123 href="http://dl.google.com/android/repository/<?cs var:ndk.mac32_download ?>"><?cs var:ndk.mac32_download ?></a>
David Friedman53b7c752015-04-10 18:19:45 -0700124 </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)"
David Friedmand0f655c2016-03-09 12:31:17 -0800131 href="http://dl.google.com/android/repository/<?cs var:ndk.mac32.legacy_download ?>"><?cs var:ndk.mac32.legacy_download ?></a>
David Friedman53b7c752015-04-10 18:19:45 -0700132 </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)"
David Friedmand0f655c2016-03-09 12:31:17 -0800139 href="http://dl.google.com/android/repository/<?cs var:ndk.mac64_download ?>"><?cs var:ndk.mac64_download ?></a>
David Friedman53b7c752015-04-10 18:19:45 -0700140 </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)"
David Friedmand0f655c2016-03-09 12:31:17 -0800147 href="http://dl.google.com/android/repository/<?cs var:ndk.mac64.legacy_download ?>"><?cs var:ndk.mac64.legacy_download ?></a>
David Friedman53b7c752015-04-10 18:19:45 -0700148 </td>
149 <td><?cs var:ndk.mac64.legacy_bytes ?></td>
150 <td><?cs var:ndk.mac64.legacy_checksum ?></td>
151 </tr> -->
David Friedman53b7c752015-04-10 18:19:45 -0700152 <!-- <tr>
153 <td>
154 <a onClick="return onDownload(this)"
David Friedmand0f655c2016-03-09 12:31:17 -0800155 href="http://dl.google.com/android/repository/<?cs var:ndk.linux32.legacy_download ?>"><?cs var:ndk.linux32.legacy_download ?></a>
David Friedman53b7c752015-04-10 18:19:45 -0700156 </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)"
David Friedmand0f655c2016-03-09 12:31:17 -0800164 href="http://dl.google.com/android/repository/<?cs var:ndk.linux64_download ?>"><?cs var:ndk.linux64_download ?></a>
David Friedman53b7c752015-04-10 18:19:45 -0700165 </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)"
David Friedmand0f655c2016-03-09 12:31:17 -0800172 href="http://dl.google.com/android/repository/<?cs var:ndk.linux64.legacy_download ?>"><?cs var:ndk.linux64.legacy_download ?></a>
David Friedman53b7c752015-04-10 18:19:45 -0700173 </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>
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
198 function onAgreeChecked() {
199 if ($("input#agree").is(":checked")) {
200 $("a#downloadForRealz").removeClass('disabled');
201 } else {
202 $("a#downloadForRealz").addClass('disabled');
203 }
204 }
205
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
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
264command line or with build scripts, you can instead download the stand-alone Android SDK Tools.
265These packages provide the basic SDK tools for app development, without an IDE.
266Also 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
279var: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
298var: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
308var: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
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
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
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
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">
565var axel = Math.random() + "";
566var a = axel * 10000000000000;
567document.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