{"id":125,"date":"2018-08-27T20:44:44","date_gmt":"2018-08-27T20:44:44","guid":{"rendered":"https:\/\/www.xlsoft.com\/doc\/kudan\/?page_id=125"},"modified":"2019-03-05T01:44:30","modified_gmt":"2019-03-05T01:44:30","slug":"android-getting-started","status":"publish","type":"page","link":"https:\/\/www.xlsoft.com\/doc\/kudan\/android-getting-started\/","title":{"rendered":"Android Getting Started"},"content":{"rendered":"<p>This tutorial will show you how to setup an augmented reality project on Android using KudanAR.<\/p>\n<hr>\n<h2>Download Kudan&#8217;s AR Framework for Android<\/h2>\n<p>To get started, the first thing you&#8217;ll need is Kudan&#8217;s AR framework. You can download it on our <a href=\"https:\/\/www.xlsoft.com\/en\/products\/kudan\/download.html\" target=\"_blank\">Download<\/a>\u00a0page.<\/p>\n<p style=\"text-align:center;\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.xlsoft.com\/doc\/kudan\/files\/2018\/09\/download_androidSDK-300x289.png\" alt=\"Download the Android SDK\" width=\"1154\" height=\"1111\" class=\"alignnone size-medium wp-image-413\" srcset=\"https:\/\/www.xlsoft.com\/doc\/kudan\/wp-content\/uploads\/2018\/09\/download_androidSDK-300x289.png 300w, https:\/\/www.xlsoft.com\/doc\/kudan\/wp-content\/uploads\/2018\/09\/download_androidSDK-768x739.png 768w, https:\/\/www.xlsoft.com\/doc\/kudan\/wp-content\/uploads\/2018\/09\/download_androidSDK-1024x986.png 1024w, https:\/\/www.xlsoft.com\/doc\/kudan\/wp-content\/uploads\/2018\/09\/download_androidSDK.png 1154w\" sizes=\"(max-width: 1154px) 100vw, 1154px\" \/><\/p>\n<h2>Create a new Android Studio project<\/h2>\n<p>Start up Android Studio and create a new project.<\/p>\n<p>Amongst other details, you&#8217;ll be required to enter an Application Name and Company Domain. These two fields together make up your Package Name. You must make sure that this is the same as the Application Identifier associated with your API Key. This will either be the Application Identifier you used when generating a free API Key, or, if you are using the <a href=\"https:\/\/www.xlsoft.com\/doc\/kudan\/development-license-keys\/\">Development License Key<\/a>, simply <code>com.xlsoft.kudanar<\/code>.<\/p>\n<p>Once you&#8217;ve made sure your [Package Name] is correct, select a save location, click next and choose a basic activity.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.xlsoft.com\/doc\/kudan\/files\/2018\/09\/create_android_project-300x181.png\" alt=\"Create a new Android Studio Project\" width=\"1074\" height=\"648\" class=\"alignnone size-medium wp-image-416\" srcset=\"https:\/\/www.xlsoft.com\/doc\/kudan\/wp-content\/uploads\/2018\/09\/create_android_project-300x181.png 300w, https:\/\/www.xlsoft.com\/doc\/kudan\/wp-content\/uploads\/2018\/09\/create_android_project-768x463.png 768w, https:\/\/www.xlsoft.com\/doc\/kudan\/wp-content\/uploads\/2018\/09\/create_android_project-1024x618.png 1024w, https:\/\/www.xlsoft.com\/doc\/kudan\/wp-content\/uploads\/2018\/09\/create_android_project.png 1074w\" sizes=\"(max-width: 1074px) 100vw, 1074px\" \/><\/p>\n<h2>Import Kudan&#8217;s AR Framework to the project<\/h2>\n<p>Import the .aar package to your project by going to (File -> New -> New Module&#8230;) and selecting Import .JAR\/.AAR package. Navigate to your newly downloaded KudanAR.aar file and open it. Name the subproject &#8216;KudanAR&#8217;.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.xlsoft.com\/doc\/kudan\/files\/2018\/09\/f7608b1-android_import.gif\" alt=\"\" width=\"1450\" height=\"994\" class=\"alignnone size-full wp-image-751\" \/><\/p>\n<h2>Add Kudan&#8217;s module to the project<\/h2>\n<p>Add module folder into settings.gradle and sync gradle.<\/p>\n<div class=\"su-tabs su-tabs-style-default su-tabs-mobile-stack\" data-active=\"1\" data-scroll-offset=\"0\" data-anchor-in-url=\"no\"><div class=\"su-tabs-nav\"><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">settings.gradle<\/span><\/div><div class=\"su-tabs-panes\"><div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"settings.gradle\">[code lang=&#8221;Java&#8221;]include &#8216;:app&#8217;, &#8216;:KudanAR'[\/code]<\/div><\/div><\/div>\n<h2>Add KudanAR as a module dependency<\/h2>\n<p>Go to (File -> Project Structure&#8230;), select your app module, click the dependencies tab, click the plus in the lower left and select Module Dependancy to add KudanAR as a dependancy to your project.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.xlsoft.com\/doc\/kudan\/files\/2018\/09\/8a664fd-kudanAR-1.gif\" alt=\"Add KudanAR as a module dependency\" width=\"1452\" height=\"998\" class=\"alignnone size-full wp-image-758\" \/><\/p>\n<h2>Add permissions and settings to your Android manifest<\/h2>\n<p>Add the required permissions to the manifest file. If you are building for Android 6.0 and above you will need to include a permissions request for the camera before opening your ARActivity. Click <a href=\"https:\/\/developer.android.com\/training\/permissions\/requesting.html\" rel=\"noopener\" target=\"_blank\">here<\/a> for more information about handling permissions.<\/p>\n<p>Add the configChanges and screenOrientation options to all of the activities that will display AR content.<\/p>\n<div class=\"su-tabs su-tabs-style-default su-tabs-mobile-stack\" data-active=\"1\" data-scroll-offset=\"0\" data-anchor-in-url=\"no\"><div class=\"su-tabs-nav\"><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">AndroidManifest.xml<\/span><\/div><div class=\"su-tabs-panes\"><div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"AndroidManifest.xml\">\n[code lang=&#8221;XML&#8221;]&lt;uses-permission android:name=&quot;android.permission.CAMERA&quot; \/&gt;<br \/>\n&lt;uses-permission android:name=&quot;android.permission.INTERNET&quot; \/&gt;<br \/>\n&lt;uses-permission android:name=&quot;android.permission.ACCESS_NETWORK_STATE&quot; \/&gt;<br \/>\n&lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot; \/&gt;<br \/>\n&lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; \/&gt;<br \/>\n&lt;uses-permission android:name=&quot;android.permission.READ_PHONE_STATE&quot; \/&gt;<\/p>\n<p>&lt;activity android:name=&quot;.MainActivity&quot;<br \/>\n&#8230;<br \/>\nandroid:configChanges=&quot;orientation|screenSize&quot;<br \/>\nandroid:screenOrientation=&quot;fullSensor&quot;&gt;<br \/>\n   &#8230;<br \/>\n &lt;\/activity&gt;<br \/>\n[\/code]<\/div><\/div><\/div>\n<h2>Adjust Gradle settings<\/h2>\n<p>Add the following <code>noCompress<\/code> block to the <code>app<\/code> module&#8217;s <code>build.gradle<\/code>.<br \/>This prevents Android Studio compressing important Kudan assets.<\/p>\n<div class=\"su-tabs su-tabs-style-default su-tabs-mobile-stack\" data-active=\"1\" data-scroll-offset=\"0\" data-anchor-in-url=\"no\"><div class=\"su-tabs-nav\"><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">Kotlin<\/span><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">Java<\/span><\/div><div class=\"su-tabs-panes\"><div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"Kotlin\">\n[code lang=&#8221;Java&#8221;]android<br \/>\n{<br \/>\n&#8230;<br \/>\n    aaptOptions<br \/>\n    {<br \/>\n       noCompress &#8216;KARMarker&#8217;<br \/>\n       noCompress &#8216;armodel&#8217;<br \/>\n    }<br \/>\n}[\/code]<\/div>\n<div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"Java\">\n[code lang=&#8221;Java&#8221;]android<br \/>\n{<br \/>\n&#8230;<br \/>\n    aaptOptions<br \/>\n    {<br \/>\n       noCompress &#8216;KARMarker&#8217;<br \/>\n       noCompress &#8216;armodel&#8217;<br \/>\n    }<br \/>\n}[\/code]<\/div><\/div><\/div>\n<h2>Add ARAPI key to activity<\/h2>\n<p>Open your <code>MainActivity<\/code> and change it to the following:<\/p>\n<p><strong>MainActivity<\/strong><\/p>\n<div class=\"su-tabs su-tabs-style-default su-tabs-mobile-stack\" data-active=\"1\" data-scroll-offset=\"0\" data-anchor-in-url=\"no\"><div class=\"su-tabs-nav\"><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">Kotlin<\/span><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">Java<\/span><\/div><div class=\"su-tabs-panes\"><div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"Kotlin\">\n[code lang=&#8221;Java&#8221;]package com.xlsoft.kudanar<\/p>\n<p>import android.support.v7.app.AppCompatActivity<br \/>\nimport android.os.Bundle<br \/>\nimport eu.kudan.kudan.ARAPIKey;<\/p>\n<p>class MainActivity : AppCompatActivity() {<\/p>\n<p>    override fun onCreate(savedInstanceState: Bundle?) {<br \/>\n        super.onCreate(savedInstanceState)<\/p>\n<p>        \/\/ setContentView(R.layout.activity_main)<\/p>\n<p>        val key = ARAPIKey.getInstance()<br \/>\n        key.setAPIKey(&quot;&lt;Put API Key here&gt;&quot;)<br \/>\n    }<br \/>\n}[\/code]<\/div>\n<div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"Java\">\n[code lang=&#8221;Java&#8221;]package eu.kudan.gettingstarted;<\/p>\n<p>import android.support.v7.app.AppCompatActivity;<br \/>\nimport android.os.Bundle;<\/p>\n<p>import eu.kudan.kudan.ARAPIKey;<\/p>\n<p>public class MainActivity extends AppCompatActivity {<\/p>\n<p>    @Override<br \/>\n    protected void onCreate(Bundle savedInstanceState) {<br \/>\n        super.onCreate(savedInstanceState);<\/p>\n<p>      \t\/\/ Comment this out for the time being unless you plan to create UI elements<br \/>\n        \/\/setContentView(R.layout.activity_main);<\/p>\n<p>        ARAPIKey key = ARAPIKey.getInstance();<br \/>\n        key.setAPIKey(&quot;&lt;Put API Key here&gt;&quot;);<br \/>\n    }<br \/>\n}[\/code]<\/div><\/div><\/div>\n<p>Find the API Key for your corresponding Package Name:<\/p>\n<ul>\n<li>If using your own, this will be the key you generated on the <a href=\"https:\/\/www.xlsoft.com\/en\/products\/kudan\/download.html\" target=\"_blank\">website<\/a>.<\/li>\n<li>If using the <code>com.xlsoft.kudanar<\/code> development Package Name, you can use the Development License Key. Note that while this key dos not display a Watermark, it cannot be used to upload your app to the app store. To publish your app, you will need to generate a free key on the website (see above), or purchase a license.<\/li>\n<\/ul>\n<h2>Set up your ARActivity<\/h2>\n<p>Make sure your Main Activity imports and extends <code>MainActivity<\/code>.<\/p>\n<p><strong>MainActivity<\/strong><\/p>\n<div class=\"su-tabs su-tabs-style-default su-tabs-mobile-stack\" data-active=\"1\" data-scroll-offset=\"0\" data-anchor-in-url=\"no\"><div class=\"su-tabs-nav\"><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">Kotlin<\/span><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">Java<\/span><\/div><div class=\"su-tabs-panes\"><div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"Kotlin\">\n[code lang=&#8221;Java&#8221;]&#8230;<br \/>\nimport android.support.v7.app.AppCompatActivity<br \/>\nimport android.os.Bundle<br \/>\nimport eu.kudan.kudan.ARAPIKey;<br \/>\nimport eu.kudan.kudan.ARActivity;<\/p>\n<p>class MainActivity : ARActivity() {<br \/>\n    &#8230;<br \/>\n}[\/code]<\/div>\n<div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"Java\">\n[code lang=&#8221;Java&#8221;]&#8230;<br \/>\nimport eu.kudan.kudan.ARActivity;<\/p>\n<p>public class MainActivity extends ARActivity {<br \/>\n  &#8230;<br \/>\n}[\/code]<\/div><\/div><\/div>\n<p>This will allow you to implement the <code>setup<\/code> method in your Activity. The <code>setup<\/code> method is called when the <code>ARActivity<\/code> first loads. For example:<\/p>\n<div class=\"su-tabs su-tabs-style-default su-tabs-mobile-stack\" data-active=\"1\" data-scroll-offset=\"0\" data-anchor-in-url=\"no\"><div class=\"su-tabs-nav\"><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">Kotlin<\/span><span class=\"\" data-url=\"\" data-target=\"blank\" tabindex=\"0\" role=\"button\">Java<\/span><\/div><div class=\"su-tabs-panes\"><div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"Kotlin\">\n[code lang=&#8221;Java&#8221;]override fun setup() {<br \/>\n    super.setup()<\/p>\n<p>    \/\/ AR Content to be set up here<br \/>\n}[\/code]<\/div>\n<div class=\"su-tabs-pane su-u-clearfix su-u-trim\" data-title=\"Java\">\n[code lang=&#8221;Java&#8221;]import eu.kudan.kudan.ARActivity;<\/p>\n<p>public class MainActivity extends ARActivity<br \/>\n{<br \/>\n    @Override<br \/>\n    public void setup()<br \/>\n    {<br \/>\n        super.setup();<\/p>\n<p>        \/\/ AR Content to be set up here<br \/>\n    }<br \/>\n}<br \/>\n[\/code]<\/div><\/div><\/div>\n<p>If you changed your Main Activity to look like the above, you can build and run your app. You should see a camera stream displaying on your screen, but you can&#8217;t detect or track anything just yet. We&#8217;ll change that in the next tutorial.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial will show you how to setup an augmented reality project on Android using KudanAR. Download Kudan&#8217;s AR Framework for Android To get started, the first thing you&#8217;ll need is Kudan&#8217;s AR framework. You can download it on our Download\u00a0page. Create a new Android Studio project Start up Android Studio and create a new &#8230; <a title=\"Android Getting Started\" class=\"read-more\" href=\"https:\/\/www.xlsoft.com\/doc\/kudan\/android-getting-started\/\">Read more<span class=\"screen-reader-text\">Android Getting Started<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"bekko_page_header":""},"_links":{"self":[{"href":"https:\/\/www.xlsoft.com\/doc\/kudan\/wp-json\/wp\/v2\/pages\/125"}],"collection":[{"href":"https:\/\/www.xlsoft.com\/doc\/kudan\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.xlsoft.com\/doc\/kudan\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.xlsoft.com\/doc\/kudan\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xlsoft.com\/doc\/kudan\/wp-json\/wp\/v2\/comments?post=125"}],"version-history":[{"count":17,"href":"https:\/\/www.xlsoft.com\/doc\/kudan\/wp-json\/wp\/v2\/pages\/125\/revisions"}],"predecessor-version":[{"id":2257,"href":"https:\/\/www.xlsoft.com\/doc\/kudan\/wp-json\/wp\/v2\/pages\/125\/revisions\/2257"}],"wp:attachment":[{"href":"https:\/\/www.xlsoft.com\/doc\/kudan\/wp-json\/wp\/v2\/media?parent=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}