blob: 90763877056ff0a50d3edb29701e7d670c261878 [file] [log] [blame]
smain@google.com5fea5df2016-03-07 18:43:21 -08001<?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