blob: 7d961b783ad16ba75557af2498ad9e75bb29376c [file] [log] [blame]
page.title=Creating Wearable Apps
page.image=wear/images/notifications.png
@jd:body
<div id="tb-wrapper">
<div id="tb">
<h2>Dependencies and Prerequisites</h2>
<ul>
<li>Android Studio 0.8 or later and Gradle 0.12 or later</li>
</ul>
</div>
</div>
<p>
Wearable apps run directly on the device, giving you access to hardware such as sensors and the
GPU. They are fundamentally the same as apps built for other devices using the Android SDK, but
differ greatly in design and usability and the amount of functionality provided.
These are the main differences between handheld and wearable apps:</p>
<ul>
<li>The system enforces a timeout period. If you are displaying an activity and user's don't
interact with it, the device sleeps. When it wakes back up, the Wear home screen is displayed
instead of your activity. If you need to show something persistent, create a notification in the
context stream instead.</li>
<li>Wearable apps are relatively small in size and functionality compared to handheld apps.
They contain only what makes sense on the wearable, which is usually a small
subset of the corresponding handheld app. In general, you should carry out operations on the
handheld when possible and send the results to the wearable.
</li>
<li>Users don't download apps directly onto the wearable. Instead, you bundle
the wearable app inside the handheld app. When users install the handheld app,
the system automatically installs the wearable app. However, for development
purposes, you can still install the wearable app directly to the wearable.</li>
<li><p>Wearable apps can access much of the standard Android APIs, but don't support
the following APIs:</p>
<ul>
<li>{@link android.webkit}</li>
<li>{@link android.print}</li>
<li>{@link android.app.backup}</li>
<li>{@link android.appwidget}</li>
<li>{@link android.hardware.usb}</li>
</ul>
<p>
You can check if a wearable supports a feature by calling
{@link android.content.pm.PackageManager#hasSystemFeature hasSystemFeature()}
before trying to use an API.</p>
</li>
</ul>
<p class="note"><b>Note:</b> We recommend using Android Studio for Android Wear development
as it provides project setup, library inclusion, and packaging conveniences that aren't available
in ADT. The rest of this training assumes you're using Android Studio.
</p>
<h2>Lessons</h2>
<dl>
<dt><a href="{@docRoot}training/wearables/apps/creating.html">Creating and Running a Wearable App</a></dt>
<dd>Learn how to create an Android Studio project that
contains both the wearable and handheld app modules and how to run the app on a device
or emulator.</dd>
<dt><a href="{@docRoot}training/wearables/apps/layouts.html">Creating Custom Layouts</a></dt>
<dd>Learn how to create and display custom layouts for notifications and
activities.</dd>
<dt><a href="{@docRoot}training/wearables/apps/voice.html">Adding Voice Capabilities</a></dt>
<dd>Learn how to launch an activity with a voice actions and how to start the
system speech recognizer app to obtain free-form voice input.</dd>
<dt><a href="{@docRoot}training/wearables/apps/packaging.html">Packaging Wearable Apps</a></dt>
<dd>Learn how to package a wearable app inside a
handheld app. This allows the system to install the wearable app automatically when
users install the companion handheld app from the Google Play store.</dd>
<dt><a href="{@docRoot}training/wearables/apps/bt-debugging.html">Debugging over Bluetooth</a></dt>
<dd>Learn how to debug your wearable over Bluetooth instead of USB.</dd>
</dl>