| <!DOCTYPE html> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <html> |
| <head> |
| |
| |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| <meta name="viewport" content="width=device-width" /> |
| |
| <meta name="Description" content="This document explains how to: This document assumes that you are already familiar with Java-based Android development. For more information on that topic, see the Android developer site . To install and configure the NDK, follow these steps: Eclipse …"> |
| <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> |
| <title>Setup | Android Developers</title> |
| |
| <!-- STYLESHEETS --> |
| <link rel="stylesheet" |
| href="//fonts.googleapis.com/css?family=Roboto+Condensed"> |
| <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold" |
| title="roboto"> |
| <link href="/assets/css/default.css?v=5" rel="stylesheet" type="text/css"> |
| |
| <!-- JAVASCRIPT --> |
| <script src="//www.google.com/jsapi" type="text/javascript"></script> |
| <script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script> |
| <script type="text/javascript"> |
| var toRoot = "/"; |
| var metaTags = []; |
| var devsite = false; |
| </script> |
| <script src="/assets/js/docs.js?v=3" type="text/javascript"></script> |
| |
| |
| |
| <script> |
| (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ |
| (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), |
| m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) |
| })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); |
| |
| ga('create', 'UA-5831155-1', 'android.com'); |
| ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'}); // New tracker); |
| ga('send', 'pageview'); |
| ga('universal.send', 'pageview'); // Send page view for new tracker. |
| </script> |
| |
| </head> |
| |
| <body class="gc-documentation develop guide" itemscope itemtype="http://schema.org/Article"> |
| |
| <a name="top"></a> |
| |
| <!-- dialog to prompt lang pref change when loaded from hardcoded URL |
| <div id="langMessage" style="display:none"> |
| <div> |
| <div class="lang en"> |
| <p>You requested a page in English, would you like to proceed with this language setting?</p> |
| </div> |
| <div class="lang es"> |
| <p>You requested a page in Spanish (Español), would you like to proceed with this language setting?</p> |
| </div> |
| <div class="lang ja"> |
| <p>You requested a page in Japanese (日本語), would you like to proceed with this language setting?</p> |
| </div> |
| <div class="lang ko"> |
| <p>You requested a page in Korean (한국어), would you like to proceed with this language setting?</p> |
| </div> |
| <div class="lang ru"> |
| <p>You requested a page in Russian (Русский), would you like to proceed with this language setting?</p> |
| </div> |
| <div class="lang zh-cn"> |
| <p>You requested a page in Simplified Chinese (简体中文), would you like to proceed with this language setting?</p> |
| </div> |
| <div class="lang zh-tw"> |
| <p>You requested a page in Traditional Chinese (繁體中文), would you like to proceed with this language setting?</p> |
| </div> |
| <a href="#" class="button yes" onclick="return false;"> |
| <span class="lang en">Yes</span> |
| <span class="lang es">Sí</span> |
| <span class="lang ja">Yes</span> |
| <span class="lang ko">Yes</span> |
| <span class="lang ru">Yes</span> |
| <span class="lang zh-cn">是的</span> |
| <span class="lang zh-tw">没有</span> |
| </a> |
| <a href="#" class="button" onclick="$('#langMessage').hide();return false;"> |
| <span class="lang en">No</span> |
| <span class="lang es">No</span> |
| <span class="lang ja">No</span> |
| <span class="lang ko">No</span> |
| <span class="lang ru">No</span> |
| <span class="lang zh-cn">没有</span> |
| <span class="lang zh-tw">没有</span> |
| </a> |
| </div> |
| </div> --> |
| |
| |
| <!-- Header --> |
| <div id="header-wrapper"> |
| <div id="header"> |
| |
| |
| |
| |
| <div class="wrap" id="header-wrap"> |
| <div class="col-3 logo"> |
| <a href="/index.html"> |
| <img src="/assets/images/dac_logo.png" |
| srcset="/assets/images/dac_logo@2x.png 2x" |
| width="123" height="25" alt="Android Developers" /> |
| </a> |
| <div class="btn-quicknav" id="btn-quicknav"> |
| <a href="#" class="arrow-inactive">Quicknav</a> |
| <a href="#" class="arrow-active">Quicknav</a> |
| </div> |
| </div> |
| |
| |
| |
| |
| |
| </div><!-- end header-wrap.wrap --> |
| </div><!-- end header --> |
| |
| |
| <!-- Secondary x-nav --> |
| <div id="nav-x"> |
| <div class="wrap" style="position:relative;z-index:1"> |
| |
| <ul class="nav-x col-9 develop" style="width:100%"> |
| <li class="guide"><a href="/ndk/guides/index.html"> |
| Guides</a></li> |
| <li class="reference"><a href="/ndk/reference/index.html"> |
| Reference</a></li> |
| <li class="samples"><a href="/ndk/samples/index.html"> |
| Samples</a></li> |
| <li class="downloads"><a href="/ndk/downloads/index.html"> |
| Downloads</a></li> |
| </li> |
| </ul> |
| </div> |
| </div> |
| |
| |
| <div id="searchResults" class="wrap" style="display:none;"> |
| <h2 id="searchTitle">Results</h2> |
| <div id="leftSearchControl" class="search-control">Loading...</div> |
| </div> |
| </div> <!--end header-wrapper --> |
| |
| <div id="sticky-header"> |
| <div> |
| <a class="logo" href="#top"></a> |
| <a class="top" href="#top"></a> |
| <ul class="breadcrumb"> |
| |
| <li class="current">Setup</li> |
| </ul> |
| </div> |
| </div> |
| |
| |
| |
| |
| <div class="wrap clearfix" id="body-content"> |
| <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement"> |
| <div id="devdoc-nav" class="scroll-pane"> |
| |
| |
| |
| <ul id="nav"> |
| <li><strong>NDK</strong> |
| <ul> |
| <li><a href="/ndk/guides/index.html"><span class="en">Getting Started</span></a> |
| <ul> |
| <li><a href="setup.html">Setup</a></li> |
| <li><a href="concepts.html">Concepts</a></li> |
| </ul></li> |
| <li><a href="/ndk/guides/build.html"><span class="en">Building</span></a> |
| <ul> |
| <li><a href="">ndk-build</a></li> |
| <li><a href="">Android.mk</a></li> |
| <li><a href="">Application.mk</a></li> |
| <li><a href="">Standalone Toolchain</a></li> |
| </ul></li> |
| <li><a href="/ndk/guides/debug.html"><span class="en">Debugging</span></a> |
| <ul> |
| <li><a href="">ndk-gdb</a></li> |
| <li><a href="">ndk-stack</a></li> |
| </ul></li> |
| <li><a href="/ndk/guides/arch.html"><span class="en">Architectures and CPUs</span></a> |
| <ul> |
| <li><a href="">ABI Management</a></li> |
| <li><a href="">Neon</a></li> |
| <li><a href="">Mips</a></li> |
| <li><a href="">x86</a></li> |
| <li><a href="">x86-64</a></li> |
| <li><a href="">CPU Features</a></li> |
| </ul></li> |
| <li><a href="/ndk/guides/libs.html"><span class="en">Libraries</span></a> |
| <ul> |
| <li><a href="">Stable APIs</a></li> |
| <li><a href="">C++ Support</a></li> |
| <li><a href="">Prebuilt Libraries</a></li> |
| </ul></li> |
| <li><a href="/ndk/guides/sample.html"><span class="en">Sample Walkthrough</span></a> |
| <ul> |
| <li><a href="">hello-jni</a></li> |
| <li><a href="">native-activity</a></li> |
| <li><a href="">Teapot</a></li> |
| </ul></li> |
| <li><a href="/ndk/guides/atomics.html"><span class="en">Atomics</span></a></li> |
| <li><a href="/ndk/guides/importing.html"><span class="en">Importing Modules</span></a></li> |
| <li><a href="/ndk/guides/depends.html"><span class="en">ndk-depends</span></a></li> |
| <li><a href="/ndk/guides/system.html"><span class="en">System Image Issues</span></a></li> |
| <li><a href="/ndk/guides/licenses.html"><span class="en">Licenses</span></a></li> |
| </ul></li> |
| <li><strong>Radiance</strong> |
| <ul> |
| <li><a href="/ndk/guides/null.html"><span class="en">Stub 1</span></a> |
| <ul> |
| <li><a href="">Stublet</a></li> |
| <li><a href="">Stublet</a></li> |
| </ul></li> |
| <li><a href="/ndk/guides/null.html"><span class="en">Stub 2, etc.</span></a> |
| <ul> |
| <li><a href="">Another Stublet</a></li> |
| <li><a href="">Another Stublet</a></li> |
| </ul></li> |
| </ul></li> |
| </ul> |
| |
| |
| <script type="text/javascript"> |
| <!-- |
| buildToggleLists(); |
| changeNavLang(getLangPref()); |
| //--> |
| </script> |
| |
| |
| |
| |
| </div> |
| </div> <!-- end side-nav --> |
| <script> |
| $(document).ready(function() { |
| scrollIntoView("devdoc-nav"); |
| }); |
| </script> |
| |
| |
| |
| |
| <div class="col-12" id="doc-col" > |
| |
| |
| |
| |
| |
| |
| |
| <h1 itemprop="name" >Setup</h1> |
| |
| |
| |
| |
| |
| |
| <div id="jd-content"> |
| |
| |
| <div class="jd-descr" itemprop="articleBody"> |
| <div id="qv-wrapper"> |
| <div id="qv"> |
| <h2>On this page</h2> |
| |
| <ol> |
| <li><a href="#install">Installation</a></li> |
| <li><a href="#configure">Configuring Eclipse</a></li> |
| <li><a href="#verify">Verification</a></li> |
| </ol> |
| </li> |
| </ol> |
| </div> |
| </div> |
| |
| |
| <div class="contents"> |
| <div class="textblock"><p>This document explains how to:</p> |
| <ul> |
| <li><a href="#install">Get</a> and install the NDK.</li> |
| <li><a href="#configure">Configure</a> your system and the Eclipse and the Android Development Tool |
| (ADT) for use with it.</li> |
| <li><a href="#verify">Verify</a>, using a simple sample, that everything is working as expected. |
| </li> |
| </ul> |
| <p>This document assumes that you are already familiar with Java-based Android development. For more |
| information on that topic, see the |
| <a href="/">Android developer site</a>.</p> |
| |
| <h2 id="install">Installation</h2> |
| <p>To install and configure the NDK, follow these steps:</p> |
| <ol type="1"> |
| <li>Get and install the <a href="/sdk/index.html">Android SDK</a>.if you |
| have not already done so.</li> |
| <li><a href="/tools/sdk/ndk/index.html">Download</a> and unzip the NDK, |
| making sure to download the correct version for your development platform. You may place the |
| unzipped directory anywhere on your local drive.</li> |
| <li>Update your <code>PATH</code> environment variable with the location of the directory that |
| contains the NDK.</li> |
| </ol> |
| |
| |
| <h2 id="configure">Configuring Eclipse</h2> |
| <p>Eclipse must know where the NDK is in order to use it when building your app. Follow these steps |
| to set the location of the NDK.</p> |
| <ol type="1"> |
| <li>Launch Eclipse, which is installed as part of the Android SDK.</li> |
| <li>Open <b>Window</b> > <b>Preferences</b>.</li> |
| <li>In the pane on the left side of the <i>Preferences</i> window, select <i>Android</i>. |
| The <i>Android</i> section expands, revealing a number of subsections.</li> |
| <li>Select <b>NDK</b>. In the pane on the right side of the <i>Preferences</i> window, browse to |
| the directory that contains the NDK.</li> |
| <li>Click <b>OK</b> to return to the <i>Package Explorer</i> display.</li> |
| </ol> |
| |
| <h2 id="verify">Verification</h2> |
| <h3>Eclipse</h3> |
| <p>To confirm that you have installed the NDK, set it up correctly, and properly configured Eclipse, |
| follow these steps:</p> |
| <ol type="1"> |
| <li>Import the hello-jni sample from <code><ndk>/samples/</code>, as you would any other Android |
| project.</li> |
| <li>In the <i>Project Explorer</i> pane, right-click the project name (<i>HelloJni</i>). A |
| context menu appears.</li> |
| <li>From the context menu, select <b>Android Tools</b> > <b>Add Native Support</b>. The |
| <i>Add Android Native Support</i> window appears.</li> |
| <li>Accept the default library name (“hello-jni”), and click <b>Finish</b>.</li> |
| <li>Build and execute the application.</li> |
| </ol> |
| <h3>Command line</h3> |
| <p>Follow these steps to build from the command line:</p> |
| <ol type="1"> |
| <li>Change to the root directory of your project.</li> |
| <li>Execute ndk-build to build the native component of your app. do this by |
| typing <code>ndk-build</code> at the command prompt.</li> |
| <li>Build and install your project as you would a regular Android app written in Java. For more |
| information, see |
| <a href="/tools/building/index.html">Building and Running</a> and |
| <a href="/tools/building/building-cmdline.html">Building and Running |
| from the Command Line</a>.</li> |
| </ol> |
| |
| <p>If you have successfully installed and configured the NDK, the screen on your target device looks |
| as shown in Figure 1.</p> |
| |
| <img src="./images/verification_screen.png" srcset="./images/verification_screen@2x.png 2x" alt="Output: Hello from JNI!" id="figure2" /> |
| |
| <p class="img-caption"> |
| <strong>Figure 1.</strong> Target-device screen after successful launch. |
| </p> |
| |
| </div> |
| |
| <div class="content-footer layout-content-row" |
| itemscope itemtype="http://schema.org/SiteNavigationElement"> |
| |
| <div class="paging-links layout-content-col col-10"> |
| |
| </div> |
| <div class="layout-content-col plus-container col-2" > |
| |
| <div class="g-plusone" data-size="medium"></div> |
| |
| </div> |
| |
| </div> |
| |
| </div> <!-- end jd-content --> |
| |
| <div id="footer" class="wrap" > |
| |
| |
| <div id="copyright"> |
| |
| Except as noted, this content is |
| licensed under <a href="http://creativecommons.org/licenses/by/2.5/"> |
| Creative Commons Attribution 2.5</a>. For details and |
| restrictions, see the <a href="/license.html">Content |
| License</a>. |
| </div> |
| |
| |
| <div id="footerlinks"> |
| |
| <p> |
| <a href="/about/index.html">About Android</a> | |
| <a href="/legal.html">Legal</a> | |
| <a href="/support.html">Support</a> |
| </p> |
| </div> |
| |
| </div> <!-- end footer --> |
| </div><!-- end doc-content --> |
| |
| </div> <!-- end body-content --> |
| |
| |
| |
| |
| |
| <script src="https://developer.android.com/ytblogger_lists_unified.js" type="text/javascript"></script> |
| <script src="/jd_lists_unified.js?v=8" type="text/javascript"></script> |
| <script src="/jd_extras.js?v=10" type="text/javascript"></script> |
| <script src="/jd_collections.js?v=10" type="text/javascript"></script> |
| <script src="/jd_tag_helpers.js?v=5" type="text/javascript"></script> |
| |
| </body> |
| </html> |
| |
| |
| |