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