Merge "docs: manifest merger updates" into lmp-docs
diff --git a/core/java/android/text/style/TtsSpan.java b/core/java/android/text/style/TtsSpan.java
index 342a183..1f296db 100644
--- a/core/java/android/text/style/TtsSpan.java
+++ b/core/java/android/text/style/TtsSpan.java
@@ -165,7 +165,7 @@
 
     /**
      * The text associated with this span is a series of characters that have to
-     * be read verbatim. The engine will attempt to ready out any character like
+     * be read verbatim. The engine will attempt to read out any character like
      * punctuation but excluding whitespace. {@link #ARG_VERBATIM} is required.
      * Also accepts the arguments {@link #ARG_GENDER},
      * {@link #ARG_ANIMACY}, {@link #ARG_MULTIPLICITY} and {@link #ARG_CASE}.
diff --git a/docs/html-intl/intl/es/index.jd b/docs/html-intl/intl/es/index.jd
new file mode 100644
index 0000000..3c63b11
--- /dev/null
+++ b/docs/html-intl/intl/es/index.jd
@@ -0,0 +1,93 @@
+fullpage=true
+page.viewport_width=970
+excludeFromSuggestions=true
+page.metaDescription=El sitio oficial para los desarrolladores de Android. Proporciona el SDK de Android y la documentación para los diseñadores y desarrolladores de aplicaciones.
+page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3f61-WpRguHq-aNjtF7xJjMTSi79as" />
+
+@jd:body
+
+<div class="home-new-carousel-1">
+  <div class="fullscreen-carousel-content">
+    <div class="vcenter">
+      <div class="wrap clearfix">
+
+        <div class="static resource-flow-layout wrap col-16">
+          <div class="resource resource-card resource-card-18x6">
+
+      <div class="landing-section-header">
+            <div class="col-10"><img src="{@docRoot}images/home/l-hero_2x.png" srcset="{@docRoot}images/home/l-hero.png 1x, {@docRoot}images/home/l-hero_2x.png 2x" width="510" style="margin:20px 30px 0 30px"></div>
+            <div class="col-5" style=" margin-top:70px ">
+            <h3 stye="font-weight:300;">Android 5.0 Lollipop</h3>
+            <p>La actualización 5.0 de Android agrega una variedad de nuevas características para sus aplicaciones, como notificaciones en la pantalla de bloqueo, una nueva API de cámara, OpenGL ES 3.1, una nueva interfaz llamada "Material design", y mucho más.</p>
+            <a href="{@docRoot}about/versions/lollipop.html" class="landing-button landing-primary">Más información</a>
+            </div>
+          </div>
+          </div>
+        </div>
+       <h2>&nbsp;</h2>
+        <div style="margin-top:20px;height:115px" class="resource-widget resource-flow-layout wrap col-16
+        no-section" data-query="collection:index/primary" data-resourcestyle="card"
+        data-sortorder="-timestamp" data-maxresults="3" data-cardsizes="6x2,6x2,6x2"></div> <!-- end .resource-widget -->
+      </div> <!-- end .wrap -->
+    </div> <!-- end .vcenter -->
+  </div> <!-- end .fullscreen-carousel-content -->
+</div> <!-- end .fullscreen-carousel -->
+
+<div class="actions-bar" style="margin-top:20px">
+  <div class="wrap">
+    <div class="actions">
+      <div><a href="{@docRoot}sdk/index.html">Obtener el SDK</a></div>
+      <div><a href="{@docRoot}samples/index.html">Examinar muestras</a></div>
+      <div><a href="//www.youtube.com/user/androiddevelopers">Mirar videos</a></div>
+      <div><a href="{@docRoot}distribute/googleplay/developer-console.html">Administrar tus aplicaciones</a></div>
+    </div><!-- end .actions -->
+  </div><!-- end .wrap -->
+</div><!-- end .actions-bar -->
+
+
+
+<div class="landing-rest-of-page">
+  <div class="landing-section">
+    <div class="wrap">
+      <div class="landing-section-header">
+
+            <div class="landing-h1" style="margin-top:0px">Creado para un mundo de múltiples pantallas</div>
+        <div class="landing-subhead" style="margin-top: 20px;">
+          Android se ejecuta en cientos de millones de dispositivos de todo el mundo, <br>
+          y ahora es compatible con estos innovadores factores de forma.
+        </div>
+      </div>
+      <div class="landing-body" style="margin-top: 50px;">
+        <div class="landing-breakout cols">
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/wear-wordmark.png"> <img src="{@docRoot}images/home/wear.png">
+              <p class="landing-small">
+                Proporciona información dinámica para tus usuarios, cuando la necesiten.
+            </p>
+            <p class="landing-small">
+              <a href="{@docRoot}wear/index.html">Obtener información sobre Android Wear</a>
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/tv-wordmark.png"> <img src="{@docRoot}images/home/tv.png">
+              <p class="landing-small">
+                Crea aplicaciones para televisores y dale vida a tus contenidos.
+              </p>
+            <p class="landing-small">
+              <a href="{@docRoot}tv/index.html">Obtener información sobre Android TV</a>
+
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/auto-wordmark.png"> <img src="{@docRoot}images/home/auto.png">
+              <p class="landing-small">
+                Extiende tus aplicaciones de música para los sistemas de entretenimiento para automóviles.
+             </p>
+            <p class="landing-small">
+              <a href="{@docRoot}auto/index.html">Más información sobre Android Auto</a>
+            </p>
+          </div>
+        </div>
+      </div>
+    </div>  <!-- end .wrap -->
+  </div> <!-- end .landing-section -->
\ No newline at end of file
diff --git a/docs/html-intl/intl/ja/index.jd b/docs/html-intl/intl/ja/index.jd
new file mode 100644
index 0000000..e0153fa
--- /dev/null
+++ b/docs/html-intl/intl/ja/index.jd
@@ -0,0 +1,93 @@
+fullpage=true
+page.viewport_width=970
+excludeFromSuggestions=true
+page.metaDescription=Android デベロッパー向け公式サイトアプリのデベロッパーおよびデザイナー向け Android SDK とドキュメンテーションを提供します。
+page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3f61-WpRguHq-aNjtF7xJjMTSi79as" />
+
+@jd:body
+
+<div class="home-new-carousel-1">
+  <div class="fullscreen-carousel-content">
+    <div class="vcenter">
+      <div class="wrap clearfix">
+
+        <div class="static resource-flow-layout wrap col-16">
+          <div class="resource resource-card resource-card-18x6">
+
+      <div class="landing-section-header">
+            <div class="col-10"><img src="{@docRoot}images/home/l-hero_2x.png" srcset="{@docRoot}images/home/l-hero.png 1x, {@docRoot}images/home/l-hero_2x.png 2x" width="510" style="margin:20px 30px 0 30px"></div>
+            <div class="col-5" style=" margin-top:70px ">
+            <h3 stye="font-weight:300;">Android 5.0 Lollipop</h3>
+            <p>Android 5.0 アップデートでは、ロック画面での通知、新しいカメラ API、OpenGL ES 3.1、新たなマテリアル デザイン インターフェースなど、ご使用のアプリにさまざまな新しい機能を提供します。</p>
+            <a href="{@docRoot}about/versions/lollipop.html" class="landing-button landing-primary">詳細を見る</a>
+            </div>
+          </div>
+          </div>
+        </div>
+       <h2>&nbsp;</h2>
+        <div style="margin-top:20px;height:115px" class="resource-widget resource-flow-layout wrap col-16
+        no-section" data-query="collection:index/primary" data-resourcestyle="card"
+        data-sortorder="-timestamp" data-maxresults="3" data-cardsizes="6x2,6x2,6x2"></div> <!-- end .resource-widget -->
+      </div> <!-- end .wrap -->
+    </div> <!-- end .vcenter -->
+  </div> <!-- end .fullscreen-carousel-content -->
+</div> <!-- end .fullscreen-carousel -->
+
+<div class="actions-bar" style="margin-top:20px">
+  <div class="wrap">
+    <div class="actions">
+      <div><a href="{@docRoot}sdk/index.html">SDK を入手する</a></div>
+      <div><a href="{@docRoot}samples/index.html">サンプルを見る</a></div>
+      <div><a href="//www.youtube.com/user/androiddevelopers">ビデオを見る</a></div>
+      <div><a href="{@docRoot}distribute/googleplay/developer-console.html">アプリを管理する</a></div>
+    </div><!-- end .actions -->
+  </div><!-- end .wrap -->
+</div><!-- end .actions-bar -->
+
+
+
+<div class="landing-rest-of-page">
+  <div class="landing-section">
+    <div class="wrap">
+      <div class="landing-section-header">
+
+            <div class="landing-h1" style="margin-top:0px">マルチ スクリーンの世界を<br>構築しましょう</div>
+        <div class="landing-subhead" style="margin-top: 20px;">
+          Android は世界中の数多くの携帯型デバイスで使われています。 <br>
+          そして今回、これらの新しいフォーム ファクタをサポートします。
+        </div>
+      </div>
+      <div class="landing-body" style="margin-top: 50px;">
+        <div class="landing-breakout cols">
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/wear-wordmark.png"> <img src="{@docRoot}images/home/wear.png">
+              <p class="landing-small">
+                いつでもどこでも、アプリのユーザーに必要な情報を提供します。
+            </p>
+            <p class="landing-small">
+              <a href="{@docRoot}wear/index.html">Android Wear の詳細を見る</a>
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/tv-wordmark.png"> <img src="{@docRoot}images/home/tv.png">
+              <p class="landing-small">
+                大画面向けアプリを作成して、コンテンツを生き生きと表現します。
+              </p>
+            <p class="landing-small">
+              <a href="{@docRoot}tv/index.html">Android TV の詳細を見る</a>
+
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/auto-wordmark.png"> <img src="{@docRoot}images/home/auto.png">
+              <p class="landing-small">
+                音楽アプリを車載エンターテイメント システムに対応させます。
+             </p>
+            <p class="landing-small">
+              <a href="{@docRoot}auto/index.html">Android Auto の詳細を見る</a>
+            </p>
+          </div>
+        </div>
+      </div>
+    </div>  <!-- end .wrap -->
+  </div> <!-- end .landing-section -->
\ No newline at end of file
diff --git a/docs/html-intl/intl/ko/index.jd b/docs/html-intl/intl/ko/index.jd
new file mode 100644
index 0000000..59b9321
--- /dev/null
+++ b/docs/html-intl/intl/ko/index.jd
@@ -0,0 +1,93 @@
+fullpage=true
+page.viewport_width=970
+excludeFromSuggestions=true
+page.metaDescription=Android 개발자 공식 사이트 앱 개발자 및 디자이너에게 Android SDK 및 문서를 제공합니다.
+page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3f61-WpRguHq-aNjtF7xJjMTSi79as" />
+
+@jd:body
+
+<div class="home-new-carousel-1">
+  <div class="fullscreen-carousel-content">
+    <div class="vcenter">
+      <div class="wrap clearfix">
+
+        <div class="static resource-flow-layout wrap col-16">
+          <div class="resource resource-card resource-card-18x6">
+
+      <div class="landing-section-header">
+            <div class="col-10"><img src="{@docRoot}images/home/l-hero_2x.png" srcset="{@docRoot}images/home/l-hero.png 1x, {@docRoot}images/home/l-hero_2x.png 2x" width="510" style="margin:20px 30px 0 30px"></div>
+            <div class="col-5" style=" margin-top:70px ">
+            <h3 stye="font-weight:300;">Android 5.0 Lollipop</h3>
+            <p>Android 5.0 업데이트는 사용자 앱에 잠금화면상의 알림, 완전히 새로운 카메라 API, OpenGL ES 3.1, 신규 머티리얼 디자인(Material Design) 인터페이스 등 다양하고 새로운 기능을 추가합니다.</p>
+            <a href="{@docRoot}about/versions/lollipop.html" class="landing-button landing-primary">자세히 알아보기</a>
+            </div>
+          </div>
+          </div>
+        </div>
+       <h2>&nbsp;</h2>
+        <div style="margin-top:20px;height:115px" class="resource-widget resource-flow-layout wrap col-16
+        no-section" data-query="collection:index/primary" data-resourcestyle="card"
+        data-sortorder="-timestamp" data-maxresults="3" data-cardsizes="6x2,6x2,6x2"></div> <!-- end .resource-widget -->
+      </div> <!-- end .wrap -->
+    </div> <!-- end .vcenter -->
+  </div> <!-- end .fullscreen-carousel-content -->
+</div> <!-- end .fullscreen-carousel -->
+
+<div class="actions-bar" style="margin-top:20px">
+  <div class="wrap">
+    <div class="actions">
+      <div><a href="{@docRoot}sdk/index.html">SDK 받기</a></div>
+      <div><a href="{@docRoot}samples/index.html">샘플 둘러보기</a></div>
+      <div><a href="//www.youtube.com/user/androiddevelopers">비디오 시청</a></div>
+      <div><a href="{@docRoot}distribute/googleplay/developer-console.html">앱 관리</a></div>
+    </div><!-- end .actions -->
+  </div><!-- end .wrap -->
+</div><!-- end .actions-bar -->
+
+
+
+<div class="landing-rest-of-page">
+  <div class="landing-section">
+    <div class="wrap">
+      <div class="landing-section-header">
+
+            <div class="landing-h1" style="margin-top:0px">멀티스크린 월드에 맞게 만들기</div>
+        <div class="landing-subhead" style="margin-top: 20px;">
+          Android는 전 세계 수억 개의 휴대 기기에서 구동되고 있으며, <br>
+          이제 이 흥미진진하고 새로운 폼팩터를 지원합니다.
+        </div>
+      </div>
+      <div class="landing-body" style="margin-top: 50px;">
+        <div class="landing-breakout cols">
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/wear-wordmark.png"> <img src="{@docRoot}images/home/wear.png">
+              <p class="landing-small">
+                사용자가 필요로 할 때 언제든지 실시간으로 정보를 제공합니다.
+            </p>
+            <p class="landing-small">
+              <a href="{@docRoot}wear/index.html">Android Wear에 대해 알아보세요</a>
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/tv-wordmark.png"> <img src="{@docRoot}images/home/tv.png">
+              <p class="landing-small">
+                대형 스크린에 적합한 앱과 컨텐츠를 구성하세요.
+              </p>
+            <p class="landing-small">
+              <a href="{@docRoot}tv/index.html">Android TV에 대해 알아보세요</a>
+
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/auto-wordmark.png"> <img src="{@docRoot}images/home/auto.png">
+              <p class="landing-small">
+                음악 앱을 자동차 엔터테인먼트 시스템에 적용해보세요.
+             </p>
+            <p class="landing-small">
+              <a href="{@docRoot}auto/index.html">Android Auto에 대해 알아보세요</a>
+            </p>
+          </div>
+        </div>
+      </div>
+    </div>  <!-- end .wrap -->
+  </div> <!-- end .landing-section -->
\ No newline at end of file
diff --git a/docs/html-intl/intl/pt-br/index.jd b/docs/html-intl/intl/pt-br/index.jd
new file mode 100644
index 0000000..bf6c57d
--- /dev/null
+++ b/docs/html-intl/intl/pt-br/index.jd
@@ -0,0 +1,93 @@
+fullpage=true
+page.viewport_width=970
+excludeFromSuggestions=true
+page.metaDescription=O site oficial dos desenvolvedores Android. Fornece o Android SDK e a documentação para desenvolvedores e projetistas de aplicativos.
+page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3f61-WpRguHq-aNjtF7xJjMTSi79as" /> 
+
+@jd:body
+
+<div class="home-new-carousel-1">
+  <div class="fullscreen-carousel-content">
+    <div class="vcenter">
+      <div class="wrap clearfix">
+
+        <div class="static resource-flow-layout wrap col-16">
+          <div class="resource resource-card resource-card-18x6">
+
+      <div class="landing-section-header">
+            <div class="col-10"><img src="{@docRoot}images/home/l-hero_2x.png" srcset="{@docRoot}images/home/l-hero.png 1x, {@docRoot}images/home/l-hero_2x.png 2x" width="510" style="margin:20px 30px 0 30px"></div>
+            <div class="col-5" style=" margin-top:70px ">
+            <h3 stye="font-weight:300;">Android 5.0 Lollipop</h3>
+            <p>A atualização do Android 5.0 adiciona diversos novos recursos aos aplicativos, como notificações na tela de bloqueio, uma API de câmera totalmente nova, OpenGL ES 3.1, a nova interface do Material Design e muito mais.</p>
+            <a href="{@docRoot}about/versions/lollipop.html" class="landing-button landing-primary">Saiba mais</a>
+            </div>
+          </div>
+          </div>
+        </div>
+       <h2>&nbsp;</h2>
+        <div style="margin-top:20px;height:115px" class="resource-widget resource-flow-layout wrap col-16
+        no-section" data-query="collection:index/primary" data-resourcestyle="card"
+        data-sortorder="-timestamp" data-maxresults="3" data-cardsizes="6x2,6x2,6x2"></div> <!-- end .resource-widget -->
+      </div> <!-- end .wrap -->
+    </div> <!-- end .vcenter -->
+  </div> <!-- end .fullscreen-carousel-content -->
+</div> <!-- end .fullscreen-carousel -->
+
+<div class="actions-bar" style="margin-top:20px">
+  <div class="wrap">
+    <div class="actions">
+      <div><a href="{@docRoot}sdk/index.html">Obtenha o SDK</a></div>
+      <div><a href="{@docRoot}samples/index.html">Procure amostras</a></div>
+      <div><a href="//www.youtube.com/user/androiddevelopers">Assista a vídeos</a></div>
+      <div><a href="{@docRoot}distribute/googleplay/developer-console.html">Gerencie seus aplicativos</a></div>
+    </div><!-- end .actions -->
+  </div><!-- end .wrap -->
+</div><!-- end .actions-bar -->
+
+
+
+<div class="landing-rest-of-page">
+  <div class="landing-section">
+    <div class="wrap">
+      <div class="landing-section-header">
+
+            <div class="landing-h1" style="margin-top:0px">Crie para um mundo multitela</div>
+        <div class="landing-subhead" style="margin-top: 20px;">
+          O Android funciona em milhões de dispositivos portáteis em todo o mundo <br>
+          e agora é compatível com esses novos e empolgantes recursos.
+        </div>
+      </div>
+      <div class="landing-body" style="margin-top: 50px;">
+        <div class="landing-breakout cols">
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/wear-wordmark.png"><img src="{@docRoot}images/home/wear.png">
+              <p class="landing-small">
+                Forneça informações constantemente aos usuários, sempre que precisarem.
+            </p>
+            <p class="landing-small">
+              <a href="{@docRoot}wear/index.html">Conheça o Android Wear</a>
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/tv-wordmark.png"> <img src="{@docRoot}images/home/tv.png">
+              <p class="landing-small">
+                Crie aplicativos para a telona e dê vida ao conteúdo.
+              </p>
+            <p class="landing-small">
+              <a href="{@docRoot}tv/index.html">Conheça o Android TV</a>
+
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/auto-wordmark.png"> <img src="{@docRoot}images/home/auto.png">
+              <p class="landing-small">
+                Estenda seus aplicativos de música a sistema de entretenimento de automóveis.
+             </p>
+            <p class="landing-small">
+              <a href="{@docRoot}auto/index.html">Conheça o Android Auto</a>
+            </p>
+          </div>
+        </div>
+      </div>
+    </div>  <!-- end .wrap -->
+  </div> <!-- end .landing-section -->
\ No newline at end of file
diff --git a/docs/html-intl/intl/ru/index.jd b/docs/html-intl/intl/ru/index.jd
new file mode 100644
index 0000000..eb7ffe4
--- /dev/null
+++ b/docs/html-intl/intl/ru/index.jd
@@ -0,0 +1,93 @@
+fullpage=true
+page.viewport_width=970
+excludeFromSuggestions=true
+page.metaDescription=Официальный сайт для разработчиков Android. На этом сайте вы найдете пакеты Android SDK и документацию для дизайнеров и разработчиков приложений.
+page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3f61-WpRguHq-aNjtF7xJjMTSi79as" />
+
+@jd:body
+
+<div class="home-new-carousel-1">
+  <div class="fullscreen-carousel-content">
+    <div class="vcenter">
+      <div class="wrap clearfix">
+
+        <div class="static resource-flow-layout wrap col-16">
+          <div class="resource resource-card resource-card-18x6">
+
+      <div class="landing-section-header">
+            <div class="col-10"><img src="{@docRoot}images/home/l-hero_2x.png" srcset="{@docRoot}images/home/l-hero.png 1x, {@docRoot}images/home/l-hero_2x.png 2x" width="510" style="margin:20px 30px 0 30px"></div>
+            <div class="col-5" style=" margin-top:70px ">
+            <h3 stye="font-weight:300;">Android 5.0 Lollipop</h3>
+            <p>Обновление Android 5.0 содержит различные новые возможности для приложений: уведомления на заблокированном экране, совершено новый API камеры, OpenGL ES 3.1, новый интерфейс Material Design и множество других функций.</p>
+            <a href="{@docRoot}about/versions/lollipop.html" class="landing-button landing-primary">Подробнее</a>
+            </div>
+          </div>
+          </div>
+        </div>
+       <h2>&nbsp;</h2>
+        <div style="margin-top:20px;height:115px" class="resource-widget resource-flow-layout wrap col-16
+        no-section" data-query="collection:index/primary" data-resourcestyle="card"
+        data-sortorder="-timestamp" data-maxresults="3" data-cardsizes="6x2,6x2,6x2"></div> <!-- end .resource-widget -->
+      </div> <!-- end .wrap -->
+    </div> <!-- end .vcenter -->
+  </div> <!-- end .fullscreen-carousel-content -->
+</div> <!-- end .fullscreen-carousel -->
+
+<div class="actions-bar" style="margin-top:20px">
+  <div class="wrap">
+    <div class="actions">
+      <div><a href="{@docRoot}sdk/index.html">Пакет SDK</a></div>
+      <div><a href="{@docRoot}samples/index.html">Примеры</a></div>
+      <div><a href="//www.youtube.com/user/androiddevelopers">Видеоролики</a></div>
+      <div><a href="{@docRoot}distribute/googleplay/developer-console.html">Управление приложениями</a></div>
+    </div><!-- end .actions -->
+  </div><!-- end .wrap -->
+</div><!-- end .actions-bar -->
+
+
+
+<div class="landing-rest-of-page">
+  <div class="landing-section">
+    <div class="wrap">
+      <div class="landing-section-header">
+
+            <div class="landing-h1" style="margin-top:0px">ОС для многоэкранных устройств</div>
+        <div class="landing-subhead" style="margin-top: 20px;">
+          Сотни миллионов мобильных устройств по всему миру работают под управлением операционной системы Android. <br>
+          А теперь эта система радует и обладателей устройств других форм-факторов.
+        </div>
+      </div>
+      <div class="landing-body" style="margin-top: 50px;">
+        <div class="landing-breakout cols">
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/wear-wordmark.png"> <img src="{@docRoot}images/home/wear.png">
+              <p class="landing-small">
+                Предоставляйте пользователям информацию прямо на ходу, когда бы им это ни потребовалось.
+            </p>
+            <p class="landing-small">
+              <a href="{@docRoot}wear/index.html">Подробнее об Android Wear</a>
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/tv-wordmark.png"> <img src="{@docRoot}images/home/tv.png">
+              <p class="landing-small">
+                Создавайте приложения для использования на большом экране телевизора и разрабатывайте динамичный контент.
+              </p>
+            <p class="landing-small">
+              <a href="{@docRoot}tv/index.html">Подробнее об Android TV</a>
+
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/auto-wordmark.png"> <img src="{@docRoot}images/home/auto.png">
+              <p class="landing-small">
+                Автомобильные мультимедийные системы — прекрасная возможность расширить список поддерживаемых устройств для музыкальных приложений.
+             </p>
+            <p class="landing-small">
+              <a href="{@docRoot}auto/index.html">Подробнее об Android Auto</a>
+            </p>
+          </div>
+        </div>
+      </div>
+    </div>  <!-- end .wrap -->
+  </div> <!-- end .landing-section -->
\ No newline at end of file
diff --git a/docs/html-intl/intl/zh-cn/index.jd b/docs/html-intl/intl/zh-cn/index.jd
index 590332f..1c2fb99 100644
--- a/docs/html-intl/intl/zh-cn/index.jd
+++ b/docs/html-intl/intl/zh-cn/index.jd
@@ -1,15 +1,11 @@
 fullpage=true
 page.viewport_width=970
 excludeFromSuggestions=true
-page.metaDescription=The official site for Android developers. Provides the Android SDK and documentation for app developers and designers.
+page.metaDescription=Android 开发人员的官方网站。为应用开发人员以及设计师提供 Android SDK 和文档。
 page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3f61-WpRguHq-aNjtF7xJjMTSi79as" />
 
 @jd:body
 
-
-
-
-
 <div class="home-new-carousel-1">
   <div class="fullscreen-carousel-content">
     <div class="vcenter">
@@ -19,38 +15,31 @@
           <div class="resource resource-card resource-card-18x6">
 
       <div class="landing-section-header">
-            <div class="col-10"><img src="{@docRoot}images/home/l-hero_2x.png"
-                 srcset="{@docRoot}images/home/l-hero.png 1x, {@docRoot}images/home/l-hero_2x.png 2x"
-                 width="510" style="margin:20px 30px 0 30px"></div>
+            <div class="col-10"><img src="{@docRoot}images/home/l-hero_2x.png" srcset="{@docRoot}images/home/l-hero.png 1x, {@docRoot}images/home/l-hero_2x.png 2x" width="510" style="margin:20px 30px 0 30px"></div>
             <div class="col-5" style=" margin-top:70px ">
             <h3 stye="font-weight:300;">Android 5.0 Lollipop</h3>
-            <p>在 Android 5.0 的版本更新中,我们添加了多种可用于你的应用程序的新功能,比如锁屏通知,一个全新的相机API,OpenGL ES 3.1,以及新的 Material Design 界面等等。</p>
+            <p>Android 5.0 更新将为您的应用增添各种新功能,例如锁定屏幕通知、全新的相机 API、OpenGL ES 3.1、全新的 Material Design 界面等等。</p>
             <a href="{@docRoot}about/versions/lollipop.html" class="landing-button landing-primary">了解详情</a>
             </div>
           </div>
           </div>
         </div>
        <h2>&nbsp;</h2>
-        
-        <div style="margin-top:20px" class="resource-widget resource-flow-layout wrap col-16
-        no-section" data-query="collection:index/primary/zhcn" data-resourcestyle="card"
-        data-sortorder="-timestamp" data-maxresults="3" data-cardsizes="6x2,6x2,6x2"></div> 
-
+        <div style="margin-top:20px;height:115px" class="resource-widget resource-flow-layout wrap col-16
+        no-section" data-query="collection:index/primary" data-resourcestyle="card"
+        data-sortorder="-timestamp" data-maxresults="3" data-cardsizes="6x2,6x2,6x2"></div> <!-- end .resource-widget -->
       </div> <!-- end .wrap -->
     </div> <!-- end .vcenter -->
   </div> <!-- end .fullscreen-carousel-content -->
 </div> <!-- end .fullscreen-carousel -->
 
-
-
-
 <div class="actions-bar" style="margin-top:20px">
   <div class="wrap">
     <div class="actions">
-      <div><a href="/sdk/index.html">下载 SDK</a></div>
-      <div><a href="/samples/index.html">浏览示例</a></div>
+      <div><a href="{@docRoot}sdk/index.html">获得 SDK</a></div>
+      <div><a href="{@docRoot}samples/index.html">浏览示例</a></div>
       <div><a href="//www.youtube.com/user/androiddevelopers">观看视频</a></div>
-      <div><a href="/distribute/googleplay/developer-console.html">管理应用</a></div>
+      <div><a href="{@docRoot}distribute/googleplay/developer-console.html">管理您的应用</a></div>
     </div><!-- end .actions -->
   </div><!-- end .wrap -->
 </div><!-- end .actions-bar -->
@@ -61,44 +50,41 @@
   <div class="landing-section">
     <div class="wrap">
       <div class="landing-section-header">
-        
-            <div class="landing-h1" style="margin-top:0px">专为跨屏世界打造</div>
-        <div class="landing-subhead" style="margin-top:20px">
-          全球数亿手持设备安装的都是 Android 系统。<br />
-          现在 Android 系统还支持以下这些备受期待的新设备。
+
+            <div class="landing-h1" style="margin-top:0px">专为多屏幕时代而设</div>
+        <div class="landing-subhead" style="margin-top: 20px;">
+          Android 在全球各地的数亿台手持设备上运行, <br>
+          如今更支持下列激动人心的新设备和配置。
         </div>
       </div>
-      <div class="landing-body" style="margin-top:50px">
+      <div class="landing-body" style="margin-top: 50px;">
         <div class="landing-breakout cols">
           <div class="col-3-wide">
-              <img src="{@docRoot}images/home/wear-wordmark.png" />
-              <img src="{@docRoot}images/home/wear.png" />
+              <img src="{@docRoot}images/home/wear-wordmark.png"> <img src="{@docRoot}images/home/wear.png">
               <p class="landing-small">
-                让用户随时随地获得需要的信息。
+                让您的用户即便在途中亦能随时随地获得所需的信息。
             </p>
             <p class="landing-small">
-              <a href="/wear/index.html">了解 Android Wear</a>
+              <a href="{@docRoot}wear/index.html">了解关于 Android Wear 的信息</a>
             </p>
           </div>
           <div class="col-3-wide">
-              <img src="{@docRoot}images/home/tv-wordmark.png" />
-             <img src="{@docRoot}images/home/tv.png" />
+              <img src="{@docRoot}images/home/tv-wordmark.png"> <img src="{@docRoot}images/home/tv.png">
               <p class="landing-small">
-                针对大屏幕打造应用,使你的内容引人入胜。
+                将您的应用搬上大屏幕,使您的内容栩栩如生。
               </p>
             <p class="landing-small">
-              <a href="/tv/index.html">了解 Android TV</a>
+              <a href="{@docRoot}tv/index.html">了解关于 Android TV 的信息</a>
 
             </p>
           </div>
           <div class="col-3-wide">
-              <img src="{@docRoot}images/home/auto-wordmark.png" />
-              <img src="{@docRoot}images/home/auto.png" />
+              <img src="{@docRoot}images/home/auto-wordmark.png"> <img src="{@docRoot}images/home/auto.png">
               <p class="landing-small">
-                将你的音乐应用扩展到车载娱乐系统。
+                将您的音乐应用扩展至车载娱乐系统。
              </p>
             <p class="landing-small">
-              <a href="/auto/index.html">了解 Android Auto</a>
+              <a href="{@docRoot}auto/index.html">了解关于 Android Auto 的信息</a>
             </p>
           </div>
         </div>
diff --git a/docs/html-intl/intl/zh-tw/index.jd b/docs/html-intl/intl/zh-tw/index.jd
new file mode 100644
index 0000000..56ae4cf
--- /dev/null
+++ b/docs/html-intl/intl/zh-tw/index.jd
@@ -0,0 +1,92 @@
+fullpage=true
+page.viewport_width=970excludeFromSuggestions=true
+page.metaDescription=適用於 Android 開發人員的官方網站。提供適用於應用程式開發人員與設計師的 Android SDK 與文件。
+page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3f61-WpRguHq-aNjtF7xJjMTSi79as" /> 
+
+@jd:body
+
+<div class="home-new-carousel-1">
+  <div class="fullscreen-carousel-content">
+    <div class="vcenter">
+      <div class="wrap clearfix">
+
+        <div class="static resource-flow-layout wrap col-16">
+          <div class="resource resource-card resource-card-18x6">
+
+      <div class="landing-section-header">
+            <div class="col-10"><img src="{@docRoot}images/home/l-hero_2x.png" srcset="{@docRoot}images/home/l-hero.png 1x, {@docRoot}images/home/l-hero_2x.png 2x" width="510" style="margin:20px 30px 0 30px"></div>
+            <div class="col-5" style=" margin-top:70px ">
+            <h3 stye="font-weight:300;">Android 5.0 棒棒糖</h3>
+            <p>Android 5.0 更新新增了許多新功能到您的應用程式,例如鎖定螢幕上的通知、全新的相機 API、OpenGL ES 3.1、新的材料設計介面,還有更多其他功能。</p>
+            <a href="{@docRoot}about/versions/lollipop.html" class="landing-button landing-primary">深入了解</a>
+            </div>
+          </div>
+          </div>
+        </div>
+       <h2>&nbsp;</h2>
+        <div style="margin-top:20px;height:115px" class="resource-widget resource-flow-layout wrap col-16
+        no-section" data-query="collection:index/primary" data-resourcestyle="card"
+        data-sortorder="-timestamp" data-maxresults="3" data-cardsizes="6x2,6x2,6x2"></div> <!-- end .resource-widget -->
+      </div> <!-- end .wrap -->
+    </div> <!-- end .vcenter -->
+  </div> <!-- end .fullscreen-carousel-content -->
+</div> <!-- end .fullscreen-carousel -->
+
+<div class="actions-bar" style="margin-top:20px">
+  <div class="wrap">
+    <div class="actions">
+      <div><a href="{@docRoot}sdk/index.html">取得 SDK</a></div>
+      <div><a href="{@docRoot}samples/index.html">瀏覽範例</a></div>
+      <div><a href="//www.youtube.com/user/androiddevelopers">觀賞影片</a></div>
+      <div><a href="{@docRoot}distribute/googleplay/developer-console.html">管理您的應用程式</a></div>
+    </div><!-- end .actions -->
+  </div><!-- end .wrap -->
+</div><!-- end .actions-bar -->
+
+
+
+<div class="landing-rest-of-page">
+  <div class="landing-section">
+    <div class="wrap">
+      <div class="landing-section-header">
+
+            <div class="landing-h1" style="margin-top:0px">針對多螢幕世界建置</div>
+        <div class="landing-subhead" style="margin-top: 20px;">
+          Android 在全球數百萬部手持式裝置上執行, <br>
+          而且它現在支援這些令人興奮、各種尺寸的裝置。
+        </div>
+      </div>
+      <div class="landing-body" style="margin-top: 50px;">
+        <div class="landing-breakout cols">
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/wear-wordmark.png"> <img src="{@docRoot}images/home/wear.png">
+              <p class="landing-small">
+                為您的使用者提供可隨時隨地存取的資訊。
+            </p>
+            <p class="landing-small">
+              <a href="{@docRoot}wear/index.html">了解 Android Wear</a>
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/tv-wordmark.png"> <img src="{@docRoot}images/home/tv.png">
+              <p class="landing-small">
+                為大螢幕建置您的應用程式,並將您的內容帶到生活中。
+              </p>
+            <p class="landing-small">
+              <a href="{@docRoot}tv/index.html">了解 Android TV</a>
+
+            </p>
+          </div>
+          <div class="col-3-wide">
+              <img src="{@docRoot}images/home/auto-wordmark.png"> <img src="{@docRoot}images/home/auto.png">
+              <p class="landing-small">
+                將您的音樂應用程式延伸到車用娛樂系統。
+             </p>
+            <p class="landing-small">
+              <a href="{@docRoot}auto/index.html">了解 Android Auto</a>
+            </p>
+          </div>
+        </div>
+      </div>
+    </div>  <!-- end .wrap -->
+  </div> <!-- end .landing-section -->
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/downloads/index.jd b/docs/html-ndk/ndk/downloads/index.jd
index ef00069..fdbc083 100644
--- a/docs/html-ndk/ndk/downloads/index.jd
+++ b/docs/html-ndk/ndk/downloads/index.jd
@@ -1,4 +1,501 @@
+ndk=true
+page.template=sdk
+
+
+ndk.mac64_download=android-ndk-r10e-darwin-x86_64.bin
+ndk.mac64_bytes=388937326
+ndk.mac64_checksum=2cb8893a5701603519d38a7e04c50e81
+
+ndk.linux64_download=android-ndk-r10e-linux-x86_64.bin
+ndk.linux64_bytes=401522849
+ndk.linux64_checksum=19af543b068bdb7f27787c2bc69aba7f
+
+ndk.linux32_download=android-ndk-r10e-linux-x86.bin
+ndk.linux32_bytes=394281908
+ndk.linux32_checksum=c3edd3273029da1cbd2f62c48249e978
+
+ndk.win64_download=android-ndk-r10e-windows-x86_64.exe
+ndk.win64_bytes=419616132
+ndk.win64_checksum=8412bb4991a95e08fda50b5a44d95df7
+
+ndk.win32_download=android-ndk-r10e-windows-x86.exe
+ndk.win32_bytes=396563176
+ndk.win32_checksum=1a82445baaf62aec3a46386ab1e5772c
+
+
+
 page.title=NDK Downloads
 @jd:body
 
-<p>downloads
\ No newline at end of file
+
+<div id="tos" style="display:none;width:760px;height:0;margin:0 auto">
+
+<div id="download" class="ndk" style="
+z-index: 99;
+width: 720px;
+position: absolute;
+margin: -70px 0;
+padding: 14px;
+background: white;
+border: 1px solid #999;
+box-shadow: -10px 10px 50px #888;
+-moz-box-shadow: -10px 10px 50px #888;
+-webkit-box-shadow: -10px 10px 50px #888;">
+<p>Before installing the Android NDK, you must agree to the following terms and conditions.</p>
+<div class="sdk-terms" style="width:auto" onfocus="this.blur()">
+<h2 class="norule">Terms and Conditions</h2>
+This is the Android Software Development Kit License Agreement
+
+<h3>1. Introduction</h3>
+1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" and
+specifically including the Android system files, packaged APIs, and Google APIs add-ons) is
+licensed to you subject to the terms of this License Agreement. This License Agreement forms a
+legally binding contract between you and Google in relation to your use of the SDK.
+
+1.2 “Android” means the Android software stack for devices, as made available under the Android
+Open Source Project, which is located at the following URL: http://source.android.com/, as updated
+from time to time.
+
+1.3 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600
+Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+
+<h3>2. Accepting this License Agreement</h3>
+2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the
+SDK if you do not accept this License Agreement.
+
+2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.
+
+2.3 You may not use the SDK and may not accept the License Agreement if you are a person barred
+from receiving the SDK under the laws of the United States or other countries including the country
+in which you are resident or from which you use the SDK.
+
+2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other
+entity, you represent and warrant that you have full legal authority to bind your employer or such
+entity to this License Agreement. If you do not have the requisite authority, you may not accept
+the License Agreement or use the SDK on behalf of your employer or other entity.
+
+
+<h3>3. SDK License from Google</h3>
+3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide,
+royalty-free, non-assignable and non-exclusive license to use the SDK solely to develop
+applications to run on the Android platform.
+
+3.2 You agree that Google or third parties own all legal right, title and interest in and to the
+SDK, including any Intellectual Property Rights that subsist in the SDK. "Intellectual Property
+Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law,
+and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 You may not use the SDK for any purpose not expressly permitted by this License Agreement.
+Except to the extent required by applicable third party licenses, you may not: (a) copy (except for
+backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create
+derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile
+handset or any other hardware device except a personal computer, combine any part of the SDK with
+other software, or distribute any software or device incorporating a part of the SDK.
+
+3.4 You agree that you will not take any actions that may cause or result in the fragmentation of
+Android, including but not limited to distributing, participating in the creation of, or promoting
+in any way a software development kit derived from the SDK.
+
+3.5 Use, reproduction and distribution of components of the SDK licensed under an open source
+software license are governed solely by the terms of that open source software license and not this
+License Agreement.
+
+3.6 You agree that the form and nature of the SDK that Google provides may change without prior
+notice to you and that future versions of the SDK may be incompatible with applications developed
+on previous versions of the SDK. You agree that Google may stop (permanently or temporarily)
+providing the SDK (or any features within the SDK) to you or to users generally at Google's sole
+discretion, without prior notice to you.
+
+3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names,
+trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including
+copyright and trademark notices) that may be affixed to or contained within the SDK.
+
+
+<h3>4. Use of the SDK by You</h3>
+4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under
+this License Agreement in or to any software applications that you develop using the SDK, including
+any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a)
+this License Agreement and (b) any applicable law, regulation or generally accepted practices or
+guidelines in the relevant jurisdictions (including any laws regarding the export of data or
+software to and from the United States or other relevant countries).
+
+4.3 You agree that if you use the SDK to develop applications for general public users, you will
+protect the privacy and legal rights of those users. If the users provide you with user names,
+passwords, or other login information or personal information, you must make the users aware that
+the information will be available to your application, and you must provide legally adequate
+privacy notice and protection for those users. If your application stores personal or sensitive
+information provided by users, it must do so securely. If the user provides your application with
+Google Account information, your application may only use that information to access the user's
+Google Account when, and for the limited purposes for which, the user has given you permission to
+do so.
+
+4.4 You agree that you will not engage in any activity with the SDK, including the development or
+distribution of an application, that interferes with, disrupts, damages, or accesses in an
+unauthorized manner the servers, networks, or other properties or services of any third party
+including, but not limited to, Google or any mobile communications carrier.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or
+to any third party for) any data, content, or resources that you create, transmit or display
+through Android and/or applications for Android, and for the consequences of your actions
+(including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or
+to any third party for) any breach of your obligations under this License Agreement, any applicable
+third party contract or Terms of Service, or any applicable law or regulation, and for the
+consequences (including any loss or damage which Google or any third party may suffer) of any such
+breach.
+
+
+<h3>5. Your Developer Credentials</h3>
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer
+credentials that may be issued to you by Google or which you may choose yourself and that you will
+be solely responsible for all applications that are developed under your developer credentials.
+
+
+<h3>6. Privacy and Information</h3>
+6.1 In order to continually innovate and improve the SDK, Google may collect certain usage
+statistics from the software including but not limited to a unique identifier, associated IP
+address, version number of the software, and information on which tools and/or services in the SDK
+are being used and how they are being used. Before any of this information is collected, the SDK
+will notify you and seek your consent. If you withhold consent, the information will not be
+collected.
+
+6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in
+accordance with Google's Privacy Policy.
+
+
+<h3>7. Third Party Applications</h3>
+7.1 If you use the SDK to run applications developed by a third party or that access data, content
+or resources provided by a third party, you agree that Google is not responsible for those
+applications, data, content, or resources. You understand that all data, content or resources which
+you may access through such third party applications are the sole responsibility of the person from
+which they originated and that Google is not liable for any loss or damage that you may experience
+as a result of the use or access of any of those third party applications, data, content, or
+resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third
+party application may be protected by intellectual property rights which are owned by the providers
+(or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell,
+distribute or create derivative works based on these data, content, or resources (either in whole
+or in part) unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may
+be subject to separate terms between you and the relevant third party. In that case, this License
+Agreement does not affect your legal relationship with these third parties.
+
+
+<h3>8. Using Android APIs</h3>
+8.1 Google Data APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be
+protected by intellectual property rights which are owned by Google or those parties that provide
+the data (or by other persons or companies on their behalf). Your use of any such API may be
+subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or
+create derivative works based on this data (either in whole or in part) unless allowed by the
+relevant Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you
+shall retrieve data only with the user's explicit consent and only when, and for the limited
+purposes for which, the user has given you permission to do so.
+
+
+<h3>9. Terminating this License Agreement</h3>
+9.1 This License Agreement will continue to apply until terminated by either you or Google as set
+out below.
+
+9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK
+and any relevant developer credentials.
+
+9.3 Google may at any time, terminate this License Agreement with you if:
+(A) you have breached any provision of this License Agreement; or
+(B) Google is required to do so by law; or
+(C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated
+its relationship with Google or ceased to offer certain parts of the SDK to you; or
+(D) Google decides to no longer provide the SDK or certain parts of the SDK to users in the country
+in which you are resident or from which you use the service, or the provision of the SDK or certain
+SDK services to you by Google is, in Google's sole discretion, no longer commercially viable.
+
+9.4 When this License Agreement comes to an end, all of the legal rights, obligations and
+liabilities that you and Google have benefited from, been subject to (or which have accrued over
+time whilst this License Agreement has been in force) or which are expressed to continue
+indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall
+continue to apply to such rights, obligations and liabilities indefinitely.
+
+
+<h3>10. DISCLAIMER OF WARRANTIES</h3>
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE
+SDK IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE
+SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR
+COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+
+<h3>11. LIMITATION OF LIABILITY</h3>
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS
+LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY
+LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN
+AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+
+<h3>12. Indemnification</h3>
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless
+Google, its affiliates and their respective directors, officers, employees and agents from and
+against any and all claims, actions, suits or proceedings, as well as any and all losses,
+liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or
+accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes
+any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of
+any person or defames any person or violates their rights of publicity or privacy, and (c) any
+non-compliance by you with this License Agreement.
+
+
+<h3>13. Changes to the License Agreement</h3>
+13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK.
+When these changes are made, Google will make a new version of the License Agreement available on
+the website where the SDK is made available.
+
+
+<h3>14. General Legal Terms</h3>
+14.1 This License Agreement constitutes the whole legal agreement between you and Google and
+governs your use of the SDK (excluding any services which Google may provide to you under a
+separate written agreement), and completely replaces any prior agreements between you and Google in
+relation to the SDK.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is
+contained in this License Agreement (or which Google has the benefit of under any applicable law),
+this will not be taken to be a formal waiver of Google's rights and that those rights or remedies
+will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any
+provision of this License Agreement is invalid, then that provision will be removed from this
+License Agreement without affecting the rest of this License Agreement. The remaining provisions of
+this License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the
+parent shall be third party beneficiaries to this License Agreement and that such other companies
+shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that
+confers a benefit on (or rights in favor of) them. Other than this, no other person or company
+shall be third party beneficiaries to this License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST
+COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE
+LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The rights granted in this License Agreement may not be assigned or transferred by either you
+or Google without the prior written approval of the other party. Neither you nor Google shall be
+permitted to delegate their responsibilities or obligations under this License Agreement without
+the prior written approval of the other party.
+
+14.7 This License Agreement, and your relationship with Google under this License Agreement, shall
+be governed by the laws of the State of California without regard to its conflict of laws
+provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located
+within the county of Santa Clara, California to resolve any legal matter arising from this License
+Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for
+injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+
+
+<em>November 13, 2012</em>
+</div>
+
+
+
+<div id="sdk-terms-form">
+<p>
+<input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
+<label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
+</p>
+<p><a href="" class="button disabled ndk" id="downloadForRealz" onclick="return onDownloadNdkForRealz(this);"></a></p>
+</div>
+
+
+
+</div>
+</div>
+
+ <div id="qv-wrapper">
+    <div id="qv">
+      <h2>In this document</h2>
+
+      <ol>
+        <li><a href="#Downloads">Downloads</a></li>
+        <li><a href="#rel">Release Notes</a></li>
+      </ol>
+    </div>
+  </div>
+
+  <p>Select, from the table below, the NDK package suitable for your development platform.</p>
+
+
+<h2 id="Downloads">Downloads</h2>
+
+
+<script>
+$('#Downloads').after($('#download-table'));
+</script>
+
+<h2 id="rel">Release Notes</h2>
+
+ <p>Android NDK, Revision 10e</a> <em>(May 2015)</em></p>
+    <dl>
+      <dt>Important changes:</dt>
+      <dd>
+      <ul>
+        <li>Integrated the workaround for Cortex-A53 Erratum 843419 into the
+        {@code aarch64-linux-android-4.9} linker. For more information on this workaround, see
+        <a href="https://sourceware.org/ml/binutils/2015-03/msg00446.html">Workaround for cortex-a53
+        erratum 843419.</a></li>
+
+         <li>Added Clang 3.6; {@code NDK_TOOLCHAIN_VERSION=clang} now picks that version
+         of Clang by default.</li>
+
+         <li>Removed Clang 3.4.</li>
+
+         <li>Removed GCC 4.6.</li>
+
+         <li>Implemented multithreading support in {@code ld.gold} for all architectures. It can
+         now link with or without support for multithreading; the default is to do it without.
+            <ul>
+            <li>To compile with multithreading, use the {@code --threads} option.</li>
+            <li>To compile without multithreading, use the {@code --no-threads} option.</li>
+            </ul>
+            </li>
+
+         <li>Upgraded GDB/gdbserver to 7.7 for all architectures.</li>
+
+         <li>Removed the NDK package for 32-bit Darwin.</li>
+      </ul>
+      </dd>
+   <dl>
+
+
+     <dt>Important bug fixes:</dt>
+     <dd>
+     <ul>
+        <li>Fixed a crash that occurred when there were OpenMP loops outside of the main thread.</li>
+
+        <li>Fixed a GCC 4.9 internal compiler error (<i>ICE</i>) that occured when the user declared
+        {@code #pragma GCC optimize ("O0")}, but had a different level of optimization specified
+        on the command line. The {@code pragma} takes precedence.</li>
+
+        <li>Fixed an error that used to produce a crash with the following error message:
+<pre>
+in add_stores, at var-tracking.c:6000
+</pre>
+        </li>
+
+        <li>Implemented a workaround for a Clang 3.5 issue in which LLVM auto-vectorization
+        generates {@code llvm.cttz.v2i64()}, an instruction with no counterpart in the ARM
+        instruction set.</li>
+     </ul>
+     </dd>
+
+     <dt>Other bug fixes:</dt>
+     <dd>
+     <ul>
+        <li>Made the following header and library fixes:</li>
+           <ul>
+           <li>Fixed {@code PROPERTY_*} in {@code media/NdkMediaDrm.h}.</li>
+           <li>Fixed {@code sys/ucontext.h} for {@code mips64}.</li>
+           <li>Dropped the Clang version check for {@code __builtin_isnan} and
+           {@code __builtin_isinf}.</li>
+           <li>Added {@code android-21/arch-mips/usr/include/asm/reg.h}
+           and {@code android-21/arch-mips64/usr/include/asm/reg.h}.</li>
+           </ul>
+           </li>
+
+        <li>Fixed a spurious array-bounds warning that GCC 4.9 produced for x86, and reenabled the
+        array bounds warning that GCC 4.9 had produced for ARM. The warning for ARM had
+        previously been unconditionally disabled.</li>
+
+        <li>Fixed Clang 3.5 for {@code mips} and {@code mips64} to create a writable
+            {@code .gcc_except_table} section, thus matching GCC behavior. This change allows you
+            to avoid the following linker warning:
+
+<pre>
+.../ld: warning: creating a DT_TEXTREL in a shared object
+</pre>
+            </li>
+
+        <li>Backported a fix for {@code compiler-rt} issues that were causing crashes when Clang
+        compiled for {@code mips64}. For more information, see LLVM Issue
+        <a href="http://llvm.org/bugs/show_bug.cgi?id=20098">20098</a>.</li>
+
+        <li>Fixed Clang 3.5 crashes that occurred on non-ASCII comments. (Issue
+        <a href="https://code.google.com/p/android/issues/detail?id=81440">81440</a>)</li>
+
+        <li>Fixed {@code stlport collate::compare} to return {@code -1} and {@code 1}. Previously,
+        it had returned arbitrary signed numbers.</li>
+
+        <li>Fixed {@code ndk-gdb} for 64-bit ABIs. (Issue
+        <a href="https://code.google.com/p/android/issues/detail?id=118300">118300</a>)</li>
+
+        <li>Fixed the crash that the HelloComputeNDK sample for RenderScript was producing on
+        Android 4.4 (Android API level 19). For more information, see
+        <a href="http://stackoverflow.com/questions/28057049/targeting-pre-lollipop-devices-using-renderscript-from-ndk-c">this page</a>.</li>
+
+        <li>Fixed {@code libc++ __wrap_iter} for GCC. For more information, see LLVM Issue
+        <a href="http://llvm.org/bugs/show_bug.cgi?id=22355">22355</a>.</li>
+
+        <li>Fixed {@code .asm} support for ABI {@code x86_64}.</li>
+
+        <li>Implemented a workaround for the GCC 4.8 {@code stlport} issue. (Issue
+        <a href="https://android-review.googlesource.com/#/c/127773">127773</a>)</li>
+
+        <li>Removed the trailing directory separator {@code \\} from the project path in Windows.
+        (Issue <a href="https://code.google.com/p/android/issues/detail?id=160584">160584</a>)
+        </li>
+
+        <li>Fixed a {@code no rule to make target} error that occurred when compiling a single
+        {@code .c} file by executing the {@code ndk-build.cmd} command from {@code gradle}. (Issue
+        <a href="https://code.google.com/p/android/issues/detail?id=66937">66937</a>)</li>
+
+        <li>Added the {@code libatomic.a} and {@code libgomp.a} libraries that had been missing from
+        the following host toolchains:
+        <ul>
+           <li>{@code aarch64-linux-android-4.9}</li>
+           <li>{@code mips64el-linux-android-4.9}</li>
+           <li>{@code mipsel-linux-android-4.9}</li>
+           <li>{@code x86_64-4.9}</li>
+        </ul>
+     </ul>
+     </dd>
+
+     <dt>Other changes:</dt>
+     <dd>
+       <ul>
+       <li>Added {@code ld.gold} for {@code aarch64}. The default linker remains {@code ld.bfd}.
+       To explicitly enable {@code ld.gold}, add {@code -fuse-ld=gold} to the
+       {@code LOCAL_LDFLAGS} or {@code APP_LDFLAGS} variable.</li>
+
+       <li>Built the MIPS and MIPS64 toolchains with {@code binutils-2.25}, which provides improved
+       R6 support.</li>
+
+       <li>Made {@code -fstandalone-debug} (full debug info) a default option for Clang.</li>
+
+       <li>Replaced {@code -fstack-protector} with {@code -fstack-protector-strong} for
+       the ARM, AArch64, X86, and X86_64 toolchains for GCC 4.9, Clang 3.5, and
+       Clang 3.6.</li>
+
+       <li>Added the {@code --package} command-line switch to {@code ndk-gdb} to allow the build
+       system to override the package name. (Issue
+       <a href="https://code.google.com/p/android/issues/detail?id=56189">56189</a>)</li>
+
+       <li> Deprecated {@code -mno-ldc1-stc1} for MIPS.  This option may not work with the new
+       {@code -fpxx} and {@code -mno-odd-spreg} options, or with the FPXX ABI.</li>
+
+       <li>Added MIPS MSA and R6 detection to {@code cpu-features}.</li>
+
+     </ul>
+     </dd>
+
+   </dl>
diff --git a/docs/html-ndk/ndk/guides/abis.jd b/docs/html-ndk/ndk/guides/abis.jd
new file mode 100644
index 0000000..81604b5
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/abis.jd
@@ -0,0 +1,493 @@
+page.title=ABI Management
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#sa">Supported ABIs</a></li>
+        <li><a href="#gc">Generating Code for a Specific ABI</a></li>
+        <li><a href="#am">ABI Management on the Android Platform</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>Different Android handsets use different CPUs, which in turn support different instruction sets.
+Each combination of CPU and instruction set(s) has its own Application Binary Interface, or
+<i>ABI</i>. The ABI defines, with great precision, how an application's machine code is supposed to
+interact with the system at runtime. You must specify an ABI for each CPU architecture you want
+your app to work with.</p>
+
+<p>A typical ABI includes the following information:</p>
+
+<ul>
+<li>The CPU instruction set(s) that the machine code should use.</li>
+<li>The endianness of memory stores and loads at runtime.</li>
+<li>The format of executable binaries, such as programs and shared libraries, and
+the types of content they support.</li>
+<li>Various conventions for passing data between your code and the system.
+These conventions include alignment constraints, as well as how the system uses the stack and
+registers when it calls functions.</li>
+<li>The list of function symbols available to your machine code at runtime,
+generally from very specific sets of libraries.</li>
+</ul>
+
+<p>This page enumerates the ABIs that the NDK supports, and provides information about how each ABI
+works.</p>
+
+<h2 id="sa">Supported ABIs</h2>
+
+<p>Each ABI supports one or more instruction sets. Table 1 provides an at-a-glance overview of
+the instruction sets each ABI supports.</p>
+
+<p class="table-caption" id="abi-table">
+  <strong>Table 1.</strong> ABIs and supported instruction sets.</p>
+
+<table>
+<tr>
+<th>ABI</th>
+<th>Supported Instruction Set(s)</th>
+<th>Notes</th>
+</tr>
+
+<tr>
+<td><a href="#armeabi">{@code armeabi}</a> </td>
+<td><li>ARMV5TE and later</li>
+<li>Thumb-1</li></td>
+<td>No hard float.</td>
+</tr>
+
+<tr>
+<td><a href="#v7a">{@code armeabi-v7a}</a></td>
+<td>
+<li>armeabi</li>
+<li>Thumb-2</li>
+<li>VFPv3-D16</li>
+<li>Other, optional</li></td>
+<td>Hard float when specified as {@code armeabi-v7a-hard}.
+Incompatible with ARMv5, v6 devices.</td>
+</tr>
+
+<tr>
+<td><a href="#arm64-v8a">{@code arm64-v8a}</a></td>
+<td><li>AArch-64</li></td>
+</tr>
+
+<tr>
+<td>
+<a href="#x86">{@code x86}</a></td>
+<td><li>x86 (IA-32)</li>
+<li>MMX</li>
+<li>SSE/2/3</li>
+<li>SSSE3</li></td>
+<td>No support for MOVBE or SSE4.</td>
+</tr>
+
+<tr>
+<td><a href="#86-64">{@code x86_64}</a> </td>
+<td>
+<li>x86-64</li>
+<li>MMX</li>
+<li>SSE/2/3</li>
+<li>SSSE3</li>
+<li>SSE4.1, 4.2</li>
+<li>POPCNT</li></td>
+</tr>
+
+<tr>
+<td><a href="#mips">{@code mips}</a></td>
+<td><li>MIPS32r1 and later</li></td>
+<td>Uses hard-float, and assumes a CPU:FPU clock ratio of 2:1 for maximum
+compatibility. Provides neither micromips nor MIPS16.</td>
+</tr>
+
+<tr>
+<td><a href="#mips64">{@code mips64}</a></td>
+<td><li>MIPS64r6</li></td><td>
+</td>
+</tr>
+</table>
+
+<p>More detailed information about each ABI appears below.</p>
+
+<h3 id="armeabi">armeabi</h3>
+<p>This ABI is for ARM-based CPUs that support at least
+the ARMv5TE instruction set. Please refer to the following documentation for
+more details:</p>
+
+<ul>
+<li><a href="https://www.scss.tcd.ie/~waldroj/3d1/arm_arm.pdf">ARM Architecture
+Reference Manual</a></li>
+<li><a
+href="http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042e/IHI0042E_aapcs.pdf">
+Procedure Call Standard for the ARM Architecture</a></li>
+<li><a
+href="http://infocenter.arm.com/help/topic/com.arm.doc.dui0101a/DUI0101A_Elf.pdf">
+ARM ELF File Format</a></li>
+<li><a
+href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.subset.swdev.abi/index.html">Application Binary Interface (ABI) for the ARM Architecture</a></li>
+<li><a
+href="http://infocenter.arm.com/help/topic/com.arm.doc.ihi0037c/IHI0037C_bpabi.pdf">
+Base Platform ABI for the ARM Architecture</a></li>
+<li><a
+href="http://infocenter.arm.com/help/topic/com.arm.doc.ihi0039c/IHI0039C_clibabi.pdf">
+C Library ABI for the ARM Architecture</a></li>
+<li><a
+href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0041d/index.html">
+C++ ABI for the ARM Architecture</a></li>
+<li><a
+href="http://infocenter.arm.com/help/topic/com.arm.doc.ihi0043d/IHI0043D_rtabi.pdf">
+Run-time ABI for the ARM Architecture</a></li>
+<li><a href="http://www.sco.com/developers/gabi/2001-04-24/contents.html">ELF
+System V Application Binary Interface</a></li>
+<li><a href="http://mentorembedded.github.com/cxx-abi/abi.html">Generic/Itanium C++
+ABI</a></li>
+</ul>
+
+<p>The AAPCS standard defines EABI as a family of similar
+but distinct ABIs. Also, Android follows the little-endian
+<a href="http://sourcery.mentor.com/sgpp/lite/arm/portal/kbattach142/arm_gnu_linux_ abi.pdf">
+ARM GNU/Linux ABI</a>.</p>
+
+<p>This ABI does not support hardware-assisted floating point
+computations. Instead, all floating-point operations use software helper
+functions from the compiler's {@code libgcc.a} static library.</p>
+
+<p>The armeabi ABI supports ARM’s
+<a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0210c/CACBCAAE.html">
+Thumb (a.k.a. Thumb-1) instruction set</a>. The NDK generates Thumb
+code by default unless you specify different behavior using the
+<code>LOCAL_ARM_MODE</code> variable in your <a href="android_mk.html"><code>Android.mk</code></a>
+file.</p>
+
+<h3 id="v7a">armeabi-v7a (armeabi-v7a-hard)</h3>
+<p>This ABI extends armeabi to include several
+<a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0406c/index.html">
+CPU instruction set extensions</a>. The instruction extensions that this Android-specific
+ABI supports are:</p>
+
+<ul>
+<li>The Thumb-2 instruction set extension, which provides performance comparable to 32-bit ARM
+instructions with similar compactness to Thumb-1.</li>
+<li>The VFP hardware-FPU instructions. More specifically, VFPv3-D16, which
+includes 16 dedicated 64-bit floating point registers, in addition to another
+16 32-bit registers from the ARM core.</li>
+</ul>
+
+<p>Other extensions that the v7-a ARM spec describes, including
+<a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/Beijfcja.html">
+Advanced SIMD</a> (a.k.a. NEON), VFPv3-D32, and ThumbEE, are optional
+to this ABI. Since their presence is not guaranteed, the system should check at runtime
+whether the extensions are available. If they are not, you must use alternative code paths. This
+check is similar to the one that the system typically performs to check or use
+<a href="http://en.wikipedia.org/wiki/MMX_%28instruction_set%29">MMX</a>,
+<a href="http://en.wikipedia.org/wiki/SSE2">SSE2</a>, and other specialized
+instruction sets on x86 CPUs.</p>
+
+<p>For information about how to perform these runtime checks, refer to
+<a href="{@docRoot}ndk/guides/cpu-features.html">CPU Features</a>.
+Also, for information about the NDK's support for building
+machine code for NEON, see
+<a href="{@docRoot}ndk/guides/cpu-arm-neon.html">NEON Support</a>.</p>
+
+<p>The {@code armeabi-v7a} ABI uses the {@code -mfloat-abi=softfp} switch to
+enforce the rule that the compiler must pass all double values in core register pairs during
+function calls, instead of dedicated floating-point ones. The system can perform all internal
+computations using the FP registers. Doing so speeds up the computations greatly.</p>
+
+<p>Although the requirement to use core register pairs produces a modest performance hit, it ensures
+compatibility with all existing armeabi binaries. If you need the additional
+performance, you can specify your ABI as {@code armeabi-v7a-hard} instead. Doing so
+allows you to use hard floats, while still linking with Android native APIs
+that use {@code softfp}. For more information, refer to the comments in
+{@code $NDK/tests/device/hard-float/jni/android.mk}.</p>
+
+<p class="note"><strong>Note:</strong> You cannot specify {@code APP_ABI} as both
+{@code armeabi-v7a} and {@code armeabi-v7a-hard}. In either case, the build system places the
+shared libraries in the {@code armeabi-v7a/} directory.</p>
+
+<h3 id="hard">armeabi-v7a-hard</h3>
+<p>This variant of the {@code armeabi-v7a} ABI is unique to the NDK. The NDK build
+system adds the following flags in addition to those that it uses for the
+{@code armeabi-v7a} ABI:</p>
+
+<pre class="no-pretty-print">
+TARGET_CFLAGS += -mhard-float -D_NDK_MATH_NO_SOFTFP=1
+TARGET_LDFLAGS += -Wl,--no-warn-mismatch -lm_hard
+</pre>
+
+<p>The compiler compiles all code with hard-float, and links it with {@code libm_hard.a}.
+This math library is the same one as {@code libm.a}, except that it follows hard-float ABI
+conventions. In the APK, the generated shared libraries reside in {@code /lib/armeabi-v7a/}.</p>
+
+<h3 id="arm64-v8a">arm64-v8a</h3>
+<p>This ABI is for ARMv8-based CPUs that support AArch64. It also includes the NEON and
+VFPv4 instruction sets.</p>
+
+<p>For more information, see the
+<a href="http://www.arm.com/files/downloads/ARMv8_Architecture.pdf">ARMv8
+Technology Preview</a>, and contact ARM for further details.</p>
+
+<h3 id="x86">x86</h3>
+<p>This ABI is for CPUs supporting the instruction set commonly
+referred to as "x86" or "IA-32". Characteristics of this ABI include:</p>
+
+<ul>
+<li>Instructions normally generated by GCC with compiler flags such as the following:
+
+<pre class="no-pretty-print">
+-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32
+</pre>
+
+<p>These flags target the the Pentium Pro instruction set, along with the
+the <a href="http://en.wikipedia.org/wiki/MMX_%28instruction_set%29">MMX</a>,
+<a href="http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions">SSE</a>,
+<a href="http://en.wikipedia.org/wiki/SSE2">SSE2</a>,
+<a href="http://en.wikipedia.org/wiki/SSE3">SSE3</a>, and
+<a href="http://en.wikipedia.org/wiki/SSSE3">SSSE3</a> instruction set extensions.
+The generated code is an optimization balanced across the top Intel 32-bit
+CPUs.</p>
+<p> For more information on compiler flags, particularly related to performance optimization,
+refer to <a href="http://software.intel.com/blogs/2012/09/26/gcc-x86-performance-hints">GCC
+x86 Performance</a>.</p>
+</li>
+<li>Use of the standard Linux x86 32-bit calling convention, as opposed to the one for SVR. For
+more information, see section 6, "Register Usage", of
+<a href="http://www.agner.org/optimize/calling_conventions.pdf">Calling conventions for different
+C++ compilers and operating systems</a>.</li>
+</ul>
+
+<p>The ABI does not include any other optional IA-32 instruction set
+extensions, such as:</p>
+<ul>
+<li>MOVBE</li>
+<li>Any variant of SSE4.</li>
+</ul>
+<p>You can still use these extensions, as long as you use runtime feature-probing to
+enable them, and provide fallbacks for devices that do not support them.</p>
+<p>The NDK toolchain assumes 16-byte stack alignment before a function call. The default tools and
+options enforce this rule. If you are writing assembly code, you must make sure to maintain stack
+alignment, and ensure that other compilers also obey this rule.</p>
+
+<p>Refer to the following documents for more details:</p>
+<ul>
+<li>
+<a href="https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/i386-and-x86-64-Options.html">
+GCC online documentation: Intel 386 and AMD x86-64 Options</a></li>
+<li><a href="http://www.agner.org/optimize/calling_conventions.pdf">Calling
+conventions for different C++ compilers and operating systems</a></li>
+<li><a
+href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf"
+>Intel IA-32 Intel Architecture Software Developer's Manual, Volume 2:
+Instruction Set Reference</a></li>
+<li><a
+href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-system-programming-manual-325384.pdf">Intel
+IA-32 Intel Architecture Software Developer's Manual, Volume 3: System
+Programming Guide</a></li>
+<li><a href="http://www.sco.com/developers/devspecs/abi386-4.pdf">System V Application Binary
+Interface: Intel386 Processor Architecture Supplement</a></li>
+</ul>
+
+<h3 id="86-64">x86_64</h3>
+<p>This ABI is for CPUs supporting the instruction set commonly referred to as
+"x86-64." It supports instructions that GCC typically generates with the following
+compiler flags:</p>
+<pre class="no-pretty-print">
+-march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel
+</pre>
+
+<p>These flags target the x86-64 instruction set, according to the GCC
+documentation. along with the
+<a href="http://en.wikipedia.org/wiki/MMX_%28instruction_set%29">MMX</a>,
+<a href="http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions">SSE</a>,
+<a href="http://en.wikipedia.org/wiki/SSE2">SSE2</a>,
+<a href="http://en.wikipedia.org/wiki/SSE3">SSE3</a>,
+<a href="http://en.wikipedia.org/wiki/SSSE3">SSSE3</a>,
+<a href="http://en.wikipedia.org/wiki/SSE4#SSE4.1">SSE4.1</a>,
+<a href="http://en.wikipedia.org/wiki/SSE4#SSE4.2">SSE4.2</a>, and
+<a href="https://software.intel.com/en-us/node/512035">POPCNT</a>
+instruction-set extensions. The generated code is an optimization balanced
+across the top Intel 64-bit CPUs.</p>
+
+<p> For more information on compiler flags, particularly related to performance optimization,
+refer to <a href="http://software.intel.com/blogs/2012/09/26/gcc-x86-performance-hints">GCC
+x86 Performance</a>.</p>
+
+<p>This ABI does not include any other optional x86-64 instruction set
+extensions, such as:</p>
+
+<ul>
+<li>MOVBE</li>
+<li>SHA</li>
+<li>AVX</li>
+<li>AVX2</li>
+</ul>
+
+<p>You can still use these extensions, as long as you use runtime feature probing to
+enable them, and provide fallbacks for devices that do not support them.</p>
+<p>Refer to the following documents for more details:</p>
+
+<ul>
+<li><a href="http://www.agner.org/optimize/calling_conventions.pdf">Calling conventions for
+different C++ compilers and operating systems</a></li>
+<li>
+<a href="http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html?iid=tech_vt_tech+64-32_manuals">
+Intel64 and IA-32 Architectures Software Developer's Manual, Volume 2: Instruction Set
+Reference</a></li>
+<li>
+<a href="http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html?iid=tech_vt_tech+64-32_manuals">
+Intel64 and IA-32 Intel Architecture Software Developer's Manual Volume 3: System Programming</a>
+</li>
+</ul>
+
+<h3 id="mips">mips</h3>
+<p>This ABI is for MIPS-based CPUs that support at least the MIPS32r1 instruction set. It includes
+the following features:</p>
+
+<ul>
+<li>MIPS32 revision 1 ISA</li>
+<li>Little-endian</li>
+<li>O32</li>
+<li>Hard-float</li>
+<li>No DSP application-specific extensions</li>
+</ul>
+
+<p>For more information, please refer to the following documentation:</p>
+
+<ul>
+<li>Architecture for Programmers ("MIPSARCH")</li>
+<li><a href="https://refspecs.linuxbase.org/elf/gabi4+/contents.html">ELF
+System V Application Binary Interface</a></li>
+<li><a href="http://sourcery.mentor.com/public/cxx-abi/abi.html">Itanium/Generic C++
+ABI</a></li>
+</ul>
+
+<p>The MIPS-specific documentation is available
+<a href="http://www.imgtec.com/mips/architectures/mips32.asp">here</a>, with
+further information
+<a href="https://sourcery.mentor.com/sgpp/lite/mips/portal/target_arch?@action=faq&amp;target_arch=MIPS">here</a>.</p>
+</li>
+</ul>
+
+<h3 id="mips64">mips64</h3>
+<p>This ABI is for MIPS64 R6. For more information, see
+<a href="http://www.imgtec.com/mips/architectures/mips64.asp">MIPS Architecture</a>.</p>
+
+<h2 id="gc">Generating Code for a Specific ABI</h2>
+<p>By default, the NDK generates machine code for the armeabi ABI. You can
+generate ARMv7-a-compatible machine code, instead, by adding the following line
+to your <a href="{docRoot}ndk/guides/application_mk.html">{@code Application.mk}</a> file.</p>
+<pre class="no-pretty-print">
+APP_ABI := armeabi-v7a
+</pre>
+
+<p>To build machine code for two or more distinct ABIs, using spaces as delimiters. For
+example:</p>
+
+<pre class="no-pretty-print">
+APP_ABI := armeabi armeabi-v7a
+</pre>
+
+<p>This setting tells the NDK to build two versions of your machine code: one
+for each ABI listed on this line. For more information on the values you can specify for the
+{@code APP_ABI} variable, see <a href="{docRoot}ndk/guides/android_mk.html">Android.mk</a>.
+</p>
+
+<p>When you build multiple machine-code versions, the build system copies the libraries to your
+application project path, and ultimately packages them into your APK, so creating
+a <a href="http://en.wikipedia.org/wiki/Fat_binary"><i>fat binary</i></a>. A fat binary
+is larger than one containing only the machine code for a single system; the tradeoff is
+gaining wider compatibility, but at the expense of a larger APK.</p>
+
+<p>At installation time, the package manager unpacks only the most appropriate
+machine code for the target device. For details, see <a href="#aen">Automatic
+extraction of native code at install time</a>.</p>
+
+
+<h2 id="am">ABI Management on the Android Platform</h2>
+<p>This section provides details about how the Android platform manages native
+code in APKs.</p>
+
+<h3>Native code in app packages</h3>
+<p>Both the Play Store and Package Manager expect to find NDK-generated
+libraries on filepaths inside the APK matching the following pattern:</p>
+
+<pre class="no-pretty-print">
+/lib/&lt;abi&gt;/lib&lt;name&gt;.so
+</pre>
+
+<p>Here, {@code &lt;abi&gt;} is one of the ABI names listed under <a href="#sa">Supported ABIs</a>,
+and {@code &lt;name&gt;} is the name of the library as you defined it for the {@code LOCAL_MODULE}
+variable in the <a href="{@docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a> file. Since
+APK files are just zip files, it is trivial to open them and confirm that the shared native
+libraries are where they belong.</p>
+
+<p>If the system does not find the native shared libraries where it expects them, it cannot use
+them. In such a case, the app itself has to copy the libraries over, and then
+perform <code>dlopen()</code>.</p>
+
+<p>In a fat binary, each library resides under a directory whose name matches a corresponding ABI.
+For example, a fat binary may contain:</p>
+
+<pre class="no-pretty-print">
+/lib/armeabi/libfoo.so
+/lib/armeabi-v7a/libfoo.so
+/lib/arm64-v8a/libfoo.so
+/lib/x86/libfoo.so
+/lib/x86_64/libfoo.so
+/lib/mips/libfoo.so
+/lib/mips64/libfoo.so
+</pre>
+
+<p class="note"><strong>Note:</strong> ARMv7-based Android devices running 4.0.3 or earlier
+install native libraries from the {@code armeabi} directory instead of the {@code armeabi-v7a}
+directory if both directories exist. This is because {@code /lib/armeabi/} comes after
+{@code /lib/armeabi-v7a/} in the APK. This issue is fixed from 4.0.4.</p>
+
+<h3>Android Platform ABI support</h3>
+<p>The Android system knows at runtime which ABI(s) it supports, because build-specific system
+properties indicate:</p>
+
+<ul>
+<li>The primary ABI for the device, corresponding to the machine code used in
+the system image itself.</li>
+<li>An optional, secondary ABI, corresponding to another ABI that the system image also supports.
+</li>
+</ul>
+
+<p>This mechanism ensures that the system extracts the best machine code from
+the package at installation time.</p>
+
+<p>For best performance, you should compile directly for the primary ABI. For example, a
+typical ARMv5TE-based device would only define the primary ABI: {@code armeabi}. By contrast, a
+typical, ARMv7-based device would define the primary ABI as {@code armeabi-v7a} and the secondary
+one as {@code armeabi}, since it can run application native binaries generated for each of them.</p>
+
+<p>Many x86-based devices can also run {@code armeabi-v7a} and {@code armeabi} NDK binaries. For
+such devices, the primary ABI would be {@code x86}, and the second one, {@code armeabi-v7a}.</p>
+
+<p>A typical MIPS-based device only defines a primary abi: {@code mips}.</p>
+
+<h3 id="aen">Automatic extraction of native code at install time</h3>
+
+<p>When installing an application, the package manager service scans the APK, and looks for any
+shared libraries of the form:</p>
+
+<pre class="no-pretty-print">
+lib/&lt;primary-abi&gt;/lib&lt;name&gt;.so
+</pre>
+
+<p>If none is found, and you have defined a secondary ABI, the service scans for shared libraries of
+the form:</p>
+
+<pre class="no-pretty-print">
+lib/&lt;secondary-abi&gt;/lib&lt;name&gt;.so
+</pre>
+
+<p>When it finds the libraries that it's looking for, the package manager
+copies them to <code>/lib/lib&lt;name&gt;.so</code>, under the application's
+{@code data} directory ({@code data/data/&lt;package_name&gt;/lib/}).</p>
+
+<p>If there is no shared-object file at all, the application builds and installs, but crashes at
+runtime.</p>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/android_mk.jd b/docs/html-ndk/ndk/guides/android_mk.jd
new file mode 100644
index 0000000..da94679
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/android_mk.jd
@@ -0,0 +1,891 @@
+page.title=Android.mk
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#over">Overview</a></li>
+        <li><a href="#basics">Basics</a></li>
+        <li><a href="#var">Variables and Macros</a></li>
+        <li><a href="#npv">NDK-provided variables</a></li>
+        <li><a href="#npfm">NDK-provided function macros</a></li>
+        <li><a href="#mdv">Module-description variables</a></li>
+      </ol>
+    </div>
+  </div>
+
+
+<p>This page describes the syntax of the {@code Android.mk} build file,
+which glues your C and C++ source files to the Android NDK.</p>
+
+<h2 id="over">Overview</h2>
+<p>The {@code Android.mk} file resides in a subdirectory of your project's {@code jni/} directory,
+and describes your sources and shared libraries to the build system. It is really a tiny GNU
+makefile fragment that the build system parses once or more. The {@code Android.mk} file is useful
+for defining project-wide settings that {@code Application.mk}, the build system, and your
+environment variables leave undefined. It can also override project-wide settings for specific
+<i>modules</i>.</p>
+
+<p>The syntax of the {@code Android.mk} allows you to group your sources into
+<em>modules</em>. A module is either a static library, a shared library, or a standalone
+executable. You can define one or more modules in each {@code Android.mk} file, and
+you can use the same source file in multiple modules. The build system only places shared libraries
+into your application package. In addition, static libraries can generate shared libraries.</p>
+
+<p>In addition to packaging libraries, the build system handles a variety of other details for you.
+For example, you don't need to list header files or explicit dependencies between generated files in
+your {@code Android.mk} file. The NDK build system computes these relationships automatically for
+you. As a result, you should be able to benefit from new toolchain/platform support in future NDK
+releases without having to touch your {@code Android.mk} file.</p>
+
+<p>The syntax of this file is very close to that used in the {@code Android.mk} files distributed with
+the full <a href="https://source.android.com">Android Open Source Project</a>. While the
+build system implementation that uses them is different, their similarity is an
+intentional design decision aimed at making it easier for application
+developers to reuse source code for external libraries.</p>
+
+<h2 id="basics">Basics</h2>
+<p>Before exploring the syntax in detail, it is useful to start by understanding the basics
+of what a {@code Android.mk} file contains. This section uses the {@code Android.mk} file in the
+Hello-JNI sample toward that end, explaining the role that each line in the file plays.</p>
+
+
+<p>An {@code Android.mk} file must begin by defining the {@code LOCAL_PATH} variable:
+
+<pre class="no-pretty-print">
+LOCAL_PATH := $(call my-dir)
+</pre>
+
+<p>This variable indicates the location of the source files in the development tree. Here, the macro
+function {@code my-dir}, provided by the build system, returns the path of the current directory
+(the directory containing the {@code Android.mk} file itself).</p>
+
+<p>The next line declares the {@code CLEAR_VARS} variable, whose value the build system provides.
+
+<pre class="no-pretty-print">
+include $(CLEAR_VARS)
+</pre>
+
+<p>The {@code CLEAR_VARS} variable points to a special GNU Makefile that clears many
+{@code LOCAL_XXX} variables for you, such as {@code LOCAL_MODULE}, {@code LOCAL_SRC_FILES}, and
+{@code LOCAL_STATIC_LIBRARIES}. Note that it does not clear {@code LOCAL_PATH}. This variable must
+retain its value because the system parses all build control files in a single GNU Make execution
+context where all variables are global. You must (re-)declare this variable before describing each
+module.</p>
+
+<p>Next, the {@code LOCAL_MODULE} variable stores the name of the module that you wish to build.
+Use this variable once per module in your application.</p>
+
+<pre class="no-pretty-print">
+LOCAL_MODULE := hello-jni
+</pre>
+
+<p>Each module name must be unique and not contain any spaces. The build system, when it
+generates the final shared-library file, automatically adds the proper prefix and suffix to
+the name that you assign to {@code LOCAL_MODULE|. For example, the example that appears above
+results in generation of a library called {@code libhello-jni.so}.</p>
+
+<p class="note"><strong>Note:</strong> If your module's name already starts with {@code lib}, the
+build system does not prepend an additional {@code lib} prefix; it takes the module name as-is, and
+adds the {@code .so} extension. So a source file originally called, for example, {@code libfoo.c}
+still produces a shared-object file called {@code libfoo.so}. This behavior is to support libraries
+that the Android platform sources generate from {@code Android.mk} files; the names of all such
+libraries start with {@code lib}.</p>
+
+<p>The next line enumerates the source files, with spaces delimiting multiple files:</p>
+
+<pre class="no-pretty-print">
+LOCAL_SRC_FILES := hello-jni.c
+</pre>
+
+<p>The {@code LOCAL_SRC_FILES} variable must contain a list of C and/or C++ source files to build
+into a module.</p>
+
+<p>The last line helps the system tie everything together:</p>
+
+<pre class="no-pretty-print">
+include $(BUILD_SHARED_LIBRARY)
+</pre>
+
+<p>The {@code BUILD_SHARED_LIBRARY} variable points to a GNU Makefile script that collects all the
+information you defined in {@code LOCAL_XXX} variables since the most recent {@code include}. This
+script determines what to build, and how to do it.</p>
+
+<p>There are more complex examples in the samples directories, with commented
+{@code Android.mk} files that you can look at. In addition, the
+<a href="{@docRoot}ndk/guides/native-activity.html">walkthrough</a> of the native-activity sample
+disucsses that sample's {@code Android.mk} file in some detail. Finally, the next section explains
+the variables from this section in a bit more detail.
+
+
+<h2 id="var">Variables and Macros</h2>
+<p>The build system provides many possible variables for use in the the {@code Android.mk} file.
+Many of these variables come with preassigned values. Others, you assign.</p>
+
+<p>In addition to these variables, you can also define your own arbitrary ones. If you do so, keep
+in mind that the NDK build system reserves the following variable names:</p>
+<ul>
+<li>Names that begin with {@code LOCAL_}, such as {@code LOCAL_MODULE}.</li>
+<li>Names that begin with {@code PRIVATE_}, {@code NDK_}, or {@code APP}. The build system uses
+these internally.</li>
+<li>Lower-case names, such as {@code my-dir}. The build system uses these internally, as well.</li>
+</ul>
+<p>If you need to define your own convenience variables in an {@code Android.mk} file, we
+recommend prepending {@code MY_} to their names.
+
+
+<h3 id="npv">NDK-defined variables</h3>
+<p>This section discusses the GNU Make variables that the build system defines before parsing your
+{@code Android.mk} file. Under certain circumstances, the NDK might parse your {@code Android.mk}
+file several times, using a different definition for some of these variables each time.</p>
+
+<h4>CLEAR_VARS</h4>
+<p>This variable points to a build script that undefines nearly all {@code LOCAL_XXX} variables
+listed in the "Developer-defined variables" section below. Use this variable to include
+this script before describing a new module. The syntax for using it is:</p>
+
+<pre class="no-pretty-print">
+include $(CLEAR_VARS)
+</pre>
+
+<h4>BUILD_SHARED_LIBRARY</h4>
+<p>This variable points to a build script that collects all the information about the module
+you provided in your {@code LOCAL_XXX} variables, and determines how to build a target shared
+library from the sources you listed. Note that using this script requires that you have already
+assigned values to {@code LOCAL_MODULE} and {@code LOCAL_SRC_FILES}, at a minimum (for more
+information about these variables, see <a href = "#mdv">Module-description variables</a>).</p>
+
+<p>The syntax for using this variable is:</p>
+
+<pre class="no-pretty-print">
+include $(BUILD_SHARED_LIBRARY)
+</pre>
+
+<p>A shared-library variable causes the build system to generate a library file with a {@code .so}
+extension.</p>
+
+<h4>BUILD_STATIC_LIBRARY</h4>
+<p>A variant of {@code BUILD_SHARED_LIBRARY} that is used to build a static library. The build
+system does not copy static libraries into your project/packages, but it can use them to build
+shared libraries (see {@code LOCAL_STATIC_LIBRARIES} and {@code LOCAL_WHOLE_STATIC_LIBRARIES},
+below). The syntax for using this variable is:</p>
+
+<pre class="no-pretty-print">
+include $(BUILD_STATIC_LIBRARY)
+</pre>
+
+<p>A static-library variable causes the build system to generate a library with a {@code .a}
+extension.</p>
+
+<h4>PREBUILT_SHARED_LIBRARY</h4>
+<p>Points to a build script used to specify a prebuilt shared library. Unlike in the case of
+{@code BUILD_SHARED_LIBRARY} and {@code BUILD_STATIC_LIBRARY}, here the value of
+{@code LOCAL_SRC_FILES} cannot be a source file. Instead, it must be a single path to a prebuilt
+shared library, such as {@code foo/libfoo.so}. The syntax for using this variable is:</p>
+
+<pre class="no-pretty-print">
+include $(PREBUILT_SHARED_LIBRARY)
+</pre>
+
+<p>You can also reference a prebuilt library in another module by using the
+{@code LOCAL_PREBUILTS} variable. The following example shows an example of using
+{@code LOCAL_PREBUILTS}:
+
+<!--
+<pre class="no-pretty-print">
+(TODO: Example of referencing prebuilt library from another, using LOCAL_PREBUILTS.)
+</pre>
+-->
+
+<p>For more information about using prebuilts, see <a href="{@docRoot}ndk/guides/prebuilts.html">
+NDK Prebuilt Library Support</a>.</p>
+
+
+<h4>PREBUILT_STATIC_LIBRARY</h4>
+<p>The same as {@code PREBUILT_SHARED_LIBRARY}, but for a prebuilt static library. For more
+information about using prebuilts, see <a href="{@docRoot}ndk/guides/prebuilts.html">NDK Prebuilt
+Library Support</a>.</p>
+
+<h4>TARGET_ARCH</h4>
+<p>The name of the target CPU architecture as the Android Open Source Project specifies it.
+For any ARM-compatible build, use {@code arm}, independent of the CPU architecture revision or
+ABI (see TARGET_ARCH_ABI, below).</p>
+
+<p>The value of this variable is taken from the APP_ABI variable that you define in the
+<a href="{docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a> file, which the system
+reads ahead of parsing the {@code Android.mk} file.</p>
+
+<h4>TARGET_PLATFORM</h4>
+<p>The Android API level number for the build system to target.
+For example, the Android 5.1 system images correspond to Android API level 22: {@code android-22}.
+For a complete list of platform names and corresponding Android system
+images, see <a href="{@docRoot}ndk/guides/stable_apis.html">Android NDK Stable APIs</a>.
+The following example shows the syntax for using this variable:</p>
+
+<pre class="no-pretty-print">
+TARGET_PLATFORM := android-22
+</pre>
+
+<h4>TARGET_ARCH_ABI</h4>
+<p>This variable stores the name of the CPU and architecture to target when the build system
+parses this {@code Android.mk} file. You can specify one or more of the following values, using
+a space as a delimiter between multiple targets. Table 1 shows the ABI setting to use for each
+supported CPU and architecture.
+
+<p class="table-caption" id="table1">
+  <strong>Table 1.</strong> ABI settings for different CPUs and architectures.</p>
+<table>
+  <tr>
+    <th scope="col">CPU and architecture</th>
+    <th scope="col">Setting</th>
+  </tr>
+  <tr>
+    <th scope="col">ARMv5TE</th>
+    <th scope="col">{@code armeabi}</th>
+  </tr>
+  <tr>
+    <th scope="col">ARMv7</th>
+    <th scope="col">{@code armeabi-v7a}</th>
+  </tr>
+  <tr>
+    <th scope="col">ARMv8 AArch64</th>
+    <th scope="col">{@code arm64-v8a}</th>
+  </tr>
+  <tr>
+    <th scope="col">i686</th>
+    <th scope="col">{@code x86}</th>
+  </tr>
+  <tr>
+    <th scope="col">x86-64</th>
+    <th scope="col">{@code x86_64}</th>
+  </tr>
+  <tr>
+    <th scope="col">mips32 (r1)</th>
+    <th scope="col">{@code mips}</th>
+  </tr>
+  <tr>
+    <th scope="col">mips64 (r6)</th>
+    <th scope="col">{@code mips64}</th>
+  </tr>
+  <tr>
+    <th scope="col">All</th>
+    <th scope="col">{@code all}</th>
+  </tr>
+</table>
+
+<p>The following example shows how to set ARMv8 AArch64 as the target CPU-and-ABI combination:</p>
+
+<pre class="no-pretty-print">
+TARGET_ARCH_ABI := arm64-v8a
+</pre>
+
+<p class="note"><strong>Note: </strong> Up to Android NDK 1.6_r1, this variable is defined as
+{@code arm}.</p>
+
+<p>For more details about architecture ABIs and associated compatibility
+issues, refer to
+<a href="{@docRoot}ndk/guides/md_3__key__topics__c_p_u__support__chapter_1-section_8__a_b_is.html">
+Android Native CPU ABI Management</a></p>
+
+<p>New target ABIs in the future will have different values.</p>
+
+<h4>TARGET_ABI</h4>
+<p>A concatenation of target Android API level and ABI, it is especially useful when you want to test against
+a specific target system image for a real device. For example, to specify a 64-bit ARM device
+running on Android API level 22:</p>
+
+<pre class="no-pretty-print">
+TARGET_ABI := android-22-arm64-v8a
+</pre>
+
+<p class="note"><strong>Note:</strong> Up to Android NDK 1.6_r1, the default value was
+{@code android-3-arm}.</p>
+
+<h2 id="mdv">Module-description variables</h2>
+<p>The variables in this section describe your module to the build system. Each module description
+should follow this basic flow:
+<ul>
+<ol type = "1">
+<li>Initialize or undefine the variables associated with the module, using the {@code CLEAR_VARS}
+  variable.</li>
+<li>Assign values to the variables used to describe the module.
+<li>Set the NDK build system to use the appropriate build script for the module, using the
+  {@code BUILD_XXX} variable.</li>
+</ol>
+</ul>
+
+<h4>LOCAL_PATH</h4>
+<p>This variable is used to give the path of the current file. You must define
+it at the start of your {@code Android.mk} file. The following example shows how to do so:</p>
+
+<pre class="no-pretty-print">
+LOCAL_PATH := $(call my-dir)
+</pre>
+
+<p>The script to which {@code CLEAR_VARS} points does not clear this variable. Therefore, you only need
+to define it a single time, even if your {@code Android.mk} file describes multiple modules.</p>
+
+<h4>LOCAL_MODULE</h4>
+<p>This variable stores the name of your module. It must be unique among all module names,
+and must not contain any spaces. You must define it before including any scripts (other than
+the one for {@code CLEAR_VARS}). You need not add either the {@code lib} prefix
+or the {@code .so} or {@code .a} file extension; the build system makes these modifications
+automatically. Throughout your {@code Android.mk} and {@code Application.mk} files, refer to
+your module by its unmodified name. For example, the following line results in the generation of a
+shared library module called {@code libfoo.so}:</p>
+
+<pre class="no-pretty-print">
+LOCAL_MODULE := "foo"
+</pre>
+
+<p>If you want the generated module to have a name other than {@code lib} + the value of
+{@code LOCAL_MODULE}, you can use the {@code LOCAL_MODULE_FILENAME} variable to give the
+generated module a name of your own choosing, instead.</p>
+
+<h4>LOCAL_MODULE_FILENAME</h4>
+<p>This optional variable allows you to override the names that the build system
+uses by default for files that it generates. For example, if the name of your {@code LOCAL_MODULE}
+is {@code foo}, you can force the system to call the file it generates {@code libnewfoo}. The
+following example shows how to accomplish this:</p>
+
+<pre class="no-pretty-print">
+LOCAL_MODULE := foo
+LOCAL_MODULE_FILENAME := libnewfoo
+</pre>
+
+<p>For a shared library module, this example would generate a file called {@code libnewfoo.so}.</p>
+
+<p class="note"><strong>Note:</strong> You cannot override filepath or file extension.</p>
+
+<h4>LOCAL_SRC_FILES</h4>
+<p>This variable contains the list of source files that the build system uses to generate the
+module. Only list the files that the build system actually passes to the compiler, since the build
+system automatically computes any associated depencies.</p>
+<p>Note that you can use both relative (to {@code LOCAL_PATH}) and absolute file paths.
+
+<p>We recommend avoiding absolute file paths; relative paths make your
+<a href="{@docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a> file more
+portable.</p>
+
+<p class="note"><strong>Note: </strong> Always use Unix-style forward slashes (/) in build files.
+The build system does not handle Windows-style backslashes (\) properly.</p>
+
+<h4>LOCAL_CPP_EXTENSION</h4>
+<p>You can use this optional variable to indicate a file extension other than {@code .cpp} for your
+C++ source files. For example, the following line changes the extension to {@code .cxx}.
+(The setting must include the dot.)
+
+<pre class="no-pretty-print">
+LOCAL_CPP_EXTENSION := .cxx
+</pre>
+
+<p>From NDK r7, you can use this variable to specify multiple extensions. For instance:</p>
+
+<pre class="no-pretty-print">
+LOCAL_CPP_EXTENSION := .cxx .cpp .cc
+</pre>
+
+<h4>LOCAL_CPP_FEATURES</h4>
+
+<p>You can use this optional variable to indicate that your code relies on specific C++ features.
+It enables the right compiler and linker flags during the build process. For prebuilt binaries,
+this variable also declares which features the binary depends on, thus helping ensure the final
+linking works correctly. We recommend that you use this variable instead of enabling
+{@code -frtti} and {@code -fexceptions} directly in your {@code LOCAL_CPPFLAGS} definition.</p>
+
+<p>Using this variable allows the build system to use the appropriate flags for each module. Using
+{@code LOCAL_CPPFLAGS} causes the compiler to use all specified flags for all modules, regardless
+of actual need.</p>
+
+For example, to indicate that your code uses RTTI (RunTime Type Information), write: </p>
+
+<pre class="no-pretty-print">
+LOCAL_CPP_FEATURES := rtti
+</pre>
+
+<p>To indicate that your code uses C++ exceptions, write:</p>
+
+<pre class="no-pretty-print">
+LOCAL_CPP_FEATURES := exceptions
+</pre>
+
+<p>You can also specify multiple values for this variable. For example:</p>
+
+<pre class="no-pretty-print">
+LOCAL_CPP_FEATURES := rtti features
+</pre>
+
+The order in which you describe the values does not matter.
+
+
+<h4>LOCAL_C_INCLUDES</h4>
+<p>You can use this optional variable to specify a list of paths, relative to the
+NDK {@code root} directory, to add to the include search path when compiling all sources
+(C, C++ and Assembly). For example: </p>
+
+<pre class="no-pretty-print">
+LOCAL_C_INCLUDES := sources/foo
+</pre>
+
+<p>Or even: </p>
+
+<pre class="no-pretty-print">
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/<subdirectory>/foo
+</pre>
+
+<p>Define this variable before setting any corresponding inclusion flags via {@code LOCAL_CFLAGS}
+or {@code LOCAL_CPPFLAGS}.</p>
+
+<p>The build system also uses {@code LOCAL_C_INCLUDES} paths automatically when launching native
+debugging with ndk-gdb.</p>
+
+
+<h4>LOCAL_CFLAGS</h4>
+
+<p>This optional variable sets compiler flags for the build system to pass when building C
+<em>and</em> C++ source files. The ability to do so can be useful for specifying additional macro
+definitions or compile options.</p>
+
+<p>Try not to change the optimization/debugging level in your {@code Android.mk} file.
+The build system can handle this setting automatically for you, using the relevant information
+in the {@code Application.mk} file. Doing it this way allows the build system to generate useful
+data files used during debugging.</p>
+
+<p class="note"><strong>Note: </strong>In android-ndk-1.5_r1, the corresponding flags only applied
+to C source files, not C++ ones. They now match the full Android build system behavior.
+(You can now use {@code LOCAL_CPPFLAGS} to specify flags for C++ sources only.)</p>
+
+<p>It is possible to specify additional include paths by writing:
+
+<pre class="no-pretty-print">
+LOCAL_CFLAGS += -I&lt;path&gt;,
+</pre>
+
+It is better, however, to use {@code LOCAL_C_INCLUDES} for this purpose, since
+doing so also makes it possible to use the paths available for native debugging with ndk-gdb.</p>
+
+
+<h4>LOCAL_CPPFLAGS</h4>
+<p>An optional set of compiler flags that will be passed when building C++
+source files <em>only</em>. They will appear after the LOCAL_CFLAGS on the
+compiler's command-line.</p>
+
+
+<p class="note"><strong>Note: </strong>In android-ndk-1.5_r1, the corresponding flags applied to
+both C and C++ sources. This has been corrected to match the full Android build system.
+To specify flags for both C and C++ sources, use {@code LOCAL_CFLAGS}.</p>
+
+
+<h4>LOCAL_STATIC_LIBRARIES</h4>
+
+<p>This variable stores the list of static libraries modules on which the current module depends.</p>
+
+<p>If the current module is a shared library or an executable, this variable will force
+these libraries to be linked into the resulting binary.</p>
+
+<p>If the current module is a static library, this variable simply indicates that other
+modules depending on the current one will also depend on the listed
+libraries.</p>
+
+<h4>LOCAL_SHARED_LIBRARIES</h4>
+
+<p>This variable is the list of shared libraries <em>modules</em> on which this module depends at
+runtime. This information is necessary at link time, and to embed the corresponding information
+in the generated file.</p>
+
+<h4>LOCAL_WHOLE_STATIC_LIBRARIES</h4>
+<p>This variable is a variant of {@code LOCAL_STATIC_LIBRARIES}, and expresses that the linker
+should treat the associated library modules as <em>whole archives</em>. For more information
+on whole archives, see the GNU linker's
+<a href="http://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_3.html">documentation</a> for the
+{@code --whole-archive} flag.</p>
+
+<p>This variable is useful when there are circular dependencies among
+several static libraries. When you use this variable to build a shared library, it will force
+the build system to add all object files from your static libraries to the final binary. The same
+is not true, however, when generating executables.</p>
+
+
+<h4>LOCAL_LDLIBS</h4>
+
+<p>This variable contains the list of additional linker flags for use in building your shared
+library or executable. It enables you to use the {@code -l} prefix to pass the name of specific
+system libraries. For example, the following example tells the linker to generate a module that
+links to {@code /system/lib/libz.so} at load time: </p>
+
+<pre class="no-pretty-print">
+LOCAL_LDLIBS := -lz
+</pre>
+
+<p>For the list of exposed system libraries against which you can link in this NDK release, see
+<a href="stable_apis.html">Android NDK Stable APIs</a>.</p>
+
+<p class="note"><strong>Note: </strong> If you define this variable for a static library,
+the build system ignores it, and {@code ndk-build} prints a warning.</p>
+
+<h4>LOCAL_LDFLAGS</h4>
+
+<p>The list of other linker flags for the build system to use when building your shared library
+or executable. For example, the following example uses the {@code ld.bfd} linker on ARM/X86 GCC
+4.6+, on which {@code ld.gold} is the default </p>
+
+<pre class="no-pretty-print">
+LOCAL_LDFLAGS += -fuse-ld=bfd
+</pre>
+
+<p class="note"><strong>Note: </strong>If you define this variable for a static library, the build
+system ignores it, and ndk-build prints a warning.</p>
+
+<h4>LOCAL_ALLOW_UNDEFINED_SYMBOLS</h4>
+
+<p>By default, when the build system encounters an undefined reference encountered while trying to
+build a shared, it will throw an <em>undefined symbol</em> error. This error can help you catch
+catch bugs in your source code.</p>
+
+<p>To disable this check, set this variable to {@code true}. Note that this setting may cause the
+shared library to load at runtime.</p>
+
+<p class="note"><strong>Note: </strong> If you define this variable for a static library,
+the build system ignores it, and ndk-build prints a warning.</p>
+
+<h4>LOCAL_ARM_MODE</h4
+>
+<p>By default, the build system generates ARM target binaries in <em>thumb</em> mode, where each
+instruction is 16 bits wide and linked with the STL libraries in the {@code thumb/} directory.
+Defining this variable as {@code arm} forces the build system to generate the module's object
+files in 32-bit {@code arm} mode. The following example shows how to do this:</p>
+
+<pre class="no-pretty-print">
+LOCAL_ARM_MODE := arm
+</pre>
+
+<p>You can also instruct the build system to only build specific sources in {@code arm} mode by
+appending {@code .arm} suffix to the the source filenames. For example, the following example
+tells the build system to always compile {@code bar.c} in ARM mode, but to build
+{@code foo.c} according to the value of {@code LOCAL_ARM_MODE}.</p>
+
+<pre class="no-pretty-print">
+LOCAL_SRC_FILES := foo.c bar.c.arm
+</pre>
+
+<p></p>
+
+<p class="note"><strong>Note: </strong> You can also force the build system to generate ARM binaries
+by setting {@code APP_OPTIM} in your
+<a href="{@docRoot}ndk/guides/application_mk.html>{@code Application.mk}</a> file to {@code debug}.
+Specifying {@code debug} forces an ARM build because the toolchain debugger does not handle thumb
+code properly.</p>
+
+
+<h4>LOCAL_ARM_NEON</h4>
+<p>This variable only matters when you are targetting the {@code armeabi-v7a} ABI. It allows the
+use of ARM Advanced SIMD (NEON) GCC intrinsics in your C and C++ sources, as well as NEON
+instructions in Assembly files.</p>
+
+<p>Note that not all ARMv7-based CPUs support the NEON instruction set extensions. For this reason,
+you must perform runtime detection to be able to safely use this code at runtime. For more
+information, please see <a href="{@docRoot}ndk/guides/cpu_support.html">Android
+NDK &amp; ARM NEON Instruction Set Extension Support</a> and <a
+href="{@docRoot}ndk/guides/cpu_features.html">Android
+NDK CPU Features Detection Library</a>.</p>
+
+<p>Alternatively, you can use the {@code .neon} suffix to specify that the build system only
+compile specific source files with NEON support. In the following example, the build system compiles
+{@code foo.c} with thumb and neon support, {@code bar.c} with thumb support, and
+{@code zoo.c} with support for ARM and NEON:</p>
+
+<pre class="no-pretty-print">
+LOCAL_SRC_FILES = foo.c.neon bar.c zoo.c.arm.neon
+</pre>
+
+
+<p>If you use both suffixes, {@code .arm} must precede {@code .neon}.</p>
+
+<h4>LOCAL_DISABLE_NO_EXECUTE</h4>
+
+<p>Android NDK r4 added support for the "NX bit" security feature. It is
+enabled by default, but you can disable it by setting this variable to {@code true}. We do not
+recommend doing so without a compelling reason.</p>
+
+<p>This feature does not modify the ABI, and is only enabled on kernels
+targeting ARMv6+ CPU devices. Machine code with this feature enabled
+will run unmodified on devices running earlier CPU architectures.</p>
+<p>For more information, see <a href="http://en.wikipedia.org/wiki/NX_bit">Wikipedia: NX bit</a>
+and <a href="http://www.gentoo.org/proj/en/hardened/gnu-stack.xml">The GNU stack kickstart</a>.
+
+<h4>LOCAL_DISABLE_RELRO</h4>
+
+<p>By default, the NDK compiles code with read-only relocations and GOT
+protection. This variable instructs the runtime linker to mark certain regions of memory
+as read-only after relocation, making certain security exploits (such as GOT overwrites)
+more difficult. Note that these protections are only effective on Android API level 16 and higher.
+On lower API levels, the code will still run, but without memory protections.</p>
+
+<p>This variable is turned on by default, but you can disable it by setting its value to
+{@code true}. We do not recommend doing so without a compelling reason.</p>
+
+<p>For more information, see
+<a href="http://isisblogs.poly.edu/2011/06/01/relro-relocation-read-only/">RELRO:
+RELocation Read-Only</a> and <a href="http://www.akkadia.org/drepper/nonselsec.pdf">Security
+enhancements in RedHat Enterprise Linux (section 6)</a>.</p>
+
+<h4>LOCAL_DISABLE_FORMAT_STRING_CHECKS</h4>
+
+<p>By default, the build system compiles code with format string protection. Doing so forces a
+compiler error if a non-constant format string is used in a {@code printf}-style function.</p>
+<p>This protection is off by default, but you can disable it by setting its value to
+{@code true}. We do not recommend doing so without a compelling reason.</p>
+
+
+<h4>LOCAL_EXPORT_CFLAGS</h4>
+
+<p>This variable records a set of C/C++ compiler flags to add to the {@code LOCAL_CFLAGS} definition
+of any other module that uses this one via the {@code LOCAL_STATIC_LIBRARIES} or
+{@code LOCAL_SHARED_LIBRARIES} variables.</p>
+
+<p>For example, consider the following pair of modules: {@code foo} and {@code bar}, which depends
+on {@code foo}:</p>
+
+<pre class="no-pretty-print">
+include $(CLEAR_VARS)
+LOCAL_MODULE := foo
+LOCAL_SRC_FILES := foo/foo.c
+LOCAL_EXPORT_CFLAGS := -DFOO=1
+include $(BUILD_STATIC_LIBRARY)
+
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := bar
+LOCAL_SRC_FILES := bar.c
+LOCAL_CFLAGS := -DBAR=2
+LOCAL_STATIC_LIBRARIES := foo
+include $(BUILD_SHARED_LIBRARY)
+</pre>
+
+<p>Here, the build system passes the flags {@code -DFOO=1} and {@code -DBAR=2} to the compiler when
+building {@code bar.c}. It also prepends exported flags to your your module's {@code LOCAL_CFLAGS}
+so you can easily override them.</p>
+
+In addition, the relationship among modules is transitive: If {@code zoo} depends on
+{@code bar}, which in turn depends on {@code foo}, then {@code zoo} also inherits all flags
+exported from {@code foo}.</p>
+
+<p>Finally, the build system does not use exported flags when building locally (i.e., building the
+module whose flags it is exporting). Thus, in the example above, it does not pass {@code -DFOO=1}
+to the compiler when building {@code foo/foo.c}. To build locally, use {@code LOCAL_CFLAGS}
+instead.</p>
+
+<h4>LOCAL_EXPORT_CPPFLAGS</h4>
+<p>This variable is the same as {@code LOCAL_EXPORT_CFLAGS}, but for C++ flags only.</p>
+
+<h4>LOCAL_EXPORT_C_INCLUDES</h4>
+<p>This variable is the same as {@code LOCAL_EXPORT_CFLAGS}, but for C include paths. It is useful
+in cases where, for example, {@code bar.c} needs to include headers from module {@code foo}.</p>
+
+<h4>LOCAL_EXPORT_LDFLAGS</h4>
+<p>This variable is the same as {@code LOCAL_EXPORT_CFLAGS}, but for linker flags.</p>
+
+<h4>LOCAL_EXPORT_LDLIBS</h4>
+<p>This variable is the same as {@code LOCAL_EXPORT_CFLAGS}, telling the build system to pass names
+of specific system libraries to the compiler. Prepend {@code -l} to the name of each library you
+specify.</p>
+
+<p>Note that the build system appends imported linker flags to the value of your module's
+{@code LOCAL_LDLIBS} variable. It does this due to the way Unix linkers work.</p>
+
+<p>This variable is typically useful when module {@code foo} is a static library
+and has code that depends on a system library. You can then use {@code LOCAL_EXPORT_LDLIBS} to
+to export the dependency. For example: </p>
+
+<pre class="no-pretty-print">
+include $(CLEAR_VARS)
+LOCAL_MODULE := foo
+LOCAL_SRC_FILES := foo/foo.c
+LOCAL_EXPORT_LDLIBS := -llog
+include $(BUILD_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := bar
+LOCAL_SRC_FILES := bar.c
+LOCAL_STATIC_LIBRARIES := foo
+include $(BUILD_SHARED_LIBRARY)
+</pre>
+
+<p>In this example, the build system puts {@code -llog} at the end of the linker command when it
+builds {@code libbar.so}. Doing so tells the linker that, because {@code libbar.so} depends
+on {@code foo}, it also depends on the system logging library.</p>
+
+<h4>LOCAL_SHORT_COMMANDS</h4>
+<p>Set this variable to {@code true} when your module has a very high
+number of sources and/or dependent static or shared libraries. Doing so forces the
+build system to use {@code @} syntax for archives containing intermediate object files
+or linking libraries.</p>
+
+<p>This feature can be useful on Windows, where the command line accepts a maximum of only
+of 8191 characters, which can be too small for complex projects. It also impacts the compilation of
+individual source files, placing nearly all compiler flags inside list files, too.</p>
+
+<p>Note that any value other than {@code true} will revert to the
+default behaviour. You can also define {@code APP_SHORT_COMMANDS} in your
+<a href="{docRoot}ndk/guides/application_mk.html">{@code Application.mk}</a> file to force this
+behavior for all modules in your project.</p>
+
+<p>We do not recommend enabling this feature by default, since it makes the build slower.</p>
+
+
+<h4>LOCAL_THIN_ARCHIVE</h4>
+
+<p>Set this variable to {@code true} when building static libraries.
+Doing so will generate a <strong>thin archive</strong>, a library file that does not contain
+object files, but instead just file paths to the actual objects that it would normally
+contain.</p>
+<p>This is useful to reduce the size of your build output. The drawback is that
+such libraries <em>cannot</em> be moved to a different location (all paths
+inside them are relative).</p>
+<p>Valid values are {@code true}, {@code false} or empty. A
+default value can be set in your {@code Application.mk} file through the {@code APP_THIN_ARCHIVE}
+
+variable.</p>
+<p class="note"><strong>Note:</strong> This is ignored for non-static library modules, or prebuilt
+static library ones.</p>
+
+<h4>LOCAL_FILTER_ASM</h4>
+<p>Define this variable as a shell command that the build system will use to filter the
+assembly files extracted or generated from the files you specified for {@code LOCAL_SRC_FILES}.</p>
+<p>Defining this variable causes the following things to occur:</p>
+
+<ul>
+<ol type = "1">
+<li>The build system generates a temporary assembly file from any C or C++ source file, instead of compiling them into an object file.</li>
+<li>The build system executes the shell command in {@code LOCAL_FILTER_ASM}
+on any temporary assembly file and on any assembly file
+listed in {@code LOCAL_SRC_FILES}, thus generating another temporary assembly
+file.</li>
+<li>The build system compiles these filtered assembly files into an object file.</li>
+</ol>
+</ul>
+<p>For example:</p>
+
+<pre class="no-pretty-print">
+LOCAL_SRC_FILES  := foo.c bar.S
+LOCAL_FILTER_ASM :=
+
+foo.c --1--&gt; $OBJS_DIR/foo.S.original --2--&gt; $OBJS_DIR/foo.S --3--&gt; $OBJS_DIR/foo.o
+bar.S                                 --2--&gt; $OBJS_DIR/bar.S --3--&gt; $OBJS_DIR/bar.o
+</pre>
+
+<p>"1" corresponds to the compiler, "2" to the filter, and "3" to the assembler. The filter must
+be a standalone shell command that takes the name of the input file as its first argument, and the
+name of the output file as the second one. For example:</p>
+
+<pre class="no-pretty-print">
+myasmfilter $OBJS_DIR/foo.S.original $OBJS_DIR/foo.S
+myasmfilter bar.S $OBJS_DIR/bar.S
+</pre>
+
+<h3 id="npfm">NDK-Provided Function Macros</h2>
+<p>This section explains GNU Make function macros that the NDK provides. Use
+{@code $(call &lt;function&gt;)} to evaluate them; they return textual information.</p>
+
+<h4>my-dir</h4>
+
+<p>This macro returns the path of the last included makefile, which typically is the
+current {@code Android.mk}'s directory. {@code my-dir} is useful for defining
+{@code LOCAL_PATH} at the start of your {@code Android.mk} file. For example:</p>
+
+<pre class="no-pretty-print">
+LOCAL_PATH := $(call my-dir)
+</pre>
+
+<p>Due to the way GNU Make works, what this macro really returns is the
+path of the last makefile that the build system included when parsing the build scripts. For this
+reason, you should not call {@code my-dir} after including another file.</p>
+
+<p>For example, consider the following example: </p>
+
+<pre class="no-pretty-print">
+LOCAL_PATH := $(call my-dir)
+
+# ... declare one module
+
+include $(LOCAL_PATH)/foo/`Android.mk`
+
+LOCAL_PATH := $(call my-dir)
+
+# ... declare another module
+</pre>
+
+<p>The problem here is that the second call to {@code my-dir} defines
+{@code LOCAL_PATH} as {@code $PATH/foo} instead of {@code $PATH}, because that was where its
+most recent include pointed.</p>
+
+<p>You can avoid this problem by putting additional includes after everything
+else in the {@code Android.mk} file. For example:</p>
+
+<pre class="no-pretty-print">
+LOCAL_PATH := $(call my-dir)
+
+# ... declare one module
+
+LOCAL_PATH := $(call my-dir)
+
+# ... declare another module
+
+# extra includes at the end of the Android.mk file
+include $(LOCAL_PATH)/foo/Android.mk
+
+</pre>
+
+<p>If it is not feasible to structure the file in this way, save the value of the first
+{@code my-dir} call into another variable. For example: </p>
+
+<pre class="no-pretty-print">
+MY_LOCAL_PATH := $(call my-dir)
+
+LOCAL_PATH := $(MY_LOCAL_PATH)
+
+# ... declare one module
+
+include $(LOCAL_PATH)/foo/`Android.mk`
+
+LOCAL_PATH := $(MY_LOCAL_PATH)
+
+# ... declare another module
+</pre>
+
+<h4>all-subdir-makefiles</h4>
+
+<p>Returns the list of {@code Android.mk} files located in all subdirectories of
+the current {@code my-dir} path.
+
+<p>You can use this function to provide deep-nested source directory hierarchies to the build
+system. By default, the NDK only looks for files in the directory containing the
+{@code Android.mk} file.</p>
+
+<h4>this-makefile</h4>
+<p>Returns the path of the current makefile (from which the build system called the function).</p>
+
+<h4>parent-makefile</h4>
+<p>Returns the path of the parent makefile in the inclusion tree (the path of the makefile that
+included the current one).</p>
+
+<h4>grand-parent-makefile</h4>
+<p>Returns the path of the grandparent makefile in the inclusion tree (the path of the makefile that
+included the current one).</p>
+
+<h4>import-module</h4>
+<p>A function that allows you to find and include the {@code Android.mk}
+of another module by name. A typical example is as follows: </p>
+
+<pre class="no-pretty-print">
+$(call import-module,&lt;name&gt;)
+</pre>
+
+<p>In this example, the build system looks for the module tagged &lt;name&gt; in the list of
+directories referenced that your {@code NDK_MODULE_PATH} environment variable references, and
+includes its {@code Android.mk} file automatically for you.</p>
+
+<p>For more information, see <a href="import_module.html">Android Module Paths (Sharing Code)</a>.
+</p>
diff --git a/docs/html-ndk/ndk/guides/application_mk.jd b/docs/html-ndk/ndk/guides/application_mk.jd
new file mode 100644
index 0000000..be82fbe
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/application_mk.jd
@@ -0,0 +1,241 @@
+page.title=Application.mk
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#over">Overview</a></li>
+        <li><a href="#var">Variables</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>This document explains the syntax of the {@code Application.mk} build file, which describes the
+native <em>modules</em> that your app requires. A module can be a static library, a shared library,
+or an executable.</p>
+
+<p>We recommend that you read the <a href="{@docRoot}ndk/guides/concepts.html">Concepts</a> and
+<a href="{@docRoot}ndk/guides/android_mk.html">Android.mk</a> pages before this one. Doing so will
+help maximize your understanding of the material on this page. </p>
+
+<h2 id="over">Overview</h2>
+The {@code Application.mk} file is really a tiny GNU Makefile fragment that defines several
+variables for compilation. It usually resides under {@code $PROJECT/jni/}, where {@code $PROJECT}
+points to your application's project directory. Another alternative is to place it under a
+sub-directory of the top-level {@code $NDK/apps/} directory. For example:</p>
+
+<pre>
+$NDK/apps/&lt;myapp&gt;/Application.mk
+</pre>
+
+<p>Here, {@code &lt;myapp&gt;} is a short name used to describe your app to the NDK build system. It
+doesn't actually go into your generated shared libraries or your final packages.</p>
+
+<h2 id="var">Variables</h2>
+<h4>APP_PROJECT_PATH</h4>
+<p>This variable stores the absolute path to your app's project-root directory. The build system
+uses this information to place stripped-down versions of the generated JNI shared libraries
+into a specific location known to the APK-generating tools.</p>
+
+<p>If you place your {@code Application.mk} file under {@code $NDK/apps/&lt;myapp&gt;/}, you must
+define this variable. If you place it under {@code $PROJECT/jni/}, it is optional.
+
+<h4>APP_OPTIM</h4>
+<p>Define this optional variable as either {@code release} or {@code debug}. You use it to
+alter the optimization level when building your application's modules.</p>
+
+<p>Release mode is the default, and generates highly optimized binaries. Debug mode generates
+unoptimized binaries that are much easier to debug.</p>
+
+<p>Note that you can debug either release or debug binaries. Release binaries, however, provide less
+information during debugging. For example, the build system optimizes out some variables,
+preventing you from inspecting them. Also, code re-ordering can make it more difficult to step
+through the code; stack traces may not be reliable.</p>
+
+<p>Declaring {@code android:debuggable} in your application manifest's {@code &lt;application&gt;}
+tag will cause this variable to default to {@code debug} instead of {@code release}. Override this
+default value by setting {@code APP_OPTIM} to {@code release}.</p>
+
+
+<h4>APP_CFLAGS</h4>
+<p>This variable stores a set of C compiler flags that the build system passes to the compiler
+when compiling any C or C++ source code for any of the modules. You can use this variable to change
+the build of a given module according to the application that needs it, instead of having to modify
+the {@code Android.mk} file itself. </p>
+
+
+<p>All paths in these flags should be relative to the top-level NDK directory. For example, if you
+have the following setup:</p>
+
+<pre>
+sources/foo/Android.mk
+sources/bar/Android.mk
+</pre>
+
+<p>To specify in {@code foo/Android.mk} that you want to add the path to the {@code bar} sources
+during compilation, you should use:
+
+<pre>
+APP_CFLAGS += -Isources/bar
+</pre>
+
+<p>Or, alternatively:</p>
+
+<pre>
+APP_CFLAGS += -I$(LOCAL_PATH)/../bar
+</pre>
+
+<p>{@code -I../bar} will not work since it is equivalent to
+{@code -I$NDK_ROOT/../bar}.</p>
+
+<p class="note"><strong>Note: </strong>This variable only works on C, not C++, sources in
+android-ndk-1.5_r1. In all versions after that one, {@code APP_CFLAGS} matches the full Android
+build system.</p>
+
+<h4>APP_CPPFLAGS</h4>
+<p>This variable contains a set of C++ compiler flags that the build system passes to the compiler
+when building only C++ sources.</p>
+
+<p class="note"><strong>Note: </strong> In android-ndk-1.5_r1, this variable works on both C and
+C++ sources. In all subsequent versions of the NDK, {@code APP_CPPFLAGS} now matches the full
+Android build system. For flags that apply to both C and C++ sources, use {@code APP_CFLAGS}.</p>
+
+<h4>APP_LDFLAGS</h4>
+<p>A set of linker flags that the build system passes when linking the application. This variable
+is only relevant when the build system is building shared libraries and executables. When the
+build system builds static libraries, it ignores these flags.</p>
+
+<h4>APP_BUILD_SCRIPT</h4>
+<p>By default, the NDK build system looks under {@code jni/} for a file named
+<a href="{@docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a>.</p>
+
+<p>If you want to override this behavior, you can define {@code APP_BUILD_SCRIPT} to point to an
+alternate build script. The build system always interprets a non-absolute path as relative to the
+NDK's top-level directory.</p>
+
+<h4>APP_ABI</h4>
+<p>By default, the NDK build system generates machine code for the
+<a href="{docRoot}ndk/guides/abis.html">{@code armeabi}</a> ABI. This machine code
+corresponds to an ARMv5TE-based CPU with software floating point operations. You can use
+{@code APP_ABI} to select a different ABI. Table 1 shows the {@code APP_ABI}
+settings for different instruction sets.</p>
+
+<p class="table-caption" id="table1">
+  <strong>Table 1.</strong> {@code APP_ABI} settings for different instruction sets.</p>
+<table>
+  <tr>
+    <th scope="col">Instruction set</th>
+    <th scope="col">Value</th>
+  </tr>
+  <tr>
+    <td>Hardware FPU instructions on ARMv7 based devices</td>
+    <td>{@code APP_ABI := armeabi-v7a}</td>
+  </tr>
+  <tr>
+    <td>ARMv8 AArch64</td>
+    <td>{@code APP_ABI := arm64-v8a}</td>
+  </tr>
+    <tr>
+    <td>IA-32</td>
+    <td>{@code APP_ABI := x86}</td>
+  </tr>
+    <tr>
+    <td>Intel64</td>
+    <td>{@code APP_ABI := x86_64}</td>
+  </tr>
+    <tr>
+    <td>MIPS32</td>
+    <td>{@code APP_ABI := mips}</td>
+  </tr>
+    <tr>
+    <td>MIPS64 (r6)</td>
+    <td>{@code APP_ABI := mips64}</td>
+  </tr>
+    <tr>
+    <td>All supported instruction sets</td>
+    <td>{@code APP_ABI := all}</td>
+  </tr>
+</table>
+
+<p class="note"><strong>Note:</strong> {@code all} is available starting from NDKr7.</p>
+
+<p>You can also specify multiple values by placing them on the same line, delimited by spaces.
+For example:</p>
+
+<pre>
+APP_ABI := armeabi armeabi-v7a x86 mips
+</pre>
+
+<p>For the list of all supported ABIs and details about their usage and limitations, refer to
+<a href="{@docRoot}ndk/guides/abis.html">Android Native CPU ABI Management</a>.</p>
+
+<h4>APP_PLATFORM</h4>
+<p>This variable contains the name of the target Android platform. For example, {@code android-3}
+specifies the Android 1.5 system images. For a complete list of platform names and corresponding
+Android system images, see <a href="{@docRoot}ndk/guides/stable_apis.html">Android NDK Stable APIs
+</a>.</p>
+
+<h4>APP_STL</h4>
+<p>By default, the NDK build system provides C++ headers for the minimal C++ runtime library
+({@code system/lib/libstdc++.so}) provided by the Android system. In addition, it comes with
+alternative C++ implementations that you can use or link to in your own applications.
+Use {@code APP_STL} to select one of them. Table 2 shows the {@code APP_STL} values to specify
+support for different libraries.</p>
+
+<p class="table-caption" id="table2">
+  <strong>Table 2.</strong> {@code APP_STL} settings to support different libraries.</p>
+<table>
+  <tr>
+    <th scope="col">Library</th>
+    <th scope="col">Value</th>
+  </tr>
+  <tr>
+    <td>Static STLport</td>
+    <td>{@code APP_STL := stlport_static}</td>
+  </tr>
+  <tr>
+    <td>Shared STLport</td>
+    <td>{@code APP_STL := stlport_shared}</td>
+  </tr>
+  <tr>
+    <td>Default C++ runtime</td>
+    <td>{@code APP_STL := system}</td>
+  </tr>
+</table>
+
+<p>For more information on this subject, see <a href="{@docRoot}ndk/guides/cpp_support.html">C++
+Support</a>.</p>
+
+
+<h4>APP_SHORT_COMMANDS</h4>
+<p>The equivalent of {@code LOCAL_SHORT_COMMANDS} in {@code Application.mk} for your whole project.
+For more information, see the documentation for this variable on
+<a href="{docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a>.</p>
+
+<h4>NDK_TOOLCHAIN_VERSION</h4>
+<p>Define this variable as either {@code 4.9} or {@code 4.8} to select a version of the GCC
+compiler. Version 4.9 is the default for 64-bit ABIs, and 4.8 is the default for 32-bit ABIs.
+To select a version of Clang, define this variable as {@code clang3.4}, {@code clang3.5}, or
+{@code clang}. Specifying {@code clang} chooses the most recent version of Clang.</p>
+
+<h4>APP_PIE</h4>
+<p>Starting from Android 4.1 (API level 16), Android's dynamic linker supports position-independent
+executables (PIE). Use the {@code -fPIE} flag to build them. This flag makes it harder to exploit
+memory corruption bugs by randomizing code location. By default, {@code ndk-build} automatically
+sets this value to {@code true} if your project targets {@code android-16} or higher. You may set
+it manually to either {@code true} or {@code false}.</p>
+
+<p>This flag applies only to executables. It has no effect when building shared or static
+libraries.</p>
+
+<p class="note"><strong>Note: </strong> PIE executables cannot run on Android releases prior to 4.1.
+<p>This restriction only applies to executables. It has no effect when building shared or static
+libraries.</p>
+
+<h4>APP_THIN_ARCHIVE</h4>
+<p>Sets the default value of {@code LOCAL_THIN_ARCHIVE} in the {@code Android.mk} file for all
+static library modules in this project. For more information, see the documentation for
+{@code LOCAL_THIN_ARCHIVE} on <a href="{docRoot}ndk/guides/android_mk.html">{@code Android.mk}.</a>
+</p>
diff --git a/docs/html-ndk/ndk/guides/arch.jd b/docs/html-ndk/ndk/guides/arch.jd
new file mode 100644
index 0000000..875bbd9
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/arch.jd
@@ -0,0 +1,31 @@
+page.title=Architectures and CPUs
+@jd:body
+
+<div class="contents">
+<div class="textblock"><p>This section includes detailed information about ABIs and detailed information on support for respective instruction sets. It includes these topics:</p>
+<ul>
+<li><a href="./md_3__key__topics__c_p_u__support__chapter_1-section_8__a_b_is.html">ABI Management</a><ul>
+<li>Different ABIs support different CPUs and processing capabilities.</li>
+</ul>
+</li>
+<li><a href="./md_3__key__topics__c_p_u__support__c_p_u-_a_r_m-_n_e_o_n.html">Neon</a><ul>
+<li>Details about targeting devices whose CPUs support Neon, or Advanced SIMD. Neon is an optional extension of the armv7 architecture.</li>
+</ul>
+</li>
+<li><a href="./md_3__key__topics__c_p_u__support__c_p_u-_m_i_p_s.html">Mips</a><ul>
+<li>Details about targeting devices with CPUs supporting the MIPS32 instruction set.</li>
+</ul>
+</li>
+<li><a href="./md_3__key__topics__c_p_u__support__c_p_u-_x86.html">x86</a><ul>
+<li>Details about targeting devices with CPUs supporting the IA-32 instruction set.</li>
+</ul>
+</li>
+<li><a href="./md_3__key__topics__c_p_u__support__c_p_u-_x86-64.html">x86-64</a><ul>
+<li>Details about targeting devices whose CPUs support the x86-64 instruction set.</li>
+</ul>
+</li>
+<li><a href="./md_3__key__topics__c_p_u__support__c_p_u-_f_e_a_t_u_r_e_s.html">CPU Features</a><ul>
+<li>A small library that detects the target device's CPU family and supported features. </li>
+</ul>
+</li>
+</ul>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/build.jd b/docs/html-ndk/ndk/guides/build.jd
new file mode 100644
index 0000000..b1893fa
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/build.jd
@@ -0,0 +1,23 @@
+page.title=Building
+@jd:body
+
+<div class="contents">
+<div class="textblock"><p>This section explains, in detail, how to use the NDK to build your project. It comprises the following topics:</p>
+<ul>
+<li><a href="./md_3__key__topics__building__chapter_1-section_8_ndk-build.html">ndk-build</a><ul>
+<li>How to use the shell script that invokes the tools to build your shared libraries.</li>
+</ul>
+</li>
+<li><a href="./md_3__key__topics__building__chapter_1-section_8__android_8mk.html">Android.mk</a><ul>
+<li>Syntax for the file that describes your build sources to the build system.</li>
+</ul>
+</li>
+<li><a href="./md_3__key__topics__building__a_p_p_l_i_c_a_t_i_o_n-_m_k.html">Application.mk</a><ul>
+<li>Syntax for the file that describes the native modules that your application requires.</li>
+</ul>
+</li>
+<li><a href="./md_3__key__topics__building__s_t_a_n_d_a_l_o_n_e-_t_o_o_l_c_h_a_i_n.html">Standalone Toolchain</a><ul>
+<li>How to integrate the NDK into your existing build system. </li>
+</ul>
+</li>
+</ul>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/concepts.jd b/docs/html-ndk/ndk/guides/concepts.jd
new file mode 100644
index 0000000..bd4570e
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/concepts.jd
@@ -0,0 +1,301 @@
+page.title=Concepts
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#bb">Before Beginning</a></li>
+        <li><a href="#intro">Introduction</a></li>
+        <li><a href="#hiw">How It Works</a></li>
+        <li><a href="#naa">Native Activities and Applications</a></li>
+          </ol>
+        </li>
+      </ol>
+    </div>
+  </div>
+
+<h2 id="bb">Before Beginning</h2>
+
+<p>This guide assumes that you are:</p>
+<ul>
+<li>Already familiar with concepts inherent in native programming and in
+<a href="{@docRoot}">Android development</a>.</li>
+<li>Working in <a href="{@docRoot}sdk/index.html">Eclipse, and using the Android
+Development Tools ("ADT")</a>, except where otherwise noted.</li>
+</ul>
+<h2 id="intro">Introduction</h2>
+
+<p>This section provides a high-level explanation of how the NDK works. The Android NDK is a set of
+tools allowing you to embed C or C++ (“native code”) into your Android apps. The ability to use
+native code in Android apps can be particularly useful to developers who wish to do one or more of
+the following:</p>
+<ul>
+<li>Port their apps between platforms.</li>
+<li>Reuse existing libraries, or provide their own libraries for reuse.
+</li>
+<li>Increase performance in certain cases, particularly computationally intensive ones like games.
+</li>
+</ul>
+<h2 id="hiw">How it Works</h2>
+
+<p>This section introduces the main components used in building a native application for Android,
+and goes on to describe the process of building and packaging.</p>
+<h3 id="mc">Main components</h3>
+
+<p>You should have an understanding of the following components as you build your app:</p>
+<ul>
+<li>ndk-build: The ndk-build script launches the build scripts at the heart of the NDK. These
+scripts:
+<ul>
+<li>Automatically probe your development system and app project file to determine what to build.</li>
+<li>Generate binaries.</li>
+<li>Copy the binaries to your app's project path.</li>
+</ul>
+<p>For more information, see the
+<a href="{@docRoot}ndk/guides/ndk-build.html">ndk-build</a> section of this guide.</p>
+</li>
+</ul>
+
+<ul>
+<li>Java: From your Java source, the Android build process generates {@code .dex}
+("Dalvik EXecutable") files, which are what the Android OS runs in the Dalvik Virtual Machine
+(“DVM”). Even if your app contains no Java source code at all, the build process still generates a
+{@code .dex} executable file within which the native component runs.
+
+<p>When developing Java components, use the {@code native} keyword to indicate methods implemented
+as native code. For example, the following function declaration tells the compiler that the
+implementation is in a native library:</p>
+
+
+
+<pre>
+public native int add(int  x, int  y);
+</pre>
+</li>
+</ul>
+
+<ul>
+<li>Native shared libraries: The NDK builds these libraries, or {@code .so} files, from your native
+source code.
+
+<p class="note"><strong>Note:</strong> If two libraries implement respective methods with the same
+signature, a link error occurs. In C, "signature" means method name only. In C++, "signature" means
+not only method name, but also its argument names and types.</p>
+</li>
+</ul>
+
+<ul>
+<li>Native static libraries: The NDK can also build static libraries, or {@code .a} files, which you
+can link against other libraries.</li>
+</ul>
+
+<ul>
+<li>Java Native Interface ("JNI"): The JNI is the interface via which the Java and C++ components
+talk to one another. This guide assumes knowledge of the JNI; for information about it, consult the
+<a href="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html">
+Java Native Interface Specification</a>.</li>
+</ul>
+
+<ul>
+<li>Application Binary Interface ("ABI"): The ABI defines exactly how your app's machine code is
+expected to interact with the system at runtime. The NDK builds {@code .so} files against these
+definitions. Different ABIs correspond to different architectures: The NDK includes ABI support for
+ARMEABI (default), MIPS, and x86. For more information, see
+<a href="{@docRoot}ndk/guides/abis.html">ABI Management</a>.</li>
+</ul>
+
+<ul>
+<li>Manifest: If you are writing an app with no Java component to it, you must declare the
+{@link android.app.NativeActivity} class in the
+<a href="{@docRoot}guide/topics/manifest/manifest-intro.html">manifest</a>. The
+<a href="#naa">Native Activity</a> section provides more detail on how to do this, under
+“Using the native-activity.h interface.”
+</li>
+</ul>
+
+<p>The following two items only apply in cases in which you are using the toolchains provided with
+the Android NDK as standalone compilers.</p>
+
+<ul>
+<li>{@code Android.mk}: You must create an {@code Android.mk} configuration file inside your
+{@code jni} folder. The ndk-build script looks at this file, which defines the module and its name,
+the source files to be compiled, build flags and libraries to link. For more information, see the
+<a href="{@docRoot}ndk/guides/android.mk.html">Android.mk</a> section of this document.</li>
+</ul>
+
+<ul>
+<li>{@code Application.mk}: You may optionally create an Application.mk file. This file enumerates
+and describes the modules that your app requires. This information includes:<ul>
+<li>ABIs used to compile for specific platforms.</li>
+<li>Toolchains.</li>
+<li>Standard libraries to include (static and dynamic STLport or default system).</li>
+</ul>
+<p>For more information, see the
+<a href="{@docRoot}ndk/guides/application.mk.html">Application.mk</a> section.</p>
+</li>
+</ul>
+
+
+<h3 id="fl">Flow</h3>
+
+<p>The general flow for developing a native app for Android is as follows:</p>
+<ol type="1">
+<li>Design your app, deciding which parts to implement in Java, and which parts to implement as
+native code.
+
+<p class="note"><strong>Note:</strong> While it is possible to completely avoid Java, you are likely
+to find the Android Java framework useful for tasks including controlling the display and UI.</p>
+</li>
+
+<li>Create an Android app Project in Eclipse as you would for any other Android project.</li>
+<li>If you are writing a native-only app, declare the {@link android.app.NativeActivity} class in
+{@code AndroidManifest.xml}. You can do so from the Eclipse/ADT Android Manifest Editor, or by
+hand-editing the file. For more information, see the <a href="#naa">Native Activity</a> section.
+</li>
+<li>Create an Android.mk file describing the native library, including name, flags, linked libraries
+and source files to be compiled in the ‘JNI’ directory.</li>
+<li>OPTIONAL: Create an {@code Application.mk} file configuring the target ABIs, toolchain,
+release/debug mode, and STL. For any of these that you do not specify, the following default values
+are used, respectively:
+<ul>
+<li>
+ABI: armeabi
+ </li>
+<li>
+Toolchain: GCC 4.8
+ </li>
+<li>
+Mode: Release
+ </li>
+<li>
+STL: system
+</ul>
+</li>
+<li>Place your native source under the project's {@code jni} directory.</li>
+<li>Use ndk-build to compile the native ({@code .so}, {@code .a}) libraries.</li>
+<li>Build the Java component, producing the executable {@code .dex} file.</li>
+<li>Package everything into an APK file, containing {@code .so}, {@code .dex}, and other files
+needed for your app to run.
+</ol>
+
+<p>Note that Eclipse can perform steps 7. through 9. in a single operation.</p>
+
+<h2 id="naa">Native Activities and Applications</h2>
+
+<p>The Android SDK provides a helper class, {@link android.app.NativeActivity}, that allows you to
+write a completely native activity. {@link android.app.NativeActivity} handles the communication
+between the Android framework and your native code, so you do not have to subclass it or call its
+methods. All you need to do is declare your application to be native in your
+{@code AndroidManifest.xml} file, and begin creating your native application.</p>
+
+<p>An Android application using {@link android.app.NativeActivity} still runs in its own virtual
+machine, sandboxed from other applications. You can therefore still access Android framework APIs
+through the JNI. In certain cases, however&ndash;such as for sensors, input events, and
+assets&ndash;the NDK provides native interfaces that you can use instead of having to call
+across the JNI. For more information about such support, see
+<a href="{@docRoot}ndk/guides/stable-apis.html">Stable APIs</a>.</p>
+
+<p>Regardless of whether or not you are developing a native activity, we recommend that you create
+your projects with the traditional Android build tools. Doing so helps ensure building and packaging
+of Android applications with the correct structure.</p>
+
+<p>The Android NDK provides you with two choices to implement your native activity:</p>
+
+<ul>
+<li>The {@code native_activity.h} header defines the native version of the
+{@link android.app.NativeActivity} class. It contains the callback interface and data structures
+that you need to create your native activity. Because the main thread of your application handles
+the callbacks, your callback implementations must not be blocking. If they block, you might receive
+ANR (Application Not Responding) errors because your main thread is unresponsive until the callback
+returns.</li>
+<li>The android_native_app_glue.h file defines a static helper library built on top of the
+{@code native_activity.h} interface. It spawns another thread, which handles things such as
+callbacks or input events in an event loop. Moving these events to a separate thread prevents any
+callbacks from blocking your main thread.</li>
+</ul>
+
+<p>The {@code &lt;ndk_root&gt;/sources/android/native_app_glue/android_native_app_glue.c} source is
+also available, allowing you to modify the implementation.</p>
+<p>For more information on how to use this static library, examine the native-activity sample
+application and its documentation. Further reading is also available in the comments in the {@code &lt;ndk_root&gt;/sources/android/native_app_glue/android_native_app_glue.h} file.</p>
+
+<h3 id="na">Using the native-activity.h interface</h3>
+
+<p>To implement a native activity with the {@code native-activity.h} interface:</p>
+
+<ol type="1">
+<li>Create a {@code jni/} directory in your project's root directory. This directory stores all of
+your native code.</li>
+<li>Declare your native activity in the {@code AndroidManifest.xml} file.</li>
+
+<p>Because your application has no Java code, set {@code android:hasCode} to {@code false}.</p>
+
+<pre>
+&lt;application android:label="@string/app_name" android:hasCode="false"&gt;
+</pre>
+
+<p>You must set the {@code android:name} attribute of the activity tag to
+{@link android.app.NativeActivity}.</p>
+
+<pre>
+&lt;activity android:name="android.app.NativeActivity"
+            android:label="@string/app_name"&gt;
+</pre>
+<p class="note"><strong>Note:</strong> You can subclass {@link android.app.NativeActivity}. If you
+do, use the name of the subclass instead of {@link android.app.NativeActivity}.</p>
+<p>The {@code android:value} attribute of the {@code meta-data} tag specifies the name of the shared
+library containing the entry point to the application (such as C/C++ {@code main}), omitting the
+{@code lib} prefix and {@code .so} suffix from the library name.</p>
+
+<pre>
+          &lt;meta-data android:name="android.app.lib_name"
+            android:value="native-activity" /&gt;
+            &lt;intent-filter&gt;
+              &lt;action android:name="android.intent.action.MAIN" /&gt;
+              &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
+            &lt;/intent-filter&gt;
+          &lt;/activity&gt;
+        &lt;/application&gt;
+      &lt;/manifest&gt;
+</pre>
+
+<li>Create a file for your native activity, and implement the {@code ANativeActivity_onCreate()}
+function, which the app calls when the native activity starts. This function, analogous
+to {@code main} in C/C++, receives a pointer to an {@code ANativeActivity} structure,
+which contains function pointers to the various callback implementations that you need to write.
+Set the applicable callback function pointers in {@code ANativeActivity-&gt;;callbacks} to the
+implementations of your callbacks.</li>
+
+<!--TODO: API Ref links in the above para.-->
+
+<li>Set the {@code ANativeActivity-&gt;;instance} field to the address of any instance of specific
+data that you want to use.</li>
+<li>Implement anything else that you want your activity to do upon starting.</li>
+<li>Implement the rest of the callbacks that you set in {@code ANativeActivity-&gt;;callbacks}. For
+more information on when the callbacks are called, see the
+<a href="{@docRoot}training/basics/activity-lifecycle/index.html">SDK documentation for Activity Lifecycles</a>.
+</li>
+<li>Develop the rest of your application.</li>
+<li>Create an {@code Android.mk file} in the {@code jni/} directory of your project to describe your
+native module to the build system. For more information, see the
+<a href="./md_3__key__topics__building__chapter_1-section_8__android_8mk.html">Android.mk section.</a>.
+</li>
+<li>Once you have an {@code Android.mk} file, compile your native code using the {@code ndk-build}
+command.</li>
+
+<pre class="no-pretty-print">
+$ cd &lt;path&gt;/&lt;to&gt;/&lt;project&gt;
+$ &lt;ndk&gt;/ndk-build
+</pre>
+
+<li>Build and install your Android project as usual, using Ant or Eclipse. If your native code is in
+the {@code jni/} directory, the build script automatically packages the {@code .so} file(s) built
+from it into the APK.</li>
+</ol>
+
+<p>You can find further information on using {@code native-activity.h} here.</p>
+<!-- (TODO: Link to API ref guide in the above para)-->
+</li>
+</ul>
diff --git a/docs/html-ndk/ndk/guides/cpp-support.jd b/docs/html-ndk/ndk/guides/cpp-support.jd
new file mode 100644
index 0000000..6054181
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/cpp-support.jd
@@ -0,0 +1,328 @@
+page.title=C++ Library Support
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#hr">Helper Runtimes</a></li>
+        <li><a href="#rc">Runtime Characteristics</a></li>
+        <li><a href="#ic">Important Considerations</a></li>
+        <li><a href="#li">Licensing</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>The Android platform provides a very minimal C++ runtime support library ({@code libstdc++}).
+This minimal support does not include, for example:</p>
+
+<ul>
+   <li>Standard C++ Library support (except a few trivial headers).</li>
+   <li>C++ exceptions support</li>
+   <li>RTTI support</li>
+</ul>
+
+<p>The NDK provides headers for use with this default library. In addition, the NDK provides a
+number of helper runtimes that provide additional features. This page provides information about
+these helper runtimes, their characteristics, and how to use them.
+</p>
+
+<h2 id="hr">Helper Runtimes</h2>
+
+<p>Table 1 provides names, brief explanations, and features of runtimes available inthe NDK.</p>
+
+<p class="table-caption" id="table1">
+  <strong>Table 1.</strong> NDK Runtimes and Features.</p>
+
+<table>
+<tr>
+<th>Name</th>
+<th>Explanation>
+<th>Features
+</tr>
+
+<tr>
+<td><a href="#system">{@code libstdc++} (default)</a> </td>
+<td>The default minimal system C++ runtime library.</td>
+<td>N/A</td>
+</tr>
+
+<tr>
+<td><a href="#ga">{@code gabi++_static}</a> </td>
+<td>The GAbi++ runtime (static).</td>
+<td>C++ Exceptions and RTTI</td>
+</tr>
+
+<tr>
+<td><a href="#ga">{@code gabi++_shared}</a> </td>
+<td>The GAbi++ runtime (shared).</td>
+<td>C++ Exceptions and RTTI</td>
+</tr>
+
+<tr>
+<td><a href="#stl">{@code stlport_static}</a> </td>
+<td>The STLport runtime (static).</td>
+<td> C++ Exceptions and RTTI; Standard Library</td>
+</tr>
+
+<tr>
+<td><a href="#stl">{@code stlport_shared}</a> </td>
+<td>The STLport runtime (shared).</td>
+<td> C++ Exceptions and RTTI; Standard Library</td>
+</tr>
+
+<tr>
+<td><a href="#gn">{@code gnustl_static}</a> </td>
+<td>The GNU STL (static).</td>
+<td> C++ Exceptions and RTTI; Standard Library</td>
+</tr>
+
+<tr>
+<td><a href="#gn">{@code gnustl_shared}</a> </td>
+<td>The GNU STL (shared).</td>
+<td> C++ Exceptions and RTTI; Standard Library</td>
+</tr>
+
+<tr>
+<td><a href="#cs">{@code c++_static}</a> </td>
+<td>The LLVM libc++ runtime (static).</td>
+<td> C++ Exceptions and RTTI; Standard Library</td>
+</tr>
+
+<tr>
+<td><a href="#cs">{@code c++_shared}</a> </td>
+<td>The LLVM libc++ runtime (shared).</td>
+<td> C++ Exceptions and RTTI; Standard Library</td>
+</tr>
+</table>
+
+<h3>How to set your runtime</h3>
+
+<p>Use the {@code APP_STL} variable in your <a href="{@docRoot}ndk/guides/application_mk.html">
+{@code Application.mk}</a> file to specify the runtime you wish to use. Use the values in
+the "Name" column in Table 1 as your setting. For example:</p>
+
+<pre>
+APP_STL := gnustl_static
+</pre>
+
+<p>You may only select one runtime for your app, and can only do in
+<a href="{@docRoot}ndk/guides/application_mk.html">{@code Application.mk}</a>.</p>
+
+<p>Even if you do not use the NDK build system, you can still use STLport, libc++ or GNU STL.
+For more information on how to use these runtimes with your own toolchain, see <a href="{@docRoot}ndk/guides/standalone_toolchain.html">Standalone Toolchain</a>.</p>
+
+<h2 id="rc">Runtime Characteristics</h2>
+<h3 id="system">System runtime</h3>
+
+<p>This runtime only provides the following headers, with no support beyond them:</p>
+<ul>
+   <li>{@code cassert}</li>
+   <li>{@code cctype}</li>
+   <li>{@code cerrno}</li>
+   <li>{@code cfloat}</li>
+   <li>{@code climits}</li>
+   <li>{@code cmath}</li>
+   <li>{@code csetjmp}</li>
+   <li>{@code csignal}</li>
+   <li>{@code cstddef}</li>
+   <li>{@code cstdint}</li>
+   <li>{@code cstdio}</li>
+   <li>{@code cstdlib}</li>
+   <li>{@code cstring}</li>
+   <li>{@code ctime}</li>
+   <li>{@code cwchar}</li>
+   <li>{@code new}</li>
+   <li>{@code stl_pair.h}</li>
+   <li>{@code typeinfo}</li>
+   <li>{@code utility}</li>
+</ul>
+
+<h3 id="ga">GAbi++ runtime</h3>
+<p>This runtime provides the same headers as the default runtime, but adds support for RTTI
+(RunTime Type Information) and exception handling.</p>
+
+
+<h3 id="stl">STLport runtime</h3>
+<p>This runtime is an Android port of STLport
+(<a href="http://www.stlport.org">http://www.stlport.org</a>). It provides a complete set of C++
+standard library headers. It also, by embedding its own instance of GAbi++, provides support for
+RTTI and exception handling.</p>
+
+<p>While shared and static versions of this runtime are avilable, we recommend using the shared
+version. For more information, see <a href="#sr">Static runtimes</a>.</p>
+
+<p>The shared library file is named {@code libstlport_shared.so} instead of {@code libstdc++.so}
+as is common on other platforms.</p>
+
+<p>In addition to the static- and shared-library options, you can also force the NDK to
+build the library from sources by adding the following line to your {@code Application.mk}
+file, or setting it in your environment prior to building: </p>
+
+<pre>
+STLPORT_FORCE_REBUILD := true
+</pre>
+
+
+<h3 id="gn">GNU STL runtime</h3>
+<p>This runtime is the GNU Standard C++ Library, ({@code libstdc++-v3}). Its shared library file is
+named {@code libgnustl_shared.so}.</p>
+
+
+<h3 id="cs">libC++ runtime:</h3>
+<p>This runtime is an Android port of <a href="http://libcxx.llvm.org/">LLVM libc++</a>. Its
+shared library file is named {@code libc++_shared.so}.</p>
+
+<p>By default, this runtime compiles with {@code -std=c++11}. As with GNU {@code libstdc++}, you
+need to explicitly turns on exceptions or rtti support. For information on how to do this, see
+<a href="#xp">C++ Exceptions</a> and <a href="#rt">RTTI</a>.</p>
+
+<p>The NDK provides prebuilt static and shared libraries for {@code libc++} compiled by Clang 3.4,
+but you can force the NDK to rebuild {@code libc++} from sources by adding the following line to
+your {@code Application.mk} file, or setting it in your environment prior to building: </p>
+
+<pre>
+LIBCXX_FORCE_REBUILD := true
+</pre>
+
+<h4>atomic support</h4>
+
+<p>If you include {@code &lt;atomic&gt;}, it's likely that you also need {@code libatomic}.
+If you are using {@code ndk-build}, add the following line:</p>
+
+<pre>
+LOCAL_LDLIBS += -latomic
+</pre>
+
+<p>If you are using your own toolchain, use:</p>
+
+<pre>
+-latomic
+</pre>
+
+<p class="note"><strong>Note: </strong>{@code -latomic} is only available for GCC 4.8.
+Because Clang 3.5 and Clang 3.6 use GCC 4.8's headers and libraries, as well as its
+{@code as} and {@code ld} options, those versions of Clang also get {@code -latomic}.</p>
+
+
+<h4>Compatibility</h4>
+
+<p>Around 99% of tests pass when compiling {@code libc++} with Clang 3.4 for all supported ABIs.
+The failures are mostly in the areas of {@code wchar_t} and locales that Android bionic
+doesn't support. Switching locale from the default produces the following warning in
+{@code logcat}:</p>
+
+<pre>
+newlocale() WARNING: Trying to set locale to en_US.UTF-8 other than "", "C" or "POSIX"
+</pre>
+
+<p>We do not recommend using {@code libc++} with GCC 4.6 because of GCC 4.6's limited c++11
+support.</p>
+
+<p>For information on {@code libc++} tests that fail to compile, {@code black_list*} in
+{@code $NDK/tests/device/test-libc++-shared-full/jni/Android.mk}. For information about tests
+that fail to run correctly, see {@code $NDK/tests/device/test-libc++-shared-full/BROKEN_RUN}.
+{@code $NDK}, here, is the your NDK installation's root directory.</p>
+
+
+<h2 id="ic">Important Considerations</h2>
+
+<h3 id="xp">C++ Exceptions</h3>
+<p>In all versions of the NDK later than NDKr5, the NDK toolchain allows you to use C++ runtimes
+that support exception handling. However, to ensure compatibility with earlier releases, it
+compiles all C++ sources with {@code -fno-exceptions} support by default. You can enable C++
+exceptions either for your entire app, or for individual modules.
+
+<p>To enable exception-handling support for your entire app, add the following line to
+your <a href="{docRoot}ndk/guides/application_mk.html">{@code Application.mk}</a> file.
+To enable exception-handling support for individual modules', add the following line to
+their respective <a href="{docRoot}ndk/guides/android.html">{@code Android.mk}</a> files.</p>
+
+<pre>
+APP_CPPFLAGS += -fexceptions
+</pre>
+
+<h3 id="rt">RTTI</h3>
+<p>In all versions of the NDK later than NDKr5, the NDK toolchain allows you to use C++ runtimes
+that support RTTI. However, to ensure compatibility with earlier releases, it compiles all C++
+sources with {@code -fno-rtti} by default.
+
+<p>To enable RTTI support for your entire app for your entire application, add the following line to
+your <a href="{docRoot}ndk/guides/application_mk.html">{@code Application.mk}</a> file:
+
+<pre>
+APP_CPPFLAGS += -frtti
+</pre>
+
+To enable RTTI support for individual modules, add the following line to
+their respective <a href="{docRoot}ndk/guides/android.html">{@code Android.mk}</a> files:
+
+<pre>
+LOCAL_CPP_FEATURES += rtti
+</pre>
+
+Alternatively, you can use:
+
+<pre>
+LOCAL_CPPFLAGS += -frtti
+</pre>
+
+<h3 id="sr">Static runtimes</h3>
+<p>Linking the static library variant of a C++ runtime to more than one binary may result in
+unexpected behavior. For example, you may experience:</p>
+
+<ul>
+<li>Memory allocated in one library, and freed in the other, causing memory leakage or heap
+corruption.</li>
+<li>Exceptions raised in {@code libfoo.so} going uncaught in {@code libbar.so}, causing your app
+to crash.</li>
+<li>Buffering of {@code std::cout} not working properly</li>
+</ul>
+
+<p>In addition, if you link two shared libraries&ndash;or a shared library and an executable&ndash;
+against the same static runtime, the final binary image of each shared library includes a copy of
+the runtime's code. Having multiple instances of runtime code is problematic because of duplication
+of certain global variables that the runtime uses or provides internally.</p>
+
+<p>This problem does not apply to a project comprising a single shared library. For example,
+you can link against {@code stlport_static}, and expect your app to behave correctly. If your
+project requires several shared library modules, we recommend that you use the shared library
+variant of your C++ runtime.</p>
+
+<h3>Shared runtimes</h3>
+<p>If your app targets a version of Android earlier than Android 4.3 (Android API level 18),
+and you use the shared library variant of a given C++ runtime, you must load the shared library
+before any other library that depends on it.</p>
+
+<p>For example, an app may have the following modules:</p>
+
+<ul>
+<li>libfoo.so</li>
+<li>libbar.so which is used by libfoo.so</li>
+<li>libstlport_shared.so, used by both libfoo and libbar</li>
+</ul>
+
+<p>You must need to load the libraries in reverse dependency order: </p>
+<pre>
+    static {
+      System.loadLibrary("stlport_shared");
+      System.loadLibrary("bar");
+      System.loadLibrary("foo");
+    }
+</pre>
+
+<p class="note"><strong>Note: </strong>Do not use the {@code lib} prefix when calling
+{@code System.loadLibrary()}.</p>
+
+<h2 id="li">Licensing</h2>
+
+<p>STLport is licensed under a BSD-style open-source license. See
+{@code $NDK/sources/cxx-stl/stlport/README} for more details about STLport.</p>
+
+<p>GNU libstdc++ is covered by the GPLv3 license, and <em>not</em> the LGPLv2 or LGPLv3. For
+more information, see <a href="http://gcc.gnu.org/onlinedocs/libstdc++/manual/license.html">
+License</a> on the GCC website.</p>
+
+<p><a href="https://llvm.org/svn/llvm-project/libcxx/trunk/LICENSE.TXT">LLVM {@code libc++}</a>
+is dual-licensed under both the University of Illinois "BSD-Like" license and the MIT license.</p>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/cpu-arm-neon.jd b/docs/html-ndk/ndk/guides/cpu-arm-neon.jd
new file mode 100644
index 0000000..32e9942
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/cpu-arm-neon.jd
@@ -0,0 +1,109 @@
+page.title=NEON Support
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#ul">Using {@code LOCAL_ARM_NEON}</a></li>
+        <li><a href="#uns">Using the {@code .neon} Suffix</a></li>
+        <li><a href="#build">Build Requirements</a></li>
+        <li><a href="#rd">Runtime Detection</a></li>
+        <li><a href="#sc">Sample Code</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>The NDK supports the ARM Advanced SIMD, an optional instruction-set extension of the ARMv7 spec.
+NEON provides a set of scalar/vector instructions and registers (shared with the FPU) comparable to
+MMX/SSE/3DNow! in the x86 world. To function, it requires VFPv3-D32 (32 hardware FPU 64-bit
+registers, instead of the minimum of 16).</p>
+
+<p>The NDK supports the compilation of modules or even specific source files with support for NEON.
+As a result, a specific compiler flag enables the use of GCC ARM NEON intrinsics and VFPv3-D32
+at the same time.</p>
+
+<p>Not all ARMv7-based Android devices support NEON, but devices that do may benefit significantly
+from its support for scalar/vector instructions. For x86 devices, the NDK can also translate NEON
+instructions into SSE, although with several restrictions. For more information, see
+<a href="{docRoot}ndk/guides/x86.html#an>x86 Support for ARM NEON Intrinsics.</a></p>
+
+<h2 id="ul">Using LOCAL_ARM_NEON</h2>
+<p>To have the NDK build all its source files with NEON support, include the following line in
+your module definition:</p>
+
+<pre class="no-pretty-print">
+LOCAL_ARM_NEON := true
+</pre>
+
+<p>It can be especially useful to build all source files with NEON support if you want to build a
+static or shared library that specifically contains NEON code paths.</p>
+
+<h2 id="uns">Using the .neon Suffix</h2>
+<p>When listing source files for your {@code LOCAL_SRC_FILES} variable, you have the option of
+using the {@code .neon} suffix to indicate that you want to build binaries with NEON support.
+For example, the following example builds one file with {@code .neon} support, and another
+without it:</p>
+
+<pre class="no-pretty-print">
+LOCAL_SRC_FILES := foo.c.neon bar.c
+</pre>
+
+<p>You can combine the {@code .neon} suffix with the {@code .arm} suffix, which specifies the 32-bit
+ARM instruction set for non-NEON instructions. In such a definition, {@code arm} must come before
+{@code neon}. For example: {@code foo.c.arm.neon} works, but {@code foo.c.neon.arm} does not.</p>
+
+<h2 id="build">Build Requirements</h2>
+<p>NEON support only works with the {@code armeabi-v7a} and {@code x86} ABIs. If the NDK build
+scripts encounter other ABIs while attempting to build with NEON support, the NDK build scripts
+exit. x86 provides <a href="x86.html">partial NEON support</a> via translation header. It is
+important to use checks like the following in your <a href="{docRoot}ndk/guides/android_mk.html">
+{@code Android.mk}</a> file:</p>
+
+<pre class="no-pretty-print">
+# define a static library containing our NEON code
+ifeq ($(TARGET_ARCH_ABI),$(filter $(TARGET_ARCH_ABI), armeabi-v7a x86))
+include $(CLEAR_VARS)
+LOCAL_MODULE    := mylib-neon
+LOCAL_SRC_FILES := mylib-neon.c
+LOCAL_ARM_NEON  := true
+include $(BUILD_STATIC_LIBRARY)
+endif # TARGET_ARCH_ABI == armeabi-v7a || x86
+</pre>
+
+<h2 id="rd">Runtime Detection</h2>
+<p>Your app must perform runtime detection to confirm that NEON-capable machine code can be run on
+the target device. This is because not all ARMv7-based Android devices support NEON. The app can
+perform this check using the
+<a href="{@docRoot}ndk/guides/cpu_features.html">{@code cpufeatures}</a> library that comes with
+this NDK.</p>
+
+<p>You should explicitly check that {@code android_getCpuFamily()} returns {@code
+ANDROID_CPU_FAMILY_ARM}, and that {@code android_getCpuFeatures()} returns a value including the
+{@code ANDROID_CPU_ARM_FEATURE_NEON flag} set. For example: </p>
+
+<pre class="no-pretty-print">
+#include &lt;cpu-features.h&gt;
+...
+...
+if (android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM &amp;&amp;
+    (android_getCpuFeatures() &amp; ANDROID_CPU_ARM_FEATURE_NEON) != 0)
+{
+    // use NEON-optimized routines
+    ...
+}
+else
+{
+    // use non-NEON fallback routines instead
+    ...
+}
+
+...
+</pre>
+
+<h2 id="sc">Sample Code</h2>
+<p>The source code for the NDK's hello-neon sample provides an example of how to use the
+{@code cpufeatures} library and NEON intrinsics at the same time. This sample implements a tiny
+benchmark for a FIR filter loop using a C version, and a NEON-optimized one for devices that
+support it.</p>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/cpu-features.jd b/docs/html-ndk/ndk/guides/cpu-features.jd
new file mode 100644
index 0000000..b27250a
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/cpu-features.jd
@@ -0,0 +1,210 @@
+page.title=The cpufeatures Library
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#usage">Usage</a></li>
+        <li><a href="#functions">Functions</a></li>
+        <li><a href="#ch">Change History</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>The NDK provides a small library named {@code cpufeatures} that your app can use at runtime to
+detect the target device's CPU family and the optional features it supports. It is designed to work
+as-is on all official Android platform versions.</p>
+
+<h2 id="usage">Usage</h2>
+<p>The {@code cpufeatures} library is available as an import module. To use it, follow the procedure
+below:</p>
+
+<ol>
+<li>List {@code cpufeatures} in your list of static library dependencies. For example:
+
+<pre class="no-pretty-print">
+LOCAL_STATIC_LIBRARIES := cpufeatures
+</pre>
+</li>
+
+<li>In your source code, include the {@code &lt;cpu-features.h&gt;} header file.</li>
+
+<li>At the end of your <a href="{@docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a> file,
+insert an instruction to import the {@code android/cpufeatures} module. For example:
+
+<pre class="no-pretty-print">
+$(call import-module,android/cpufeatures)
+</pre>
+
+<p>Here is a simple example of an {@code Android.mk} file that imports the {@code cpufeatures}
+library:</p>
+
+<pre class="no-pretty-print">
+&lt;project-path&gt;/jni/Android.mk:
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := &lt;your-module-name&gt;
+LOCAL_SRC_FILES := &lt;your-source-files&gt;
+LOCAL_STATIC_LIBRARIES := cpufeatures
+include $(BUILD_SHARED_LIBRARY)
+
+$(call import-module,android/cpufeatures)
+</pre>
+</li>
+</ol>
+
+<h2 id="functions">Functions</h2>
+<p>The {@code cpufeatures} library provides two functions. The first function returns the family to
+which the device's CPU belongs. Declare it as follows:</p>
+
+<pre class="no-pretty-print">
+AndroidCpuFamily android_getCpuFamily();
+</pre>
+
+<p>The function returns one of the following enums, representing the CPU family/architecture that
+the device supports.</p>
+<ul>
+<li>{@code ANDROID_CPU_FAMILY_ARM}</li>
+<li>{@code ANDROID_CPU_FAMILY_X86}</li>
+<li>{@code ANDROID_CPU_FAMILY_MIPS}</li>
+<li>{@code ANDROID_CPU_FAMILY_ARM64}</li>
+<li>{@code ANDROID_CPU_FAMILY_X86_64}</li>
+<li>{@code ANDROID_CPU_FAMILY_MIPS64}</li>
+</ul>
+
+<p>For a 32-bit executable on a 64-bit system, this function returns only the 32-bit value.</p>
+
+<p>The second function returns the set of optional features that the device's CPU supports. Declare
+it as follows:
+
+<pre class="no-pretty-print">
+uint64_t android_getCpuFeatures();
+</pre>
+
+<p>The return value takes the form of a set of bit flags, each flag representing one
+CPU-family-specific feature. The rest of this section provides information on features for
+the respective families.</p>
+
+<h4>32-bit ARM CPU family</h4>
+
+<p>The following flags are available for the 32-bit ARM CPU family:</p>
+<dl>
+<dt>{@code ANDROID_CPU_ARM_FEATURE_VFPv2}</dt>
+<dd>Indicates that the device's CPU supports the VFPv2 instruction set. Most ARMv6 CPUs support
+this instruction set.</dd>
+
+<dt>{@code ANDROID_CPU_ARM_FEATURE_ARMv7}</dt>
+<dd>Indicates that the device's CPU supports the ARMv7-A instruction set as supported by the
+<a href="{@docRoot}ndk/guides/abis.html">armeabi-v7a</a> ABI. This instruction set supports both
+Thumb-2 and VFPv3-D16 instructions. This return value also indicates support for the VFPv3 hardware
+FPU instruction-set extension.</dd>
+
+<dt>{@code ANDROID_CPU_ARM_FEATURE_VFPv3}</dt>
+<dd>Indicates that the device's CPU supports the VFPv3 hardware FPU instruction-set extension.
+<p>This value is equivalent to the {@code VFPv3-D16} instruction set, which provides provides only
+16 hardware double-precision FP registers.</p></dd>
+
+<dt>{@code ANDROID_CPU_ARM_FEATURE_VFP_D32}</dt>
+<dd> Indicates that the device's CPU supports 32 hardware double-precision FP registers instead of
+16. Even when there are 32 hardware double-precision FP registers, there are still only 32
+single-precision registers mapped to the same register banks.</dd>
+
+<dt>{@code ANDROID_CPU_ARM_FEATURE_NEON}</dt>
+<dd>Indicates that the device's CPU supports the ARM Advanced SIMD (NEON) vector instruction set
+extension. Note that ARM mandates that such CPUs also implement VFPv3-D32, which provides 32
+hardware FP registers (shared with the NEON unit).</dd>
+
+<dt>{@code ANDROID_CPU_ARM_FEATURE_VFP_FP16}</dt>
+<dd>Indicates that the device's CPU supports instructions to perform floating-point operations on
+16-bit registers. This feature is part of the VFPv4 specification.</dd>
+
+<dt>{@code ANDROID_CPU_ARM_FEATURE_VFP_FMA}</dt>
+<dd>Indicates that the device's CPU supports the fused multiply-accumulate extension for the VFP
+instruction set. Also part of the VFPv4 specification.</dd>
+
+<dt>{@code ANDROID_CPU_ARM_FEATURE_NEON_FMA}</dt>
+<dd>Indicates that the device's CPU supports the fused multiply-accumulate extension for the NEON
+instruction set. Also part of the VFPv4 specification.</dd>
+
+<dt>{@code ANDROID_CPU_ARM_FEATURE_IDIV_ARM}</dt>
+<dd>Indicates that the device's CPU supports integer division in ARM mode. Only available on later-
+model CPUs, such as Cortex-A15.</dd>
+
+<dt>{@code ANDROID_CPU_ARM_FEATURE_IDIV_THUMB2}</dt>
+<dd>Indicates that the device's CPU supports Integer division in Thumb-2 mode. Only available on
+later-model CPUs, such as Cortex-A15.</dd>
+
+<dt>{@code ANDROID_CPU_ARM_FEATURE_iWMMXt}</dt>
+<dd>Indicates that the device's CPU supports an instruction-set extension that adds MMX registers
+and instructions. This feature is only available on a few XScale- based CPUs.</dd>
+
+<dt>{@code ANDROID_CPU_ARM_FEATURE_LDREX_STREX}</dt>
+<dd>Indicates that the device's CPU supports LDREX and STREX instructions available since ARMv6.
+Together, these instructions provide atomic updates on memory with the help of exclusive
+monitor.</dd>
+</dl>
+
+<h4>64-bit ARM CPU family</h4>
+
+<p>The following flags are available for the 64-bit ARM CPU family:</p>
+<dl>
+<dt>{@code ANDROID_CPU_ARM64_FEATURE_FP}</dt>
+<dd>Indicates that the device's CPU has a Floating Point Unit (FPU). All Android ARM64 devices must
+support this feature.</dd>
+<dt>{@code ANDROID_CPU_ARM64_FEATURE_ASIMD}</dt>
+<dd>Indicates that the device's CPU has an Advanced SIMD (ASIMD) unit. All Android ARM64 devices
+must support this feature.</dd>
+<dt>{@code ANDROID_CPU_ARM64_FEATURE_AES}</dt>
+<dd>Indicates that the device's CPU supports {@code AES} instructions.</dd>
+<dt>{@code ANDROID_CPU_ARM64_FEATURE_CRC32}</dt>
+<dd>Indicates that the device's CPU supports {@code CRC32} instructions.</dd>
+<dt>{@code ANDROID_CPU_ARM64_FEATURE_SHA1}</dt>
+<dd>Indicates that the device's CPU supports {@code SHA1} instructions.</dd>
+<dt>{@code ANDROID_CPU_ARM64_FEATURE_SHA2}</dt>
+<dd>Indicates that the device's CPU supports {@code SHA2} instructions.</dd>
+<dt>{@code ANDROID_CPU_ARM64_FEATURE_PMULL}</dt>
+<dd>Indicates that the device's CPU supports 64-bit {@code PMULL} and {@code PMULL2}
+instructions.</dd>
+</dl>
+
+<h4>32-bit x86 CPU family</h4>
+
+<p>The following flags are available for the 32-bit x86 CPU family.<p>
+<dl>
+<dt>{@code ANDROID_CPU_X86_FEATURE_SSSE3}</dt>
+Indicates that the device's CPU supports the SSSE3 instruction extension set.</dd>
+
+<dt>{@code ANDROID_CPU_X86_FEATURE_POPCNT}</dt>
+<dd>Indicates that the device's CPU supports the {@code POPCNT} instruction.</dd>
+
+<dt>{@code ANDROID_CPU_X86_FEATURE_MOVBE}</dt>
+<dd>Indicates that the device's CPU supports the {@code MOVBE} instruction. This instruction is
+specific to some Intel IA-32 CPUs, such as Atom.</dd>
+<dl>
+
+<p>{@code android_getCpuFeatures()} returns {@code 0} for CPU families for which there are no
+listed extensions.</p>
+
+<p>The following function returns the maximum number of CPU cores on the target device: </p>
+
+<pre class="no-pretty-print">
+int  android_getCpuCount(void);
+</pre>
+
+<h4>MIPS CPU family</h4>
+
+<dl>
+<dt>{@code ANDROID_CPU_MIPS_FEATURE_R6}</dt>
+<dd>Indicates that the CPU executes MIPS Release 6 instructions natively, and supports obsoleted R1..R5 instructions only via kernel traps.</dd>
+
+<dt>{@code ANDROID_CPU_MIPS_FEATURE_MSA}</dt>
+<dd>Indicates that the CPU supports MIPS SIMD Architecture instructions.</dd>
+</dl>
+
+<h2 id="ch">Change History</h2>
+<p>For the complete change history of this library, see the comments in
+{@code $NDK/sources/android/cpufeatures/cpu-features.c}, where {@code $NDK} is the root of your
+NDK installation.</p>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/debug.jd b/docs/html-ndk/ndk/guides/debug.jd
new file mode 100644
index 0000000..b202ed9
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/debug.jd
@@ -0,0 +1,17 @@
+page.title=Debugging
+@jd:body
+
+<div class="title">Debugging </div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>This section introduces you to debugging with the NDK. It includes:</p>
+<ul>
+<li><a href="./md_3__key__topics__debugging__n_d_k-_g_d_b.html">ndk-gdb and ndk-gdb-py</a><ul>
+<li>The helper shell script named <code>ndk-gdb</code>, which allows you to launch a native debugging session for your NDK-generated machine code.</li>
+</ul>
+</li>
+<li><a href="./md_3__key__topics__debugging__n_d_k-_s_t_a_c_k.html">ndk-stack</a><ul>
+<li>A tool that helps you use ADB <code>logcat</code> in your debugging. </li>
+</ul>
+</li>
+</ul>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/guides_toc.cs b/docs/html-ndk/ndk/guides/guides_toc.cs
index e6bc199..3763c53 100644
--- a/docs/html-ndk/ndk/guides/guides_toc.cs
+++ b/docs/html-ndk/ndk/guides/guides_toc.cs
@@ -8,8 +8,65 @@
 
 
 <ul id="nav">
-  <li><a href="/ndk/guides/index.html"><span class="en">Getting Started</span></a></li>
-  <li><a href="/ndk/guides/pg_html/md_1__concepts__concepts.html">Concepts</a></li>
+<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>
 
 
diff --git a/docs/html-ndk/ndk/guides/images/NDK_build_string.png b/docs/html-ndk/ndk/guides/images/NDK_build_string.png
new file mode 100644
index 0000000..338378b
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/images/NDK_build_string.png
Binary files differ
diff --git a/docs/html-ndk/ndk/guides/images/NDK_build_string@2x.png b/docs/html-ndk/ndk/guides/images/NDK_build_string@2x.png
new file mode 100644
index 0000000..5ba3ce3
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/images/NDK_build_string@2x.png
Binary files differ
diff --git a/docs/html-ndk/ndk/guides/images/verification_screen.png b/docs/html-ndk/ndk/guides/images/verification_screen.png
new file mode 100644
index 0000000..91858ba
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/images/verification_screen.png
Binary files differ
diff --git a/docs/html-ndk/ndk/guides/images/verification_screen@2x.png b/docs/html-ndk/ndk/guides/images/verification_screen@2x.png
new file mode 100644
index 0000000..0d666c9
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/images/verification_screen@2x.png
Binary files differ
diff --git a/docs/html-ndk/ndk/guides/index.jd b/docs/html-ndk/ndk/guides/index.jd
index 8c3ecab..3fbfb47 100644
--- a/docs/html-ndk/ndk/guides/index.jd
+++ b/docs/html-ndk/ndk/guides/index.jd
@@ -1,4 +1,17 @@
-page.title=Concepts
+page.title=Getting Started
 @jd:body
 
-<p>To use the NDK, you must download it and install it separately from the SDK. To do so, follow these directions.
\ No newline at end of file
+<p>This section provides the information you need to get up and running
+with the NDK.</p>
+<ul>
+   <li><a href="setup.html">Setup</a></li>
+   <ul>
+      <li>Learn how to set up the NDK, and verify that it's integrated into
+      your toolchain.</li>
+   </ul>
+   <li><a href="concepts.html">Concepts</a></li>
+   <ul>
+      <li>Learn some basics about how the NDK works and its components, and about how to use it.
+      </li>
+   </ul>
+</ul>
diff --git a/docs/html-ndk/ndk/guides/libs.jd b/docs/html-ndk/ndk/guides/libs.jd
new file mode 100644
index 0000000..1d4d2ac
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/libs.jd
@@ -0,0 +1,20 @@
+page.title=Libraries
+@jd:body
+
+<div class="contents">
+<div class="textblock"><p>This section discusses libraries included with the NDK, as well as how to use other people's libraries and modules in your own application. It discusses:</p>
+<ul>
+<li><a href="./md_3__key__topics__libraries__s_t_a_b_l_e-_a_p_i_s.html">Stable APIs</a><ul>
+<li>This section discusses the stable APIs exposed by the NDK.</li>
+</ul>
+</li>
+<li><a href="./md_3__key__topics__libraries__p_r_e_b_u_i_l_t_s.html">Prebuilt Libraries</a><ul>
+<li>How to include and use prebuilt libraries in your own application.</li>
+</ul>
+</li>
+<li><a href="./md_3__key__topics__libraries__c_p_l_u_s_p_l_u_s-_s_u_p_p_o_r_t.html">C++ Support</a><br/>
+<ul>
+<li>Information about the NDK's C++ runtime support library and corresponding header files. </li>
+</ul>
+</li>
+</ul>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/md_1__concepts__concepts.html b/docs/html-ndk/ndk/guides/md_1__concepts__concepts.html
deleted file mode 100644
index 2dcf6ae..0000000
--- a/docs/html-ndk/ndk/guides/md_1__concepts__concepts.html
+++ /dev/null
@@ -1,4 +0,0 @@
-page.title=Concepts
-@jd:body
-
-<p>This section provides a high-level explanation of how the NDK works. The Android NDK is a set of tools allowing you to embed C or C++ (“native code”) into your Android apps. The ability to use native code in Android apps can be particularly useful to developers who wish to do one or more of the following:
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/mips.jd b/docs/html-ndk/ndk/guides/mips.jd
new file mode 100644
index 0000000..1aa1868
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/mips.jd
@@ -0,0 +1,43 @@
+page.title=MIPS Support
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#over">Overview</a></li>
+        <li><a href="#comp">Compatibility</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>The NDK supports the {@code mips} ABI, which allows native code to run on Android-based devices
+that have CPUs supporting the MIPS32 instruction set.</p>
+
+<h2 id="over">Overview</h2>
+<p>To generate MIPS machine code, include {@code mips} in your
+<a href="{@docRoot}ndk/guides/application_mk.html">{@code Application.mk}</a> file's
+{@code APP_ABI} definition. For example: </p>
+
+<pre class="no-pretty-print">
+APP_ABI := mips
+</pre>
+
+<p>For more information about defining the {@code APP_ABI} variable, see
+<a href="{@docRoot}ndk/guides/application_mk.html">{@code Application.mk}</a>.</p>
+
+<p>The build system places generated libraries into {@code $PROJECT/libs/mips/}, where
+{@code $PROJECT} represents your project's root directory, and embeds them in your APK under
+{@code /lib/mips/}.</p>
+
+<p>The Android package manager extracts these libraries when installing your APK on a compatible
+MIPS-based device, placing them under your app's private data directory.</p>
+
+<p>In the Google Play store, the server filters applications so that a consumer sees only the native
+libraries that run on the CPU powering his or her device.</p>
+
+<h2 id="comp">Compatibility</h2>
+<p>MIPS support requires, at minimum, Android 2.3 (Android API level 9). If your project files
+target an older API level, but include MIPS as a targeted platform, the NDK build script
+automatically selects the right set of native platform headers/libraries for you.</p>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/ndk-build.jd b/docs/html-ndk/ndk/guides/ndk-build.jd
new file mode 100644
index 0000000..d52d224
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/ndk-build.jd
@@ -0,0 +1,194 @@
+page.title=ndk-build
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#int">Internals</a></li>
+         <li><a href="#ifc">Invoking from the Command Line</a></li>
+         <li><a href="#ife">Invoking from Eclipse</a></li>
+         <li><a href="#6432">64-bit and 32-bit toolchains</a></li>
+         <li><a href="#req">Requirements</a></li>
+          </ol>
+        </li>
+      </ol>
+    </div>
+  </div>
+
+<p>ndk-build is a tiny shell script introduced in Android NDK r4. Its purpose
+is simply to invoke the right NDK build script.
+
+<h2 id="int">Internals</h2>
+
+ndk-build is equivalent to: </p>
+
+<pre class="no-pretty-print">
+$GNUMAKE -f &lt;ndk&gt;/build/core/build-local.mk
+&lt;parameters&gt;
+</pre>
+
+<p><code>$GNUMAKE</code> points to GNU Make 3.81 or later, and
+<code>&lt;ndk&gt;</code> points to your NDK installation directory. You can use
+this information to invoke ndk-build from other shell scripts, or even your own
+make files.</p>
+
+<h2 id="ifc">Invoking from the Command Line</h2>
+<p>ndk-build lives in the top level the NDK installation directory. To run it from the
+command line, invoke it while in or under your application project directory.
+For example: </p>
+
+<pre class="no-pretty-print">
+cd &lt;project&gt;
+$ &lt;ndk&gt;/ndk-build
+</pre>
+
+<p>In this example, <code>&lt;project&gt;</code> points to your
+project’s root directory, and <code>&lt;ndk&gt;</code> is the directory where
+you installed the NDK. As noted in <a
+href="{@docRoot}ndk/guides/setup.html#install">Setup</a>, you can add {@code $NDK} to your
+{@code PATH} to avoid having to type the whole filepath every time you use ndk-build.
+Alternatively, you can create an alias.</p>
+<p><a class="anchor" id="options"></a> </p>
+<h3>Options</h3>
+<p>All parameters to ndk-build are passed directly to the underlying GNU {@code make}
+command that runs the NDK build scripts. Combine <code>ndk-build</code> and
+options in the form <code>ndk-build &lt;option&gt;</code>. For example: </p>
+
+<pre class="no-pretty-print">
+$ ndk-build clean
+</pre>
+
+<p>The following options are available:</p>
+<dl>
+  <dt>{@code clean}</dt>
+  <dd>Remove any previously generated binaries.</dd>
+  <dt>{@code V=1}</dt>
+  <dd>Launch build, and display build commands.<dd>
+  <dt>{@code -B}</dt>
+  <dd>Force a complete rebuild.</dd>
+  <dt>{@code -B V=1}</dt>
+  <dd>Force a complete rebuild, and display build commands.</dd>
+  <dt>{@code NDK_LOG=1}</dd>
+  <dd>Display internal NDK log messages (used for debugging the NDK itself).</dd>
+  <dt>{@code NDK_DEBUG=1}</dt>
+  <dd>Force a debuggable build (see <a href="#dvr">Table 1</a>).</dd>
+  <dt>{@code NDK_DEBUG=0}</dt>
+  <dd>Force a release build (see <a href="#dvr">Table 1</a>).</dd>
+  <dt>{@code NDK_HOST_32BIT=1}</dt>
+  <dd>Always use the toolchain in 32-bit mode (see <a href="#6432">64-bit and 32-bit
+  Toolchains</a>).</dd>
+  <dt>{@code NDK_APPLICATION_MK=&lt;file&gt;}</dt>
+  <dd>Build, using a specific <code>Application.mk</code> file pointed to by the
+  {@code NDK_APPLICATION_MK} variable.</dd>
+  <dt>{@code -C &lt;project&gt;}</dt>
+  <dd>Build the native code for the project path located at {@code &lt;project&gt;}. Useful if you
+  don't want to {@code cd} to it in your terminal.</dd>
+</dl>
+
+<h2 id="ife">Invoking from Eclipse</h2>
+<p>To build from Eclipse, make sure that you have configured it as described in
+<a href="{@docRoot}ndk/guides/setup.html#configure">Setup</a>. If you
+wish to build using the default <code>ndk-build</code> command, with no
+options, you can just build your project just as you would any Android project.
+To get Eclipse to add any of the options described above, follow these steps:</p>
+<ol type="1">
+<li>In the <em>Project Explorer</em> pane, right-click your project name.</li>
+<li>Select <strong>Properties</strong>.</li>
+<li>Click <strong>C/C++ Build</strong>.</li>
+<li>Under the <em>Builder Settings</em> tab, uncheck <strong>Use default build command</strong>.</li>
+<li>In the <em>Build command</em> field, enter the entire build string as if you were typing it on
+the command line.</li>
+<li>Click <strong>OK</strong>.</li>
+</ol>
+Figure 1 shows an example of an entered string.<br>
+<br>
+<img src="./images/NDK_build_string.png"
+    srcset="./images/NDK_build_string@2x.png 2x"
+    alt="enter the build string next to 'Build command'"
+    height="152" width="501">
+<p style="clear:both"><b>Figure 1.</b> Specifying a debug build from within
+Eclipse</p>
+<p><a class="anchor" id="dvr"></a> </p>
+<h3>Debuggable versus Release builds</h3>
+<p>Use the <code>NDK_DEBUG</code> option and, in certain cases,
+{@code AndroidManifest.xml} to specify debug or release build,
+optimization-related behavior, and inclusion of symbols. Table 1 shows the
+results of each possible combination of settings.</p>
+<p><em>Table 1.</em> Results of <code>NDK_DEBUG</code> (command line) and
+<code>android:debuggable</code> (manifest) combinations.</p>
+<table>
+<tr>
+<th></th><th>NDK_DEBUG=0 </th><th>NDK_DEBUG=1</th><th>NDK_DEBUG not specified
+</th></tr>
+<tr>
+<td>android:debuggble="true" </td><td>Debug; Symbols; Optimized*1
+</td><td>Debug; Symbols; Not optimized*2 </td><td>(same as NDK_DEBUG=1)
+</td></tr>
+<tr>
+<td>android:debuggable="false"</td><td>Release; Symbols; Optimized
+</td><td>Release; Symbols; Not optimized</td><td>Release; No symbols;
+Optimized*3 </td></tr>
+</table>
+*1: Useful for profiling.<br>
+*2: Default for running <a href="{@docRoot}ndk/guides/"ndk-gdb.html">ndk-gdb</a>.<br>
+*3: Default mode.<br>
+<br>
+<p class="note"><strong>Note:</strong> {@code NDK_DEBUG=0} is the equivalent of
+{@code APP_OPTIM=release}, and complies with the GCC {@code -O2} option. {@code NDK_DEBUG=1} is the
+equivalent of {@code APP_OPTIM=debug} in {@code Application.mk}, and complies with the GCC
+{@code -O0} option. For more information about {@code APP_OPTIM}, see
+<a href="{@docRoot}ndk/guides/application_mk.html">Application.mk</a>.</p>
+<p>The syntax on the command line is, for example: </p>
+
+<pre class="no-pretty-print">
+$ ndk-build NDK_DEBUG=1
+</pre>
+
+<p>If you are using build tools from prior to SDK r8, you must also modify your
+{@code AndroidManifest.xml} file to specify debug mode. The syntax for doing so resembles the
+following:</p>
+
+<pre class="no-pretty-print">&lt;application android:label="@string/app_name"
+android:debuggable="true"&gt;
+</pre>
+
+From SDK r8 onward, you do not need to touch {@code AndroidManifest.xml}. Building a debug package
+(e.g. with ant debug or the corresponding option of the ADT plugin) causes the tool automatically to
+pick the native debug files generated with {@code NDK_DEBUG=1}.
+
+
+<h2 id="6432">64-bit and 32-bit toolchains</h2>
+<p>Some toolchains come with both 64-bit and 32-bit versions. For example,
+directories {@code &lt;ndk&gt;/toolchain/&lt;name&gt;/prebuilt/} and
+{@code &lt;ndk&gt;/prebuilt/} may contain both {@code linux-x86} and
+{@code linux-x86_64} folders for Linux tools in 32-bit and 64-bit modes,
+respectively. The ndk-build script automatically chooses a 64-bit version of
+the toolchain if the host OS supports it. You can force the use of a 32-bit
+toolchain by using {@code NDK_HOST_32BIT=1} either in your environment or
+on the ndk-build command line.</p>
+<p>Note that 64-bit tools utilize host resources better (for instance, they are faster, and handle
+larger programs), and they can still generate 32-bit binaries for Android.</p>
+
+<h2 id="req">Requirements</h2>
+<p>You need GNU Make 3.81 or later to use ndk-build or the NDK in general.
+The build scripts will detect a non-compliant Make tool, and generate an error
+message.</p>
+<p>If you have GNU Make 3.81 installed, but the default <code>make</code>
+command doesn’t launch it, define {@code GNUMAKE} in your environment to point to it
+before launching ndk-build. For example: </p>
+
+<pre class="no-pretty-print">
+$ export GNUMAKE=/usr/local/bin/gmake
+$ ndk-build
+</pre>
+
+<p>You can override other host prebuilt tools in {@code $NDK/prebuilt/&lt;OS&gt;/bin/}
+with the following environment variables: </p>
+
+<pre class="no-pretty-print">
+$ export NDK_HOST_AWK=&lt;path-to-awk&gt;
+$ export NDK_HOST_ECHO=&lt;path-to-echo&gt;
+$ export NDK_HOST_CMP=&lt;path-to-cmp&gt;
+</pre>
diff --git a/docs/html-ndk/ndk/guides/ndk-gdb.jd b/docs/html-ndk/ndk/guides/ndk-gdb.jd
new file mode 100644
index 0000000..2370ba2
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/ndk-gdb.jd
@@ -0,0 +1,241 @@
+page.title=ndk-gdb
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#req">Requirements</a></li>
+        <li><a href="#use">Usage</a></li>
+        <li><a href="#thread">Thread Support</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>The NDK includes a helper shell script named {@code ndk-gdb} to easily launch a native debugging
+  session for your NDK-generated machine code.</p>
+
+<h2 id="req">Requirements</h2>
+
+<p>For native debugging to work, you must follow these requirements:</p>
+
+<ul>
+<li>Build your app using the {@code ndk-build} script. The {@code ndk-gdb} script
+does not support using the legacy {@code make APP=&lt;name&gt;} method to build.</p></li>
+<li>Enable app debugging in your {@code AndroidManifest.xml} file by including an
+{@code &lt;application&gt;} element that sets the {@code android:debuggable} attribute to {@code
+true}.</li>
+<li>Build your app to run on Android 2.2 (Android API level 8) or higher.</li>
+<li>Debug on a device or emulator running Android 2.2 or higher. For debugging purposes, the target
+API level that you declare in your {@code AndroidManifest.xml} file does not matter.</li>
+<li>Develop your app in a Unix shell. On Windows, use <a href="https://www.cygwin.com/">Cygwin
+or the experimental {@code ndk-gdb-py} <a href="https://www.python.org/">Python</a>
+implementation.</li>
+<li>Use GNU Make 3.81 or higher.</li>
+<li>If you are building your app from
+<a href="http://developer.android.com/sdk/installing/installing-adt.html">Eclipse</a>, build it
+using version 0.9.7 or higher of the ADT plug-in.</li>
+
+<h2 id="use">Usage</h2>
+  To invoke the {@code ndk-gdb} script, change into the application directory or any directory under
+  it. For example:</p>
+
+<pre class="no-pretty-print">
+cd $PROJECT
+$NDK/ndk-gdb
+</pre>
+
+<p>Here, {@code $PROJECT} points to your project's root directory, and {@code $NDK} points to your
+NDK installation path.</p>
+
+<p>When you invoke {@code ndk-gdb}, it configures the session to look for your source files
+and symbol/debug versions of your generated native libraries. On successfully attaching to your
+application process, {@code ndk-gdb} outputs a long series of error messages, noting that it cannot
+find various system libraries. This is normal, because your host machine does not contain
+symbol/debug versions of these libraries on your target device. You can safely ignore these
+messages.</p>
+
+<p>Next, {@code ndk-gdb} displays a normal GDB prompt.</p>
+
+<p>You interact with {@code ndk-gdb} in the same way as you would with GNU GDB. For example, you can
+use {@code b &lt;location&gt;} to set breakpoints, and {@code c} (for "continue") to
+resume execution. For a comprehensive list of commands, see the
+<a href="http://www.gnu.org/software/gdb/">GDB manual.</a></p>
+
+<p>Note that when you quit the GDB prompt, the application process that you're debugging stops. This
+behavior is a gdb limitation.</p>
+
+<p>{@code ndk-gdb} handles many error conditions, and displays an informative error message if it
+finds a problem. these checks include making sure that the following conditions are satisfied:</p>
+
+<ul>
+<li>Checks that ADB is in your path.</li>
+<li>Checks that your application is declared debuggable in its manifest.</li>
+<li>Checks that, on the device, the installed application with the same package name is also
+debuggable.</li>
+</ul>
+
+<p>By default, {@code ndk-gdb} searches for an already-running application process, and displays an
+error if it doesn't find one. You can, however, use the {@code --start} or
+{@code --launch=&lt;name&gt;} option to automatically start your activity before the debugging
+session. For more information, see <a href="#opt">Options</a>.</p>
+
+
+<h3 id="opt">Options</h3>
+<p>To see a complete list of options, type {@code ndk-gdb --help} on the command line. Table 1
+shows a number of the more commonly used ones, along with brief descriptions.</p>
+
+<p class="table-caption" id="table1">
+  <strong>Table 1.</strong> Common ndk-gdb options and their descriptions.</p>
+
+<table>
+<tr>
+<th>Option</th>
+<th>Description></th>
+<tr>
+
+<tr>
+<td>{@code --verbose}</td>
+<td><p>This option tells the build system to print verbose information about the native-debugging
+session setup. It is necessary only for debugging problems when the debugger can't connect to the
+app, and the error messages that {@code ndk-gdb} displays are not enough.</p></td>
+</tr>
+
+<tr>
+<td>{@code --force}</td>
+<td>By default, {@code ndk-gdb} aborts if it finds that another native debugging session is already
+ running on the same device. This option kills the other session, and replaces it with a new one.
+ Note that this option does not kill the actual app being debugged, which you must kill
+ separately.</td>
+</tr>
+
+<tr>
+<td>{@code --start}</td>
+<td><p>When you start {@code ndk-gdb}, it tries by default to attach to an existing running instance of
+your app on the target device. You can override this default behavior by using {@code --start} to
+explicitly launch the application on the target device before the debugging session.</p></td>
+
+<p>Starting {@code ndk-gdb} with this option specified launches the first launchable activity listed
+in your application manifest. Use {@code --launch=&lt;name&gt;} to start the next launchable
+activity. To dump the list of launchable activities, run {@code --launch-list} from the command
+line.</p>
+</tr>
+
+<tr>
+<td>{@code --launch=&lt;name&gt;}</td>
+<td><p>This option is similar to {@code --start}, except that it allows you to start a specific
+ activity from your application. This feature is only useful if your manifest defines multiple
+ launchable activities.</p></td>
+</tr>
+
+<tr>
+<td>{@code --launch-list}</td>
+<td><p>This convenience option prints the list of all launchable activity names found in your
+ app manifest. {@code --start} uses the first activity name.</p></td>
+</tr>
+
+<tr>
+<td>{@code --project=&lt;path&gt;}</td>
+<td>This option specifies the app project directory. It is useful if you want to launch the
+ script without first having to change to the project directory.</p></td>
+</tr>
+
+<tr>
+<td>{@code --port=&lt;port&gt;}</td>
+<td> <p>By default, {@code ndk-gdb} uses local TCP port 5039 to communicate with the app it
+ is debugging on the target device. Using a different port allows you to natively debug programs
+ running on different devices or emulators connected to the same host machine.</p></td>
+</tr>
+
+<tr>
+<td>{@code --adb=&lt;file&gt;}</td>
+<td><p>This option specifies the <a href="http://developer.android.com/tools/help/adb.html">adb</a>
+tool executable. It is only necessary if you have not set your path to include that executable.</p>
+</td>
+</tr>
+
+<tr>
+<td>
+<li>{@code -d}</li>
+<li>{@code -e}</li>
+<li>{@code -s &lt;serial&gt;}</li></td>
+<td><p>These flags are similar to the adb commands with the same names. Set these flags if you have
+several devices or emulators connected to your host machine. Their meanings are as follows:</p>
+<dl>
+   <dt>{@code -d}</dt>
+   <dd>Connect to a single physical device.</dd>
+   <dt>{@code -e}</dt>
+   <dd>Connect to a single emulator device.</dd>
+   <dt>{@code -s &lt;serial&gt;}</dt>
+   <dd>Connect to a specific device or emulator. Here, {@code &lt;serial&gt;} is the device's name
+   as listed by the {@code adb devices} command.</dd>
+</dl>
+
+<p>Alternatively, you can define the {@code ADB_SERIAL} environment variable to list a specific
+device, without the need for a specific option.</p></td>
+</tr>
+
+<tr>
+<td>
+<li>{@code --exec=&lt;file&gt;}</li>
+<li>{@code -x &lt;file&gt;}</li>
+</td>
+<td><p>This option tells {@code ndk-gdb} to run the GDB initialization commands found in
+{@code &lt;file&gt;} after connecting to the process it is debugging. This is a useful feature if
+you want to do something repeatedly, such as setting up a list of breakpoints, and then resuming
+execution automatically.</p></td>
+</tr>
+
+<tr>
+<td>{@code --nowait}</td>
+<td><p>Disable pausing the Java code until GDB connects. Passing this option may cause the debugger
+ to miss early breakpoints.</p>
+</tr>
+
+<tr>
+<td>{@code --tui}
+{@code -t}</td>
+<td><p>Enable Text User Interface if it is available.</p></td>
+</tr>
+
+<tr>
+<td>{@code --gnumake-flag=&lt;flag&gt;}</td>
+<td><p>This option is an extra flag (or flags) to pass to the
+{@code ndk-build} system when
+querying it for project information. You can use multiple instances of this option in the
+same command.</p></td>
+</tr>
+
+<tr>
+<td>{@code --stdcxx-py-pr={auto|none|gnustdcxx[-GCCVER]|stlport}}</td>
+<td><p>Use specified Python pretty-printers for displaying types in the Standard C++ Library.
+ {@code auto} mode works by looking at the {@code .so} files for a {@code libstdc++} library,
+ and as such only works for a shared library. When linking statically to a {@code libstdc++} library,
+ you must specify the required printers. The default is {@code none}.</p></td>
+</tr>
+</table>
+
+<p class="note"><strong>Note: </strong>The final three options in this table are only for the
+Python version of {@code ndk-gdb}.</p></td>
+
+<h2 id="thread">Thread Support</h2>
+<p>If your app runs on a platform older than Android 2.3 (API level 9), {@code ndk-gdb}
+cannot debug native threads properly. The debugger can only debug the main thread, abd completely
+ignores the execution of other threads.</p>
+
+<p>Using a version of Android prior to 2.3 causes {@code ndk-gdb} to display the following message
+prior to showing the GDB prompt:</p>
+
+<pre class="no-pretty-print">
+Thread debugging is unsupported on this Android platform!
+</pre>
+
+
+<p>If you place a breakpoint on a function executed on a non-main thread, the program exits, and
+GDB displays the following message:</p>
+
+<pre class="no-pretty-print">
+Program terminated with signal SIGTRAP, Trace/breakpoint trap.
+      The program no longer exists.
+</pre>
diff --git a/docs/html-ndk/ndk/guides/ndk-stack.jd b/docs/html-ndk/ndk/guides/ndk-stack.jd
new file mode 100644
index 0000000..27c752a
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/ndk-stack.jd
@@ -0,0 +1,84 @@
+page.title=ndk-stack
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#use">Usage</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>The {@code ndk-stack} tool allows you to filter stack traces as they appear in the
+output of {@code adb logcat}, and replace any address inside a shared library with the corresponding
+{@code &lt;source-file&gt;:&lt;line-number&gt;} values.</p>
+
+<p>For example, it translates something like:</p>
+
+<pre>
+I/DEBUG   (   31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+I/DEBUG   (   31): Build fingerprint: 'generic/google_sdk/generic/:2.2/FRF91/43546:eng/test-keys'
+I/DEBUG   (   31): pid: 351, tid: 351  %gt;%gt;%gt; /data/local/ndk-tests/crasher &lt;&lt;&lt;
+I/DEBUG   (   31): signal 11 (SIGSEGV), fault addr 0d9f00d8
+I/DEBUG   (   31):  r0 0000af88  r1 0000a008  r2 baadf00d  r3 0d9f00d8
+I/DEBUG   (   31):  r4 00000004  r5 0000a008  r6 0000af88  r7 00013c44
+I/DEBUG   (   31):  r8 00000000  r9 00000000  10 00000000  fp 00000000
+I/DEBUG   (   31):  ip 0000959c  sp be956cc8  lr 00008403  pc 0000841e  cpsr 60000030
+I/DEBUG   (   31):          #00  pc 0000841e  /data/local/ndk-tests/crasher
+I/DEBUG   (   31):          #01  pc 000083fe  /data/local/ndk-tests/crasher
+I/DEBUG   (   31):          #02  pc 000083f6  /data/local/ndk-tests/crasher
+I/DEBUG   (   31):          #03  pc 000191ac  /system/lib/libc.so
+I/DEBUG   (   31):          #04  pc 000083ea  /data/local/ndk-tests/crasher
+I/DEBUG   (   31):          #05  pc 00008458  /data/local/ndk-tests/crasher
+I/DEBUG   (   31):          #06  pc 0000d362  /system/lib/libc.so
+I/DEBUG   (   31):
+</pre>
+
+<p>Into the more readable output: </p>
+
+<pre>
+********** Crash dump: **********
+Build fingerprint: 'generic/google_sdk/generic/:2.2/FRF91/43546:eng/test-keys'
+pid: 351, tid: 351  &gt;&gt;&gt; /data/local/ndk-tests/crasher &lt;&lt;&lt;
+signal 11 (SIGSEGV), fault addr 0d9f00d8
+Stack frame #00  pc 0000841e  /data/local/ndk-tests/crasher : Routine zoo in /tmp/foo/crasher/jni/zoo.c:13
+Stack frame #01  pc 000083fe  /data/local/ndk-tests/crasher : Routine bar in /tmp/foo/crasher/jni/bar.c:5
+Stack frame #02  pc 000083f6  /data/local/ndk-tests/crasher : Routine my_comparison in /tmp/foo/crasher/jni/foo.c:9
+Stack frame #03  pc 000191ac  /system/lib/libc.so
+Stack frame #04  pc 000083ea  /data/local/ndk-tests/crasher : Routine foo in /tmp/foo/crasher/jni/foo.c:14
+Stack frame #05  pc 00008458  /data/local/ndk-tests/crasher : Routine main in /tmp/foo/crasher/jni/main.c:19
+Stack frame #06  pc 0000d362  /system/lib/libc.so
+</pre>
+
+<h2>Usage</h2>
+<p>To use {@code ndk-stack}, you first need a directory containing symbolic versions of your app's
+shared libraries. If you use the NDK build system ({@code ndk-build}), these shared-library
+files reside under {@code $PROJECT_PATH/obj/local/&lt;abi&gt;}, where {@code &lt;abi&gt;} represents
+your device's ABI. By default, the system uses the {@code armeabi} ABI.</p>
+
+<p>There are two ways to use the tool. You can feed the logcat text as direct input to the program.
+For example:</p>
+
+<pre class="no-pretty-print">
+adb logcat | $NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi
+</pre>
+
+<p>You can also use the {@code -dump} option to specify the logcat as an input file. For example:
+</p>
+
+<pre class="no-pretty-print">
+adb logcat &gt; /tmp/foo.txt
+$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump foo.txt
+</pre>
+
+<p>When it begins parsing the logcat output, the tool looks for an initial line of asterisks.
+For example:</p>
+
+<pre class="no-pretty-print">
+*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+</pre>
+
+<p class="note"><strong>Note: </strong>When copy/pasting traces, don't forget this line, or
+{@code ndk-stack} won't work correctly.</p>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/prebuilts.jd b/docs/html-ndk/ndk/guides/prebuilts.jd
new file mode 100644
index 0000000..f0530d1
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/prebuilts.jd
@@ -0,0 +1,145 @@
+page.title=Using Prebuilt Libraries
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#dm">Declaring a Prebuilt Library</a></li>
+        <li><a href="#rp">Referencing the Prebuilt Library from Other Modules</a></li>
+        <li><a href="#dp">Debugging Prebuilt Libraries</a></li>
+        <li><a href="#sa">Selecting ABIs for Prebuilt Libraries</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>The NDK supports the use of prebuilt libraries, both static and shared. There are two principal
+use cases for this functionality:</p>
+
+<ul>
+   <li>Distributing your own libraries to third-party NDK developers without distributing your
+    sources.</li>
+   <li>Using a prebuilt version of your own libraries to speed up your build.</li>
+</ul>
+
+<p>This page explains how to use prebuilt libraries.</p>
+
+<h2 id="dm">Declaring a Prebuilt Library</h2>
+<p>You must declare each prebuilt library you use as a <em>single</em> independent module. To do
+  so, perform the following steps:
+
+<ol type="1">
+   <li>Give the module a name. This name does not need to be the same as that of the prebuilt
+    library, itself.</li>
+   <li>In the module's <a href="{@docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a>
+   file, assign to {@code LOCAL_SRC_FILES} the path to the prebuilt library you are providing.
+   Specify the path relative to the value of your {@code LOCAL_PATH} variable.</p>
+   <p class="note"><strong>Note: </strong> You must make sure to select the version of your prebuilt
+    library appropriate to your target ABI. For more information on ensuring library support for
+    ABIs, see <a href="#sa">Selecting ABIs for Prebuilt Libraries.</a></p></li>
+   <li>Include {@code PREBUILT_SHARED_LIBRARY} or {@code PREBUILT_STATIC_LIBRARY}, depending on
+    whether you are using a shared ({@code .so}) or static {@code .a}) library.</li>
+</ol>
+
+  <p>Here is a trivial example that assumes that the prebuilt library {@code libfoo.so} resides in
+  the same directory as the <a href="{@docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a>
+  file that describes it.</p>
+
+<pre>
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := foo-prebuilt
+LOCAL_SRC_FILES := libfoo.so
+include $(PREBUILT_SHARED_LIBRARY)
+</pre>
+
+<p>In this example, the name of the module is the same as that of the prebuilt library.</p>
+
+<p>The build system places a copy of your prebuilt shared library into {@code $PROJECT/obj/local},
+and another copy, stripped of debug information, into {@code $PROJECT/libs/&lt;abi&gt;}. Here,
+{@code $PROJECT} is the root directory of your project.</p>
+
+<h2 id="rp">Referencing the Prebuilt Library from Other Modules</h2>
+<p>To reference a prebuilt library from other modules, specify its name as the value
+of the {@code LOCAL_STATIC_LIBRARIES} or {@code LOCAL_SHARED_LIBRARIES} variable in the
+<a href="{@docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a> files associated with those
+other modules.</p>
+
+<p>For example, the description of a module using {@code libfoo.so} might be as follows:</p>
+
+<pre>
+include $(CLEAR_VARS)
+LOCAL_MODULE := foo-user
+LOCAL_SRC_FILES := foo-user.c
+LOCAL_SHARED_LIBRARIES := foo-prebuilt
+include $(BUILD_SHARED_LIBRARY)
+</pre>
+
+<p>Here, {@code LOCAL_MODULE} is the name of the module referring to the prebuilt; {@code
+  LOCAL_SHARED_LIBRARIES} is the name of the prebuilt, itself.</p>
+
+<h2>Exporting Headers for Prebuilt Libraries</h2>
+<p>The code in {@code foo-user.c} depends on specific declarations that normally
+reside in a header file, such as {@code foo.h}, distributed with the prebuilt library.
+For example, {@code foo-user.c} might have a line like the following:</p>
+
+<pre>
+#include &lt;foo.h&gt;
+</pre>
+
+<p>In such a case, you need to provide the header and its include path to the compiler when you
+build the {@code foo-user} module. A simple way to accomplish this task is to use exports in the
+prebuilt module definition. For example, as long as header {@code foo.h} is located under the
+{@code include} directory associated with the prebuilt module, you can declare it as follows:</p>
+
+<pre>
+include $(CLEAR_VARS)
+LOCAL_MODULE := foo-prebuilt
+LOCAL_SRC_FILES := libfoo.so
+LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
+include $(PREBUILT_SHARED_LIBRARY)
+</pre>
+
+<p>The {@code LOCAL_EXPORT_C_INCLUDES} definition here ensures that the build system
+exports the path to the prebuilt library's {@code include} directory, prepending that path onto the
+value of the {@code LOCAL_C_INCLUDES} for the module dependent on it.</p>
+
+<p>This operation allows the build system to find the necessary headers.</p>
+
+<h2 id="dp">Debugging Prebuilt Libraries</h2>
+<p>We recommend that you provide prebuilt shared libraries containing debug symbols. The NDK build
+system always strips the symbols from the version of the library that it installs into
+{@code $PROJECT/libs/&lt;abi&gt;/}, but you can use the debug version for debugging with
+{@code ndk-gdb}.</p>
+
+<h2 id="sa">Selecting ABIs for Prebuilt Libraries</h2>
+<p>You must make sure to select the right version of your prebuilt shared library for your targeted
+ABI. The <a href="{@docRoot}ndk/guides/android_mk.html#taa">
+{@code TARGET_ARCH_ABI}</a> variable in the <a href="{@docRoot}ndk/guides/android_mk.html">
+{@code Android.mk}</a> file can point the build system at the appropriate version of the library.
+</p>
+
+<p>For example, assume that your project contains two versions of library {@code libfoo.so}:</p>
+
+<pre class="no-pretty-print">
+armeabi/libfoo.so
+x86/libfoo.so
+</pre>
+
+<p>The following snippet shows how to use {@code TARGET_ARCH_ABI} so that the build system selects
+  the appropriate version of the library:</p>
+
+<pre>
+include $(CLEAR_VARS)
+LOCAL_MODULE := foo-prebuilt
+LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libfoo.so
+LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
+include $(PREBUILT_SHARED_LIBRARY)
+</pre>
+
+<p>If you have specified {@code armeabi} as the value of {@code TARGET_ARCH_ABI}, the build system
+uses the version of {@code libfoo.so} located in the {@code armeabi} directory. If you have
+specified {@code x86} as the value {@code TARGET_ARCH_ABI}, the build system uses the version in the
+{@code x86} directory.</p>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/sample.jd b/docs/html-ndk/ndk/guides/sample.jd
new file mode 100644
index 0000000..18ca0b8
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/sample.jd
@@ -0,0 +1,11 @@
+page.title=Sample Walkthroughs
+@jd:body
+
+<div class="contents">
+<div class="textblock"><p>This section explains several of the sample apps provided with the NDK. It assumes that you already have a working knowledge of programming in Java and native code, and focuses on issues particular to working with the NDK.</p>
+<p>It discusses the following samples:</p>
+<ul>
+<li><a href="./md_2__samples_sample--hellojni.html">hello-jni</a>: A very basic app that illustrates core workings of the NDK.</li>
+<li><a href="./md_2__samples_sample--nativeactivity.html">native-activity</a>: An app that shows the fundamentals of how to construct a purely native app. It places particular emphasis on the android_native_app_glue library.</li>
+<li><a href="./md_2__samples_samples-teapot.html">Teapot</a>: A simple OpenGL demo, showcasing the <code>ndk_helper</code> class. </li>
+</ul>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/sample_hellojni.jd b/docs/html-ndk/ndk/guides/sample_hellojni.jd
new file mode 100644
index 0000000..fa3fb5d
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/sample_hellojni.jd
@@ -0,0 +1,123 @@
+page.title=Sample: hello-jni
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#an">Android.mk</a></li>
+        <li><a href="#ap">Application.mk</a></li>
+        <li><a href="#ji">Java-side Implementation</a></li>
+        <li><a href="#ci">C-side Implementation</a></li>
+          </ol>
+        </li>
+      </ol>
+    </div>
+  </div>
+
+<p>This sample provides a bare-bones look at HelloJNI, a minimal
+application built with the NDK. This sample is in the {@code samples/hello-jni/} directory
+under the root directory of your NDK installation.</p>
+
+<h2 id="an">Android.mk</h2>
+
+<p>The following two lines provide the name of the native source file, along
+with the name of the shared library to build. The full name of the built
+library is {@code libhello-jni.so}, once the build system adds the
+{@code lib} prefix and the {@code .so} extension.</p>
+
+<pre class="no-pretty-print">
+LOCAL_SRC_FILES := hello-jni.c
+LOCAL_MODULE    := hello-jni
+</pre>
+
+<p>For more information about what the {@code Android.mk} file does, and how to use it, see
+<a href="{@docRoot}ndk/guides/android_mk.html">Android.mk</a>.</p>
+
+<h2 id="ap">Application.mk</h2>
+<p>This line tells the build system the CPU and architecture against which to build. In this
+example, the build system builds for all supported architectures.</p>
+
+<pre class="no-pretty-print">
+APP_ABI := all
+</pre>
+
+<p>For more information about the {@code Application.mk} file, and how to use it, see
+<a href="{@docRoot}ndk/guides/application_mk.html">Application.mk</a>.</p>
+
+<h2 id="ji">Java-side Implementation</h2>
+<p>The {@code helloJNI.java} file is located in {@code hellojni/src/com/example/hellojni/}. It calls
+a function to retrieve a string from the native side, then displays it on the screen.</p>
+
+<p>The source code contains three lines of particular interest to the NDK user.
+They are presented here in the order in which they are used, rather than by
+line order.</p>
+
+<p>This function call loads the {@code .so} file upon application startup.</p>
+
+<pre class="no-pretty-print">
+System.loadLibrary("hello-jni");
+</pre>
+
+<p>The {@code native} keyword in this method declaration tells the
+virtual machine that the function is in the shared library (that is, implemented on the native
+side).</p>
+
+<pre class="no-pretty-print">
+public native String stringFromJNI();
+</pre>
+
+<p>The Android framework calls the function loaded and declared in the
+previous steps, displaying the string on the screen.</p>
+
+<pre class="no-pretty-print">
+tv.setText( stringFromJNI() );
+</pre>
+
+<h2 id="ci">C-side Implementation</h2>
+<p>The {@code hello-jni.c} file is located in {@code hello-jni/jni/}. It contains a function that
+returns a string that <a href="#ji">the Java side requested</a>). The function declaration is as
+follows:</p>
+
+<pre>
+jstring
+Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
+                                                  jobject thiz )
+</pre>
+
+<p>This declaration corresponds to the native function declared in the
+Java source code. The return type, {@code jstring}, is a data type defined
+in the
+<a href="http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html">Java Native
+Interface Specification</a>. It is not actually a string, but a
+pointer to a Java string.</p>
+
+<p>After {@code jstring} comes the function name, which is based on the
+Java function name and and the path to the file containing it. Construct it
+according to the following rules:</p>
+
+<ul>
+<li>Prepend {@code Java_} to it.</li>
+<li>Describe the filepath relative to the top-level source directory.</li>
+<li>Use underscores in place of forward slashes.</li>
+<li>Omit the {@code .java} file extension.</li>
+<li>After the last underscore, append the function name.</li>
+</ul>
+
+<p>Following these rules, this example uses the function name
+{@code Java_com_example_hellojni_HelloJni_stringFromJNI}. This name refers to a Java
+function called {@code stringFromJNI()}, which resides in
+{@code hellojni/src/com/example/hellojni/HelloJni.java}.</p>
+
+<p>{@code JNIEnv*} is the pointer to the VM, and
+{@code jobject} is a pointer to the implicit {@code this} object passed from
+the Java side.</p>
+
+<p>The following line calls the VM API {@code (*env)}, and passes it a return value:
+that is, the string that the function on the Java side had requested.</p>
+
+<pre class="no-pretty-print">
+return (*env)-&gt;NewStringUTF(env, "Hello from JNI !
+Compiled with ABI " ABI ".");
+</pre>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/sample_na.jd b/docs/html-ndk/ndk/guides/sample_na.jd
new file mode 100644
index 0000000..55362cd
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/sample_na.jd
@@ -0,0 +1,259 @@
+page.title=Sample: native-activity
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#am">AndroidManifest.xml</a></li>
+        <li><a href="#anm">Android.mk</a></li>
+        <li><a href="#apm">Application.mk</a></li>
+        <li><a href="#mac">main.c</a></li>
+          </ol>
+        </li>
+      </ol>
+    </div>
+  </div>
+
+<p>The native-activity sample resides under the NDK installation root, in
+{@code samples/native-activity}. It is a very simple example of a purely native
+application, with no Java source code. In the absence of any Java source, the
+Java compiler still creates an executable stub for the virtual machine to run.
+The stub serves as a wrapper for the actual, native program, which lives in the {@code .so}
+file.</p>
+
+<p>The app itself simply renders a color onto the entire screen, and
+then changes the color partly in response to movement that it detects.</p>
+
+<h2 id="am">AndroidManifest.xml</h2>
+
+<p>An app with only native code must not specify an Android API level lower than 9, which introduced
+the <a href="{@docRoot}ndk/guides/concepts.html#naa">{@code NativeActivity}</a> framework class.</p>
+
+<pre class="no-pretty-print">
+&lt;uses-sdk android:minSdkVersion="9" /&gt;
+</pre>
+
+<p>The following line declares {@code android:hasCode} as {@code false}, as this app has only
+native code&ndash;no Java.
+</p>
+
+<pre class="no-pretty-print">
+&lt;application android:label="@string/app_name"
+android:hasCode="false"&gt;
+</pre>
+
+<p>The next line declares the {@code NativeActivity} class.</p>
+
+<pre class="no-pretty-print">
+&lt;activity android:name="android.app.NativeActivity"
+</pre>
+
+<p>Finally, the manifest specifies {@code android:value} as the name of the shared library to be
+built, minus the initial {@code lib} and the {@code .so} extension. This value must be the same as
+the name of {@code LOCAL_MODULE} in {@code Android.mk}.</p>
+
+<pre class="no-pretty-print">
+&lt;meta-data android:name="android.app.lib_name"
+        android:value="native-activity" /&gt;
+</pre>
+
+<h2 id="anm">Android.mk</h2>
+<p>This file begins by providing the name of the shared library to generate.</p>
+
+<pre class="no-pretty-print">
+LOCAL_MODULE    := native-activity
+</pre>
+
+<p>Next, it declares the name of the native source-code file.</p>
+
+<pre class="no-pretty-print">
+LOCAL_SRC_FILES := main.c
+</pre>
+
+<p>Next, it lists the external libraries for the build system to use in building the binary. The
+{@code -l} (link-against) option precedes each library name.</p>
+
+<ul>
+<li>{@code log} is a logging library.</li>
+<li>{@code android} encompasses the standard Android support APIs for NDK. For more information about
+the APIs that Android and the NDK support, see  <a href="stable_apis.html">Android NDK Native
+APIs</a>.</li>
+<li>{@code EGL} corresponds to the platform-specific portion of the graphics API.</li>
+<li>{@code GLESv1_CM} corresponds to OpenGL ES, the version of OpenGL for Android. This library
+depends on EGL.</li>
+</ul>
+
+<p>For each library:</p>
+
+<ul>
+<li>The actual file name starts with {@code lib}, and ends with the
+{@code .so} extension. For example, the actual file name for the
+{@code log} library is {@code liblog.so}.</li>
+<li>The library resides in the following directory, NDK root:
+{@code &lt;ndk&gt;/platforms/android-&lt;sdk_version&gt;/arch-&lt;abi&gt;/usr/lib/}.</li>
+</ul>
+
+<pre class="no-pretty-print">
+LOCAL_LDLIBS    := -llog -landroid -lEGL -lGLESv1_CM
+</pre>
+
+<p>The next line provides the name of the static library, {@code android_native_app_glue}, which the
+application uses to manage {@code NativeActivity} lifecycle events and touch input.</p>
+
+<pre class="no-pretty-print">
+LOCAL_STATIC_LIBRARIES := android_native_app_glue
+</pre>
+
+<p>The final line tells the build system to build this static library.
+The {@code ndk-build} script places the built library
+({@code libandroid_native_app_glue.a}) into the {@code obj} directory
+generated during the build process. For more information about the {@code android_native_app_glue}
+library, see its {@code android_native_app_glue.h} header and corresponding {@code .c}source file.
+</p>
+
+
+<pre class="no-pretty-print">
+$(call import-module,android/native_app_glue)
+</pre>
+
+<p>For more information about the {@code Android.mk} file, see
+<a href="{@docRoot}ndk/guides/android_mk.html">Android.mk</a>.</p>
+
+
+<h2 id="apm">Application.mk</h2>
+
+<p>This line defines the minimum level of Android API Level support.</p>
+
+<pre class="no-pretty-print">
+APP_PLATFORM := android-10
+</pre>
+
+<p>Because there is no ABI definition, the build system defaults to building only for
+{@code armeabi}.</p>
+
+<h2 id="mac">main.c</h2>
+<p>This file essentially contains the entire progam.</p>
+
+<p>The following includes correspond to the libraries, both shared and static,
+enumerated in {@code Android.mk}.</p>
+
+<pre class="no-pretty-print">
+#include &lt;EGL/egl.h&gt;
+#include &lt;GLES/gl.h&gt;
+
+
+#include &lt;android/sensor.h&gt;
+#include &lt;android/log.h&gt;
+#include &lt;android_native_app_glue&gt;
+</pre>
+
+<p>The {@code android_native_app_glue} library calls the following function,
+passing it a predefined state structure. It also serves as a wrapper that
+simplifies handling of {@code NativeActivity} callbacks.</p>
+
+<pre class="no-pretty-print">
+void android_main(struct android_app* state) {
+</pre>
+
+<p>Next, the program handles events queued by the glue library. The event
+handler follows the state structure.</p>
+
+<pre class="no-pretty-print">
+struct engine engine;
+
+
+
+// Suppress link-time optimization that removes unreferenced code
+// to make sure glue isn't stripped.
+app_dummy();
+
+
+memset(&amp;engine, 0, sizeof(engine));
+state-&gt;userData = &amp;engine;
+state-&gt;onAppCmd = engine_handle_cmd;
+state-&gt;onInputEvent = engine_handle_input;
+engine.app = state;
+</pre>
+
+<p>The application prepares to start monitoring the sensors, using the
+APIs in {@code sensor.h}.</p>
+
+<pre class="no-pretty-print">
+    engine.sensorManager = ASensorManager_getInstance();
+    engine.accelerometerSensor =
+                    ASensorManager_getDefaultSensor(engine.sensorManager,
+                        ASENSOR_TYPE_ACCELEROMETER);
+    engine.sensorEventQueue =
+                    ASensorManager_createEventQueue(engine.sensorManager,
+                        state-&gt;looper, LOOPER_ID_USER, NULL, NULL);
+</pre>
+
+<p>Next, a loop begins, in which the application polls the system for
+messages (sensor events). It sends messages to
+{@code android_native_app_glue}, which checks to see whether they match
+any {@code onAppCmd} events defined in {@code android_main}. When a
+match occurs, the message is sent to the handler for execution.</p>
+
+<pre class="no-pretty-print">
+while (1) {
+        // Read all pending events.
+        int ident;
+        int events;
+        struct android_poll_source* source;
+
+
+        // If not animating, we will block forever waiting for events.
+        // If animating, we loop until all events are read, then continue
+        // to draw the next frame of animation.
+        while ((ident=ALooper_pollAll(engine.animating ? 0 : -1, NULL,
+                &amp;events,
+                (void**)&amp;source)) &gt;= 0) {
+
+
+            // Process this event.
+            if (source != NULL) {
+                source-&gt;process(state, source);
+            }
+
+
+            // If a sensor has data, process it now.
+            if (ident == LOOPER_ID_USER) {
+                if (engine.accelerometerSensor != NULL) {
+                    ASensorEvent event;
+                    while (ASensorEventQueue_getEvents(engine.sensorEventQueue,
+                            &amp;event, 1) &gt; 0) {
+                        LOGI("accelerometer: x=%f y=%f z=%f",
+                                event.acceleration.x, event.acceleration.y,
+                                event.acceleration.z);
+                    }
+                }
+            }
+
+
+        // Check if we are exiting.
+        if (state-&gt;destroyRequested != 0) {
+            engine_term_display(&amp;engine);
+            return;
+        }
+    }
+</pre>
+
+<p>Once the queue is empty, and the program exits the polling loop, the
+program calls OpenGL to draw the screen.</p>
+<pre class="no-pretty-print">
+    if (engine.animating) {
+        // Done with events; draw next animation frame.
+        engine.state.angle += .01f;
+        if (engine.state.angle &gt; 1) {
+            engine.state.angle = 0;
+        }
+
+
+        // Drawing is throttled to the screen update rate, so there
+        // is no need to do timing here.
+        engine_draw_frame(&amp;engine);
+    }
+}
+</pre>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/sample_teapot.jd b/docs/html-ndk/ndk/guides/sample_teapot.jd
new file mode 100644
index 0000000..9542a9d
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/sample_teapot.jd
@@ -0,0 +1,360 @@
+page.title=Sample: Teapot
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#am">AndroidManifest.xml</a></li>
+        <li><a href="#ap">Application.mk</a></li>
+        <li><a href="#ji">Java-side Implementation</a></li>
+        <li><a href="#ni">Native-side Implementation</a></li>
+          </ol>
+        </li>
+      </ol>
+    </div>
+  </div>
+
+<p>The Teapot sample is located under in the {@code samples/Teapot/} directory, under the NDK
+installation's root directory. This sample uses the OpenGL library to render the iconic
+<a href="http://math.hws.edu/bridgeman/courses/324/s06/doc/opengl.html#basic">Utah
+teapot</a>. In particular, it showcases the {@code ndk_helper} helper class,
+a collection of native helper functions required for implementing games and
+similar applications as native applications. This class provides:</p>
+
+<ul>
+<li>An abstraction layer, {@code GLContext}, that handles certain NDK-specific behaviors.</li>
+<li>Helper functions that are useful but not present in the NDK, such as tap detection.</li>
+<li>Wrappers for JNI calls for platform features such as texture loading.</li>
+</ul>
+
+<h2 id="am">AndroidManifest.xml</h2>
+<p>The activity declaration here is not {@link android.app.NativeActivity} itself, but
+a subclass of it: {@code TeapotNativeActivity}.</p>
+
+<pre class="no-pretty-print">
+    &lt;activity android:name="com.sample.teapot.TeapotNativeActivity"
+            android:label="@string/app_name"
+            android:configChanges="orientation|keyboardHidden"&gt;
+</pre>
+
+<p>Ultimately, the name of the shared-object file that the build system builds is
+{@code libTeapotNativeActivity.so}. The build system adds the {@code lib} prefix and the {@code .so}
+extension; neither is part of the value that the manifest originally assigns to
+{@code android:value}.</p>
+
+<pre class="no-pretty-print">
+        &lt;meta-data android:name="android.app.lib_name"
+                android:value="TeapotNativeActivity" /&gt;
+</pre>
+
+<h2 id="ap">Application.mk</h2>
+<p>An app that uses the {@link android.app.NativeActivity} framework class must not specify an
+Android API level lower than 9, which introduced that class. For more information about the
+{@link android.app.NativeActivity} class, see
+<a href="{@docRoot}ndk/guides/concepts.html#naa">Native Activities and Applications</a>.
+</p>
+
+<pre class="no-pretty-print">
+APP_PLATFORM := android-9
+</pre>
+
+<p>The next line tells the build system to build for all supported architectures.</p>
+<pre class="no-pretty-print">
+APP_ABI := all
+</pre>
+
+<p>Next, the file tells the build system which
+<a href="{@docRoot}ndk/guides/cpp-support.html">C++ runtime support library</a> to use. </p>
+
+<pre class="no-pretty-print">
+APP_STL := stlport_static
+</pre>
+
+<h2 id="ji">Java-side Implementation</h2>
+<p>The {@code TeapotNativeActivity.java} file is located in
+{@code samples/Teapot/src/com/sample/teapot}, under the NDK installation root directory. It handles
+activity lifecycle events, and also enables the app to display text on the screen. The following
+block of code is most important from the perspective of the native-side implementation: The native
+code calls it to display a popup window for text display.</p>
+
+<pre class="no-pretty-print">
+
+void setImmersiveSticky() {
+    View decorView = getWindow().getDecorView();
+    decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN
+            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
+            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+}
+</pre>
+
+<h2 id="ni">Native-side Implementation</h2>
+
+<p>This section explores the part of the Teapot app implemented in C++.</p>
+
+<h3>TeapotRenderer.h</h3>
+
+<p>These function calls perform the actual rendering of the teapot. It uses
+{@code ndk_helper} for matrix calculation and to reposition the camera
+based on where the user taps.</p>
+
+<pre class="no-pretty-print">
+ndk_helper::Mat4 mat_projection_;
+ndk_helper::Mat4 mat_view_;
+ndk_helper::Mat4 mat_model_;
+
+
+ndk_helper::TapCamera* camera_;
+</pre>
+
+<h3>TeapotNativeActivity.cpp</h3>
+
+<p>The following lines include {@code ndk_helper} in the native source file, and define the
+helper-class name.</p>
+
+<pre class="no-pretty-print">
+
+#include "NDKHelper.h"
+
+//-------------------------------------------------------------------------
+//Preprocessor
+//-------------------------------------------------------------------------
+#define HELPER_CLASS_NAME "com/sample/helper/NDKHelper" //Class name of helper
+function
+</pre>
+
+<p>The first use of the {@code ndk_helper} class is to handle the
+EGL-related lifecycle, associating EGL context states (created/lost) with
+Android lifecycle events. The {@code ndk_helper} class enables the application to preserve context
+information so that the system can restore a destroyed activity. This ability is useful, for
+example, when the target machine is rotated (causing an activity to be
+destroyed, then immediately restored in the new orientation), or when the lock
+screen appears.</p>
+
+<pre class="no-pretty-print">
+ndk_helper::GLContext* gl_context_; // handles EGL-related lifecycle.
+</pre>
+
+<p>Next, {@code ndk_helper} provides touch control.</p>
+
+<pre class="no-pretty-print">
+ndk_helper::DoubletapDetector doubletap_detector_;
+ndk_helper::PinchDetector pinch_detector_;
+ndk_helper::DragDetector drag_detector_;
+ndk_helper::PerfMonitor monitor_;
+</pre>
+
+<p>It also provides camera control (openGL view frustum).</p>
+
+<pre class="no-pretty-print">
+ndk_helper::TapCamera tap_camera_;
+</pre>
+
+<p>The app then prepares to use the device's sensors, using the native APIs provided in the NDK.</p>
+
+<pre class="no-pretty-print">
+ASensorManager* sensor_manager_;
+const ASensor* accelerometer_sensor_;
+ASensorEventQueue* sensor_event_queue_;
+</pre>
+
+<p>The app calls the following functions in response to various Android
+lifecycle events and EGL context state changes, using various functionalities
+provided by {@code ndk_helper} via the {@code Engine} class.</p>
+
+<pre class="no-pretty-print">
+
+void LoadResources();
+void UnloadResources();
+void DrawFrame();
+void TermDisplay();
+void TrimMemory();
+bool IsReady();
+</pre>
+
+<p>Then, the following function calls back to the Java side to update the UI display.</p>
+
+<pre class="no-pretty-print">
+void Engine::ShowUI()
+{
+    JNIEnv *jni;
+    app_-&gt;activity-&gt;vm-&gt;AttachCurrentThread( &amp;jni, NULL );
+
+
+    //Default class retrieval
+    jclass clazz = jni-&gt;GetObjectClass( app_-&gt;activity-&gt;clazz );
+    jmethodID methodID = jni-&gt;GetMethodID( clazz, "showUI", "()V" );
+    jni-&gt;CallVoidMethod( app_-&gt;activity-&gt;clazz, methodID );
+
+
+    app_-&gt;activity-&gt;vm-&gt;DetachCurrentThread();
+    return;
+}
+</pre>
+
+<p>Next, this function calls back to the Java side to draw a text box
+superimposed on the screen rendered on the native side, and showing frame
+count.</p>
+
+<pre class="no-pretty-print">
+void Engine::UpdateFPS( float fFPS )
+{
+    JNIEnv *jni;
+    app_-&gt;activity-&gt;vm-&gt;AttachCurrentThread( &amp;jni, NULL );
+
+
+    //Default class retrieval
+    jclass clazz = jni-&gt;GetObjectClass( app_-&gt;activity-&gt;clazz );
+    jmethodID methodID = jni-&gt;GetMethodID( clazz, "updateFPS", "(F)V" );
+    jni-&gt;CallVoidMethod( app_-&gt;activity-&gt;clazz, methodID, fFPS );
+
+
+    app_-&gt;activity-&gt;vm-&gt;DetachCurrentThread();
+    return;
+}
+</pre>
+
+<p>The application gets the system clock and supplies it to the renderer
+for time-based animation based on real-time clock. This information is used, for example, in
+calculating momentum, where speed declines as a function of time.</p>
+
+<pre class="no-pretty-print">
+renderer_.Update( monitor_.GetCurrentTime() );
+</pre>
+
+<p>The application now checks whether the context information that {@code GLcontext} holds is still
+valid. If not, {@code ndk-helper} swaps the buffer, reinstantiating the GL context.</p>
+
+<pre class="no-pretty-print">
+if( EGL_SUCCESS != gl_context_-&gt;Swap() )  // swaps
+buffer.
+</pre>
+
+<p>The program passes touch-motion events to the gesture detector defined
+in the {@code ndk_helper} class. The gesture detector tracks multitouch
+gestures, such as pinch-and-drag, and sends a notification when triggered by
+any of these events.</p>
+
+<pre class="no-pretty-print">
+    if( AInputEvent_getType( event ) == AINPUT_EVENT_TYPE_MOTION )
+    {
+        ndk_helper::GESTURE_STATE doubleTapState =
+            eng->doubletap_detector_.Detect( event );
+        ndk_helper::GESTURE_STATE dragState = eng->drag_detector_.Detect( event );
+        ndk_helper::GESTURE_STATE pinchState = eng->pinch_detector_.Detect( event );
+
+        //Double tap detector has a priority over other detectors
+        if( doubleTapState == ndk_helper::GESTURE_STATE_ACTION )
+        {
+            //Detect double tap
+            eng->tap_camera_.Reset( true );
+        }
+        else
+        {
+            //Handle drag state
+            if( dragState & ndk_helper::GESTURE_STATE_START )
+            {
+                //Otherwise, start dragging
+                ndk_helper::Vec2 v;
+                eng->drag_detector_.GetPointer( v );
+                eng->TransformPosition( v );
+                eng->tap_camera_.BeginDrag( v );
+            }
+           // ...else other possible drag states...
+
+            //Handle pinch state
+            if( pinchState & ndk_helper::GESTURE_STATE_START )
+            {
+                //Start new pinch
+                ndk_helper::Vec2 v1;
+                ndk_helper::Vec2 v2;
+                eng->pinch_detector_.GetPointers( v1, v2 );
+                eng->TransformPosition( v1 );
+                eng->TransformPosition( v2 );
+                eng->tap_camera_.BeginPinch( v1, v2 );
+            }
+            // ...else other possible pinch states...
+        }
+        return 1;
+    }
+</pre>
+
+<p>The {@code ndk_helper} class also provides access to a vector-math library
+({@code vecmath.h}), using it here to transform touch coordinates.</p>
+
+<pre class="no-pretty-print">
+void Engine::TransformPosition( ndk_helper::Vec2& vec )
+{
+    vec = ndk_helper::Vec2( 2.0f, 2.0f ) * vec
+            / ndk_helper::Vec2( gl_context_->GetScreenWidth(),
+            gl_context_->GetScreenHeight() ) - ndk_helper::Vec2( 1.f, 1.f );
+}
+</pre>
+</ul>
+
+<p>The {@code HandleCmd()} method handles commands posted from the
+android_native_app_glue library. For more information about what the messages
+mean, refer to the comments in the {@code android_native_app_glue.h} and
+{@code .c} source files.</p>
+
+<pre class="no-pretty-print">
+void Engine::HandleCmd( struct android_app* app,
+        int32_t cmd )
+{
+    Engine* eng = (Engine*) app->userData;
+    switch( cmd )
+    {
+    case APP_CMD_SAVE_STATE:
+        break;
+    case APP_CMD_INIT_WINDOW:
+        // The window is being shown, get it ready.
+        if( app->window != NULL )
+        {
+            eng->InitDisplay();
+            eng->DrawFrame();
+        }
+        break;
+    case APP_CMD_TERM_WINDOW:
+        // The window is being hidden or closed, clean it up.
+        eng->TermDisplay();
+        eng->has_focus_ = false;
+        break;
+    case APP_CMD_STOP:
+        break;
+    case APP_CMD_GAINED_FOCUS:
+        eng->ResumeSensors();
+        //Start animation
+        eng->has_focus_ = true;
+        break;
+    case APP_CMD_LOST_FOCUS:
+        eng->SuspendSensors();
+        // Also stop animating.
+        eng->has_focus_ = false;
+        eng->DrawFrame();
+        break;
+    case APP_CMD_LOW_MEMORY:
+        //Free up GL resources
+        eng->TrimMemory();
+        break;
+    }
+}
+</pre>
+
+<p>The {@code ndk_helper} class posts {@code APP_CMD_INIT_WINDOW} when {@code android_app_glue}
+receives an {@code onNativeWindowCreated()} callback from the system.
+Applications can normally perform window initializations, such as EGL
+initialization. They do this outside of the activity lifecycle, since the
+activity is not yet ready.</p>
+
+<pre class="no-pretty-print">
+    //Init helper functions
+    ndk_helper::JNIHelper::Init( state->activity, HELPER_CLASS_NAME );
+
+    state->userData = &g_engine;
+    state->onAppCmd = Engine::HandleCmd;
+    state->onInputEvent = Engine::HandleInput;
+</pre>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/setup.html b/docs/html-ndk/ndk/guides/setup.html
new file mode 100644
index 0000000..0b44132
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/setup.html
@@ -0,0 +1,520 @@
+<!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> &gt; <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>&lt;ndk&gt;/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> &gt; <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>&nbsp;&nbsp;|&nbsp;
+    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
+    <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>
+
+
+
diff --git a/docs/html-ndk/ndk/guides/stable_apis.jd b/docs/html-ndk/ndk/guides/stable_apis.jd
new file mode 100644
index 0000000..a3fedcc
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/stable_apis.jd
@@ -0,0 +1,501 @@
+page.title=Android NDK Native APIs
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#purpose">Overview</a></li>
+        <li><a href="#mnu">Major Native API Updates</a><li>
+          <ol>
+        <li><a href="#a3">Android API level 3</a></li>
+        <li><a href="#a4">Android API level 4</a></li>
+        <li><a href="#a5">Android API level 5</a></li>
+        <li><a href="#a8">Android API level 8</a></li>
+        <li><a href="#a9">Android API level 9</a></li>
+        <li><a href="#a14">Android API level 14</a></li>
+        <li><a href="#a18">Android API level 18</a></li>
+          </ol>
+      </ol>
+    </div>
+  </div>
+
+<p>The Android NDK provides a set of native headers and shared library files that has gradually
+increased with successive releases of new Android API levels. This page explains these headers and
+files, and maps them to specific
+<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels"> Android API levels</a>.
+</p>
+
+<h2 id="purpose">Overview</h2>
+<p>There are two basic steps to enable your app to use the libraries that the NDK provides:
+</p>
+
+<ol type ="1">
+<li>Include in your code the headers associated with the libraries you wish to use.</li>
+
+<li>Tell the build system that your native module needs to link against the libraries at load time.
+For example, to link against  {@code /system/lib/libfoo.so}, add the following line to your
+<a href="{@docRoot}ndk/guides/android_mk.html">Android.mk</a> file:</li>
+
+<pre>
+LOCAL_LDLIBS := -lfoo
+</pre>
+
+<p>To list multiple libraries, use a space as a delimiter. For more information about using the
+{@code LOCAL_LDLIBS} variable, see <a href="{@docRoot}ndk/guides/android_mk.html">Android.mk</a>.
+</p>
+
+</ol>
+
+<p>For all API levels, the build system automatically links the standard C libraries, the
+standard C++ libraries, real-time extensions, and {@code pthread}; you do not need
+to include them when defining your {@code LOCAL_LDLIBS} variable. For more information about
+the C and C++ libraries, see <a href="#a3">Android API level 3</a>.</p>
+
+<p>The NDK often provides new headers and libraries for new Android releases. These files reside
+under {@code $NDK/platforms/android-&lt;level&gt;/&lt;abi&gt;/usr/include}. When the NDK does not
+have a specific new group of headers and libraries for an Android API level, it means that
+an app targeting that level should use the most recently released NDK assets. For example,
+there was no new release of NDK headers or libraries for Android API levels 6 and 7. Therefore,
+when developing an app targeting Android API level 7, you would use the headers and libraries
+located under {@code android-5/}.</p>
+
+<p>Table 1 shows the correspondence between NDK-supported API levels and Android releases.</p>
+
+<p class="table-caption" id="table1">
+  <strong>Table 1.</strong> NDK-supported API levels and corresponding Android releases.</p>
+<table>
+  <tr>
+    <th scope="col">NDK-supported API level</th>
+    <th scope="col">Android release</th>
+  </tr>
+  <tr>
+    <td>3</td>
+    <td>1.5</td>
+  </tr>
+    <tr>
+    <td>4</td>
+    <td>1.6</td>
+  </tr>
+    <tr>
+    <td>5</td>
+    <td>2.0</td>
+  </tr>
+  <tr>
+    <td>8</td>
+    <td>2.2</td>
+  </tr>
+    <tr>
+    <td>9</td>
+    <td>2.3 through 3.0.x</td>
+  </tr>
+  <tr>
+    <td>12</td>
+    <td>3.1.x</td>
+  </tr>
+  <tr>
+    <td>13</td>
+    <td>3.2</td>
+  </tr>
+  <tr>
+    <td>14</td>
+    <td>4.0 through 4.0.2</td>
+  </tr>
+  <tr>
+    <td>15</td>
+    <td>4.0.3 and 4.0.4</td>
+  </tr>
+    <tr>
+    <td>16</td>
+    <td>4.1 and 4.1.1</td>
+  </tr>
+    <tr>
+    <td>17</td>
+    <td>4.2 and 4.2.2</td>
+  </tr>
+    <tr>
+    <td>18</td>
+    <td>4.3</td>
+  </tr>
+    <tr>
+    <td>19</td>
+    <td>4.4</td>
+  </tr>
+    <tr>
+    <td>21</td>
+    <td>4.4W and 5.0</td>
+</table>
+
+<p>Each new release of NDK headers and libraries for a given Android API level is cumulative; you
+are nearly always safe if you use the most recently released headers when building your app. For
+example, you can use the NDK headers for Android API level 21 for an app targeting API level 16. By doing so, however, you increase your APK's footprint.</p>
+
+<p>
+For more information about Android API levels, see
+<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">What is API Level?</a>.
+</p>
+
+<h2 id="mnu">Major Native API Updates</h2>
+
+<h3 id="a3">Android API level 3</h3>
+<p>The NDK provides the following APIs for developing native code that runs on Android 1.5 system
+images and above.</p>
+
+<h4>C library</h4>
+<p>The C library headers for Android 1.5 are available through their standard names, such as
+{@code stdlib.h} and {@code stdio.h}. If a header is missing at build time, it's because the
+header is not available on the 1.5 system image.</p>
+
+<h4>C++ library</h4>
+<p>An <em>extremely</em> minimal C++ support API is available. For more
+information on C++ library support, see
+<a href="{@docRoot}ndk/guides/cpp-support.html">C++ Library Support</a>.</p>
+
+<h4>Android-specific log support</h4>
+
+<p>{@code &lt;android/log.h&gt;} contains various definitions that an app can use to send log
+messages to the kernel from native code. For more information about these definitions, see the
+comments in {@code $NDK/platforms/android-3/arch-arm/usr/include/android/log.h}, where {@code $NDK}
+is the root of your NDK installation.</p>
+
+<p>You can write your own wrapper macros to access this functionality. If you wish to perform
+logging, your native module should link to {@code /system/lib/liblog.so}. Implement this
+linking by including the following line in your <a href="{@docRoot}ndk/guides/android_mk.html">
+{@code Android.mk}</a> file:</p>
+
+<pre>
+LOCAL_LDLIBS := -llog
+</pre>
+
+<h4>ZLib compression library</h4>
+<p>You can use the <a href="http://www.zlib.net/manual.html">Zlib compression library</a>
+by including {@code zlib.h} and {@code zconf.h}. You must also link your native
+module against {@code /system/lib/libz.so} by including the following line in your
+<a href="{@docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a> file:</p>
+
+<pre>
+LOCAL_LDLIBS := -lz
+</pre>
+
+<h4>Dynamic linker library</h4>
+<p>You can access the Android dynamic linker's {@code dlopen()}, {@code dlsym()}, and
+{@code dlclose()} functions by including {@code dlfcn.h}. You must also link against
+{@code /system/lib/libdl.so} by including the following line in your
+<a href="{@docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a> file:</p>
+
+<pre>
+LOCAL_LDLIBS := -ldl
+</pre>
+
+<h3 id="a4">Android API level 4</h3>
+<p>The NDK provides the following APIs for developing native code that runs on Android 1.6 system
+images and above.</p>
+
+<h4>OpenGL ES 1.x Library</h4>
+<p>The standard OpenGL ES headers {@code gl.h} and {@code glext.h} contain
+the declarations necessary for performing OpenGL ES 1.x rendering calls from native code.</p>
+
+<p>To use these headers, link your native module to {@code /system/lib/libGLESv1_CM.so} by
+including the following line in your <a href="{@docRoot}ndk/guides/android_mk.html">
+{@code Android.mk}</a> file:</p>
+</p>
+
+<pre>
+LOCAL_LDLIBS := -lGLESv1_CM
+</pre>
+<p>All Android-based devices support OpenGL ES 1.0, because Android provides an Open GL 1.0-capable
+software renderer that can be used on devices without GPUs.</p>
+<p>Only Android devices that have the necessary GPU fully support OpenGL ES 1.1. An app can
+query the OpenGL ES version string and extension string to determine whether the current device
+supports the features it needs. For information on how to perform this query, see the description of
+<a href="http://www.khronos.org/opengles/sdk/1.1/docs/man/glGetString.xml">{@code glGetString()}</a>
+in the OpenGL specification.</p>
+
+<p>Additionally, you must put a
+<a href="http://developer.android.com/guide/topics/manifest/uses-feature-element.html">{@code
+&lt;uses-feature&gt;}</a> tag in your manifest file to indicate the version of
+<a href="http://developer.android.com/guide/topics/graphics/opengl.html#manifest">OpenGL ES</a>
+that your application requires.</p>
+
+<p>The <a href="#egl">EGL APIs</a> are only available starting from API level 9. You can, however,
+use the VM to perform some of the operations that you would get from those APIS. These operations
+include surface creation and flipping. For an example of how to use {@code GLSurfaceView}, see
+<a href="http://android-developers.blogspot.com/2009/04/introducing-glsurfaceview.html">
+Introducing GLSurfaceView</a>.</p>
+
+<p>The san-angeles sample application provides an example of how to perform these operations,
+rendering each frame in native code. This sample is a small Android port of the excellent
+<a href="http://jet.ro/visuals/san-angeles-observation/">San Angeles Observation</a> demo
+program.</p>
+
+<h3 id="a5">Android API level 5</h3>
+<p>The NDK provides the following APIs for developing native code that runs on Android 2.0 system
+images and above.</p>
+
+<h4>OpenGL ES 2.0 library:</h4>
+<p>The standard OpenGL ES 2.0 headers {@code &lt;GLES2/gl2.h&gt;} and {@code &lt;GLES2/gl2ext.h&gt;}
+contain the declarations needed for performing OpenGL ES 2.0 rendering calls from native code.
+These rendering calls provide the ability to use the GLSL language to define and use vertex and
+fragment shaders.</p>
+
+<p>To use OpenGL ES 2.0, link your native module to {@code /system/lib/libGLESv2.so} by
+including the following line in your <a href="{@docRoot}ndk/guides/android_mk.html">
+{@code Android.mk}</a> file:</p>
+
+<pre>
+LOCAL_LDLIBS := -lGLESv2
+</pre>
+
+<p>Not all devices support OpenGL ES 2.0. An app can query the OpenGL
+ES version string and extension string to determine whether the current device
+supports the features it needs. For information on how to perform this query, see the description of
+<a href="https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetString.xml">
+{@code glGetString()}</a> in the OpenGL specification.</p>
+
+<p>Additionally, you must put a
+<a href="http://developer.android.com/guide/topics/manifest/uses-feature-element.html">{@code
+&lt;uses-feature&gt;}</a> tag in your manifest file to indicate which version of OpenGL ES your
+application requires. For more information about the OpenGL ES settings for
+{@code &lt;uses-feature&gt;}, see
+<a href="http://developer.android.com/guide/topics/graphics/opengl.html#manifest">OpenGL ES</a>.</p>
+
+<p>The hello-gl2 sample application provies a basic example of how to use OpenGL ES 2.0 with the
+NDK.</p>
+
+<p>The <a href="#egl">EGL APIs</a> are only available starting from API level 9. You can, however,
+use the VM to perform some of the operations that you would get from those APIs. These operations
+include surface creation and flipping. For an example of how to use {@code GLSurfaceView}, see
+<a href="http://android-developers.blogspot.com/2009/04/introducing-glsurfaceview.html">
+Introducing GLSurfaceView</a>.</p>
+
+<p class="note"><strong>Note:</strong> The Android emulator does not support OpenGL ES 2.0 hardware
+emulation. Running and testing code that uses this API requires a real device with hardware that can
+support OpenGL ES 2.0.</p>
+
+<h3 id="a8">Android API level 8</h3>
+<p>The NDK provides the following APIs for developing native code that runs on Android 2.2 system
+images and above.</p>
+
+<h4>jnigraphics</h4>
+<p>The {@code jnigraphics} library exposes a C-based interface that allows native code to reliably access
+the pixel buffers of Java bitmap objects. The workflow for using {@code jnigraphics} is as follows:
+</p>
+
+<ol type="1">
+<li>Use {@code AndroidBitmap_getInfo()} to retrieve information from JNI, such as width and height,
+about a given bitmap handle.</li>
+
+<li>Use {@code AndroidBitmap_lockPixels()} to lock the pixel buffer and retrieve a pointer to it.
+Doing so ensures that the pixels do not move until the app calls
+{@code AndroidBitmap_unlockPixels()}.</li>
+
+<li>In native code, modify the pixel buffer as appropriate for its pixel format, width, and other
+characteristics.</li>
+
+<li>Call {@code AndroidBitmap_unlockPixels()} to unlock the buffer.</li>
+</ol>
+
+<p>To use {@code jnigraphics}, include the {@code &lt;bitmap.h&gt;} header in your source code, and
+link against {@code jnigraphics} by including the following line in your
+<a href="{@docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a> file:</p>
+
+<pre>
+LOCAL_LDLIBS += -ljnigraphics
+</pre>
+
+<p>Additional details about this feature are in the comments of the {@code bitmap.h} file.
+
+<h3 id="a9">Android API level 9</h3>
+<p>The NDK provides the following APIs for developing native code that runs on Android 2.3 system
+images and above.</p>
+
+<h4 id="egl"> EGL</h4>
+<p>EGL provides a native platform interface for allocating and managing OpenGLES surfaces.
+For more information about its features, see <a href="http://www.khronos.org/egl">
+EGL Native Platform Interface</a>.</p>
+
+<p>EGL allows you to perform the following operations from native code:</p>
+
+<ul>
+<li>List supported EGL configurations.</li>
+<li>Allocate and release OpenGLES surfaces.</li>
+<li>Swap or flip surfaces.</li>
+</ul>
+
+<p>The following headers provide EGL functionality:</p>
+<ul>
+   <li>{@code EGL/egl.h}: the main EGL API definitions.</li>
+   <li>{@code EGL/eglext.h}: EGL extension-related definitions.</li>
+</ul>
+
+<p>To link against the system's EGL library, add the following line to your
+<a href="{@docRoot}ndk/guides/android_mk.html">{@code Android.mk}</a> file:</p>
+
+<pre>
+LOCAL_LDLIBS += -lEGL
+</pre>
+
+<h4 id="osl">OpenSL ES</h4>
+<p>Android native audio handling is based on the Khronos Group OpenSL ES 1.0.1 API.</p>
+
+<p>The standard OpenSL ES headers {@code OpenSLES.h} and {@code OpenSLES_Platform.h} contain
+the declarations necessary for performing audio input and output from the native side of Android.
+The NDK distribution of the OpenSL ES also provides Android-specific extensions. For information
+about these extensions, see the comments in {@code OpenSLES_Android.h} and
+{@code OpenSLES_AndroidConfiguration.h}.</p>
+
+
+<p>The system library {@code libOpenSLES.so} implements the public native audio functions. Link
+against it by adding the following line to your <a href="{@docRoot}ndk/guides/android_mk.html">
+{@code Android.mk}</a> file:</p>
+
+<pre>
+LOCAL_LDLIBS += -lOpenSLES
+</pre>
+
+<p>For more information about the OpenSL ES API, refer to
+{@code $NDK/docs/Additional_library_docs/opensles/index.html}, where {@code $NDK} is your NDK
+installation root directory.</p>
+
+<h4>Android native application APIs</h4>
+<p>Starting from API level 9, you can write an entire Android app with native code, without using
+any Java.</p>
+
+<p class="note"><strong>Note: </strong>Writing your app in native code is not, in itself, enough
+for your app to run in the VM. Moreover, your app must still access most features of the Android
+platform via JNI.</p>
+
+<p>This release provides the following native headers:</p>
+<ul>
+<li>{@code &lt;native_activity.h&gt;}</li>
+<li>{@code &lt;looper.h&gt;}</li>
+<li>{@code &lt;input.h&gt;}</li>
+<li>{@code &lt;keycodes.h&gt;}</li>
+<li>{@code &lt;sensor.h&gt;}</li>
+<li>{@code &lt;rect.h&gt;}</li>
+<li>{@code &lt;window.h&gt;}</li>
+<li>{@code &lt;native_window.h&gt;}</li>
+<li>{@code &lt;native_window_jni.h&gt;}</li>
+<li>{@code &lt;configuration.h&gt;}</li>
+<li>{@code &lt;asset_manager.h&gt;}</li>
+<li>{@code &lt;storage_manager.h&gt;}</li>
+<li>{@code &lt;obb.h&gt;}</li>
+</ul>
+
+<p>For more information about these headers, see the
+<a href="{@docRoot}ndk/reference/index.html">NDK API Reference documentation</a>, as well as
+the comments in the headers, themselves. Also, for more information about the larger topic of
+writing native apps, see <a href="{@docRoot}ndk/guides/concepts.html#naa">
+Native Activities and Applications</a>.
+
+<p>When you include one or more of these headers, you must also link against the
+{@code libandroid.so} library. To link against {@code libandroid.so}, include the following line in
+your <a href="{@docRoot}ndk/guides/android_mk.html"> {@code Android.mk}</a> file:</p>
+
+<pre>
+LOCAL_LDLIBS += -landroid
+</pre>
+
+<h3 id="a14">Android API level 14</h3>
+<p>The NDK provides the following APIs for developing native code that runs on Android 4.0 system
+images and above.</p>
+
+<h4>OpenMAX AL</h4>
+<p>Android native multimedia handling is based on Khronos Group OpenMAX AL 1.0.1 API.</p>
+<p>The standard OpenMAX AL headers {@code &lt;OMXAL/OpenMAXAL.h&gt;} and
+{@code &lt;OMXAL/OpenMAXAL_Platform.h&gt;} contain the declarations necessary for performing
+multimedia output from the native side of Android.</p>
+
+<p>The NDK distribution of OpenMAX AL also provides Android-specific extensions. For information
+about these extensions, see the comments in {@code OpenMAXAL_Android.h}.</p>
+
+<p>The system library {@code libOpenMAXAL.so} implements the public native multimedia functions.
+To link against this library, include the following line in your
+<a href="{@docRoot}ndk/guides/android_mk.html"> {@code Android.mk}</a> file:</p>
+
+<pre class="fragment">    LOCAL_LDLIBS += -lOpenMAXAL
+</pre><p>For more information about this topic, see {@code $NDK/docs/openmaxal/index.html},
+where {@code $NDK} is the root directory of your NDK installation.</p>
+
+<h4>OpenSL ES</h4>
+<p>OpenSL ES support for this Android API level adds PCM support. For more information about
+OpenSL ES support in the NDK, see <a href="#osl">OpenSL ES</a>.</p>
+
+<h3 id="a18">Android API level 18</h3>
+<p>The NDK provides the following APIs for developing native code that runs on Android 4.3 system
+images and above.</p>
+
+<h4>OpenGL ES 3.0</h4>
+
+<p>The standard OpenGL ES 3.0 headers {@code gl3.h} and {@code gl3ext.h} contain the declarations
+needed for performing OpenGL ES 3.0 rendering calls from native code. These rendering calls provide
+the ability to use the GLSL language to define and use vertex and fragment shaders.
+
+<p>To use OpenGL ES 3.0, link your native module against {@code /system/lib/libGLESv3.so} by
+including the following line in your <a href="{@docRoot}ndk/guides/android_mk.html">
+{@code Android.mk}</a> file:</p>
+
+<pre>
+LOCAL_LDLIBS := -lGLESv3
+</pre>
+
+<p>Not all devices support OpenGL ES 3.0. An app can query the OpenGL
+ES version string and extension string to determine whether the current device
+supports the features it needs. For information on how to perform this query, see the description of
+<a href="https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetString.xml">
+{@code glGetString()}</a> in the OpenGL specification.</p>
+
+<p>Additionally, you must put a
+<a href="http://developer.android.com/guide/topics/manifest/uses-feature-element.html">{@code
+&lt;uses-feature&gt;}</a> tag in your manifest file to indicate which version of OpenGL ES your
+application requires. For more information about the OpenGL ES settings for
+{@code &lt;uses-feature&gt;}, see
+<a href="http://developer.android.com/guide/topics/graphics/opengl.html#manifest">OpenGL ES</a>.</p>
+
+<p>The gles3jni sample application provides a basic example of how to use OpenGL ES 3.0 with the
+NDK.</p>
+
+<p class="note"><strong>Note:</strong> The Android emulator does not support OpenGL ES 3.0 hardware
+emulation. Running and testing code that uses this API requires a real device with hardware that can
+support OpenGL ES 3.0.</p>
+
+
+<h3 id="a18">Android API level 21</h3>
+<p>The NDK provides the following APIs for developing native code that runs on Android 4.3 system
+images and above.</p>
+
+<h4>OpenGL ES 3.1</h4>
+
+<p>The standard OpenGL ES 3.1 headers {@code gl31.h} and {@code gl3ext.h} contain the declarations
+needed for performing OpenGL ES 3.1 rendering calls from native code. These rendering calls provide
+the ability to use the GLSL language to define and use vertex and fragment shaders.
+
+<p>To use OpenGL ES 3.1, link your native module against {@code /system/lib/libGLESv3.so} by
+including the following line in your <a href="{@docRoot}ndk/guides/android_mk.html">
+{@code Android.mk}</a> file:</p>
+
+<pre>
+LOCAL_LDLIBS := -lGLESv3
+</pre>
+
+<p>Not all devices support OpenGL ES 3.1. An app can query the OpenGL
+ES version string and extension string to determine whether the current device
+supports the features it needs. For information on how to perform this query, see the description of
+<a href="https://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetString.xml">
+{@code glGetString()}</a> in the OpenGL specification.</p>
+
+<p>Additionally, you must put a
+<a href="http://developer.android.com/guide/topics/manifest/uses-feature-element.html">{@code
+&lt;uses-feature&gt;}</a> tag in your manifest file to indicate which version of OpenGL ES your
+application requires. For more information about the OpenGL ES settings for
+{@code &lt;uses-feature&gt;}, see
+<a href="http://developer.android.com/guide/topics/graphics/opengl.html#manifest">OpenGL ES</a>.</p>
+
+<p>The gles3jni sample application provides a basic example of how to use OpenGL ES 3.1 with the
+NDK.</p>
+
+<p class="note"><strong>Note:</strong> The Android emulator does not support OpenGL ES 3.1 hardware
+emulation. Running and testing code that uses this API requires a real device with hardware that can
+support OpenGL ES 3.1.</p>
+
diff --git a/docs/html-ndk/ndk/guides/standalone_toolchain.jd b/docs/html-ndk/ndk/guides/standalone_toolchain.jd
new file mode 100644
index 0000000..f3777f3
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/standalone_toolchain.jd
@@ -0,0 +1,575 @@
+page.title=Standalone Toolchain
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#syt">Selecting Your Toolchain</a></li>
+        <li><a href="#sys">Selecting Your Sysroot</a></li>
+        <li><a href="#itc">Invoking the Compiler</a></li>
+        <li><a href="#wwc">Working with Clang</a></li>
+        <li><a href="#abi">ABI Compatibility</a></li>
+        <li><a href="#war">Warnings and Limitations</a></li>
+      </ol>
+    </div>
+  </div>
+
+<p>You can use the toolchains provided with the Android NDK independently, or as plug-ins
+with an existing IDE, such as Eclipse. This flexibility
+can be useful if you already have your own build system, and only need the ability to invoke the
+cross-compiler in order to add support to Android for it.</p>
+
+<p>A typical use case is invoking the configure script of an open-source library that expects a
+cross-compiler in the {@code CC} environment variable.</p>
+
+<p class="note"><strong>Note:</strong> This page assumes significant understanding of
+compiling, linking, and low-level architecture. In addition, the techniques it describes are
+unnecessary for most use cases. In most cases, we recommend that you forego using a standalone
+toolchain, and instead stick to the NDK build system.</p>
+
+<h2 id="syt">Selecting your Toolchain</h2>
+<p>Before anything else, you need to decide which processing architecture your standalone toolchain
+is going to target. Each architecture corresponds to a different toolchain name, as Table 1
+shows.</p>
+
+<p class="table-caption" id="table1">
+  <strong>Table 1.</strong> {@code APP_ABI} settings for different instruction sets.</p>
+<table>
+  <tr>
+    <th scope="col">Architecture</th>
+    <th scope="col">Toolchain name</th>
+  </tr>
+  <tr>
+    <td>ARM-based</td>
+    <td>{@code arm-linux-androideabi-&lt;gcc-version&gt;}</td>
+  </tr>
+  <tr>
+    <td>x86-based</td>
+    <td>{@code x86-&lt;gcc-version&gt;}</td>
+  </tr>
+  <tr>
+    <td>MIPS-based</td>
+    <td>{@code mipsel-linux-android-&lt;gcc-version&gt;}</td>
+  </tr>
+  <tr>
+    <td>ARM64-based</td>
+    <td>{@code aarch64-linux-android-&lt;gcc-version&gt;}</td>
+  </tr>
+  <tr>
+    <td>X86-64-based</td>
+    <td>{@code x86_64-&lt;gcc-version&gt;}</td>
+  </tr>
+  <tr>
+    <td>MIPS64-based</td>
+    <td>{@code mips64el-linux-android--&lt;gcc-version&gt;}</td>
+  </tr>
+</table>
+
+
+
+<h2 id="sys">Selecting your Sysroot</h2>
+<p>The next thing you need to do is define your <i>sysroot</i> (A sysroot is a directory containing
+the system headers and libraries for your target). To define the sysroot, you must must know the
+Android API level you want to target for native support; available native APIs vary by Android API
+level.</p>
+
+<p>Native APIs for the respective <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">
+Android API levels</a> reside under {@code $NDK/platforms/}; each API-level
+directory, in turn, contains subdirectories for the various CPUs and architectures. The
+following example shows how to define a <em>sysroot</em> for a build targeting Android 5.1
+(API level 22), for ARM architecture:</p>
+
+<pre class="no-pretty-print">
+SYSROOT=$NDK/platforms/android-22/arch-arm
+</pre>
+
+For more detail about the Android API levels and the respective native APIs they support, see
+<a href={docRoot}ndk/guides/stable_apis.html>Stable APIs</a>.
+
+<h2 id="itc">Invoking the Compiler</h2>
+
+<p>There are two ways to invoke the compiler. One method is simple, and leaves most of the lifting
+to the build system. The other is more advanced, but provides more flexibility.</p>
+
+<h3 id="sm">Simple method</h3>
+<p>The simplest way to build is by invoking the appropriate compiler directly from the command
+line, using the {@code --sysroot} option to indicate the location of the system files for the
+platform you're targeting. For example:</p>
+
+<pre class="no-pretty-print">
+export CC="$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/ \
+linux-x86/bin/arm-linux-androideabi-gcc-4.8 --sysroot=$SYSROOT"
+$CC -o foo.o -c foo.c
+</pre>
+
+<p>While this method is simple, it lacks in flexibility: It does not allow you to use any C++ STL
+(STLport, libc++, or the GNU libstdc++) with it. It also does not support exceptions or RTTI.</p>
+
+<p>For Clang, you need to perform an additional two steps:</p>
+<ul>
+<ol type="1">
+<li>Add the appropriate {@code -target} for the target architecture, as Table 2 shows.</li>
+
+<p class="table-caption" id="table2">
+  <strong>Table 2.</strong> Architectures and corresponding values for {@code -target}.</p>
+   <table>
+  <tr>
+    <th scope="col">Architecture</th>
+    <th scope="col">Value</th>
+  </tr>
+  <tr>
+    <td>armeabi-v7a</td>
+    <td>{@code -target armv7-none-linux-androideabi}</td>
+  </tr>
+  <tr>
+    <td>armeabi</td>
+    <td>{@code -target armv5te-none-linux-androideabi}</td>
+  </tr>
+    <tr>
+    <td>x86</td>
+    <td>{@code -target i686-none-linux-android}</td>
+  </tr>
+    <tr>
+    <td>MIPS</td>
+    <td>{@code -target mipsel-none-linux-android}</td>
+  </tr>
+</table>
+
+<li>Add assembler and linker support by adding the {@code -gcc-toolchain} option, as in the
+following example:</li>
+<pre class="no-pretty-print">
+-gcc-toolchain $NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
+</pre>
+</ol>
+
+Ultimately, a command to compile using Clang might look like this:
+
+<pre class="no-pretty-print">
+export CC="export CC="$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/ \
+linux-x86/bin/arm-linux-androideabi-gcc-4.8 --sysroot=$SYSROOT" -target \
+armv7-none-linux-androideabi \
+-gcc-toolchain $NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64"
+$CC -o foo.o -c foo.c
+</pre>
+</ul>
+
+<h3>Advanced method</h3>
+<p>The NDK provides the {@code make-standalone-toolchain.sh} shell script to allow you to perform a
+customized toolchain installation from the command line. This approach affords you more flexibility
+than the procedure described in <a href="#sm">Simple method</a>.</p>
+
+<p>The script is located in the {@code $NDK/build/tools/} directory, where {@code $NDK} is the
+installation root for the NDK. An example of the use of this script appears below:</p>
+
+<pre class="no-pretty-print">
+$NDK/build/tools/make-standalone-toolchain.sh \
+--arch=arm --platform=android-22 --install-dir=/tmp/my-android-toolchain
+</pre>
+
+<p>This command creates a directory named {@code /tmp/my-android-toolchain/}, containing a copy of
+the {@code android-22/arch-arm} sysroot, and of the toolchain binaries for a 32-bit ARM
+architecture.</p>
+
+<p>Note that the toolchain binaries do not depend on or contain host-specific paths, in other words,
+you can install them in any location, or even move them if you need to.</p>
+
+<p>By default, the build system uses the 32-bit, ARM-based GCC 4.8 toolchain. You can specify a
+different value, however, by specifying {@code --arch=&lt;toolchain&gt;} as an option.
+Table 3 shows the values to use for other toolchains:
+
+<p class="table-caption" id="table3">
+  <strong>Table 3.</strong> Toolchains and corresponding values, using {@code --arch}.</p>
+   <table>
+  <tr>
+    <th scope="col">Toolchain</th>
+    <th scope="col">Value</th>
+  </tr>
+  <tr>
+    <td>x86 GCC 4.8 compiler</td>
+    <td>{@code --arch=x86}</td>
+  </tr>
+  <tr>
+    <td>x86_64 GCC 4.8 compiler</td>
+    <td>{@code --arch=x86_64}</td>
+  </tr>
+  <tr>
+    <td>MIPS GCC 4.8 compiler</td>
+    <td>{@code --arch=mips}</td>
+  </tr>
+</table>
+
+<p>Alternatively, you can use the {@code --toolchain=&lt;toolchain&gt;} option. Table 4 shows the
+values you can specify for {@code &lt;toolchain&gt;}:</p>
+
+<p class="table-caption" id="table4">
+  <strong>Table 4.</strong> Toolchains and corresponding values, using {@code --toolchain}.</p>
+   <table>
+  <tr>
+    <th scope="col">Toolchain</th>
+    <th scope="col">Value</th>
+  </tr>
+
+  <tr>
+    <td>arm</td>
+    <td>
+       <li>{@code --toolchain=arm-linux-android-4.6}</li>
+       <li>{@code --toolchain=arm-linux-android-4.7}</li>
+       <li>{@code --toolchain=arm-linux-android-4.8}</li>
+       <li>{@code --toolchain=arm-linux-android-4.9}</li>
+       <li>{@code --toolchain=arm-linux-android-clang3.4}</li>
+       <li>{@code --toolchain=arm-linux-android-clang3.5}</li>
+    </td>
+  </tr>
+  <tr>
+    <td>x86</td>
+    <td>
+       <li>{@code --toolchain=x86-linux-android-4.6}</li>
+       <li>{@code --toolchain=x86-linux-android-4.7}</li>
+       <li>{@code --toolchain=x86-linux-android-4.8}</li>
+       <li>{@code --toolchain=x86-linux-android-4.9}</li>
+       <li>{@code --toolchain=x86-linux-android-clang3.4}</li>
+       <li>{@code --toolchain=x86-linux-android-clang3.5}</li>
+    </td>
+  </tr>
+  <tr>
+    <td>mips</td>
+    <td>
+       <li>{@code --toolchain=mips-linux-android-4.6}</li>
+       <li>{@code --toolchain=mips-linux-android-4.7}</li>
+       <li>{@code --toolchain=mips-linux-android-4.8}</li>
+       <li>{@code --toolchain=mips-linux-android-4.9}</li>
+       <li>{@code --toolchain=mips-linux-android-clang3.4}</li>
+       <li>{@code --toolchain=mips-linux-android-clang3.5}</li>
+    </td>
+  </tr>
+
+  <tr>
+    <td>arm64</td>
+    <td>
+       <li>{@code --toolchain=aarch64-linux-android-4.9}</li>
+       <li>{@code --toolchain=aarch64-linux-android-clang3.4}</li>
+       <li>{@code --toolchain=aarch64-linux-android-clang3.5}</li>
+    </td>
+  </tr>
+  <tr>
+    <td>x86_64</td>
+    <td>
+       <li>{@code --toolchain=x86_64-linux-android-4.9}</li>
+       <li>{@code --toolchain=x86_64-linux-android-clang3.4}</li>
+       <li>{@code --toolchain=x86_64-linux-android-clang3.5}</li>
+    </td>
+  </tr>
+  <tr>
+    <td>mips64</td>
+    <td>
+       <li>{@code --toolchain=mips64el-linux-android-4.9}</li>
+       <li>{@code --toolchain=mips64el-linux-android-clang3.4}</li>
+       <li>{@code --toolchain=mips64el-linux-android-clang3.5}</li>
+    </td>
+  </tr>
+</table>
+
+<p class="note"<strong>Note: </strong> Table 4 is not an exhaustive list. Other combinations may
+also be valid, but are unverified.</p>
+
+<p>You can also copy Clang/LLVM 3.3, using one of two methods: You can append {@code -clang3.3} to
+the {@code --toolchain} option, so that the {@code --toolchain} option looks like the following
+example:
+
+<pre class="no-pretty-print">
+--toolchain=arm-linux-androideabi-clang3.3
+</pre>
+
+<p>Alternatively, you can add {@code -llvm-version=3.3} as a separate option on the command
+line.</p>
+
+<p>By default, the build system builds for a 32-bit host toolchain. You can specify a 64-bit
+host toolchain instead. Table 5 shows the value to use with {@code -system} for different
+platforms.</p>
+
+<p class="table-caption" id="table5">
+  <strong>Table 5.</strong> Host toolchains and corresponding values, using {@code -system}.</p>
+   <table>
+  <tr>
+    <th scope="col">Host toolchain</th>
+    <th scope="col">Value</th>
+  </tr>
+  <tr>
+    <td>64-bit Linux</td>
+    <td>{@code -system=linux-x86_64}</td>
+  </tr>
+  <tr>
+    <td>64-bit MacOSX</td>
+    <td>{@code -system=darwin-x86_64}</td>
+  </tr>
+</table>
+
+For more information on specifying a 32- or 64-bit instruction host toolchain, see
+<a href="{@docRoot}/ndk/guides/ndk-build.html#6432">ndk-build</a>.
+
+<p>You may specify {@code stl=stlport} to copy {@code libstlport} instead of the default
+{@code libgnustl}. If you do so, and you wish to link against the shared library, you must
+explicitly use {@code -lstlport_shared}. This requirement is similar to having to use
+{@code -lgnustl_shared} for GNU {@code libstdc++}.</p>
+
+<p>Similarly, you can specify {@code -stl=libc++} to copy the LLVM libc++ headers and libraries.
+To link against the shared library, you must explicitly use -lc++_shared.</p>
+
+<p>You can make these settings directly, as in the following example:</p>
+
+<pre class="no-pretty-print">
+export PATH=/tmp/my-android-toolchain/bin:$PATH
+export CC=arm-linux-androideabi-gcc   # or export CC=clang
+export CXX=arm-linux-androideabi-g++  # or export CXX=clang++
+</pre>
+
+<p>Note that if you omit the {@code -install-dir} option, the {@code make-standalone-toolchain.sh}
+shell script creates a tarball in {@code tmp/ndk/&lt;toolchain-name&gt;.tar.bz2}. This tarball makes
+it easy to archive, as well as to redistribute the binaries.</p>
+
+<p>This standalone toolchain provides an additional benefit, as well, in that it contains a working
+copy of a C++ STL library, with working exceptions and RTTI support.</p>
+
+<p>For more options and details, use {@code --help}.</p>
+
+<h2>Working with Clang</h2>
+<p>You can install Clang binaries in the standalone installation by using the
+{@code --llvm-version=&lt;version&gt;} option. {@code &lt;version&gt;} is a LLVM/Clang version
+number, such as {@code 3.4} or {@code 3.5}. For example:
+
+<pre class="no-pretty-print">
+build/tools/make-standalone-toolchain.sh \
+--install-dir=/tmp/mydir \
+--toolchain=arm-linux-androideabi-4.7 \
+--llvm-version=3.5
+</pre>
+
+<p>Note that Clang binaries are copied along with the GCC ones, because they rely on the same
+assembler, linker, headers, libraries, and C++ STL implementation.</p>
+
+<p>This operation also installs two scripts, named {@code clang} and {@code clang++}, under
+{@code &lt;install-dir&gt;/bin/@}. These scripts invoke the real {@code clang} binary with default
+target architecture flags. In other words, they should work without any modification, and you should
+be able to use them in your own builds by just setting the {@code CC} and {@code CXX} environment
+variables to point to them.</p>
+
+<h4>Invoking Clang</h4>
+<p>In an ARM standalone installation built with {@code llvm-version=3.3}, invoking
+<a href="http://clang.llvm.org/">Clang</a> on a Unix system takes the form of a single line. For
+instance:</p>
+
+<pre class="no-pretty-print">
+dirname $0 /clang31 -target armv5te-none-linux-androideabi "$@"
+</pre>
+
+<p><code>clang++</code> invokes <code>clang++31</code> in the same way.</p>
+
+<h4>Clang targets with ARM</h4>
+
+<p>When building for ARM, Clang changes the target based on the presence of the
+{@code -march=armv7-a} and/or {@code -mthumb} options:</p>
+
+<p class="table-caption" id="table5">
+  <strong>Table 5.</strong> Specifiable {@code -march} values and their resulting targets.</p>
+   <table>
+  <tr>
+    <th scope="col">{@code -march} value</th>
+    <th scope="col">Resulting target</th>
+  </tr>
+  <tr>
+    <td>{@code -march=armv7-a}</td>
+    <td>{@code armv7-none-linux-androideabi}</td>
+  </tr>
+  <tr>
+    <td>{@code -mthumb}</td>
+    <td>{@code thumb-none-linux-androideabi}</td>
+  </tr>
+  <tr>
+    <td>Both {@code -march=armv7-a} and {@code -mthumb}</td>
+    <td>{@code thumbv7-none-linux-androideabi}</td>
+  </tr>
+</table>
+
+<p>You may also override with your own {@code -target} if you wish.</p>
+
+<p>The {@code -gcc-toolchain} option is unnecessary because, in a standalone package,
+Clang locates {@code as} and {@code ld} in a predefined relative location. <p>
+
+<p>{@code clang} and {@code clang++} should be easy drop-in replacements for {@code gcc} and
+{@code g++} in a makefile. When in doubt, add the following options to verify that they are
+working properly:</p>
+
+<ul>
+<li>{@code -v} to dump commands associated with compiler driver issues</li>
+<li>{@code -###} to dump command line options, including implicitly predefined ones.</li>
+<li>{@code -x c /dev/null -dM -E} to dump predefined preprocessor definitions</li>
+<li>{@code -save-temps} to compare {@code *.i} or {@code *.ii} preprocessed files.</li>
+</ul>
+
+<p>For more information about Clang, see
+<a href="http://clang.llvm.org/">http://clang.llvm.org/</a>, especially the GCC compatibility
+section.</p>
+
+
+<h2>ABI Compatibility</h2>
+<p>The machine code that the ARM toolchain generates should be compatible with the official Android
+<a href="{docRoot}/ndk/guides/cpu-arch-abis.html">armeabi ABI</a> by default.</p>
+
+<p>We recommend use of the {@code -mthumb} compiler flag to force the generation of 16-bit Thumb-1
+instructions (the default being 32-bit ARM instructions).</p>
+
+<p>If you want to target the armeabi-v7a ABI, you must set the following flags: </p>
+
+<pre class="no-pretty-print">
+CFLAGS= -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16
+</pre>
+
+<p>The first flag enables Thumb-2 instructions. The second flag enables hardware-FPU instructions
+while ensuring that the system passes floating-point parameters in core registers, which is critical
+for ABI compatibility.</p>
+
+<p class="note"><strong>Note: </strong>In versions of the NDK prior to r9b, do not use these flags
+separately. You must set all or none of them. Otherwise, unpredictable behavior and crashes may
+result.</p>
+
+<p>To use NEON instructions, you must change the {@code -mfpu} compiler flag:</p>
+
+<pre class="no-pretty-print">
+CFLAGS= -march=armv7-a -mfloat-abi=softfp -mfpu=neon
+</pre>
+
+<p>Note that this setting forces the use of {@code VFPv3-D32}, per the ARM specification.</p>
+
+<p>Also, make sure to provide the following two flags to the linker:</p>
+
+<pre class="no-pretty-print">
+LDFLAGS= -march=armv7-a -Wl,--fix-cortex-a8
+</pre>
+
+<p>The first flag instructs the linker to pick {@code libgcc.a}, {@code libgcov.a}, and
+{@code crt*.o}, which are tailored for armv7-a. The 2nd flag is required as a workaround for a CPU
+bug in some Cortex-A8 implementations.</p>
+
+<p>Since NDK version r9b, all Android native APIs taking or returning double or float values have
+{@code attribute((pcs("aapcs")))} for ARM. This makes it possible to compile user code in
+{@code -mhard-float} (which implies {@code -mfloat-abi=hard}), and still link with the Android
+native APIs that comply with the softfp ABI. For more information on this, see the comments in
+{@code $NDK/tests/device/hard-float/jni/Android.mk}.</p>
+
+<p>If you want to use NEON intrinsics on x86, the build system can translate them to the native x86
+SSE intrinsics using a special C/C++ language header with the same name, {@code arm_neon.h}, as the
+standard ARM NEON intrinsics header.</p>
+
+<p>By default, the x86 ABI supports SIMD up to SSSE3, and the header covers ~93% of (1869 of 2009)
+NEON functions.</p>
+
+<p>You don't have to use any specific compiler flag when targeting the MIPS ABI.</p>
+
+<p>To learn more about ABI support, see <a href="{@docRoot}/ndk/guides/x86.html">x86</a>.</p>
+
+<h2>Warnings and Limitations</h2>
+<h3>Windows support</h3>
+<p>The Windows binaries do not depend on Cygwin. This lack of dependency makes them faster. The
+cost, however, is that they do not understand Cygwin path specifications like
+{@code cygdrive/c/foo/bar}, as opposed to {@code C:/foo/bar}.</p>
+
+<p>The NDK build system ensures that all paths passed to the compiler from Cygwin are automatically
+translated, and manages other complexities, as well. If you have a custom build system,
+you may need to resolve these complexities yourself.</p>
+
+<p>For information on contributing to support for Cygwin/MSys, visit the android-ndk
+<a href="https://groups.google.com/forum/#!forum/android-ndk">forum</a>.</p>
+
+<h3>wchar_t support</h3>
+
+<p>The Android platform did not really support {@code wchar_t} until Android 2.3 (API level 9). This
+fact has several ramifications:</p>
+<ul>
+<li>If you target platform Android 2.3 or higher, the size of {@code wchar_t} is 4 bytes, and most
+{@code wide-char} functions are available in the C library (with the exception of multi-byte
+encoding/decoding functions and {@code wsprintf}/{@code wsscanf}).</li>
+
+<li>If you target any lower API level, the size of {@code wchar_t} is 1 byte, and none of the
+wide-char functions works.</li>
+</ul>
+
+<p>We recommend that you get rid of any dependencies on the {@code wchar_t} type, and switch to
+better representations. The support provided in Android is only there to help you migrate existing
+code.</p>
+
+<h3>Exceptions, RTTI, and STL</h3>
+<p>The toolchain binaries support C++ exceptions and RTTI by default. To disable C++ exceptions
+and RTTI when building sources (to generate lighter-weight machine code, for example), use
+{@code -fno-exceptions} and {@code -fno-rtti}.</p>
+
+<p>To use these features in conjunction with GNU libstdc++, you must explicitly link with libsupc++.
+To do so, use {@code -lsupc++} when linking binaries. For example:</p>
+
+<pre class="no-pretty-print">
+arm-linux-androideabi-g++ .... -lsupc++
+</pre>
+
+<p>You do not need to do this when using the STLport or libc++ library.</p>
+
+<h3>C++ STL support</h3>
+<p>The standalone toolchain includes a copy of a C++ Standard Template Library implementation. This
+implementation is either for GNU libstdc++, STLport, or libc++, depending on what you specify for the
+{@code -stl=&lt;name&gt;} option described previously. To use this implementation of STL, you need
+to link your project with the proper library:</p>
+
+<ul>
+<li>
+Use {@code -lstdc++} to link against the static library version of any implementation. Doing so
+ensures that all required C++ STL code is included into your final binary. This method is ideal if
+you are only generating a single shared library or executable.</p>
+
+<p>This is the method that we recommend.</p>
+</li>
+
+<li>Alternatively, use {@code -lgnustl_shared} to link against the shared library version of GNU
+{@code libstdc++}. If you use this option, you must also make sure to copy
+{@code libgnustl_shared.so} to your device in order for your code to load properly. Table 6 shows
+where this file is for each toolchain type.
+</li>
+
+<p class="note"><strong>Note: </strong>GNU libstdc++ is licensed under the GPLv3 license, with a
+linking exception. If you cannot comply with its requirements, you cannot redistribute the
+shared library in your project.</p>
+
+
+<li>Use {@code -lstlport_shared} to link against the shared library version of STLport. When you do
+so, you need to make sure that you also copy {@code libstlport_shared.so} to your device in order
+for your code to load properly. Table 6 shows where this file is for each toolchain:</li>
+
+<p class="table-caption" id="table6">
+  <strong>Table 6.</strong> Specifiable {@code -march} values and their resulting targets.</p>
+   <table>
+  <tr>
+    <th scope="col">Toolchain</th>
+    <th scope="col">Location</th>
+  </tr>
+  <tr>
+    <td>ARM</td>
+    <td>{@code $TOOLCHAIN/arm-linux-androideabi/lib/}</td>
+  </tr>
+  <tr>
+    <td>x86</td>
+    <td>{@code $TOOLCHAIN/i686-linux-android/lib/}</td>
+  </tr>
+  <tr>
+    <td>MIPS</td>
+    <td>{@code $TOOLCHAIN/mipsel-linux-android/lib/}</td>
+  </tr>
+</table>
+
+<p class="note"><strong>Note: </strong>If your project contains multiple shared libraries or
+executables, you must link against a shared-library STL implementation. Otherwise, the build
+system does not define certain global uniquely, which can result in unpredictable runtime behavior.
+This behavior may include crashes and failure to properly catch exceptions.</p>
+
+<p>The reason the shared version of the libraries is not simply called {@code libstdc++.so} is that
+this name would conflict at runtime with the system's own minimal C++ runtime. For this reason,
+the build system enforces a new name for the GNU ELF library. The static library does not have
+this problem.</p>
diff --git a/docs/html-ndk/ndk/guides/x86-64.jd b/docs/html-ndk/ndk/guides/x86-64.jd
new file mode 100644
index 0000000..22f3aaa
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/x86-64.jd
@@ -0,0 +1,52 @@
+page.title=Support for 64-bit x86
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#over">Overview</a></li>
+         <li><a href="#st">Standalone Toolchain</a></li>
+         <li><a href="#comp">Compatibilty</a></li>
+          </ol>
+        </li>
+      </ol>
+    </div>
+  </div>
+
+<p>The Android NDK supports the {@code x86_64} ABI. This ABI allows native code to run on
+Android-based devices using CPUs that support the 64-bit x86 instruction set.</p>
+
+<h2 id="over">Overview</h2>
+<p>To generate 64-bit machine code for x86, add {@code x86_64} to the {@code APP_ABI} definition in
+your {@code Application.mk} file. For example:
+
+<pre>
+APP_ABI := x86_64
+</pre>
+
+For more information on how to specify values for {@code APP_ABI}, see
+<a href="{@docRoot}ndk/guides/application_mk.html">Application.mk</a>.</p>
+
+<p>The build system places libraries generated for the {@code x86_64} ABI into
+{@code $PROJECT/libs/x86_64/} on your host machine, where {@code $PROJECT} is the root directory
+of your project. It also embeds them in your APK, under {@code /lib/x86_64/}.</p>
+
+<p>The Android package manager extracts these libraries when installing your APK on a compatible
+64-bit, x86-powered device, placing them under your app's private data directory.</p>
+
+<p>In the Google Play store, the server filters applications so that a consumer sees only the native
+libraries that run on the CPU powering his or her device.</p>
+
+<h2 id="st">Standalone Toolchain</h2>
+
+<p>It is possible to use the 64-bit x86 toolchain in standalone mode with the NDK. For more
+information about doing so, see <a href="{@docRoot}ndk/guides/standalone_toolchain.html">
+Standalone Toolchain</a>, under the "Advanced method" section.
+
+<h2 id="comp">Compatibility</h2>
+<p>The NDK provides native versions of Android APIs for 64-bit x86 machine code starting from
+Android 5.0 (Android API level 21). If your project files target an older API level, but include
+{@code x86_64} as a targeted platform, the NDK build script automatically selects the right set of
+native platform headers and libraries for you.</p>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/guides/x86.jd b/docs/html-ndk/ndk/guides/x86.jd
new file mode 100644
index 0000000..e112a56
--- /dev/null
+++ b/docs/html-ndk/ndk/guides/x86.jd
@@ -0,0 +1,215 @@
+page.title=x86 Support
+@jd:body
+
+<div id="qv-wrapper">
+    <div id="qv">
+      <h2>On this page</h2>
+
+      <ol>
+        <li><a href="#over">Overview</a></li>
+         <li><a href="#an">ARM NEON Intrinsics Support</a></li>
+         <li><a href="#st">Standalone Toolchain</a></li>
+         <li><a href="#comp">Compatibility</a></li>
+      </ol>
+        </li>
+      </ol>
+    </div>
+  </div>
+
+<p>The NDK includes support for the {@code x86} ABI, which allows native code to run on
+Android-based devices running on CPUs supporting the IA-32 instruction set.</p>
+
+<h2 id="over">Overview</h2>
+<p>To generate x86 machine code, add {@code x86} to the {@code APP_ABI} definition in your
+<a href="{@docRoot}ndk/guides/application_mk.html">{@code Application.mk}</a> file. For example:</p>
+
+<pre class="no-pretty-print">
+APP_ABI := armeabi armeabi-v7a x86
+</pre
+
+<p>For more information about defining the {@code APP_ABI} variable, see
+<a href="{docRoot}ndk/guides/application_mk.html">{@code Application.mk}</a>.</p>
+
+<p>The build system places generated libraries into {@code $PROJECT/libs/x86/}, where
+{@code $PROJECT} represents your project's root directory, and embeds them in your APK under
+{@code /lib/mips/}.</p>
+
+<p>The Android package extracts these libraries when installing your APK on a compatible x86-based
+device, placing them under your app's private data directory.</p>
+
+<p>In the Google Play store, the server filters applications so that a consumer sees only the native
+libraries that run on the CPU powering his or her device.</p>
+
+<h2 id="an">x86 Support for ARM NEON Intrinsics</h2>
+<p>Support for ARM NEON intrinsics is provided in the form of C/C++ language headers with the same
+name as the standard ARM NEON intrinsics header, {@code arm_neon.h}. These headers are available for
+all NDK x86 toolchains. They translate NEON intrinsics to native x86 SSE ones.</p>
+
+<p>Characteristics of this solution include the following:</p>
+<ul>
+<li>Default use of SSE through SSSE3 for porting ARM NEON to Intel SSE, covering ~93%
+(1869 of total 2009) of all NEON functions.</li>
+<li>Redefinition of ARM NEON 128 bit vectors into the equivalent x86 SIMD data.</li>
+<li>Redefinition of some functions from ARM NEON to Intel SSE if a 1:1 correspondence exists.</li>
+<li>Implementation of some ARM NEON functions using Intel SIMD if it will yield a performant result.
+</li>
+<li>Implementation of some of the remaining NEON functions using the serial solution, and issuing
+the corresponding "low performance" compiler warning.</li>
+</ul>
+
+
+<h3>Performance</h3>
+<p>In most cases, you should be able to attain performance similar to what you would get from ARM
+NEON code. Recommendations for best results include:</p>
+
+<ul>
+<li>Use 16-byte data alignment for faster load and store.</li>
+<li>Avoid using constants with NEON functions. Using constants results in a performance penalty due
+to having to load constants. If you must use constants, try to initialize them outside of hotspot
+loops. If possible, replace them with logical and compare operations.</li>
+<li>Try to avoid functions marked as "serially implemented" because they need to store data from
+registers to memory. Instead, process them serially and reload them. You may be able to change the
+data type or algorithm used to vectorize the whole port instead of leaving it as a serial one.</li>
+</ul>
+
+<p>For more information on this topic, see
+<a href="http://software.intel.com/en-us/blogs/2012/12/12/from-arm-neon-to-intel-mmxsse-automatic-porting-solution-tips-and-tricks">
+From ARM NEON to Intel SSE&ndash; the automatic porting solution, tips and tricks</a>.</p>
+
+<h3>Known differences from ARM version</h3>
+<p>In the great majority of cases, x86 implementations produce the same results as ARM
+implementations for NEON. x86 implementations pass
+<a href="https://gitorious.org/arm-neon-tests/arm-neon-tests">NEON tests</a> nearly 100% of the
+time. Still, there are several corner cases in which an x86 implementation produces results
+different from its ARM counterpart. Known incompatibilities are as follows:</p>
+
+<ul>
+<li>{@code VRECPS/VRECPSQ}<br/>
+  If one of the operands is +/- infinity and the second is +/- 0.0:
+  <ul>
+    <li>On ARM CPUs, these instructions
+    <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489h/CIHDIACI.html">
+    return a result element equal to 2.0</a>.</li>
+
+    <li>x86 CPUs return {@code QNaN Indefinite}. For more information about the QNaN floating-point
+    indefinite, see "4.2.2 Floating-Point Data Types" and "4.8.3.7 QNaN Floating-Point Indefinite,"
+    in the
+    <a href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf">Intel® 64 and IA-32 Architectures Software Developer’s Manual</a>.
+    </li>
+
+  </ul>
+</li>
+<li>{@code VRSQRTS/VRSQRTSQ}<br/>
+  If one of the operands is +/- infinity and the second is +/- 0.0:
+  <ul>
+    <li>On ARM CPUs, these instructions
+    <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489h/CIHDIACI.html">
+    return a result element equal to 1.5</a>.</li>
+
+    <li>x86 CPUs return {@code QNaN Indefinite}. For more information about the QNaN floating-point
+    indefinite, see "4.2.2 Floating-Point Data Types" and "4.8.3.7 QNaN Floating-Point Indefinite,"
+    in the
+    <a href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf">Intel® 64 and IA-32 Architectures Software Developer’s Manual</a>.
+    </li>
+  </ul>
+</li>
+
+<li>{@code VMAX/VMAXQ}<br/>
+  If one of the operands is NaN, or both operands are +/- 0.0:
+  <ul>
+    <li>On ARM CPUs, floating-point maximum works as follows:
+      <ul>
+        <li>max(+0.0, -0.0) = +0.0.</li>
+        <li>If any input is a NaN, the corresponding result element is the default NaN.</li>
+      </ul>
+      To learn more about this condition and result, see the
+      <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489h/CIHDEEBE.html">
+      ARM Compiler toolchain Assembler Reference</a>, ignoring the "Superseded" watermark.
+    </li>
+
+    <li>On x86 CPUs, floating-point maximum works as follows:
+      <ul>
+        <li>If one of the source operands is NaN, then return the second source operand.</li>
+        <li>If both source operands are equal to 0, then return the second source operand.</li>
+      </ul>
+      For more information about these conditions and results, see Volume 1 Appendix E chapter
+      E.4.2.3 and Volume 2, p 3-488, of the
+      <a href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf">Intel® 64 and IA-32 Architectures Software Developer’s
+      Manual</a>.
+    </li>
+  </ul>
+</li>
+
+<li>{@code VMIN/VMINQ}<br/>
+  If one of the operands is NaN or both are +/- 0.0:
+  <ul>
+    <li>On ARM CPUs floating-point minimum works as follows:
+      <ul>
+        <li>min(+0.0, -0.0) = -0.0.</li>
+        <li>If any input is a NaN, the corresponding result element is the default NaN.</li>
+      </ul>
+      To learn more about this condition and result, see the
+      <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489h/CIHDEEBE.html">
+      ARM Compiler toolchain Assembler Reference</a>, ignoring the "Superseded" watermark.
+    </li>
+    <li>On x86 CPUs floating-point minimum works as follows:
+      <ul>
+        <li>If one of the source operands is NaN, than return the second source operand.</li>
+        <li>If both source operands are equal to 0, than return the second source operand.</li>
+      </ul>
+      For more information about these conditions and results, see Volume 1 Appendix E chapter
+      E.4.2.3 and Volume 2, p 3-497, of the
+      <a href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf">Intel® 64 and IA-32 Architectures Software Developer’s
+      Manual</a>.
+    </li>
+  </ul>
+</li>
+
+<li>{@code VRECPE/VRECPEQ}<br/>
+  These instructions provide different levels of accuracy on ARM and x86 CPUs. For more information
+  about these differences, see
+  <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka14282.html">
+  How do I use VRECPE/VRECPEQ for reciprocal estimate?</a> on the ARM website, and Volume 2, p.
+  4-281 of the
+  <a href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf">Intel® 64 and IA-32 Architectures Software Developer’s Manual</a>.
+</li>
+
+<li>{@code VRSQRTE/VRSQRTEQ}<br/>
+  <ul>
+    <li>These instructions provide different levels of accuracy on ARM and x86 CPUs. For more
+    information about these differences, see the
+    <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204h/CIHCHECJ.html">
+    RealView Compilation Tools Assembler Guide</a>, and Volume 2, p. 4-325 of the
+    <a href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf">Intel® 64 and IA-32 Architectures Software Developer’s Manual</a>.
+    </li>
+
+    <li>If one of the operands is negative or -infinity then
+      <ul>
+        <li>On ARM CPUs, these instructions by default return a (positive) NaN. For more information
+        about this result, see the
+        <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489i/CIHIICBB.html">
+        ARM Compiler toolchain Assembler Reference</a>.</li>
+        <li>On x86 CPUs, these instructions return a (negative) QNaN floating-point Indefinite. For
+        more information about this result, see Volume 1, Appendix E, E.4.2.3, of the
+      <a href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf">Intel® 64 and IA-32 Architectures Software Developer’s
+      Manual</a>.</li>
+      </ul>
+    </li>
+  </ul>
+</li>
+</ul>
+
+<h3>Sample code</h3>
+<p>In your project make sure to include the {@code arm_neon.h} header, and define include
+{@code x86} in your definition of {@code APP_ABI}. The build system then ports your code to x86.</p>
+
+<p>For an example of how porting ARM NEON to x86 SSE works, see the hello-neon sample.</p>
+
+<h2 id="st">Standalone Toolchain</h2>
+<p>You can incorporate the {@code x86} ABI into your own toolchain. For more information, see
+<a href="{@docRoot}ndk/guides/standalone_toolchain.html">Standalone Toolchain</a>.</p>
+
+<h2 id="comp">Compatibility</h2>
+<p>x86 support requires, at minimum, Android 2.3 (Android API level 9). If your project files
+target an older API level, but include x86 as a targeted platform, the NDK build script
+automatically selects the right set of native platform headers/libraries for you.</p>
\ No newline at end of file
diff --git a/docs/html-ndk/ndk/reference/annotated.jd b/docs/html-ndk/ndk/reference/annotated.jd
new file mode 100644
index 0000000..7a0e09a
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/annotated.jd
@@ -0,0 +1,33 @@
+page.title=Data Structures
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structures</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_a_heart_rate_event.html" target="_self">AHeartRateEvent</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_a_meta_data_event.html" target="_self">AMetaDataEvent</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_a_native_activity.html" target="_self">ANativeActivity</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_a_native_activity_callbacks.html" target="_self">ANativeActivityCallbacks</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_a_native_window___buffer.html" target="_self">ANativeWindow_Buffer</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_android_bitmap_info.html" target="_self">AndroidBitmapInfo</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_a_rect.html" target="_self">ARect</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_a_sensor_event.html" target="_self">ASensorEvent</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_a_sensor_vector.html" target="_self">ASensorVector</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="struct_a_uncalibrated_event.html" target="_self">AUncalibratedEvent</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/asset__manager_8h.jd b/docs/html-ndk/ndk/reference/asset__manager_8h.jd
new file mode 100644
index 0000000..140af54
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/asset__manager_8h.jd
@@ -0,0 +1,83 @@
+page.title=asset_manager.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">asset_manager.h File Reference<div class="ingroups"><a class="el" href="group___asset.html">Asset</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga90c459935e76acf809b9ec90d1872771"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a></td></tr>
+<tr class="separator:ga90c459935e76acf809b9ec90d1872771"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga001a6b9c36a06ee977b9f51ed7103cdb"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a></td></tr>
+<tr class="separator:ga001a6b9c36a06ee977b9f51ed7103cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5630b1f1aa5cd363303018cb2f12f95c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a></td></tr>
+<tr class="separator:ga5630b1f1aa5cd363303018cb2f12f95c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba5bf76576f07042f965f230086f7c09f4">AASSET_MODE_UNKNOWN</a> = 0, 
+<a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba88e1b2a920963d7596735fe28bf30e2f">AASSET_MODE_RANDOM</a> = 1, 
+<a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55bac76f5fdb953097efc04e534474a7ea74">AASSET_MODE_STREAMING</a> = 2, 
+<a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba40ec098f4afb7c2869fa449d3059f6bb">AASSET_MODE_BUFFER</a> = 3
+ }</td></tr>
+<tr class="separator:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gab5b57ff012d6d1024d8bf5d30aedced4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gab5b57ff012d6d1024d8bf5d30aedced4">AAssetManager_openDir</a> (<a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *mgr, const char *dirName)</td></tr>
+<tr class="separator:gab5b57ff012d6d1024d8bf5d30aedced4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0037ce3c10a591fe632f34c1aa62955c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga0037ce3c10a591fe632f34c1aa62955c">AAssetManager_open</a> (<a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *mgr, const char *filename, int mode)</td></tr>
+<tr class="separator:ga0037ce3c10a591fe632f34c1aa62955c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4703b9f7baa3daeba248b6547de6b9b0"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga4703b9f7baa3daeba248b6547de6b9b0">AAssetDir_getNextFileName</a> (<a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> *assetDir)</td></tr>
+<tr class="separator:ga4703b9f7baa3daeba248b6547de6b9b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45db6d19ad5e1c0f9b2e6b4059da14b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga45db6d19ad5e1c0f9b2e6b4059da14b3">AAssetDir_rewind</a> (<a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> *assetDir)</td></tr>
+<tr class="separator:ga45db6d19ad5e1c0f9b2e6b4059da14b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gace1c4d0da274d643c5b10ca218cc6088"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gace1c4d0da274d643c5b10ca218cc6088">AAssetDir_close</a> (<a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> *assetDir)</td></tr>
+<tr class="separator:gace1c4d0da274d643c5b10ca218cc6088"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaadd86322c1fda5121b6d33745c317fb9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gaadd86322c1fda5121b6d33745c317fb9">AAsset_read</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset, void *buf, size_t count)</td></tr>
+<tr class="separator:gaadd86322c1fda5121b6d33745c317fb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacc026a8bedeb1ef80bf12df3b72611a2"><td class="memItemLeft" align="right" valign="top">off_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gacc026a8bedeb1ef80bf12df3b72611a2">AAsset_seek</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset, off_t offset, int whence)</td></tr>
+<tr class="separator:gacc026a8bedeb1ef80bf12df3b72611a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga81fbe4368de24a3296ef7a6eba0053c7"><td class="memItemLeft" align="right" valign="top">off64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga81fbe4368de24a3296ef7a6eba0053c7">AAsset_seek64</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset, off64_t offset, int whence)</td></tr>
+<tr class="separator:ga81fbe4368de24a3296ef7a6eba0053c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f241e49f691dafcada23bcb76155122"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga1f241e49f691dafcada23bcb76155122">AAsset_close</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:ga1f241e49f691dafcada23bcb76155122"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga553a14512a98542306238c3ce70d344f"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga553a14512a98542306238c3ce70d344f">AAsset_getBuffer</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:ga553a14512a98542306238c3ce70d344f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaad8ec42e28522ebc72d3a5c357f9a600"><td class="memItemLeft" align="right" valign="top">off_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gaad8ec42e28522ebc72d3a5c357f9a600">AAsset_getLength</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:gaad8ec42e28522ebc72d3a5c357f9a600"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga55c8bc459327d5d23089e6a4b453f3f1"><td class="memItemLeft" align="right" valign="top">off64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga55c8bc459327d5d23089e6a4b453f3f1">AAsset_getLength64</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:ga55c8bc459327d5d23089e6a4b453f3f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae806f55cbc4a93ca245f2adfd63d3eee"><td class="memItemLeft" align="right" valign="top">off_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gae806f55cbc4a93ca245f2adfd63d3eee">AAsset_getRemainingLength</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:gae806f55cbc4a93ca245f2adfd63d3eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21e7221d88dcc44106843192b66755b5"><td class="memItemLeft" align="right" valign="top">off64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga21e7221d88dcc44106843192b66755b5">AAsset_getRemainingLength64</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:ga21e7221d88dcc44106843192b66755b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1af4ffd050016e99961e24f550981677"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga1af4ffd050016e99961e24f550981677">AAsset_openFileDescriptor</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset, off_t *outStart, off_t *outLength)</td></tr>
+<tr class="separator:ga1af4ffd050016e99961e24f550981677"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga123a44a575f85d91a00a8456dab7bd0a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga123a44a575f85d91a00a8456dab7bd0a">AAsset_openFileDescriptor64</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset, off64_t *outStart, off64_t *outLength)</td></tr>
+<tr class="separator:ga123a44a575f85d91a00a8456dab7bd0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20344cb952a77fa1004f592fb1b55124"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga20344cb952a77fa1004f592fb1b55124">AAsset_isAllocated</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:ga20344cb952a77fa1004f592fb1b55124"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/asset__manager__jni_8h.jd b/docs/html-ndk/ndk/reference/asset__manager__jni_8h.jd
new file mode 100644
index 0000000..20fb48d
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/asset__manager__jni_8h.jd
@@ -0,0 +1,33 @@
+page.title=asset_manager_jni.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">asset_manager_jni.h File Reference<div class="ingroups"><a class="el" href="group___asset.html">Asset</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="asset__manager_8h.html">android/asset_manager.h</a>&gt;</code><br/>
+<code>#include &lt;jni.h&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gadfd6537af41577735bcaee52120127f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gadfd6537af41577735bcaee52120127f4">AAssetManager_fromJava</a> (JNIEnv *env, jobject assetManager)</td></tr>
+<tr class="separator:gadfd6537af41577735bcaee52120127f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/bc_s.png b/docs/html-ndk/ndk/reference/bc_s.png
new file mode 100644
index 0000000..fd162ea
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/bc_s.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/bdwn.png b/docs/html-ndk/ndk/reference/bdwn.png
new file mode 100644
index 0000000..7c943f0
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/bdwn.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/bitmap_8h.jd b/docs/html-ndk/ndk/reference/bitmap_8h.jd
new file mode 100644
index 0000000..b2f999e
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/bitmap_8h.jd
@@ -0,0 +1,69 @@
+page.title=bitmap.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">bitmap.h File Reference<div class="ingroups"><a class="el" href="group___bitmap.html">Bitmap</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br/>
+<code>#include &lt;jni.h&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_android_bitmap_info.html">AndroidBitmapInfo</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:gafb665ac9fefad34ac5c035f5d1314080"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___bitmap.html#gafb665ac9fefad34ac5c035f5d1314080">ANDROID_BITMAP_RESUT_SUCCESS</a>&#160;&#160;&#160;<a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a07f71cf5c5d4950ac9813ae4bbf6d076">ANDROID_BITMAP_RESULT_SUCCESS</a></td></tr>
+<tr class="separator:gafb665ac9fefad34ac5c035f5d1314080"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gadf764cbdea00d65edcd07bb9953ad2b7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a07f71cf5c5d4950ac9813ae4bbf6d076">ANDROID_BITMAP_RESULT_SUCCESS</a> = 0, 
+<a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7acf7205d1a348d867c63ac2885ce01374">ANDROID_BITMAP_RESULT_BAD_PARAMETER</a> = -1, 
+<a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a6b099b9533c38729a6c305f2fe93f98d">ANDROID_BITMAP_RESULT_JNI_EXCEPTION</a> = -2, 
+<a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a512f5b95b6b57e78d65502c06391f990">ANDROID_BITMAP_RESULT_ALLOCATION_FAILED</a> = -3
+ }</td></tr>
+<tr class="separator:gadf764cbdea00d65edcd07bb9953ad2b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea286a2d4c61ae2abb02b51500499f13"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___bitmap.html#gaea286a2d4c61ae2abb02b51500499f13">AndroidBitmapFormat</a> { <br/>
+&#160;&#160;<a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ac6f0378ea5cfefd9abee2596af5a9021">ANDROID_BITMAP_FORMAT_NONE</a> = 0, 
+<a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ab92ae96ceea06aa534583beadba84057">ANDROID_BITMAP_FORMAT_RGBA_8888</a> = 1, 
+<a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13a11b32e10d6db28fae70ec3590cb9ee91">ANDROID_BITMAP_FORMAT_RGB_565</a> = 4, 
+<a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13adc2ede06eafe20439271cb8137dc7528">ANDROID_BITMAP_FORMAT_RGBA_4444</a> = 7, 
+<br/>
+&#160;&#160;<a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ad29996be25f8f88c96e016a1da5c4bca">ANDROID_BITMAP_FORMAT_A_8</a> = 8
+<br/>
+ }</td></tr>
+<tr class="separator:gaea286a2d4c61ae2abb02b51500499f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga80292ee39d8a675928e38849742b54bf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___bitmap.html#ga80292ee39d8a675928e38849742b54bf">AndroidBitmap_getInfo</a> (JNIEnv *env, jobject jbitmap, <a class="el" href="struct_android_bitmap_info.html">AndroidBitmapInfo</a> *info)</td></tr>
+<tr class="separator:ga80292ee39d8a675928e38849742b54bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2908d42fa4db286c34b7f8c11f29206f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___bitmap.html#ga2908d42fa4db286c34b7f8c11f29206f">AndroidBitmap_lockPixels</a> (JNIEnv *env, jobject jbitmap, void **addrPtr)</td></tr>
+<tr class="separator:ga2908d42fa4db286c34b7f8c11f29206f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4aca91f37baddd42d0051dca8179d4ed"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___bitmap.html#ga4aca91f37baddd42d0051dca8179d4ed">AndroidBitmap_unlockPixels</a> (JNIEnv *env, jobject jbitmap)</td></tr>
+<tr class="separator:ga4aca91f37baddd42d0051dca8179d4ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/classes.jd b/docs/html-ndk/ndk/reference/classes.jd
new file mode 100644
index 0000000..3e97e5e
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/classes.jd
@@ -0,0 +1,28 @@
+page.title=Data Structure Index
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structure Index</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_A">A</a></div>
+<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;A&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="struct_a_meta_data_event.html">AMetaDataEvent</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_a_native_window___buffer.html">ANativeWindow_Buffer</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_a_sensor_event.html">ASensorEvent</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="struct_a_native_activity.html">ANativeActivity</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_android_bitmap_info.html">AndroidBitmapInfo</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_a_sensor_vector.html">ASensorVector</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="struct_a_heart_rate_event.html">AHeartRateEvent</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_a_native_activity_callbacks.html">ANativeActivityCallbacks</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_a_rect.html">ARect</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_a_uncalibrated_event.html">AUncalibratedEvent</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a></div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/closed.png b/docs/html-ndk/ndk/reference/closed.png
new file mode 100644
index 0000000..e4e2b25
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/closed.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/configuration_8h.jd b/docs/html-ndk/ndk/reference/configuration_8h.jd
new file mode 100644
index 0000000..3edcb8a
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/configuration_8h.jd
@@ -0,0 +1,230 @@
+page.title=configuration.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">configuration.h File Reference<div class="ingroups"><a class="el" href="group___configuration.html">Configuration</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="asset__manager_8h.html">android/asset_manager.h</a>&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga6709434d0f99b8367d0df2dfdfbef45a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a></td></tr>
+<tr class="separator:ga6709434d0f99b8367d0df2dfdfbef45a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga99fb83031ce9923c84392b4e92f956b5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af44cee3290a23999b0358c5638747a5f">ACONFIGURATION_ORIENTATION_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad9bf5c1fb90f9fdb20f984d0574592fe">ACONFIGURATION_ORIENTATION_PORT</a> = 0x0001, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad5746872ff6871379fca93c60bfac8a3">ACONFIGURATION_ORIENTATION_LAND</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ab0ca4fce673baf58447bfeb154d9a03f">ACONFIGURATION_ORIENTATION_SQUARE</a> = 0x0003, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aa73bcf45261366840fea743372682fa6">ACONFIGURATION_TOUCHSCREEN_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5adfbeb370edd3b4372c9b0f86f152dde0">ACONFIGURATION_TOUCHSCREEN_NOTOUCH</a> = 0x0001, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a8316a15b06353f883f2aef8bd194f79f">ACONFIGURATION_TOUCHSCREEN_STYLUS</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4bf2a8323ec6d072aa48d5fc2cff645e">ACONFIGURATION_TOUCHSCREEN_FINGER</a> = 0x0003, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae628b2bf594733b7c19ae394616cec6c">ACONFIGURATION_DENSITY_DEFAULT</a> = 0, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a01ddb34b2376422d2323720049eb57f3">ACONFIGURATION_DENSITY_LOW</a> = 120, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a2511479d7cd574c4b293d535e4dc337e">ACONFIGURATION_DENSITY_MEDIUM</a> = 160, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a10e6c3d636f3f6de75de9208913b0d8f">ACONFIGURATION_DENSITY_TV</a> = 213, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5ef4a97dc058235cdfa9fcfe3300c7eb">ACONFIGURATION_DENSITY_HIGH</a> = 240, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a38a03b3b1c64725679605d8d479c85a0">ACONFIGURATION_DENSITY_XHIGH</a> = 320, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad6353daf63778a6ec6f2bd3815d7e6e4">ACONFIGURATION_DENSITY_XXHIGH</a> = 480, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a2bd04af33e868a77bd4d83e7d70368ec">ACONFIGURATION_DENSITY_XXXHIGH</a> = 640, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a966a3855351a97ae865264afd74c1534">ACONFIGURATION_DENSITY_ANY</a> = 0xfffe, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a7c1af92914155c418b99844c6aab33d7">ACONFIGURATION_DENSITY_NONE</a> = 0xffff, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a593f722738682ae4500dab6427670f4a">ACONFIGURATION_KEYBOARD_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a40195a1a2d8e21c74d99606d8a1a9918">ACONFIGURATION_KEYBOARD_NOKEYS</a> = 0x0001, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a263ff8efb4d2c757e557adc0d0cdeedf">ACONFIGURATION_KEYBOARD_QWERTY</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1aaf1a887f146737030cce95c53066ea">ACONFIGURATION_KEYBOARD_12KEY</a> = 0x0003, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a90e914b60d28c081b313f4b7b6600f47">ACONFIGURATION_NAVIGATION_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a3d95e899305aeae366fb7f8d8b6c290a">ACONFIGURATION_NAVIGATION_NONAV</a> = 0x0001, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ace2e3ed21322100712992ca09f4b75b5">ACONFIGURATION_NAVIGATION_DPAD</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad2807d00cb2f5dcb9f456045dd8443a4">ACONFIGURATION_NAVIGATION_TRACKBALL</a> = 0x0003, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a80b53370f65ad283a4fd025f36422bea">ACONFIGURATION_NAVIGATION_WHEEL</a> = 0x0004, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a34d3a830bc2964000052f8486fd76b0c">ACONFIGURATION_KEYSHIDDEN_ANY</a> = 0x0000, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5abfbfc3a10affed059263555b00429ab2">ACONFIGURATION_KEYSHIDDEN_NO</a> = 0x0001, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5e6a5a3f4175644886bde7d0ed4b1ebf">ACONFIGURATION_KEYSHIDDEN_YES</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1a56b72c730e40f22f3b8727e54c376c">ACONFIGURATION_KEYSHIDDEN_SOFT</a> = 0x0003, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a6db7dd6a67196df88117dcdc904e0cb3">ACONFIGURATION_NAVHIDDEN_ANY</a> = 0x0000, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae6ff9883e3e89f8d9ea5c0ebe077c9c5">ACONFIGURATION_NAVHIDDEN_NO</a> = 0x0001, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a79b3a5fe10e948bb79db47b516d46cf5">ACONFIGURATION_NAVHIDDEN_YES</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a9abcd34a6c549e048fc75a545081584e">ACONFIGURATION_SCREENSIZE_ANY</a> = 0x00, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1163af972206a65a5d18bda12fdc511c">ACONFIGURATION_SCREENSIZE_SMALL</a> = 0x01, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a019727e684f25ba921f3479abd62b9f2">ACONFIGURATION_SCREENSIZE_NORMAL</a> = 0x02, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af871d177fdceedb75612cfc1281d2c12">ACONFIGURATION_SCREENSIZE_LARGE</a> = 0x03, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a0ca385ed504fc92f6ff3f0857e916c9c">ACONFIGURATION_SCREENSIZE_XLARGE</a> = 0x04, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a41e55e57da42fd09c378f59c1a63710f">ACONFIGURATION_SCREENLONG_ANY</a> = 0x00, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a428bb8fcd8bc731b67b0773dc62781c5">ACONFIGURATION_SCREENLONG_NO</a> = 0x1, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a91fc014d328507568d225d691b3babfd">ACONFIGURATION_SCREENLONG_YES</a> = 0x2, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a10d0916da7fa88c945a9cda259407d4c">ACONFIGURATION_UI_MODE_TYPE_ANY</a> = 0x00, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae7efe2713b6718311da76c828b5b444e">ACONFIGURATION_UI_MODE_TYPE_NORMAL</a> = 0x01, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae10bb854f461f60cf399852f8f327077">ACONFIGURATION_UI_MODE_TYPE_DESK</a> = 0x02, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5d6575185e41d909469a1dcf5f81bf4f">ACONFIGURATION_UI_MODE_TYPE_CAR</a> = 0x03, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4738dded616f028fbbedcbad764e7969">ACONFIGURATION_UI_MODE_TYPE_TELEVISION</a> = 0x04, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad99004a7a1b2a97d29b639664947f8e3">ACONFIGURATION_UI_MODE_TYPE_APPLIANCE</a> = 0x05, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ac8c3e2207f2356bc6a1dffc6a615d131">ACONFIGURATION_UI_MODE_TYPE_WATCH</a> = 0x06, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a975087bbd4087b57a68ef3cdbfeb77a1">ACONFIGURATION_UI_MODE_NIGHT_ANY</a> = 0x00, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a90ebe564e3a3e384d5b013100f81e4b7">ACONFIGURATION_UI_MODE_NIGHT_NO</a> = 0x1, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a437af4527fac5407de256ec1ef055046">ACONFIGURATION_UI_MODE_NIGHT_YES</a> = 0x2, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aad653f0c960112177fdc387a4a0577fa">ACONFIGURATION_SCREEN_WIDTH_DP_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ab66ad42d0cf72fd7e8cd99b92b625432">ACONFIGURATION_SCREEN_HEIGHT_DP_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a227120217d8b6a9d5add3ccc4b283702">ACONFIGURATION_SMALLEST_SCREEN_WIDTH_DP_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4687ede31c438dd9f2701cab88de1dbe">ACONFIGURATION_LAYOUTDIR_ANY</a> = 0x00, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a05242d8f2d254b43ff9414ff1aa38a83">ACONFIGURATION_LAYOUTDIR_LTR</a> = 0x01, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af98332983b787ab9355b527079636870">ACONFIGURATION_LAYOUTDIR_RTL</a> = 0x02, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4d40f2aef365c78a52f699b89439db28">ACONFIGURATION_MCC</a> = 0x0001, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ade91a319638eede201579d15f86578a5">ACONFIGURATION_MNC</a> = 0x0002, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a01ecff796bd0690a9a8498c7de03e9b4">ACONFIGURATION_LOCALE</a> = 0x0004, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a255cfb57ac18d460c5614565a84f5561">ACONFIGURATION_TOUCHSCREEN</a> = 0x0008, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a0195de2a57f028a8171c42beff0b0e88">ACONFIGURATION_KEYBOARD</a> = 0x0010, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a54e71234e32ed037e2d47472f80eb416">ACONFIGURATION_KEYBOARD_HIDDEN</a> = 0x0020, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a65e9d31615d2b4adf3738d9a12a1556b">ACONFIGURATION_NAVIGATION</a> = 0x0040, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a591461d864136d482fe06e01fd945786">ACONFIGURATION_ORIENTATION</a> = 0x0080, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ace87b4f25e5fd6fe0f3316d21ecc66a1">ACONFIGURATION_DENSITY</a> = 0x0100, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a76ca1eb0e9346d93da592afbbf9a3b72">ACONFIGURATION_SCREEN_SIZE</a> = 0x0200, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1be62e4fc31cf3d3102c99f7c6b4c71b">ACONFIGURATION_VERSION</a> = 0x0400, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a12d69ffef9135c1c55e1b8b5c2589e7c">ACONFIGURATION_SCREEN_LAYOUT</a> = 0x0800, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a43a324af59372efd08b34431825cf67e">ACONFIGURATION_UI_MODE</a> = 0x1000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5acce415252e0ad95117a05bbe910f06de">ACONFIGURATION_SMALLEST_SCREEN_SIZE</a> = 0x2000, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a65834be1230d1694e5ce8a6f407acab2">ACONFIGURATION_LAYOUTDIR</a> = 0x4000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aa6cda2f222580dbef27f1277d967d58c">ACONFIGURATION_MNC_ZERO</a> = 0xffff
+<br/>
+ }</td></tr>
+<tr class="separator:ga99fb83031ce9923c84392b4e92f956b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9543655922980466eb05c7be94a0a567"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga9543655922980466eb05c7be94a0a567">AConfiguration_new</a> ()</td></tr>
+<tr class="separator:ga9543655922980466eb05c7be94a0a567"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga60fe264b97da84d3370eb9e220159e6d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga60fe264b97da84d3370eb9e220159e6d">AConfiguration_delete</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga60fe264b97da84d3370eb9e220159e6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga75e061fd0b4f761e08e43af36508c4f3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga75e061fd0b4f761e08e43af36508c4f3">AConfiguration_fromAssetManager</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *out, <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *am)</td></tr>
+<tr class="separator:ga75e061fd0b4f761e08e43af36508c4f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabff04218a0a76afb8d3ea551b001565"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaabff04218a0a76afb8d3ea551b001565">AConfiguration_copy</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *dest, <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *src)</td></tr>
+<tr class="separator:gaabff04218a0a76afb8d3ea551b001565"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1e78004237a931086d2ae4bd8324bd30"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga1e78004237a931086d2ae4bd8324bd30">AConfiguration_getMcc</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga1e78004237a931086d2ae4bd8324bd30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae6198b4eaf3e34168f4b13b8b5975d93"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gae6198b4eaf3e34168f4b13b8b5975d93">AConfiguration_setMcc</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t mcc)</td></tr>
+<tr class="separator:gae6198b4eaf3e34168f4b13b8b5975d93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4783776a4fad4501898472375d781fb9"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga4783776a4fad4501898472375d781fb9">AConfiguration_getMnc</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga4783776a4fad4501898472375d781fb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf060ef69c3636f62e90ae0b520eecb8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaaf060ef69c3636f62e90ae0b520eecb8">AConfiguration_setMnc</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t mnc)</td></tr>
+<tr class="separator:gaaf060ef69c3636f62e90ae0b520eecb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b004c13448704afb0ea2040d69468c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga7b004c13448704afb0ea2040d69468c1">AConfiguration_getLanguage</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, char *outLanguage)</td></tr>
+<tr class="separator:ga7b004c13448704afb0ea2040d69468c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f3c6cf6667655f83777acda7387ddff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga1f3c6cf6667655f83777acda7387ddff">AConfiguration_setLanguage</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, const char *language)</td></tr>
+<tr class="separator:ga1f3c6cf6667655f83777acda7387ddff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2b47f787012a82a67a20e5de5211d46"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gad2b47f787012a82a67a20e5de5211d46">AConfiguration_getCountry</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, char *outCountry)</td></tr>
+<tr class="separator:gad2b47f787012a82a67a20e5de5211d46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac2f5d414a6466634b1639b5c6f8879ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gac2f5d414a6466634b1639b5c6f8879ac">AConfiguration_setCountry</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, const char *country)</td></tr>
+<tr class="separator:gac2f5d414a6466634b1639b5c6f8879ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7d8e3e9871dc925fef3e342a92e4e22"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaa7d8e3e9871dc925fef3e342a92e4e22">AConfiguration_getOrientation</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gaa7d8e3e9871dc925fef3e342a92e4e22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadcaa8540bad4172a74032143bcaade04"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gadcaa8540bad4172a74032143bcaade04">AConfiguration_setOrientation</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t orientation)</td></tr>
+<tr class="separator:gadcaa8540bad4172a74032143bcaade04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad305e6cf86fa915c24212e71bb2bf027"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gad305e6cf86fa915c24212e71bb2bf027">AConfiguration_getTouchscreen</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gad305e6cf86fa915c24212e71bb2bf027"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0d51dbe710c1afe31ece4dd6a8c188ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga0d51dbe710c1afe31ece4dd6a8c188ff">AConfiguration_setTouchscreen</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t touchscreen)</td></tr>
+<tr class="separator:ga0d51dbe710c1afe31ece4dd6a8c188ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4c994e0555947340582094c3da32a663"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga4c994e0555947340582094c3da32a663">AConfiguration_getDensity</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga4c994e0555947340582094c3da32a663"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9217af9858a7166dcb9a877192779eac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga9217af9858a7166dcb9a877192779eac">AConfiguration_setDensity</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t density)</td></tr>
+<tr class="separator:ga9217af9858a7166dcb9a877192779eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd0f76ccd4fe4bda5172b8e0bc6675e4"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gafd0f76ccd4fe4bda5172b8e0bc6675e4">AConfiguration_getKeyboard</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gafd0f76ccd4fe4bda5172b8e0bc6675e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4ab3429c5505c108c09349f1ddef572f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga4ab3429c5505c108c09349f1ddef572f">AConfiguration_setKeyboard</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t keyboard)</td></tr>
+<tr class="separator:ga4ab3429c5505c108c09349f1ddef572f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3ff1541b63f5b9256f7c0ebae372977"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gae3ff1541b63f5b9256f7c0ebae372977">AConfiguration_getNavigation</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gae3ff1541b63f5b9256f7c0ebae372977"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad21dd14fb823a6a80b66132a05ce8913"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gad21dd14fb823a6a80b66132a05ce8913">AConfiguration_setNavigation</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t navigation)</td></tr>
+<tr class="separator:gad21dd14fb823a6a80b66132a05ce8913"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a8317ab975f621f3fe62ed1b44f2605"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga7a8317ab975f621f3fe62ed1b44f2605">AConfiguration_getKeysHidden</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga7a8317ab975f621f3fe62ed1b44f2605"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5a80a02aa10cfa17de0795054e927183"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga5a80a02aa10cfa17de0795054e927183">AConfiguration_setKeysHidden</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t keysHidden)</td></tr>
+<tr class="separator:ga5a80a02aa10cfa17de0795054e927183"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe8d3a9c2f715ea76c8e4a99c2db9eaa"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gafe8d3a9c2f715ea76c8e4a99c2db9eaa">AConfiguration_getNavHidden</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gafe8d3a9c2f715ea76c8e4a99c2db9eaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga67e86e0347596421771af841710308d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga67e86e0347596421771af841710308d5">AConfiguration_setNavHidden</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t navHidden)</td></tr>
+<tr class="separator:ga67e86e0347596421771af841710308d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4aa7062198e5aacd9fabb04d0453dd91"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga4aa7062198e5aacd9fabb04d0453dd91">AConfiguration_getSdkVersion</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga4aa7062198e5aacd9fabb04d0453dd91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga06c66072902ee455011120188ca4810b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga06c66072902ee455011120188ca4810b">AConfiguration_setSdkVersion</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t sdkVersion)</td></tr>
+<tr class="separator:ga06c66072902ee455011120188ca4810b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d2c1b8731795d8e74be7e23cbc77552"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga9d2c1b8731795d8e74be7e23cbc77552">AConfiguration_getScreenSize</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga9d2c1b8731795d8e74be7e23cbc77552"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7bcf05150933ead34a01061d05ad3245"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga7bcf05150933ead34a01061d05ad3245">AConfiguration_setScreenSize</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t screenSize)</td></tr>
+<tr class="separator:ga7bcf05150933ead34a01061d05ad3245"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab7d1f5aa59e8fa4db0a1b91bb322034c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gab7d1f5aa59e8fa4db0a1b91bb322034c">AConfiguration_getScreenLong</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gab7d1f5aa59e8fa4db0a1b91bb322034c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaed853ab7e2bc915591d05997130bc448"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaed853ab7e2bc915591d05997130bc448">AConfiguration_setScreenLong</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t screenLong)</td></tr>
+<tr class="separator:gaed853ab7e2bc915591d05997130bc448"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1d75777892f38208feb3d2a94a977fcf"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga1d75777892f38208feb3d2a94a977fcf">AConfiguration_getUiModeType</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga1d75777892f38208feb3d2a94a977fcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec61e3cf91cd79e8b76a35bbcb15789d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaec61e3cf91cd79e8b76a35bbcb15789d">AConfiguration_setUiModeType</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t uiModeType)</td></tr>
+<tr class="separator:gaec61e3cf91cd79e8b76a35bbcb15789d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga447f16a9e4f8400e5e0328900749ff16"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga447f16a9e4f8400e5e0328900749ff16">AConfiguration_getUiModeNight</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga447f16a9e4f8400e5e0328900749ff16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga08df1e801afbe4a12411e393b8141e42"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga08df1e801afbe4a12411e393b8141e42">AConfiguration_setUiModeNight</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t uiModeNight)</td></tr>
+<tr class="separator:ga08df1e801afbe4a12411e393b8141e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61e5fe9612c170c33e1c7e9fb92f2219"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga61e5fe9612c170c33e1c7e9fb92f2219">AConfiguration_getScreenWidthDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga61e5fe9612c170c33e1c7e9fb92f2219"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafc51d45679095965fe3ba1abd402f120"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gafc51d45679095965fe3ba1abd402f120">AConfiguration_setScreenWidthDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t value)</td></tr>
+<tr class="separator:gafc51d45679095965fe3ba1abd402f120"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9905a4765f8d0d921c476ebce01c7648"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga9905a4765f8d0d921c476ebce01c7648">AConfiguration_getScreenHeightDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga9905a4765f8d0d921c476ebce01c7648"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6ffac3b41415ec8a3031737ccdcd63b8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga6ffac3b41415ec8a3031737ccdcd63b8">AConfiguration_setScreenHeightDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t value)</td></tr>
+<tr class="separator:ga6ffac3b41415ec8a3031737ccdcd63b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7fc015e41fad342edba66a003d9848aa"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga7fc015e41fad342edba66a003d9848aa">AConfiguration_getSmallestScreenWidthDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga7fc015e41fad342edba66a003d9848aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b004c9585671efc5cebd96c1d43c4f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga6b004c9585671efc5cebd96c1d43c4f0">AConfiguration_setSmallestScreenWidthDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t value)</td></tr>
+<tr class="separator:ga6b004c9585671efc5cebd96c1d43c4f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga13dbf2fc9a382c62b391e7de9cf9b468"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga13dbf2fc9a382c62b391e7de9cf9b468">AConfiguration_getLayoutDirection</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga13dbf2fc9a382c62b391e7de9cf9b468"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf47215cf551594f8c2a0594419b47e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaaf47215cf551594f8c2a0594419b47e1">AConfiguration_setLayoutDirection</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t value)</td></tr>
+<tr class="separator:gaaf47215cf551594f8c2a0594419b47e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabfe69b0dccae425a16fe94d084f20402"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gabfe69b0dccae425a16fe94d084f20402">AConfiguration_diff</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config1, <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config2)</td></tr>
+<tr class="separator:gabfe69b0dccae425a16fe94d084f20402"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb27b901a1d7d44ed866608fb8399a18"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gafb27b901a1d7d44ed866608fb8399a18">AConfiguration_match</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *base, <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *requested)</td></tr>
+<tr class="separator:gafb27b901a1d7d44ed866608fb8399a18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd2bb31057c8d57efcea7603458d2a8d"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gafd2bb31057c8d57efcea7603458d2a8d">AConfiguration_isBetterThan</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *base, <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *test, <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *requested)</td></tr>
+<tr class="separator:gafd2bb31057c8d57efcea7603458d2a8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/deprecated.jd b/docs/html-ndk/ndk/reference/deprecated.jd
new file mode 100644
index 0000000..420c93b
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/deprecated.jd
@@ -0,0 +1,31 @@
+page.title=Deprecated List
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Deprecated List </div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><dl class="reflist">
+<dt><a class="anchor" id="_deprecated000001"></a>Global <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ab0ca4fce673baf58447bfeb154d9a03f">ACONFIGURATION_ORIENTATION_SQUARE</a>  </dt>
+<dd>Not currently supported or used.  </dd>
+<dt><a class="anchor" id="_deprecated000002"></a>Global <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a8316a15b06353f883f2aef8bd194f79f">ACONFIGURATION_TOUCHSCREEN_STYLUS</a>  </dt>
+<dd>Not currently supported or used.  </dd>
+<dt><a class="anchor" id="_deprecated000004"></a>Global <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa0377f46a626d411ace179c1c27d0a3f7">AWINDOW_FLAG_BLUR_BEHIND</a>  </dt>
+<dd>Blurring is no longer supported.  </dd>
+<dt><a class="anchor" id="_deprecated000006"></a>Global <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffae73488b436aaea163ba2f7051bf93d9d">AWINDOW_FLAG_DITHER</a>  </dt>
+<dd>This flag is no longer used.  </dd>
+<dt><a class="anchor" id="_deprecated000005"></a>Global <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa5574a513645e6e7cb4d6a9f4a043d773">AWINDOW_FLAG_TOUCHABLE_WHEN_WAKING</a>  </dt>
+<dd>This flag has no effect. </dd>
+</dl>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/dir_035c76f7235f5f563d38e3ab90cb9716.jd b/docs/html-ndk/ndk/reference/dir_035c76f7235f5f563d38e3ab90cb9716.jd
new file mode 100644
index 0000000..6126149
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/dir_035c76f7235f5f563d38e3ab90cb9716.jd
@@ -0,0 +1,57 @@
+page.title=android Directory Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">android Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:asset__manager_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="asset__manager_8h.html">asset_manager.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:asset__manager__jni_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="asset__manager__jni_8h.html">asset_manager_jni.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:bitmap_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bitmap_8h.html">bitmap.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:configuration_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="configuration_8h.html">configuration.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:input_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="input_8h.html">input.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:keycodes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="keycodes_8h.html">keycodes.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:looper_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="looper_8h.html">looper.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:native__activity_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="native__activity_8h.html">native_activity.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:native__window_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="native__window_8h.html">native_window.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:native__window__jni_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="native__window__jni_8h.html">native_window_jni.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:obb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obb_8h.html">obb.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:rect_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rect_8h.html">rect.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:sensor_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sensor_8h.html">sensor.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:storage__manager_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="storage__manager_8h.html">storage_manager.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:window_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="window_8h.html">window.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/dir_d44c64559bbebec7f509842c48db8b23.jd b/docs/html-ndk/ndk/reference/dir_d44c64559bbebec7f509842c48db8b23.jd
new file mode 100644
index 0000000..26ed8f4
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/dir_d44c64559bbebec7f509842c48db8b23.jd
@@ -0,0 +1,29 @@
+page.title=include Directory Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">include Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_035c76f7235f5f563d38e3ab90cb9716"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/doxygen-dac.css b/docs/html-ndk/ndk/reference/doxygen-dac.css
new file mode 100644
index 0000000..96b6d84
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/doxygen-dac.css
@@ -0,0 +1,53 @@
+#jd-content td {
+}
+
+#jd-content table {
+    background-color: transparent;
+    width: 100%;
+}
+
+#jd-content tr.heading td {
+    background-color: #999;
+    padding: 0px 12px;
+}
+
+#jd-content tr.heading h2 {
+    font-size: 14px;
+    font-weight: bold;
+    font-family: Roboto, sans-serif;
+    margin: 0px;
+    color: #fff;
+}
+
+#jd-content tr.heading hr, #jd-content td.memSeparator, #jd-content div.headertitle {
+    display: none;
+}
+
+
+#jd-content table td.memItemLeft {
+    text-align: right;
+    width: 20%;
+}
+
+#jd-content table td.memItemRight {
+}
+
+#jd-content div.memproto {
+    font-size: 1.15em;
+    background-color: #e2e2e2;
+    padding: 3px;    
+}
+
+#jd-content div.memproto table {
+    margin: 0px;
+    width: auto;
+}
+
+#jd-content table.memname td {
+    border: none;
+    padding: 2px;
+}
+
+#jd-content div.memdoc {
+    margin: 7px 18px;
+}
diff --git a/docs/html-ndk/ndk/reference/doxygen.css b/docs/html-ndk/ndk/reference/doxygen.css
new file mode 100644
index 0000000..94f4bf2
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/doxygen.css
@@ -0,0 +1,1366 @@
+/* The standard CSS for doxygen 1.8.6 */
+
+body, table, div, p, dl {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font: 400 14px/28px Roboto,sans-serif;
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #A9A9A9;
+	color: #585858;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #F1F1F1;
+	border: 1px solid #BDBDBD;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #646464;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #747474;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #B8B8B8;
+	color: #ffffff;
+	border: 1px double #A8A8A8;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+	background-color: #FCFCFC;
+	border: 1px solid #D5D5D5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+div.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #ffffff;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: #F1F1F1;
+	font-weight: bold;
+	border: 1px solid #D5D5D5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #F1F1F1;
+	border: 1px solid #D5D5D5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #F2F2F2;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F9F9F9;
+        border-left: 2px solid #B8B8B8;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #BDBDBD;
+}
+
+th.dirtab {
+	background: #F1F1F1;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #7A7A7A;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #FAFAFA;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #747474;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+	font-size: 80%;
+	color: #747474;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #F1F1F1;
+	border: 1px solid #BDBDBD;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #C0C0C0;
+        border-left: 1px solid #C0C0C0;
+        border-right: 1px solid #C0C0C0;
+        padding: 6px 0px 6px 0px;
+        color: #3D3D3D;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #EAEAEA;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        -moz-border-radius-topleft: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+        -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #C0C0C0;      
+        border-left: 1px solid #C0C0C0;      
+        border-right: 1px solid #C0C0C0; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FCFCFC;
+        border-top-width: 0;
+        background-image:url('nav_g.png');
+        background-repeat:repeat-x;
+        background-color: #FFFFFF;
+        /* opera specific markup */
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #9A9A9A;
+        border-top:1px solid #848484;
+        border-left:1px solid #848484;
+        border-right:1px solid #D5D5D5;
+        border-bottom:1px solid #D5D5D5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view when not used as main index */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+	padding-top: 3px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F9F9F9;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #646464;
+}
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #464646;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #4A4A4A;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #5B5B5B;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        /*width: 100%;*/
+        margin-bottom: 10px;
+        border: 1px solid #C0C0C0;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #C0C0C0;
+        border-bottom: 1px solid #C0C0C0;
+        vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+        padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #C0C0C0;
+        /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+        margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+        margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #EAEAEA;
+        font-size: 90%;
+        color: #3D3D3D;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #C0C0C0;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	background-position: 0 -5px;
+	height:30px;
+	line-height:30px;
+	color:#ABABAB;
+	border:solid 1px #D3D3D3;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#595959;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #434343;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#929292;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#595959;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #FAFAFA;
+	margin:  0px;
+	border-bottom: 1px solid #D5D5D5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.note
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00D000;
+}
+
+dl.deprecated
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #505050;
+}
+
+dl.todo
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #848484;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #AFAFAF;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#545454;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F7F7F7;
+        border: 1px solid #E3E3E3;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 20px 10px 10px;
+        width: 200px;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #747474;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+	cursor: default;
+	white-space: nowrap;
+	background-color: white;
+	border: 1px solid gray;
+	border-radius: 4px 4px 4px 4px;
+	box-shadow: 1px 1px 7px gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
diff --git a/docs/html-ndk/ndk/reference/doxygen.png b/docs/html-ndk/ndk/reference/doxygen.png
new file mode 100644
index 0000000..da7e8aa
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/doxygen.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/dynsections.js b/docs/html-ndk/ndk/reference/dynsections.js
new file mode 100644
index 0000000..ed092c7
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/dynsections.js
@@ -0,0 +1,97 @@
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+   content.hide();
+   summary.show();
+   $(linkObj).addClass('closed').removeClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+   content.show();
+   summary.hide();
+   $(linkObj).removeClass('closed').addClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ } 
+ return false;
+}
+
+function updateStripes()
+{
+  $('table.directory tr').
+       removeClass('even').filter(':visible:even').addClass('even');
+}
+function toggleLevel(level)
+{
+  $('table.directory tr').each(function(){ 
+    var l = this.id.split('_').length-1;
+    var i = $('#img'+this.id.substring(3));
+    var a = $('#arr'+this.id.substring(3));
+    if (l<level+1) {
+      i.attr('src','ftv2folderopen.png');
+      a.attr('src','ftv2mnode.png');
+      $(this).show();
+    } else if (l==level+1) {
+      i.attr('src','ftv2folderclosed.png');
+      a.attr('src','ftv2pnode.png');
+      $(this).show();
+    } else {
+      $(this).hide();
+    }
+  });
+  updateStripes();
+}
+
+function toggleFolder(id)
+{
+  //The clicked row
+  var currentRow = $('#row_'+id);
+  var currentRowImages = currentRow.find("img");
+
+  //All rows after the clicked row
+  var rows = currentRow.nextAll("tr");
+
+  //Only match elements AFTER this one (can't hide elements before)
+  var childRows = rows.filter(function() {
+    var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+    return this.id.match(re);
+  });
+
+  //First row is visible we are HIDING
+  if (childRows.filter(':first').is(':visible')===true) {
+    currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
+    currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
+    rows.filter("[id^=row_"+id+"]").hide();
+  } else { //We are SHOWING
+    //All sub images
+    var childImages = childRows.find("img");
+    var childImg = childImages.filter("[id^=img]");
+    var childArr = childImages.filter("[id^=arr]");
+
+    currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
+    currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
+    childImg.attr('src','ftv2folderclosed.png'); //children closed
+    childArr.attr('src','ftv2pnode.png'); //children closed
+    childRows.show(); //show all children
+  }
+  updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+  var rows = $('tr.inherit.'+id);
+  var img = $('tr.inherit_header.'+id+' img');
+  var src = $(img).attr('src');
+  if (rows.filter(':first').is(':visible')===true) {
+    rows.css('display','none');
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+  } else {
+    rows.css('display','table-row'); // using show() causes jump in firefox
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+  }
+}
+
diff --git a/docs/html-ndk/ndk/reference/files.jd b/docs/html-ndk/ndk/reference/files.jd
new file mode 100644
index 0000000..236e96a
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/files.jd
@@ -0,0 +1,38 @@
+page.title=File List
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">File List</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="asset__manager_8h.html" target="_self">asset_manager.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="asset__manager__jni_8h.html" target="_self">asset_manager_jni.h</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="bitmap_8h.html" target="_self">bitmap.h</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="configuration_8h.html" target="_self">configuration.h</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="input_8h.html" target="_self">input.h</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="keycodes_8h.html" target="_self">keycodes.h</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="looper_8h.html" target="_self">looper.h</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="native__activity_8h.html" target="_self">native_activity.h</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="native__window_8h.html" target="_self">native_window.h</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="native__window__jni_8h.html" target="_self">native_window_jni.h</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="obb_8h.html" target="_self">obb.h</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="rect_8h.html" target="_self">rect.h</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="sensor_8h.html" target="_self">sensor.h</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="storage__manager_8h.html" target="_self">storage_manager.h</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="window_8h.html" target="_self">window.h</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/ftv2blank.png b/docs/html-ndk/ndk/reference/ftv2blank.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2blank.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2cl.png b/docs/html-ndk/ndk/reference/ftv2cl.png
new file mode 100644
index 0000000..d660c7b
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2cl.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2doc.png b/docs/html-ndk/ndk/reference/ftv2doc.png
new file mode 100644
index 0000000..7f92e54
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2doc.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2folderclosed.png b/docs/html-ndk/ndk/reference/ftv2folderclosed.png
new file mode 100644
index 0000000..359f207
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2folderclosed.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2folderopen.png b/docs/html-ndk/ndk/reference/ftv2folderopen.png
new file mode 100644
index 0000000..c5103ed
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2folderopen.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2lastnode.png b/docs/html-ndk/ndk/reference/ftv2lastnode.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2lastnode.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2link.png b/docs/html-ndk/ndk/reference/ftv2link.png
new file mode 100644
index 0000000..7f92e54
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2link.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2mlastnode.png b/docs/html-ndk/ndk/reference/ftv2mlastnode.png
new file mode 100644
index 0000000..9d1437d
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2mlastnode.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2mnode.png b/docs/html-ndk/ndk/reference/ftv2mnode.png
new file mode 100644
index 0000000..9d1437d
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2mnode.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2mo.png b/docs/html-ndk/ndk/reference/ftv2mo.png
new file mode 100644
index 0000000..e2513ee
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2mo.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2node.png b/docs/html-ndk/ndk/reference/ftv2node.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2node.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2ns.png b/docs/html-ndk/ndk/reference/ftv2ns.png
new file mode 100644
index 0000000..c61a541
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2ns.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2plastnode.png b/docs/html-ndk/ndk/reference/ftv2plastnode.png
new file mode 100644
index 0000000..a2fffb6
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2plastnode.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2pnode.png b/docs/html-ndk/ndk/reference/ftv2pnode.png
new file mode 100644
index 0000000..a2fffb6
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2pnode.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2splitbar.png b/docs/html-ndk/ndk/reference/ftv2splitbar.png
new file mode 100644
index 0000000..343046b
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2splitbar.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/ftv2vertline.png b/docs/html-ndk/ndk/reference/ftv2vertline.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/ftv2vertline.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/functions.jd b/docs/html-ndk/ndk/reference/functions.jd
new file mode 100644
index 0000000..4a86039
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/functions.jd
@@ -0,0 +1,335 @@
+page.title=Data Fields
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="contents">
+<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div>
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>acceleration
+: <a class="el" href="struct_a_sensor_event.html#aab1f50881089166ff5f3d46f7bfcf09c">ASensorEvent</a>
+</li>
+<li>assetManager
+: <a class="el" href="struct_a_native_activity.html#a0f76f065768b8f896ce47a3089fb438d">ANativeActivity</a>
+</li>
+<li>azimuth
+: <a class="el" href="struct_a_sensor_vector.html#a01b03ebfa7d0a95760e743f611fecbc5">ASensorVector</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>bias
+: <a class="el" href="struct_a_uncalibrated_event.html#a52bd7f09c4decadcfbc0347fda4163d6">AUncalibratedEvent</a>
+</li>
+<li>bits
+: <a class="el" href="struct_a_native_window___buffer.html#a089d8e968fac54a9e45f059b8b78cf9b">ANativeWindow_Buffer</a>
+</li>
+<li>bottom
+: <a class="el" href="struct_a_rect.html#a4479860c72ca8e96ac4fb1cc149dd71b">ARect</a>
+</li>
+<li>bpm
+: <a class="el" href="struct_a_heart_rate_event.html#ab0560092cbaa233e74bb0d543a85965d">AHeartRateEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>callbacks
+: <a class="el" href="struct_a_native_activity.html#af96995a13e77baf0d71c37d20c79ad51">ANativeActivity</a>
+</li>
+<li>clazz
+: <a class="el" href="struct_a_native_activity.html#ab10b01c3c23c4ddb9d2ddadd71b03c94">ANativeActivity</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>data
+: <a class="el" href="struct_a_sensor_event.html#a31244897a6c7f657a9aec807dd1e09ae">ASensorEvent</a>
+</li>
+<li>distance
+: <a class="el" href="struct_a_sensor_event.html#a06f14a9abd47b91465f895d5259cdc1b">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>env
+: <a class="el" href="struct_a_native_activity.html#ae6f0d0cd46e56b7e299b489cb60dd27e">ANativeActivity</a>
+</li>
+<li>externalDataPath
+: <a class="el" href="struct_a_native_activity.html#a2a61553b2f660ea8b57fcc2b495e109f">ANativeActivity</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>flags
+: <a class="el" href="struct_android_bitmap_info.html#a773b39d480759f67926cb18ae2219281">AndroidBitmapInfo</a>
+, <a class="el" href="struct_a_sensor_event.html#a773b39d480759f67926cb18ae2219281">ASensorEvent</a>
+</li>
+<li>format
+: <a class="el" href="struct_a_native_window___buffer.html#a49d503b84d084937e3ceeda9f0b4659e">ANativeWindow_Buffer</a>
+, <a class="el" href="struct_android_bitmap_info.html#a49d503b84d084937e3ceeda9f0b4659e">AndroidBitmapInfo</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>heart_rate
+: <a class="el" href="struct_a_sensor_event.html#a2325abb12f65d7cbceec766e6db506d8">ASensorEvent</a>
+</li>
+<li>height
+: <a class="el" href="struct_a_native_window___buffer.html#a5d8006e753a3e76ff637a4e092bbed71">ANativeWindow_Buffer</a>
+, <a class="el" href="struct_android_bitmap_info.html#a6ad4f820ce4e75cda0686fcaad5168be">AndroidBitmapInfo</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>instance
+: <a class="el" href="struct_a_native_activity.html#ae1b90392cd257d16fd66a85bac1b08cd">ANativeActivity</a>
+</li>
+<li>internalDataPath
+: <a class="el" href="struct_a_native_activity.html#aa52947cdd1476b95e858d83c0f5b0220">ANativeActivity</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>left
+: <a class="el" href="struct_a_rect.html#a9ee4ce87784b0ebeaadce132ce7d421f">ARect</a>
+</li>
+<li>light
+: <a class="el" href="struct_a_sensor_event.html#aaf8b2537020ae0b7450785724d77a3e0">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>magnetic
+: <a class="el" href="struct_a_sensor_event.html#a776bc8e3beff52764ef2d6d423563d64">ASensorEvent</a>
+</li>
+<li>meta_data
+: <a class="el" href="struct_a_sensor_event.html#a40a6e69697a42e0f0ad04a09d7f113d3">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>obbPath
+: <a class="el" href="struct_a_native_activity.html#a0aff284eb9ab311d81f20955258798cf">ANativeActivity</a>
+</li>
+<li>onConfigurationChanged
+: <a class="el" href="struct_a_native_activity_callbacks.html#a2926b45334319089e4e25fbc86d74c3f">ANativeActivityCallbacks</a>
+</li>
+<li>onContentRectChanged
+: <a class="el" href="struct_a_native_activity_callbacks.html#a61d30a43b3c77b6047afe951706f6a1e">ANativeActivityCallbacks</a>
+</li>
+<li>onDestroy
+: <a class="el" href="struct_a_native_activity_callbacks.html#a45598ebed3d15847b4f97acb9e15076e">ANativeActivityCallbacks</a>
+</li>
+<li>onInputQueueCreated
+: <a class="el" href="struct_a_native_activity_callbacks.html#a17b41ec9bb8b0b9e42d1e269a62a4d59">ANativeActivityCallbacks</a>
+</li>
+<li>onInputQueueDestroyed
+: <a class="el" href="struct_a_native_activity_callbacks.html#a82675193f867bc64180016923b0bb129">ANativeActivityCallbacks</a>
+</li>
+<li>onLowMemory
+: <a class="el" href="struct_a_native_activity_callbacks.html#aac61f647cbd971321c692a74a1136f67">ANativeActivityCallbacks</a>
+</li>
+<li>onNativeWindowCreated
+: <a class="el" href="struct_a_native_activity_callbacks.html#ac997f07e53ba58179a2133e86e5cbd31">ANativeActivityCallbacks</a>
+</li>
+<li>onNativeWindowDestroyed
+: <a class="el" href="struct_a_native_activity_callbacks.html#a150442c0611e8ce24a32a7c805e7c9db">ANativeActivityCallbacks</a>
+</li>
+<li>onNativeWindowRedrawNeeded
+: <a class="el" href="struct_a_native_activity_callbacks.html#a3cad4792af363b9a40599d09afeab56c">ANativeActivityCallbacks</a>
+</li>
+<li>onNativeWindowResized
+: <a class="el" href="struct_a_native_activity_callbacks.html#ab7bd120b8816508561126308f699f116">ANativeActivityCallbacks</a>
+</li>
+<li>onPause
+: <a class="el" href="struct_a_native_activity_callbacks.html#aee8a4dcff234b94d0bf0bc85efea42c2">ANativeActivityCallbacks</a>
+</li>
+<li>onResume
+: <a class="el" href="struct_a_native_activity_callbacks.html#ac2c85491a68e6dece3d82782c1254e73">ANativeActivityCallbacks</a>
+</li>
+<li>onSaveInstanceState
+: <a class="el" href="struct_a_native_activity_callbacks.html#a16a270d24a484a376e28bc6c48fc22a1">ANativeActivityCallbacks</a>
+</li>
+<li>onStart
+: <a class="el" href="struct_a_native_activity_callbacks.html#acda344fd29c2018640a85a585317d92c">ANativeActivityCallbacks</a>
+</li>
+<li>onStop
+: <a class="el" href="struct_a_native_activity_callbacks.html#adefa99d16d11d21bb8a83ba426047605">ANativeActivityCallbacks</a>
+</li>
+<li>onWindowFocusChanged
+: <a class="el" href="struct_a_native_activity_callbacks.html#a620ef54556eac0b2b28d7e6d0644ee4a">ANativeActivityCallbacks</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>pitch
+: <a class="el" href="struct_a_sensor_vector.html#a282e7d4378d4a18a805b8980295ac86c">ASensorVector</a>
+</li>
+<li>pressure
+: <a class="el" href="struct_a_sensor_event.html#ac870e1249bab4a2a68cc4126761d24ef">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>relative_humidity
+: <a class="el" href="struct_a_sensor_event.html#ad60830bc80efb7e8a11d6fb25518f55b">ASensorEvent</a>
+</li>
+<li>reserved
+: <a class="el" href="struct_a_native_window___buffer.html#a60cc5aad4013157e2e7434d6de450656">ANativeWindow_Buffer</a>
+, <a class="el" href="struct_a_sensor_vector.html#a72aca6ea6d8153b28ea8f139b932ec3e">ASensorVector</a>
+</li>
+<li>reserved0
+: <a class="el" href="struct_a_sensor_event.html#a3b1869501b35bf41f2ff54de072b6c2c">ASensorEvent</a>
+</li>
+<li>reserved1
+: <a class="el" href="struct_a_sensor_event.html#a3c2ed5a26d302c47f7b3f2dd0bbf7f94">ASensorEvent</a>
+</li>
+<li>right
+: <a class="el" href="struct_a_rect.html#a3d3a4d6bf8bc6c866fa737e11590cc4e">ARect</a>
+</li>
+<li>roll
+: <a class="el" href="struct_a_sensor_vector.html#a26fd84d522945b6038221d9e38c7cc39">ASensorVector</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>sdkVersion
+: <a class="el" href="struct_a_native_activity.html#a40b4b64be7ecfac23751618313eb610d">ANativeActivity</a>
+</li>
+<li>sensor
+: <a class="el" href="struct_a_meta_data_event.html#a470f19badf179fe205462c060e5175b4">AMetaDataEvent</a>
+, <a class="el" href="struct_a_sensor_event.html#a470f19badf179fe205462c060e5175b4">ASensorEvent</a>
+</li>
+<li>status
+: <a class="el" href="struct_a_heart_rate_event.html#a555c2084e8436de01dc76a23590e8824">AHeartRateEvent</a>
+, <a class="el" href="struct_a_sensor_vector.html#a555c2084e8436de01dc76a23590e8824">ASensorVector</a>
+</li>
+<li>step_counter
+: <a class="el" href="struct_a_sensor_event.html#a2e54280490afc977b11157e387841145">ASensorEvent</a>
+</li>
+<li>stride
+: <a class="el" href="struct_a_native_window___buffer.html#a4438e3445d33be6d33b2c0dbe9c2e0d7">ANativeWindow_Buffer</a>
+, <a class="el" href="struct_android_bitmap_info.html#a981556a4e63b7b6d9f94975c7a8930ab">AndroidBitmapInfo</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>temperature
+: <a class="el" href="struct_a_sensor_event.html#afc1d28cfbce795d6ea954ebe725241f5">ASensorEvent</a>
+</li>
+<li>timestamp
+: <a class="el" href="struct_a_sensor_event.html#a8a591d341723df9496cda98e225b25b4">ASensorEvent</a>
+</li>
+<li>top
+: <a class="el" href="struct_a_rect.html#ad07137116129d873220209ea65f9d3d4">ARect</a>
+</li>
+<li>type
+: <a class="el" href="struct_a_sensor_event.html#a449e574ed6911881dc55507cb5635c2c">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>u64
+: <a class="el" href="struct_a_sensor_event.html#a89806d4445310e62ed4b68c9e2698b27">ASensorEvent</a>
+</li>
+<li>uncalib
+: <a class="el" href="struct_a_uncalibrated_event.html#a9c22454e765672782b7198d57a92f5fd">AUncalibratedEvent</a>
+</li>
+<li>uncalibrated_gyro
+: <a class="el" href="struct_a_sensor_event.html#a4e35158edcd83e4651d7083ebdb41bae">ASensorEvent</a>
+</li>
+<li>uncalibrated_magnetic
+: <a class="el" href="struct_a_sensor_event.html#a3c746f01a48fbdefaad12c35be0dd715">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>v
+: <a class="el" href="struct_a_sensor_vector.html#a9a1a1a00f1e45435cc3001b553000a21">ASensorVector</a>
+</li>
+<li>vector
+: <a class="el" href="struct_a_sensor_event.html#aebf12879fa9b61c671584994ddad9610">ASensorEvent</a>
+</li>
+<li>version
+: <a class="el" href="struct_a_sensor_event.html#a67fae7dd1de9edce3656ed214d20377f">ASensorEvent</a>
+</li>
+<li>vm
+: <a class="el" href="struct_a_native_activity.html#a5e163c28566d4563eafeabd7dcab7eeb">ANativeActivity</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>what
+: <a class="el" href="struct_a_meta_data_event.html#a397e31e246d23c1be3fa82ca4af8b930">AMetaDataEvent</a>
+</li>
+<li>width
+: <a class="el" href="struct_a_native_window___buffer.html#a395d15e7c2b09961c1bfd1da6179b64c">ANativeWindow_Buffer</a>
+, <a class="el" href="struct_android_bitmap_info.html#a325272ddd9a962f05deb905101d25cbd">AndroidBitmapInfo</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>x
+: <a class="el" href="struct_a_sensor_vector.html#ad0da36b2558901e21e7a30f6c227a45e">ASensorVector</a>
+</li>
+<li>x_bias
+: <a class="el" href="struct_a_uncalibrated_event.html#a56c4ea73587a9ea20595cca9bcfe9593">AUncalibratedEvent</a>
+</li>
+<li>x_uncalib
+: <a class="el" href="struct_a_uncalibrated_event.html#ac8b7f8daea042eaa2b86f0bf2160c44a">AUncalibratedEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_y"></a>- y -</h3><ul>
+<li>y
+: <a class="el" href="struct_a_sensor_vector.html#aa4f0d3eebc3c443f9be81bf48561a217">ASensorVector</a>
+</li>
+<li>y_bias
+: <a class="el" href="struct_a_uncalibrated_event.html#a130457eaa905b467bc43fedb02cbb16a">AUncalibratedEvent</a>
+</li>
+<li>y_uncalib
+: <a class="el" href="struct_a_uncalibrated_event.html#a43437dd77e26c6b89ab1c91aeb63fd64">AUncalibratedEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_z"></a>- z -</h3><ul>
+<li>z
+: <a class="el" href="struct_a_sensor_vector.html#af73583b1e980b0aa03f9884812e9fd4d">ASensorVector</a>
+</li>
+<li>z_bias
+: <a class="el" href="struct_a_uncalibrated_event.html#a6e265324293107afbfa9e587941a4036">AUncalibratedEvent</a>
+</li>
+<li>z_uncalib
+: <a class="el" href="struct_a_uncalibrated_event.html#ae677be5f98570cc5a1fd7fddcd8a6841">AUncalibratedEvent</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/functions_vars.jd b/docs/html-ndk/ndk/reference/functions_vars.jd
new file mode 100644
index 0000000..c2c53d6
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/functions_vars.jd
@@ -0,0 +1,335 @@
+page.title=Data Fields - Variables
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>acceleration
+: <a class="el" href="struct_a_sensor_event.html#aab1f50881089166ff5f3d46f7bfcf09c">ASensorEvent</a>
+</li>
+<li>assetManager
+: <a class="el" href="struct_a_native_activity.html#a0f76f065768b8f896ce47a3089fb438d">ANativeActivity</a>
+</li>
+<li>azimuth
+: <a class="el" href="struct_a_sensor_vector.html#a01b03ebfa7d0a95760e743f611fecbc5">ASensorVector</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>bias
+: <a class="el" href="struct_a_uncalibrated_event.html#a52bd7f09c4decadcfbc0347fda4163d6">AUncalibratedEvent</a>
+</li>
+<li>bits
+: <a class="el" href="struct_a_native_window___buffer.html#a089d8e968fac54a9e45f059b8b78cf9b">ANativeWindow_Buffer</a>
+</li>
+<li>bottom
+: <a class="el" href="struct_a_rect.html#a4479860c72ca8e96ac4fb1cc149dd71b">ARect</a>
+</li>
+<li>bpm
+: <a class="el" href="struct_a_heart_rate_event.html#ab0560092cbaa233e74bb0d543a85965d">AHeartRateEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>callbacks
+: <a class="el" href="struct_a_native_activity.html#af96995a13e77baf0d71c37d20c79ad51">ANativeActivity</a>
+</li>
+<li>clazz
+: <a class="el" href="struct_a_native_activity.html#ab10b01c3c23c4ddb9d2ddadd71b03c94">ANativeActivity</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>data
+: <a class="el" href="struct_a_sensor_event.html#a31244897a6c7f657a9aec807dd1e09ae">ASensorEvent</a>
+</li>
+<li>distance
+: <a class="el" href="struct_a_sensor_event.html#a06f14a9abd47b91465f895d5259cdc1b">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
+<li>env
+: <a class="el" href="struct_a_native_activity.html#ae6f0d0cd46e56b7e299b489cb60dd27e">ANativeActivity</a>
+</li>
+<li>externalDataPath
+: <a class="el" href="struct_a_native_activity.html#a2a61553b2f660ea8b57fcc2b495e109f">ANativeActivity</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>flags
+: <a class="el" href="struct_android_bitmap_info.html#a773b39d480759f67926cb18ae2219281">AndroidBitmapInfo</a>
+, <a class="el" href="struct_a_sensor_event.html#a773b39d480759f67926cb18ae2219281">ASensorEvent</a>
+</li>
+<li>format
+: <a class="el" href="struct_a_native_window___buffer.html#a49d503b84d084937e3ceeda9f0b4659e">ANativeWindow_Buffer</a>
+, <a class="el" href="struct_android_bitmap_info.html#a49d503b84d084937e3ceeda9f0b4659e">AndroidBitmapInfo</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>heart_rate
+: <a class="el" href="struct_a_sensor_event.html#a2325abb12f65d7cbceec766e6db506d8">ASensorEvent</a>
+</li>
+<li>height
+: <a class="el" href="struct_a_native_window___buffer.html#a5d8006e753a3e76ff637a4e092bbed71">ANativeWindow_Buffer</a>
+, <a class="el" href="struct_android_bitmap_info.html#a6ad4f820ce4e75cda0686fcaad5168be">AndroidBitmapInfo</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>instance
+: <a class="el" href="struct_a_native_activity.html#ae1b90392cd257d16fd66a85bac1b08cd">ANativeActivity</a>
+</li>
+<li>internalDataPath
+: <a class="el" href="struct_a_native_activity.html#aa52947cdd1476b95e858d83c0f5b0220">ANativeActivity</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>left
+: <a class="el" href="struct_a_rect.html#a9ee4ce87784b0ebeaadce132ce7d421f">ARect</a>
+</li>
+<li>light
+: <a class="el" href="struct_a_sensor_event.html#aaf8b2537020ae0b7450785724d77a3e0">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>magnetic
+: <a class="el" href="struct_a_sensor_event.html#a776bc8e3beff52764ef2d6d423563d64">ASensorEvent</a>
+</li>
+<li>meta_data
+: <a class="el" href="struct_a_sensor_event.html#a40a6e69697a42e0f0ad04a09d7f113d3">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>obbPath
+: <a class="el" href="struct_a_native_activity.html#a0aff284eb9ab311d81f20955258798cf">ANativeActivity</a>
+</li>
+<li>onConfigurationChanged
+: <a class="el" href="struct_a_native_activity_callbacks.html#a2926b45334319089e4e25fbc86d74c3f">ANativeActivityCallbacks</a>
+</li>
+<li>onContentRectChanged
+: <a class="el" href="struct_a_native_activity_callbacks.html#a61d30a43b3c77b6047afe951706f6a1e">ANativeActivityCallbacks</a>
+</li>
+<li>onDestroy
+: <a class="el" href="struct_a_native_activity_callbacks.html#a45598ebed3d15847b4f97acb9e15076e">ANativeActivityCallbacks</a>
+</li>
+<li>onInputQueueCreated
+: <a class="el" href="struct_a_native_activity_callbacks.html#a17b41ec9bb8b0b9e42d1e269a62a4d59">ANativeActivityCallbacks</a>
+</li>
+<li>onInputQueueDestroyed
+: <a class="el" href="struct_a_native_activity_callbacks.html#a82675193f867bc64180016923b0bb129">ANativeActivityCallbacks</a>
+</li>
+<li>onLowMemory
+: <a class="el" href="struct_a_native_activity_callbacks.html#aac61f647cbd971321c692a74a1136f67">ANativeActivityCallbacks</a>
+</li>
+<li>onNativeWindowCreated
+: <a class="el" href="struct_a_native_activity_callbacks.html#ac997f07e53ba58179a2133e86e5cbd31">ANativeActivityCallbacks</a>
+</li>
+<li>onNativeWindowDestroyed
+: <a class="el" href="struct_a_native_activity_callbacks.html#a150442c0611e8ce24a32a7c805e7c9db">ANativeActivityCallbacks</a>
+</li>
+<li>onNativeWindowRedrawNeeded
+: <a class="el" href="struct_a_native_activity_callbacks.html#a3cad4792af363b9a40599d09afeab56c">ANativeActivityCallbacks</a>
+</li>
+<li>onNativeWindowResized
+: <a class="el" href="struct_a_native_activity_callbacks.html#ab7bd120b8816508561126308f699f116">ANativeActivityCallbacks</a>
+</li>
+<li>onPause
+: <a class="el" href="struct_a_native_activity_callbacks.html#aee8a4dcff234b94d0bf0bc85efea42c2">ANativeActivityCallbacks</a>
+</li>
+<li>onResume
+: <a class="el" href="struct_a_native_activity_callbacks.html#ac2c85491a68e6dece3d82782c1254e73">ANativeActivityCallbacks</a>
+</li>
+<li>onSaveInstanceState
+: <a class="el" href="struct_a_native_activity_callbacks.html#a16a270d24a484a376e28bc6c48fc22a1">ANativeActivityCallbacks</a>
+</li>
+<li>onStart
+: <a class="el" href="struct_a_native_activity_callbacks.html#acda344fd29c2018640a85a585317d92c">ANativeActivityCallbacks</a>
+</li>
+<li>onStop
+: <a class="el" href="struct_a_native_activity_callbacks.html#adefa99d16d11d21bb8a83ba426047605">ANativeActivityCallbacks</a>
+</li>
+<li>onWindowFocusChanged
+: <a class="el" href="struct_a_native_activity_callbacks.html#a620ef54556eac0b2b28d7e6d0644ee4a">ANativeActivityCallbacks</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>pitch
+: <a class="el" href="struct_a_sensor_vector.html#a282e7d4378d4a18a805b8980295ac86c">ASensorVector</a>
+</li>
+<li>pressure
+: <a class="el" href="struct_a_sensor_event.html#ac870e1249bab4a2a68cc4126761d24ef">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>relative_humidity
+: <a class="el" href="struct_a_sensor_event.html#ad60830bc80efb7e8a11d6fb25518f55b">ASensorEvent</a>
+</li>
+<li>reserved
+: <a class="el" href="struct_a_native_window___buffer.html#a60cc5aad4013157e2e7434d6de450656">ANativeWindow_Buffer</a>
+, <a class="el" href="struct_a_sensor_vector.html#a72aca6ea6d8153b28ea8f139b932ec3e">ASensorVector</a>
+</li>
+<li>reserved0
+: <a class="el" href="struct_a_sensor_event.html#a3b1869501b35bf41f2ff54de072b6c2c">ASensorEvent</a>
+</li>
+<li>reserved1
+: <a class="el" href="struct_a_sensor_event.html#a3c2ed5a26d302c47f7b3f2dd0bbf7f94">ASensorEvent</a>
+</li>
+<li>right
+: <a class="el" href="struct_a_rect.html#a3d3a4d6bf8bc6c866fa737e11590cc4e">ARect</a>
+</li>
+<li>roll
+: <a class="el" href="struct_a_sensor_vector.html#a26fd84d522945b6038221d9e38c7cc39">ASensorVector</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>sdkVersion
+: <a class="el" href="struct_a_native_activity.html#a40b4b64be7ecfac23751618313eb610d">ANativeActivity</a>
+</li>
+<li>sensor
+: <a class="el" href="struct_a_meta_data_event.html#a470f19badf179fe205462c060e5175b4">AMetaDataEvent</a>
+, <a class="el" href="struct_a_sensor_event.html#a470f19badf179fe205462c060e5175b4">ASensorEvent</a>
+</li>
+<li>status
+: <a class="el" href="struct_a_heart_rate_event.html#a555c2084e8436de01dc76a23590e8824">AHeartRateEvent</a>
+, <a class="el" href="struct_a_sensor_vector.html#a555c2084e8436de01dc76a23590e8824">ASensorVector</a>
+</li>
+<li>step_counter
+: <a class="el" href="struct_a_sensor_event.html#a2e54280490afc977b11157e387841145">ASensorEvent</a>
+</li>
+<li>stride
+: <a class="el" href="struct_a_native_window___buffer.html#a4438e3445d33be6d33b2c0dbe9c2e0d7">ANativeWindow_Buffer</a>
+, <a class="el" href="struct_android_bitmap_info.html#a981556a4e63b7b6d9f94975c7a8930ab">AndroidBitmapInfo</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>temperature
+: <a class="el" href="struct_a_sensor_event.html#afc1d28cfbce795d6ea954ebe725241f5">ASensorEvent</a>
+</li>
+<li>timestamp
+: <a class="el" href="struct_a_sensor_event.html#a8a591d341723df9496cda98e225b25b4">ASensorEvent</a>
+</li>
+<li>top
+: <a class="el" href="struct_a_rect.html#ad07137116129d873220209ea65f9d3d4">ARect</a>
+</li>
+<li>type
+: <a class="el" href="struct_a_sensor_event.html#a449e574ed6911881dc55507cb5635c2c">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>u64
+: <a class="el" href="struct_a_sensor_event.html#a89806d4445310e62ed4b68c9e2698b27">ASensorEvent</a>
+</li>
+<li>uncalib
+: <a class="el" href="struct_a_uncalibrated_event.html#a9c22454e765672782b7198d57a92f5fd">AUncalibratedEvent</a>
+</li>
+<li>uncalibrated_gyro
+: <a class="el" href="struct_a_sensor_event.html#a4e35158edcd83e4651d7083ebdb41bae">ASensorEvent</a>
+</li>
+<li>uncalibrated_magnetic
+: <a class="el" href="struct_a_sensor_event.html#a3c746f01a48fbdefaad12c35be0dd715">ASensorEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>v
+: <a class="el" href="struct_a_sensor_vector.html#a9a1a1a00f1e45435cc3001b553000a21">ASensorVector</a>
+</li>
+<li>vector
+: <a class="el" href="struct_a_sensor_event.html#aebf12879fa9b61c671584994ddad9610">ASensorEvent</a>
+</li>
+<li>version
+: <a class="el" href="struct_a_sensor_event.html#a67fae7dd1de9edce3656ed214d20377f">ASensorEvent</a>
+</li>
+<li>vm
+: <a class="el" href="struct_a_native_activity.html#a5e163c28566d4563eafeabd7dcab7eeb">ANativeActivity</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>what
+: <a class="el" href="struct_a_meta_data_event.html#a397e31e246d23c1be3fa82ca4af8b930">AMetaDataEvent</a>
+</li>
+<li>width
+: <a class="el" href="struct_a_native_window___buffer.html#a395d15e7c2b09961c1bfd1da6179b64c">ANativeWindow_Buffer</a>
+, <a class="el" href="struct_android_bitmap_info.html#a325272ddd9a962f05deb905101d25cbd">AndroidBitmapInfo</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_x"></a>- x -</h3><ul>
+<li>x
+: <a class="el" href="struct_a_sensor_vector.html#ad0da36b2558901e21e7a30f6c227a45e">ASensorVector</a>
+</li>
+<li>x_bias
+: <a class="el" href="struct_a_uncalibrated_event.html#a56c4ea73587a9ea20595cca9bcfe9593">AUncalibratedEvent</a>
+</li>
+<li>x_uncalib
+: <a class="el" href="struct_a_uncalibrated_event.html#ac8b7f8daea042eaa2b86f0bf2160c44a">AUncalibratedEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_y"></a>- y -</h3><ul>
+<li>y
+: <a class="el" href="struct_a_sensor_vector.html#aa4f0d3eebc3c443f9be81bf48561a217">ASensorVector</a>
+</li>
+<li>y_bias
+: <a class="el" href="struct_a_uncalibrated_event.html#a130457eaa905b467bc43fedb02cbb16a">AUncalibratedEvent</a>
+</li>
+<li>y_uncalib
+: <a class="el" href="struct_a_uncalibrated_event.html#a43437dd77e26c6b89ab1c91aeb63fd64">AUncalibratedEvent</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_z"></a>- z -</h3><ul>
+<li>z
+: <a class="el" href="struct_a_sensor_vector.html#af73583b1e980b0aa03f9884812e9fd4d">ASensorVector</a>
+</li>
+<li>z_bias
+: <a class="el" href="struct_a_uncalibrated_event.html#a6e265324293107afbfa9e587941a4036">AUncalibratedEvent</a>
+</li>
+<li>z_uncalib
+: <a class="el" href="struct_a_uncalibrated_event.html#ae677be5f98570cc5a1fd7fddcd8a6841">AUncalibratedEvent</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/globals.jd b/docs/html-ndk/ndk/reference/globals.jd
new file mode 100644
index 0000000..6cbbe54
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/globals.jd
@@ -0,0 +1,2302 @@
+page.title=Globals
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="contents">
+<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>AAsset
+: <a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">asset_manager.h</a>
+</li>
+<li>AAsset_close()
+: <a class="el" href="group___asset.html#ga1f241e49f691dafcada23bcb76155122">asset_manager.h</a>
+</li>
+<li>AAsset_getBuffer()
+: <a class="el" href="group___asset.html#ga553a14512a98542306238c3ce70d344f">asset_manager.h</a>
+</li>
+<li>AAsset_getLength()
+: <a class="el" href="group___asset.html#gaad8ec42e28522ebc72d3a5c357f9a600">asset_manager.h</a>
+</li>
+<li>AAsset_getLength64()
+: <a class="el" href="group___asset.html#ga55c8bc459327d5d23089e6a4b453f3f1">asset_manager.h</a>
+</li>
+<li>AAsset_getRemainingLength()
+: <a class="el" href="group___asset.html#gae806f55cbc4a93ca245f2adfd63d3eee">asset_manager.h</a>
+</li>
+<li>AAsset_getRemainingLength64()
+: <a class="el" href="group___asset.html#ga21e7221d88dcc44106843192b66755b5">asset_manager.h</a>
+</li>
+<li>AAsset_isAllocated()
+: <a class="el" href="group___asset.html#ga20344cb952a77fa1004f592fb1b55124">asset_manager.h</a>
+</li>
+<li>AASSET_MODE_BUFFER
+: <a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba40ec098f4afb7c2869fa449d3059f6bb">asset_manager.h</a>
+</li>
+<li>AASSET_MODE_RANDOM
+: <a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba88e1b2a920963d7596735fe28bf30e2f">asset_manager.h</a>
+</li>
+<li>AASSET_MODE_STREAMING
+: <a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55bac76f5fdb953097efc04e534474a7ea74">asset_manager.h</a>
+</li>
+<li>AASSET_MODE_UNKNOWN
+: <a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba5bf76576f07042f965f230086f7c09f4">asset_manager.h</a>
+</li>
+<li>AAsset_openFileDescriptor()
+: <a class="el" href="group___asset.html#ga1af4ffd050016e99961e24f550981677">asset_manager.h</a>
+</li>
+<li>AAsset_openFileDescriptor64()
+: <a class="el" href="group___asset.html#ga123a44a575f85d91a00a8456dab7bd0a">asset_manager.h</a>
+</li>
+<li>AAsset_read()
+: <a class="el" href="group___asset.html#gaadd86322c1fda5121b6d33745c317fb9">asset_manager.h</a>
+</li>
+<li>AAsset_seek()
+: <a class="el" href="group___asset.html#gacc026a8bedeb1ef80bf12df3b72611a2">asset_manager.h</a>
+</li>
+<li>AAsset_seek64()
+: <a class="el" href="group___asset.html#ga81fbe4368de24a3296ef7a6eba0053c7">asset_manager.h</a>
+</li>
+<li>AAssetDir
+: <a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">asset_manager.h</a>
+</li>
+<li>AAssetDir_close()
+: <a class="el" href="group___asset.html#gace1c4d0da274d643c5b10ca218cc6088">asset_manager.h</a>
+</li>
+<li>AAssetDir_getNextFileName()
+: <a class="el" href="group___asset.html#ga4703b9f7baa3daeba248b6547de6b9b0">asset_manager.h</a>
+</li>
+<li>AAssetDir_rewind()
+: <a class="el" href="group___asset.html#ga45db6d19ad5e1c0f9b2e6b4059da14b3">asset_manager.h</a>
+</li>
+<li>AAssetManager
+: <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">asset_manager.h</a>
+</li>
+<li>AAssetManager_fromJava()
+: <a class="el" href="group___asset.html#gadfd6537af41577735bcaee52120127f4">asset_manager_jni.h</a>
+</li>
+<li>AAssetManager_open()
+: <a class="el" href="group___asset.html#ga0037ce3c10a591fe632f34c1aa62955c">asset_manager.h</a>
+</li>
+<li>AAssetManager_openDir()
+: <a class="el" href="group___asset.html#gab5b57ff012d6d1024d8bf5d30aedced4">asset_manager.h</a>
+</li>
+<li>AConfiguration
+: <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">configuration.h</a>
+</li>
+<li>AConfiguration_copy()
+: <a class="el" href="group___configuration.html#gaabff04218a0a76afb8d3ea551b001565">configuration.h</a>
+</li>
+<li>AConfiguration_delete()
+: <a class="el" href="group___configuration.html#ga60fe264b97da84d3370eb9e220159e6d">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ace87b4f25e5fd6fe0f3316d21ecc66a1">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a966a3855351a97ae865264afd74c1534">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_DEFAULT
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae628b2bf594733b7c19ae394616cec6c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_HIGH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5ef4a97dc058235cdfa9fcfe3300c7eb">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_LOW
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a01ddb34b2376422d2323720049eb57f3">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_MEDIUM
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a2511479d7cd574c4b293d535e4dc337e">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_NONE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a7c1af92914155c418b99844c6aab33d7">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_TV
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a10e6c3d636f3f6de75de9208913b0d8f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_XHIGH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a38a03b3b1c64725679605d8d479c85a0">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_XXHIGH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad6353daf63778a6ec6f2bd3815d7e6e4">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_XXXHIGH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a2bd04af33e868a77bd4d83e7d70368ec">configuration.h</a>
+</li>
+<li>AConfiguration_diff()
+: <a class="el" href="group___configuration.html#gabfe69b0dccae425a16fe94d084f20402">configuration.h</a>
+</li>
+<li>AConfiguration_fromAssetManager()
+: <a class="el" href="group___configuration.html#ga75e061fd0b4f761e08e43af36508c4f3">configuration.h</a>
+</li>
+<li>AConfiguration_getCountry()
+: <a class="el" href="group___configuration.html#gad2b47f787012a82a67a20e5de5211d46">configuration.h</a>
+</li>
+<li>AConfiguration_getDensity()
+: <a class="el" href="group___configuration.html#ga4c994e0555947340582094c3da32a663">configuration.h</a>
+</li>
+<li>AConfiguration_getKeyboard()
+: <a class="el" href="group___configuration.html#gafd0f76ccd4fe4bda5172b8e0bc6675e4">configuration.h</a>
+</li>
+<li>AConfiguration_getKeysHidden()
+: <a class="el" href="group___configuration.html#ga7a8317ab975f621f3fe62ed1b44f2605">configuration.h</a>
+</li>
+<li>AConfiguration_getLanguage()
+: <a class="el" href="group___configuration.html#ga7b004c13448704afb0ea2040d69468c1">configuration.h</a>
+</li>
+<li>AConfiguration_getLayoutDirection()
+: <a class="el" href="group___configuration.html#ga13dbf2fc9a382c62b391e7de9cf9b468">configuration.h</a>
+</li>
+<li>AConfiguration_getMcc()
+: <a class="el" href="group___configuration.html#ga1e78004237a931086d2ae4bd8324bd30">configuration.h</a>
+</li>
+<li>AConfiguration_getMnc()
+: <a class="el" href="group___configuration.html#ga4783776a4fad4501898472375d781fb9">configuration.h</a>
+</li>
+<li>AConfiguration_getNavHidden()
+: <a class="el" href="group___configuration.html#gafe8d3a9c2f715ea76c8e4a99c2db9eaa">configuration.h</a>
+</li>
+<li>AConfiguration_getNavigation()
+: <a class="el" href="group___configuration.html#gae3ff1541b63f5b9256f7c0ebae372977">configuration.h</a>
+</li>
+<li>AConfiguration_getOrientation()
+: <a class="el" href="group___configuration.html#gaa7d8e3e9871dc925fef3e342a92e4e22">configuration.h</a>
+</li>
+<li>AConfiguration_getScreenHeightDp()
+: <a class="el" href="group___configuration.html#ga9905a4765f8d0d921c476ebce01c7648">configuration.h</a>
+</li>
+<li>AConfiguration_getScreenLong()
+: <a class="el" href="group___configuration.html#gab7d1f5aa59e8fa4db0a1b91bb322034c">configuration.h</a>
+</li>
+<li>AConfiguration_getScreenSize()
+: <a class="el" href="group___configuration.html#ga9d2c1b8731795d8e74be7e23cbc77552">configuration.h</a>
+</li>
+<li>AConfiguration_getScreenWidthDp()
+: <a class="el" href="group___configuration.html#ga61e5fe9612c170c33e1c7e9fb92f2219">configuration.h</a>
+</li>
+<li>AConfiguration_getSdkVersion()
+: <a class="el" href="group___configuration.html#ga4aa7062198e5aacd9fabb04d0453dd91">configuration.h</a>
+</li>
+<li>AConfiguration_getSmallestScreenWidthDp()
+: <a class="el" href="group___configuration.html#ga7fc015e41fad342edba66a003d9848aa">configuration.h</a>
+</li>
+<li>AConfiguration_getTouchscreen()
+: <a class="el" href="group___configuration.html#gad305e6cf86fa915c24212e71bb2bf027">configuration.h</a>
+</li>
+<li>AConfiguration_getUiModeNight()
+: <a class="el" href="group___configuration.html#ga447f16a9e4f8400e5e0328900749ff16">configuration.h</a>
+</li>
+<li>AConfiguration_getUiModeType()
+: <a class="el" href="group___configuration.html#ga1d75777892f38208feb3d2a94a977fcf">configuration.h</a>
+</li>
+<li>AConfiguration_isBetterThan()
+: <a class="el" href="group___configuration.html#gafd2bb31057c8d57efcea7603458d2a8d">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a0195de2a57f028a8171c42beff0b0e88">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD_12KEY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1aaf1a887f146737030cce95c53066ea">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a593f722738682ae4500dab6427670f4a">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD_HIDDEN
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a54e71234e32ed037e2d47472f80eb416">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD_NOKEYS
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a40195a1a2d8e21c74d99606d8a1a9918">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD_QWERTY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a263ff8efb4d2c757e557adc0d0cdeedf">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYSHIDDEN_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a34d3a830bc2964000052f8486fd76b0c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYSHIDDEN_NO
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5abfbfc3a10affed059263555b00429ab2">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYSHIDDEN_SOFT
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1a56b72c730e40f22f3b8727e54c376c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYSHIDDEN_YES
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5e6a5a3f4175644886bde7d0ed4b1ebf">configuration.h</a>
+</li>
+<li>ACONFIGURATION_LAYOUTDIR
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a65834be1230d1694e5ce8a6f407acab2">configuration.h</a>
+</li>
+<li>ACONFIGURATION_LAYOUTDIR_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4687ede31c438dd9f2701cab88de1dbe">configuration.h</a>
+</li>
+<li>ACONFIGURATION_LAYOUTDIR_LTR
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a05242d8f2d254b43ff9414ff1aa38a83">configuration.h</a>
+</li>
+<li>ACONFIGURATION_LAYOUTDIR_RTL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af98332983b787ab9355b527079636870">configuration.h</a>
+</li>
+<li>ACONFIGURATION_LOCALE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a01ecff796bd0690a9a8498c7de03e9b4">configuration.h</a>
+</li>
+<li>AConfiguration_match()
+: <a class="el" href="group___configuration.html#gafb27b901a1d7d44ed866608fb8399a18">configuration.h</a>
+</li>
+<li>ACONFIGURATION_MCC
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4d40f2aef365c78a52f699b89439db28">configuration.h</a>
+</li>
+<li>ACONFIGURATION_MNC
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ade91a319638eede201579d15f86578a5">configuration.h</a>
+</li>
+<li>ACONFIGURATION_MNC_ZERO
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aa6cda2f222580dbef27f1277d967d58c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVHIDDEN_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a6db7dd6a67196df88117dcdc904e0cb3">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVHIDDEN_NO
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae6ff9883e3e89f8d9ea5c0ebe077c9c5">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVHIDDEN_YES
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a79b3a5fe10e948bb79db47b516d46cf5">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a65e9d31615d2b4adf3738d9a12a1556b">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a90e914b60d28c081b313f4b7b6600f47">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION_DPAD
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ace2e3ed21322100712992ca09f4b75b5">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION_NONAV
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a3d95e899305aeae366fb7f8d8b6c290a">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION_TRACKBALL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad2807d00cb2f5dcb9f456045dd8443a4">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION_WHEEL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a80b53370f65ad283a4fd025f36422bea">configuration.h</a>
+</li>
+<li>AConfiguration_new()
+: <a class="el" href="group___configuration.html#ga9543655922980466eb05c7be94a0a567">configuration.h</a>
+</li>
+<li>ACONFIGURATION_ORIENTATION
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a591461d864136d482fe06e01fd945786">configuration.h</a>
+</li>
+<li>ACONFIGURATION_ORIENTATION_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af44cee3290a23999b0358c5638747a5f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_ORIENTATION_LAND
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad5746872ff6871379fca93c60bfac8a3">configuration.h</a>
+</li>
+<li>ACONFIGURATION_ORIENTATION_PORT
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad9bf5c1fb90f9fdb20f984d0574592fe">configuration.h</a>
+</li>
+<li>ACONFIGURATION_ORIENTATION_SQUARE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ab0ca4fce673baf58447bfeb154d9a03f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREEN_HEIGHT_DP_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ab66ad42d0cf72fd7e8cd99b92b625432">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREEN_LAYOUT
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a12d69ffef9135c1c55e1b8b5c2589e7c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREEN_SIZE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a76ca1eb0e9346d93da592afbbf9a3b72">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREEN_WIDTH_DP_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aad653f0c960112177fdc387a4a0577fa">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENLONG_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a41e55e57da42fd09c378f59c1a63710f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENLONG_NO
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a428bb8fcd8bc731b67b0773dc62781c5">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENLONG_YES
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a91fc014d328507568d225d691b3babfd">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENSIZE_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a9abcd34a6c549e048fc75a545081584e">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENSIZE_LARGE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af871d177fdceedb75612cfc1281d2c12">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENSIZE_NORMAL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a019727e684f25ba921f3479abd62b9f2">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENSIZE_SMALL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1163af972206a65a5d18bda12fdc511c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENSIZE_XLARGE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a0ca385ed504fc92f6ff3f0857e916c9c">configuration.h</a>
+</li>
+<li>AConfiguration_setCountry()
+: <a class="el" href="group___configuration.html#gac2f5d414a6466634b1639b5c6f8879ac">configuration.h</a>
+</li>
+<li>AConfiguration_setDensity()
+: <a class="el" href="group___configuration.html#ga9217af9858a7166dcb9a877192779eac">configuration.h</a>
+</li>
+<li>AConfiguration_setKeyboard()
+: <a class="el" href="group___configuration.html#ga4ab3429c5505c108c09349f1ddef572f">configuration.h</a>
+</li>
+<li>AConfiguration_setKeysHidden()
+: <a class="el" href="group___configuration.html#ga5a80a02aa10cfa17de0795054e927183">configuration.h</a>
+</li>
+<li>AConfiguration_setLanguage()
+: <a class="el" href="group___configuration.html#ga1f3c6cf6667655f83777acda7387ddff">configuration.h</a>
+</li>
+<li>AConfiguration_setLayoutDirection()
+: <a class="el" href="group___configuration.html#gaaf47215cf551594f8c2a0594419b47e1">configuration.h</a>
+</li>
+<li>AConfiguration_setMcc()
+: <a class="el" href="group___configuration.html#gae6198b4eaf3e34168f4b13b8b5975d93">configuration.h</a>
+</li>
+<li>AConfiguration_setMnc()
+: <a class="el" href="group___configuration.html#gaaf060ef69c3636f62e90ae0b520eecb8">configuration.h</a>
+</li>
+<li>AConfiguration_setNavHidden()
+: <a class="el" href="group___configuration.html#ga67e86e0347596421771af841710308d5">configuration.h</a>
+</li>
+<li>AConfiguration_setNavigation()
+: <a class="el" href="group___configuration.html#gad21dd14fb823a6a80b66132a05ce8913">configuration.h</a>
+</li>
+<li>AConfiguration_setOrientation()
+: <a class="el" href="group___configuration.html#gadcaa8540bad4172a74032143bcaade04">configuration.h</a>
+</li>
+<li>AConfiguration_setScreenHeightDp()
+: <a class="el" href="group___configuration.html#ga6ffac3b41415ec8a3031737ccdcd63b8">configuration.h</a>
+</li>
+<li>AConfiguration_setScreenLong()
+: <a class="el" href="group___configuration.html#gaed853ab7e2bc915591d05997130bc448">configuration.h</a>
+</li>
+<li>AConfiguration_setScreenSize()
+: <a class="el" href="group___configuration.html#ga7bcf05150933ead34a01061d05ad3245">configuration.h</a>
+</li>
+<li>AConfiguration_setScreenWidthDp()
+: <a class="el" href="group___configuration.html#gafc51d45679095965fe3ba1abd402f120">configuration.h</a>
+</li>
+<li>AConfiguration_setSdkVersion()
+: <a class="el" href="group___configuration.html#ga06c66072902ee455011120188ca4810b">configuration.h</a>
+</li>
+<li>AConfiguration_setSmallestScreenWidthDp()
+: <a class="el" href="group___configuration.html#ga6b004c9585671efc5cebd96c1d43c4f0">configuration.h</a>
+</li>
+<li>AConfiguration_setTouchscreen()
+: <a class="el" href="group___configuration.html#ga0d51dbe710c1afe31ece4dd6a8c188ff">configuration.h</a>
+</li>
+<li>AConfiguration_setUiModeNight()
+: <a class="el" href="group___configuration.html#ga08df1e801afbe4a12411e393b8141e42">configuration.h</a>
+</li>
+<li>AConfiguration_setUiModeType()
+: <a class="el" href="group___configuration.html#gaec61e3cf91cd79e8b76a35bbcb15789d">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SMALLEST_SCREEN_SIZE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5acce415252e0ad95117a05bbe910f06de">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SMALLEST_SCREEN_WIDTH_DP_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a227120217d8b6a9d5add3ccc4b283702">configuration.h</a>
+</li>
+<li>ACONFIGURATION_TOUCHSCREEN
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a255cfb57ac18d460c5614565a84f5561">configuration.h</a>
+</li>
+<li>ACONFIGURATION_TOUCHSCREEN_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aa73bcf45261366840fea743372682fa6">configuration.h</a>
+</li>
+<li>ACONFIGURATION_TOUCHSCREEN_FINGER
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4bf2a8323ec6d072aa48d5fc2cff645e">configuration.h</a>
+</li>
+<li>ACONFIGURATION_TOUCHSCREEN_NOTOUCH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5adfbeb370edd3b4372c9b0f86f152dde0">configuration.h</a>
+</li>
+<li>ACONFIGURATION_TOUCHSCREEN_STYLUS
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a8316a15b06353f883f2aef8bd194f79f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a43a324af59372efd08b34431825cf67e">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_NIGHT_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a975087bbd4087b57a68ef3cdbfeb77a1">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_NIGHT_NO
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a90ebe564e3a3e384d5b013100f81e4b7">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_NIGHT_YES
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a437af4527fac5407de256ec1ef055046">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a10d0916da7fa88c945a9cda259407d4c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_APPLIANCE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad99004a7a1b2a97d29b639664947f8e3">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_CAR
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5d6575185e41d909469a1dcf5f81bf4f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_DESK
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae10bb854f461f60cf399852f8f327077">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_NORMAL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae7efe2713b6718311da76c828b5b444e">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_TELEVISION
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4738dded616f028fbbedcbad764e7969">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_WATCH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ac8c3e2207f2356bc6a1dffc6a615d131">configuration.h</a>
+</li>
+<li>ACONFIGURATION_VERSION
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1be62e4fc31cf3d3102c99f7c6b4c71b">configuration.h</a>
+</li>
+<li>AHeartRateEvent
+: <a class="el" href="group___sensor.html#gae85b6eac76abe74e6e53d78bb3a4858c">sensor.h</a>
+</li>
+<li>AINPUT_EVENT_TYPE_KEY
+: <a class="el" href="group___input.html#gga61dadd085c1777f559549e05962b2c9ea696f0d7635f7a24c17d3f1e4ccdd44ba">input.h</a>
+</li>
+<li>AINPUT_EVENT_TYPE_MOTION
+: <a class="el" href="group___input.html#gga61dadd085c1777f559549e05962b2c9ea2182dfda2cceb5425dcc2823b9b6b56a">input.h</a>
+</li>
+<li>AINPUT_KEYBOARD_TYPE_ALPHABETIC
+: <a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fceaba1f5ab6bc79749ba96a5d2a3af0e574">input.h</a>
+</li>
+<li>AINPUT_KEYBOARD_TYPE_NON_ALPHABETIC
+: <a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fceaf0226d750ea830eb557ae68bd4a1c82a">input.h</a>
+</li>
+<li>AINPUT_KEYBOARD_TYPE_NONE
+: <a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fcea32cb7ce34cdce7095962f0766cc6c3ac">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_ORIENTATION
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaaf9be9c04a41b610d994a3d1d7e90d06d">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_PRESSURE
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa79aca706b12b28d0ab14762902fed31a">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_SIZE
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa46f3a6cf859fb161cd29398d8448c688">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_TOOL_MAJOR
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaaa860f54aa9e5a269dba6a54bbcf3c27c">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_TOOL_MINOR
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa19226f6cf713c1b4d0973a163daf6cf1">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_TOUCH_MAJOR
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa7ead43624c96e165fd8a25e77148aa67">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_TOUCH_MINOR
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa301181a0f20681135c15010b39bb575d">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_X
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa0e5816bc48cdb33f2b488a109596ffe1">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_Y
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaab48108c9450ea1b7cd021be7d8cbc332">input.h</a>
+</li>
+<li>AINPUT_SOURCE_ANY
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ab04317e7dd273ff5c87038df67d9796e">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_BUTTON
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4dacf1bf3d7b3c6e59f907bdffc9b33370e">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_JOYSTICK
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4daaaeffb6442807dd96ec62e9d8a696b57">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_MASK
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4daae438f475d03ea60fd9fb356abd7fa01">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_NAVIGATION
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da078a18d85d078412721c336a879bcc1a">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_NONE
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4dafd6d5e71f09f6452acf017559481444c">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_POINTER
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da7495274e98fb30dee3dfd903b878cf47">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_POSITION
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da682f6982bb55ee809f6acd2deb550167">input.h</a>
+</li>
+<li>AINPUT_SOURCE_DPAD
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ad0fbfeff9f8d57104bff14c70ce5e3ef">input.h</a>
+</li>
+<li>AINPUT_SOURCE_GAMEPAD
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a6417cb50ecd6ade48c708268434a49d3">input.h</a>
+</li>
+<li>AINPUT_SOURCE_JOYSTICK
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25afb28f10dc074e7f7435f5904c513edb5">input.h</a>
+</li>
+<li>AINPUT_SOURCE_KEYBOARD
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a9860918666dd8c0b9d00a8da7af51e6d">input.h</a>
+</li>
+<li>AINPUT_SOURCE_MOUSE
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ae71d3dcbd004bccb6e00fde47097cd86">input.h</a>
+</li>
+<li>AINPUT_SOURCE_STYLUS
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a86d4983c71432b27634ba41a64bffdf9">input.h</a>
+</li>
+<li>AINPUT_SOURCE_TOUCH_NAVIGATION
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a3712c4e4fb8ad7f6ae6e40d48e5c6ee7">input.h</a>
+</li>
+<li>AINPUT_SOURCE_TOUCHPAD
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a7e0715d4b544653ab11893434172a2ef">input.h</a>
+</li>
+<li>AINPUT_SOURCE_TOUCHSCREEN
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a55ea411f927aed8964fa72fec0da444f">input.h</a>
+</li>
+<li>AINPUT_SOURCE_TRACKBALL
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a7e49d9153c86f60f626d7f797f4e78b6">input.h</a>
+</li>
+<li>AINPUT_SOURCE_UNKNOWN
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ae9348bc04cdaa88b5b010f77a4945454">input.h</a>
+</li>
+<li>AInputEvent
+: <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">input.h</a>
+</li>
+<li>AInputEvent_getDeviceId()
+: <a class="el" href="group___input.html#ga9dd3fd81e51dbfde19ab861541242aa1">input.h</a>
+</li>
+<li>AInputEvent_getSource()
+: <a class="el" href="group___input.html#gac90d4b497669dbc709ec9650db4e49be">input.h</a>
+</li>
+<li>AInputEvent_getType()
+: <a class="el" href="group___input.html#ga8292ae06aa8120c52d7380d228600b9c">input.h</a>
+</li>
+<li>AInputQueue
+: <a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">input.h</a>
+</li>
+<li>AInputQueue_attachLooper()
+: <a class="el" href="group___input.html#ga900711156bfb58d1a4b158da7874930f">input.h</a>
+</li>
+<li>AInputQueue_detachLooper()
+: <a class="el" href="group___input.html#gaeebe9f83392ac79b31ca40a6fd4dbeff">input.h</a>
+</li>
+<li>AInputQueue_finishEvent()
+: <a class="el" href="group___input.html#ga17e87e0f35d47d729eac31a0dfb1ac33">input.h</a>
+</li>
+<li>AInputQueue_getEvent()
+: <a class="el" href="group___input.html#ga88de12e2b39787ba7d3e4ce2ea46a48c">input.h</a>
+</li>
+<li>AInputQueue_hasEvents()
+: <a class="el" href="group___input.html#ga2b72ad6ab5ef656e8c41163aa7871c96">input.h</a>
+</li>
+<li>AInputQueue_preDispatchEvent()
+: <a class="el" href="group___input.html#gadecd32e6c7aefa4a508b355550d3eaa9">input.h</a>
+</li>
+<li>AKEY_EVENT_ACTION_DOWN
+: <a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635a123c3bd18fd93b53d8aedbe7597f7b49">input.h</a>
+</li>
+<li>AKEY_EVENT_ACTION_MULTIPLE
+: <a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635a08e2d927e155478ee66ec46ebd845ab0">input.h</a>
+</li>
+<li>AKEY_EVENT_ACTION_UP
+: <a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635abf18b7c5384c5de8657a0650f8da57c3">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_CANCELED
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da3198fad5ab75df614bb41f0f602a9e55">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_CANCELED_LONG_PRESS
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2daf09856f03f2fffee9a82cb8e508efb7a">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_EDITOR_ACTION
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dab9dbcf990d1e4405e32f847fdea52013">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_FALLBACK
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da14f574126d2544863fa8042ddd0f48c0">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_FROM_SYSTEM
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dae1e7ec188b2404fadd94cfba89afd5d6">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_KEEP_TOUCH_MODE
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dadc0a063ca412b0ea08474df422bf9b41">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_LONG_PRESS
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da39f9f7bdf2e256db0e2a8a5dfbfb7185">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_SOFT_KEYBOARD
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da7dbb272c7b28be9c084df3446a629f32">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_TRACKING
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da91e70ab527f27a1779f4550d457f1689">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_VIRTUAL_HARD_KEY
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dad4b5eba5b14e4076c69bc7185f2804f8">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_WOKE_HERE
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da6473a1afc0cc39e029c2a217bc57cdba">input.h</a>
+</li>
+<li>AKEY_STATE_DOWN
+: <a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04a286ec0a7aff5903a982be0cd6785b62c">input.h</a>
+</li>
+<li>AKEY_STATE_UNKNOWN
+: <a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04a9506627d5377c67dbc7fc58804b2cdfd">input.h</a>
+</li>
+<li>AKEY_STATE_UP
+: <a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04afa14022f587487c24d401c87e71c8e28">input.h</a>
+</li>
+<li>AKEY_STATE_VIRTUAL
+: <a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04ad09fd9fe458ca6c66ead9b9a75c56192">input.h</a>
+</li>
+<li>AKEYCODE_0
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa23f585ea17aeceaad2111c51ab289e79">keycodes.h</a>
+</li>
+<li>AKEYCODE_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabcac88b54f8d764bc4573ecc5b9571b0">keycodes.h</a>
+</li>
+<li>AKEYCODE_11
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa22858c3c30d596ad60f355f75df86e1">keycodes.h</a>
+</li>
+<li>AKEYCODE_12
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa781c31195e55b2dcbdd772560dc61aa5">keycodes.h</a>
+</li>
+<li>AKEYCODE_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2079c6fb75141968b60ed79fe895d6db">keycodes.h</a>
+</li>
+<li>AKEYCODE_3
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa40ccc018c0637e4d938e66b789054551">keycodes.h</a>
+</li>
+<li>AKEYCODE_3D_MODE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68d314a5ec06701205cd0097c5c7145c">keycodes.h</a>
+</li>
+<li>AKEYCODE_4
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c2d141c3906bd97cfec91443356f7b">keycodes.h</a>
+</li>
+<li>AKEYCODE_5
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0ca99d2be4a3723ba3406944ad623f6e">keycodes.h</a>
+</li>
+<li>AKEYCODE_6
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa72bc6560e24d08ff8f3116dac9179079">keycodes.h</a>
+</li>
+<li>AKEYCODE_7
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa27070499acdb6c527a285b3840ec7bff">keycodes.h</a>
+</li>
+<li>AKEYCODE_8
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa93543b23683b33724ecf77ac5a8c19ab">keycodes.h</a>
+</li>
+<li>AKEYCODE_9
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa31cd4d7c4e59cf7b057b6c248cff516d">keycodes.h</a>
+</li>
+<li>AKEYCODE_A
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa424a091c62d40f5d65908c9730ae9014">keycodes.h</a>
+</li>
+<li>AKEYCODE_ALT_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3dec175158abe8679bedd98ed1bc3e1a">keycodes.h</a>
+</li>
+<li>AKEYCODE_ALT_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacd9b6b0846c6999f5df47d29e58ac95d">keycodes.h</a>
+</li>
+<li>AKEYCODE_APOSTROPHE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab5518a8502914ea5f87ef5d29b32b1b1">keycodes.h</a>
+</li>
+<li>AKEYCODE_APP_SWITCH
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa53a59a262d6d523bdc2bd30a1e427bad">keycodes.h</a>
+</li>
+<li>AKEYCODE_ASSIST
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d3f036adb654c7752890a283ecbf838">keycodes.h</a>
+</li>
+<li>AKEYCODE_AT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7284f79a266ede479b79726082642e16">keycodes.h</a>
+</li>
+<li>AKEYCODE_AVR_INPUT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa57d42dbd8ea4219f76fb116f234e6504">keycodes.h</a>
+</li>
+<li>AKEYCODE_AVR_POWER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa479d36f9814bd00c8986a252664b938b">keycodes.h</a>
+</li>
+<li>AKEYCODE_B
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa65d3bf8d6a8a6c2f7c1b08394f313758">keycodes.h</a>
+</li>
+<li>AKEYCODE_BACK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaeb71c74bf556ba72e9c8f8dcbe5453d0">keycodes.h</a>
+</li>
+<li>AKEYCODE_BACKSLASH
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaac90eb064382e3c482ae86abb7b3f701">keycodes.h</a>
+</li>
+<li>AKEYCODE_BOOKMARK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa03ce46d177e020690aa9d26a0fa850ae">keycodes.h</a>
+</li>
+<li>AKEYCODE_BREAK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa047501f9cf9bce00e6048d8759ea3a23">keycodes.h</a>
+</li>
+<li>AKEYCODE_BRIGHTNESS_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7cf1bf3528b6d8a0e86998287fe00650">keycodes.h</a>
+</li>
+<li>AKEYCODE_BRIGHTNESS_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0af6ec416c09d160e364466faa955c36">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa28c72c33ab93d83539d0790b7e48336a">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_10
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7e6f8621909f3461032c33f9c8acaa7">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_11
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab413971c698b6e25d3955667c0142ac1">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_12
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafe4ee1e5446dd12bbb579b412048e79e">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_13
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaabde2ed26594b89d5769eef9f0d1fe6f">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_14
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f08dfd2c30ddedf1d2983680e89041b">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_15
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d8d0fb1a610fdb4e53f0fb675b7d7d0">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_16
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa224370cba99bda2db6a1c82fd2f7fa39">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab8089673fea303c7a299eefd2c327cc3">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_3
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa706a5ff492c80b4653e6fe0dcd278ca1">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_4
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c425a063bf6976e1ff8ae9f3cfcbe6">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_5
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa47149f963528ec7abe55066abfb7caf5">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_6
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa55057c8cda53a4c539d02ab1a93ca58b">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_7
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac09e0c0cbbf6449bf106e4199600db35">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_8
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaee64b3e0f30ed09e3c9f01b6c8877c3f">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_9
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac8e54092c8be5dc0e114ec35f40e00dc">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_A
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaef2d2ec912aaa9e7215aeab79f7fb086">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_B
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa721765c8f0bbcdb68af06817dbec8e53">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_C
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad622ad5df40d2fdf806abb2adda73b3d">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_L1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa32e159826404c7d76c2a433c24de82a2">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_L2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa36a38421637cfa5ebfd8a0296650cdf4">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_MODE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa19839eebec939407d901a33b75cf2594">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_R1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7c614b3966583b0ad027e45f594ede46">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_R2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa46d487e9fe31855b7b46739bad58fe3e">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_SELECT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa598289bc85f647c237729126ea392a43">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_START
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf3c818d106f4ec793a43749c4c26a8a4">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_THUMBL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68c5d8dcd8fe708ada8f4a4e17feb638">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_THUMBR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9759d817172d268ced1748909a5f5fbe">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_X
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa21174962f95e32cd0345ce657d03ebc7">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_Y
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6654a8b2c700f7783433c86fcdae7919">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_Z
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa06156b68e6de951b44fc662e1b16041f">keycodes.h</a>
+</li>
+<li>AKEYCODE_C
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaeed584f454e508ce931bcb33d37adb04">keycodes.h</a>
+</li>
+<li>AKEYCODE_CALCULATOR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa293523c40bb9f1d793cd0b984f636573">keycodes.h</a>
+</li>
+<li>AKEYCODE_CALENDAR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa114be17d1853c77a7406c024d9e4f076">keycodes.h</a>
+</li>
+<li>AKEYCODE_CALL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8b5720ebdd3576c2b536ec9228273d8f">keycodes.h</a>
+</li>
+<li>AKEYCODE_CAMERA
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8670880765756933d3d1a10186d39e26">keycodes.h</a>
+</li>
+<li>AKEYCODE_CAPS_LOCK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab9dcb68b35c85d380846c85f323868f1">keycodes.h</a>
+</li>
+<li>AKEYCODE_CAPTIONS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa81ba8d5343362b841b8a62b8679ff994">keycodes.h</a>
+</li>
+<li>AKEYCODE_CHANNEL_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa18f1808c6a819e787c9a9941f78b910f">keycodes.h</a>
+</li>
+<li>AKEYCODE_CHANNEL_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa056914fd17ae539dca44f43745d8e05c">keycodes.h</a>
+</li>
+<li>AKEYCODE_CLEAR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa95bd8c25adeaa570108c7403f08a2901">keycodes.h</a>
+</li>
+<li>AKEYCODE_COMMA
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0ca0bfbdc67b2c6f76e8fcaaf782c227">keycodes.h</a>
+</li>
+<li>AKEYCODE_CONTACTS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0aa2cfca11b7cabf82341a9dbec83f10">keycodes.h</a>
+</li>
+<li>AKEYCODE_CTRL_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaaca9d0df6cc18492209eb287e659aeb1">keycodes.h</a>
+</li>
+<li>AKEYCODE_CTRL_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa99b317cf2f1eb6b06d0226e05223e60c">keycodes.h</a>
+</li>
+<li>AKEYCODE_D
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7e4cb3ef66209a2779be2c8239b57b51">keycodes.h</a>
+</li>
+<li>AKEYCODE_DEL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacd013221b457d98975dc47e49817e28a">keycodes.h</a>
+</li>
+<li>AKEYCODE_DPAD_CENTER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5e9c93273fd39148f54167133aa5b9ae">keycodes.h</a>
+</li>
+<li>AKEYCODE_DPAD_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa84b721b13aae56c9f1d3c22b3d81627a">keycodes.h</a>
+</li>
+<li>AKEYCODE_DPAD_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa668dfb3ed79a37c2c07838c161c1b344">keycodes.h</a>
+</li>
+<li>AKEYCODE_DPAD_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac6f9d81b6239696a1836695bbfc6a975">keycodes.h</a>
+</li>
+<li>AKEYCODE_DPAD_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf2fd3133a88f3b6725834032bd74bd9e">keycodes.h</a>
+</li>
+<li>AKEYCODE_DVR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacf2f03b925a02ba6de9fd98737546a60">keycodes.h</a>
+</li>
+<li>AKEYCODE_E
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae218af7ceb207227bb10f0525e68a8d0">keycodes.h</a>
+</li>
+<li>AKEYCODE_EISU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaadd69273b99eb0b848d98b2d6b3ad3234">keycodes.h</a>
+</li>
+<li>AKEYCODE_ENDCALL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaff971957ae3a4e272b21987854e18d9b">keycodes.h</a>
+</li>
+<li>AKEYCODE_ENTER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac784a7bbbfbdab05fab6c6a1f29c98ff">keycodes.h</a>
+</li>
+<li>AKEYCODE_ENVELOPE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaade96efe470f428bb5c4eaea6ffc3681c">keycodes.h</a>
+</li>
+<li>AKEYCODE_EQUALS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0a197df7ec719c95ddcd6836e76c8498">keycodes.h</a>
+</li>
+<li>AKEYCODE_ESCAPE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac52177e5508edacb8e9c6d3a25db4fb6">keycodes.h</a>
+</li>
+<li>AKEYCODE_EXPLORER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaded9ec81ae6dab451665317723b94083">keycodes.h</a>
+</li>
+<li>AKEYCODE_F
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa455f71ecfe59af0fbd901ac0d0a8d53a">keycodes.h</a>
+</li>
+<li>AKEYCODE_F1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3b84f2c503a9e839f3d36e10e3307fcf">keycodes.h</a>
+</li>
+<li>AKEYCODE_F10
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa60660b13acab39282d0558cdcc93474">keycodes.h</a>
+</li>
+<li>AKEYCODE_F11
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa64cc7b1d8e53d90ff57c39d0b5a4dd22">keycodes.h</a>
+</li>
+<li>AKEYCODE_F12
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa491000231e0ba221b6916b1d9d2c9fb7">keycodes.h</a>
+</li>
+<li>AKEYCODE_F2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1360f7ec66aa6421e240dae637262e84">keycodes.h</a>
+</li>
+<li>AKEYCODE_F3
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a4ce6105e12a3a9071cae2f40515085">keycodes.h</a>
+</li>
+<li>AKEYCODE_F4
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa882050e4d0f917470a5b91fbf6ae9ebf">keycodes.h</a>
+</li>
+<li>AKEYCODE_F5
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab01807c72b46620bb50fcb6abe24d937">keycodes.h</a>
+</li>
+<li>AKEYCODE_F6
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa04a12e81ed80bb42ef5c63cedf0dc60">keycodes.h</a>
+</li>
+<li>AKEYCODE_F7
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9583b8e4b0d994b7e3a193b67cf6020c">keycodes.h</a>
+</li>
+<li>AKEYCODE_F8
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa55ca54d42d8df70de2ce9031db1344c8">keycodes.h</a>
+</li>
+<li>AKEYCODE_F9
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0c8225c0ef98da730933ae914077dbc9">keycodes.h</a>
+</li>
+<li>AKEYCODE_FOCUS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa23be9506f92f6efe14d47306a39a2187">keycodes.h</a>
+</li>
+<li>AKEYCODE_FORWARD
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafbf0a16c7746e5dee2fd3adbd50da88a">keycodes.h</a>
+</li>
+<li>AKEYCODE_FORWARD_DEL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9516bc190d37fea27e07ddab0c607b51">keycodes.h</a>
+</li>
+<li>AKEYCODE_FUNCTION
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1764b777aa56605f4029d3c71fe70722">keycodes.h</a>
+</li>
+<li>AKEYCODE_G
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa165067e10464019411f768bba9e533d9">keycodes.h</a>
+</li>
+<li>AKEYCODE_GRAVE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa929561086ae7b519fa962597bc85f171">keycodes.h</a>
+</li>
+<li>AKEYCODE_GUIDE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf33a5fa1f163245360aeed89d64b0233">keycodes.h</a>
+</li>
+<li>AKEYCODE_H
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad89a91a1500cb162f22962781ebfd9dc">keycodes.h</a>
+</li>
+<li>AKEYCODE_HEADSETHOOK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0d3d29515a4815fe8d6d8d3291507a33">keycodes.h</a>
+</li>
+<li>AKEYCODE_HELP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab062b403701292c9e2db96a1f88cc6d9">keycodes.h</a>
+</li>
+<li>AKEYCODE_HENKAN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab0686dd37c57d833d1158b7f1d85ee02">keycodes.h</a>
+</li>
+<li>AKEYCODE_HOME
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa526c2411b7476b7ae579f57a0378b2dd">keycodes.h</a>
+</li>
+<li>AKEYCODE_I
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4d44b5e4a19580540d8d77bf5755d74b">keycodes.h</a>
+</li>
+<li>AKEYCODE_INFO
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17e76263257a5dc654a413c9dc2fd649">keycodes.h</a>
+</li>
+<li>AKEYCODE_INSERT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa62f663d11e91af750a51ddd060b08644">keycodes.h</a>
+</li>
+<li>AKEYCODE_J
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa70c259612ccec117d70afaef947a6a7a">keycodes.h</a>
+</li>
+<li>AKEYCODE_K
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5ce56cf50d3632c275c524bd78d0d932">keycodes.h</a>
+</li>
+<li>AKEYCODE_KANA
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa62d090ae5c95a04dacdff79817dad531">keycodes.h</a>
+</li>
+<li>AKEYCODE_KATAKANA_HIRAGANA
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3be7db22b3c8aa046a46631e44863c28">keycodes.h</a>
+</li>
+<li>AKEYCODE_L
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab61c534fd0f4e56c4ba13861a2f5982b">keycodes.h</a>
+</li>
+<li>AKEYCODE_LANGUAGE_SWITCH
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7b8e87b47c17c5f1e97fcb56faaa26ff">keycodes.h</a>
+</li>
+<li>AKEYCODE_LAST_CHANNEL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa187963dd6f74b96f132f23e01dea35e9">keycodes.h</a>
+</li>
+<li>AKEYCODE_LEFT_BRACKET
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabdeda0d373aa37ef2ded5ffdfc008708">keycodes.h</a>
+</li>
+<li>AKEYCODE_M
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa43b19e5e5234ce90c8e7ef67dd0cabd1">keycodes.h</a>
+</li>
+<li>AKEYCODE_MANNER_MODE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa380279768c5c50d92bef2a88394f967f">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_AUDIO_TRACK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3cdb53cdf8c576e272502da06daa52e1">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_CLOSE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6788c6e1443140b0ec4d004d8293e998">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_EJECT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa317bffd44306b021c401d3a26b82a7f6">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_FAST_FORWARD
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa69e648024402af688d490a2041f15bca">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_NEXT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf5a6c3fc963e8163852b9a23e3a198b3">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_PAUSE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f4e0178c2028b3042b0a5948e38e4e4">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_PLAY
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa615cf6202b0ae0ed550f42f6c64b36a1">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_PLAY_PAUSE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa42f8fe71e8d45b5a83d83d80c3da40e1">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_PREVIOUS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa81432c31b00d47f768c29163eb276acb">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_RECORD
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17e1eae0b245176aaa024a53411441f9">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_REWIND
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaecd53183b84c23a2ca65670a23674319">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_STOP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac4faa33993d80db1326073ea15a38e7d">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_TOP_MENU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf3ddf83cb2f701911b03c3a738e2e73a">keycodes.h</a>
+</li>
+<li>AKEYCODE_MENU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa707b85e89923b0f760be795972a87d76">keycodes.h</a>
+</li>
+<li>AKEYCODE_META_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaaadfb2d920bbe422c096120d39811c58">keycodes.h</a>
+</li>
+<li>AKEYCODE_META_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68038455e2b0846db51f9957e0df9cb8">keycodes.h</a>
+</li>
+<li>AKEYCODE_MINUS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaca10bd34ad0abecfecace908b8cb92ca">keycodes.h</a>
+</li>
+<li>AKEYCODE_MOVE_END
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5605f49f5271430f5f150efb3cd0398a">keycodes.h</a>
+</li>
+<li>AKEYCODE_MOVE_HOME
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7544f3de2fb5f78bec62af94a32fdc58">keycodes.h</a>
+</li>
+<li>AKEYCODE_MUHENKAN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7321e5c6b3cbab142bd16957653b2ac7">keycodes.h</a>
+</li>
+<li>AKEYCODE_MUSIC
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14508751d70a0404b194d4b6df83ec72">keycodes.h</a>
+</li>
+<li>AKEYCODE_MUTE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f6675d38f50e3556a8531839fd83f02">keycodes.h</a>
+</li>
+<li>AKEYCODE_N
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6c0b26804c89560a9e87c45f7f9fed36">keycodes.h</a>
+</li>
+<li>AKEYCODE_NOTIFICATION
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6115506352a5828532fc6a0b91683331">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUM
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe6e880f65bebbdd5246a4164c4ab37a">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUM_LOCK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad5e349eadd3255c6ad4982dc40ed23ef">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_0
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa343df35e6a0ad0599e19b8ef7174909b">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5c0ec8e42917fa9ac53977db3e6aeb17">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4dfd17c2209908e1ec890e10a3211f89">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_3
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa1efe1886a4b472b999215c0e81f7386">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_4
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1fdd16681c1441b934f679b94fd0e4f8">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_5
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf5916003e7c737a8cc06e52d2ee76c3b">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_6
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa13b83389e0f5de129227af4b8d3f035d">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_7
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaed9468951ef2887c07c8095c2e7d4c93">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_8
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5f0a300566235720eb93fee9f2196642">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_9
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad0c490e3965df546e2d5a83edf423d95">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_ADD
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9d2fefa9a3f6037f48b247e66dd28c35">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_COMMA
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa900e3bb0bc4ff70ba786f18ff4db0bd1">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_DIVIDE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaac108b744e8f93af69158d146425236c">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_DOT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6aab6b5914e120b43b3a1a8269e9cee1">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_ENTER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa79432be5f7a44e99ddc3721fd9fd212e">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_EQUALS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c1007a59641499ee5e1508e747c5ed">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_LEFT_PAREN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacc903e9eb495cf6cef7c6bc825f82f54">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_MULTIPLY
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa47ce00b838e7ee0a34066dc2595ac735">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_RIGHT_PAREN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7662e0f2a099239dc69f6a27c7daabf9">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_SUBTRACT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa2bee314dbbea0a349eb301d10256bbe">keycodes.h</a>
+</li>
+<li>AKEYCODE_O
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa249667bc4a59d99be1914535877329fb">keycodes.h</a>
+</li>
+<li>AKEYCODE_P
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac68ef56b78bd0c8626cc68bb6cb9156f">keycodes.h</a>
+</li>
+<li>AKEYCODE_PAGE_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0b7fe1c18f53e6328657858a88826393">keycodes.h</a>
+</li>
+<li>AKEYCODE_PAGE_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4fd0d4ea5b6898f4a40011b97a739a04">keycodes.h</a>
+</li>
+<li>AKEYCODE_PAIRING
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0ecddd3dce52cf60c96c5d430b1f553">keycodes.h</a>
+</li>
+<li>AKEYCODE_PERIOD
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9dd68c8ecebd4e274e8c357dcdfe8a04">keycodes.h</a>
+</li>
+<li>AKEYCODE_PICTSYMBOLS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacdc7c004da1594fa156de87befef5f41">keycodes.h</a>
+</li>
+<li>AKEYCODE_PLUS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7f72d867b311e0845aef732dcc66495">keycodes.h</a>
+</li>
+<li>AKEYCODE_POUND
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf448758c44899e41b67f76dfe3be51e9">keycodes.h</a>
+</li>
+<li>AKEYCODE_POWER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabecfbcb9b6f5e85fdfdfa98fbc3326e6">keycodes.h</a>
+</li>
+<li>AKEYCODE_PROG_BLUE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5e82219fdb937fee5a22426c607dd4e0">keycodes.h</a>
+</li>
+<li>AKEYCODE_PROG_GREEN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad50c1e2136e47843a8dabca929f8ead1">keycodes.h</a>
+</li>
+<li>AKEYCODE_PROG_RED
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2d9e3e82e69955f649b586f4518e074c">keycodes.h</a>
+</li>
+<li>AKEYCODE_PROG_YELLOW
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafa813640412bd41a181f0ec3a33dddc4">keycodes.h</a>
+</li>
+<li>AKEYCODE_Q
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa932cf6ea8d87e6d6d97af658dd0fa206">keycodes.h</a>
+</li>
+<li>AKEYCODE_R
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaba25ac2c15a8edbbbff16a9fe6e74532">keycodes.h</a>
+</li>
+<li>AKEYCODE_RIGHT_BRACKET
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa084dfa52626040a08d374f8aec066e6a">keycodes.h</a>
+</li>
+<li>AKEYCODE_RO
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae8b0af04dac5ea56fd55e577fd9e6be4">keycodes.h</a>
+</li>
+<li>AKEYCODE_S
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae1ed25c28a8fce578cddb17ca6888ff6">keycodes.h</a>
+</li>
+<li>AKEYCODE_SCROLL_LOCK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa78ff5c8316235635f76e3c3179e9a7fc">keycodes.h</a>
+</li>
+<li>AKEYCODE_SEARCH
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac644fd307fd0ef0d3ed3d2e074c1a4b7">keycodes.h</a>
+</li>
+<li>AKEYCODE_SEMICOLON
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac0a2920161f4f2d97b0b060614b23391">keycodes.h</a>
+</li>
+<li>AKEYCODE_SETTINGS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa2bbd457230c3028df6b91d5bdda9159">keycodes.h</a>
+</li>
+<li>AKEYCODE_SHIFT_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafb9875645596928cec46368e74499dc4">keycodes.h</a>
+</li>
+<li>AKEYCODE_SHIFT_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf9eab1348ae1e8f18ad5bf3c77df4212">keycodes.h</a>
+</li>
+<li>AKEYCODE_SLASH
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa54c047be3811d637a33d9b3e39d16e1a">keycodes.h</a>
+</li>
+<li>AKEYCODE_SLEEP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafc077e5a6b447ea060c144f6e65bd207">keycodes.h</a>
+</li>
+<li>AKEYCODE_SOFT_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2dc78d3a93876b77402d2a7f02e4b899">keycodes.h</a>
+</li>
+<li>AKEYCODE_SOFT_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8cadfbfcaaa83fef168de13639adfcae">keycodes.h</a>
+</li>
+<li>AKEYCODE_SPACE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa10389300ac5d70f8d9733564b3cab4e7">keycodes.h</a>
+</li>
+<li>AKEYCODE_STAR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1461fbf54e3dcba96e5d6d0638c18305">keycodes.h</a>
+</li>
+<li>AKEYCODE_STB_INPUT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa988b0372359b2bca7390878fdba9e1b5">keycodes.h</a>
+</li>
+<li>AKEYCODE_STB_POWER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab28aea3a51b11c9f227ce8cd5ff55a3d">keycodes.h</a>
+</li>
+<li>AKEYCODE_SWITCH_CHARSET
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad6a1f88b2cc3b6ff8f1724eb01473ec3">keycodes.h</a>
+</li>
+<li>AKEYCODE_SYM
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6c1c6752d5db5e02da51d8937e5e3c6f">keycodes.h</a>
+</li>
+<li>AKEYCODE_SYSRQ
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14e22c69bcd47ffb4445ee18a4332d84">keycodes.h</a>
+</li>
+<li>AKEYCODE_T
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2feac8b458ef8eb9c0a0dd73766927c2">keycodes.h</a>
+</li>
+<li>AKEYCODE_TAB
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1b1bfda850b2acd0b60e8456e2bfa958">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0776ffae512b4848e53fce762a3a5017">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_ANTENNA_CABLE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe33a80d6d3bf889af25cbd77fdb89f9">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_AUDIO_DESCRIPTION
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa419f0adac43cad104cd6cf83dc5f13f6">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5fca6a9ec1ce246bf3c53d859ac9f5eb">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaccc5900ca5dd399d5ce11dd8ca324678">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_CONTENTS_MENU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4c18feeafff3c41081073c025ee017b8">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_DATA_SERVICE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa954c2251b2cb53f47637802cb66baf06">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa1750b29e396bd1fd237ed4aadacc8f5">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_COMPONENT_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa156e2dba81e7c73624ccf8c2ef8833ae">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_COMPONENT_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8db9b6ee1457267abea03430781bb0ec">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_COMPOSITE_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5c3097f14c6582958ba1d14d70115ccd">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_COMPOSITE_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaada13cbb9d619bc610678ad66325647b9">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_HDMI_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a50de965f50ab3aa42772aac0808445">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_HDMI_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7ec65c008471d771bf879ec012f5c7f">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_HDMI_3
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a0f267a2696d15bf16127121b1f1c7f">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_HDMI_4
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4437c1d8d2d33058cfa71ec7b2771ec5">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_VGA_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa149b2c8a4817075c0a41e0adf11c8e85">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_MEDIA_CONTEXT_MENU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaadde70071f6a432f367079efa6e1a6fe">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_NETWORK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaec5e46a5afc57953d1772e086307aa42">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_NUMBER_ENTRY
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa630a08e07a3b4c6bcac9a1a72d176055">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_POWER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafda3b0ea1b158831fc443bf4911a3930">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_RADIO_SERVICE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa93dd3fd752701af5a5491e01cc15db72">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_SATELLITE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3707d4396417535a611e4548afe33936">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_SATELLITE_BS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8c52e7d06525c0ee5d943d63a0fa8ea5">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_SATELLITE_CS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4eea1809a9ff679ed7773332d728c6b0">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_SATELLITE_SERVICE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17c0e68066b86610ff168c6367af36eb">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_TELETEXT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d3d7b89756df37f01d6d0f13beff1db">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_TERRESTRIAL_ANALOG
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14f2b6fe8550832ef9e3f9aa53164073">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_TERRESTRIAL_DIGITAL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacad8c149251a78760a5fe4931b9cdf16">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_TIMER_PROGRAMMING
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0293c2a63e4d955080334bef6640840">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_ZOOM_MODE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8e79045045293070c8eb9e408f1335b4">keycodes.h</a>
+</li>
+<li>AKEYCODE_U
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac1a220314f986aae45d7fe3b35501595">keycodes.h</a>
+</li>
+<li>AKEYCODE_UNKNOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa593f8ae18990d627785719284a12a6f">keycodes.h</a>
+</li>
+<li>AKEYCODE_V
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4043bc48fa55cce7825176052d6e199a">keycodes.h</a>
+</li>
+<li>AKEYCODE_VOICE_ASSIST
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa95898663b7f74c93d0b860a43528c744">keycodes.h</a>
+</li>
+<li>AKEYCODE_VOLUME_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a882dae17080d3b5f3329e79db60c66">keycodes.h</a>
+</li>
+<li>AKEYCODE_VOLUME_MUTE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa174a5c7c39753235109696e82870c575">keycodes.h</a>
+</li>
+<li>AKEYCODE_VOLUME_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5b81e325d9efd633eef7535a5b538882">keycodes.h</a>
+</li>
+<li>AKEYCODE_W
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0c80e98547c3daa01f3d9e7f4f00425">keycodes.h</a>
+</li>
+<li>AKEYCODE_WAKEUP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa903c5152d26b3011ae521afa06759429">keycodes.h</a>
+</li>
+<li>AKEYCODE_WINDOW
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe7531c40ff4a31614ff6fd61802ebe8">keycodes.h</a>
+</li>
+<li>AKEYCODE_X
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaec585cebac89004faffbdc28dc6d81c5">keycodes.h</a>
+</li>
+<li>AKEYCODE_Y
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa06fc277ef25acdd89d64c18eed0daa9b">keycodes.h</a>
+</li>
+<li>AKEYCODE_YEN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5ee19d21912056b902e283efa2d9d14b">keycodes.h</a>
+</li>
+<li>AKEYCODE_Z
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7439a09f219a0addc13c758ef7508cce">keycodes.h</a>
+</li>
+<li>AKEYCODE_ZENKAKU_HANKAKU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf782be8df9a8ca5dc86c9bfeabac6f22">keycodes.h</a>
+</li>
+<li>AKEYCODE_ZOOM_IN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacfce9bb78ef8106dce4868f81cca4fb4">keycodes.h</a>
+</li>
+<li>AKEYCODE_ZOOM_OUT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacf035f5234c3df4589f35a50e99e0535">keycodes.h</a>
+</li>
+<li>AKeyEvent_getAction()
+: <a class="el" href="group___input.html#ga36ec0b59f98f86a7ca263ba91279896d">input.h</a>
+</li>
+<li>AKeyEvent_getDownTime()
+: <a class="el" href="group___input.html#gaf475b6f0860bdfca4ceea7bc46eab1a9">input.h</a>
+</li>
+<li>AKeyEvent_getEventTime()
+: <a class="el" href="group___input.html#gae3eac7d68195d1767c947ca267842696">input.h</a>
+</li>
+<li>AKeyEvent_getFlags()
+: <a class="el" href="group___input.html#ga2a18e98efe0c4ccb6f39bb13c555010e">input.h</a>
+</li>
+<li>AKeyEvent_getKeyCode()
+: <a class="el" href="group___input.html#ga6b01ecd60018a5445f4917a861ca9466">input.h</a>
+</li>
+<li>AKeyEvent_getMetaState()
+: <a class="el" href="group___input.html#gabdda62b40b22727af2fb41740bf4787b">input.h</a>
+</li>
+<li>AKeyEvent_getRepeatCount()
+: <a class="el" href="group___input.html#ga5358fe3ebbd4b5b2f88a4ad2eba6f885">input.h</a>
+</li>
+<li>AKeyEvent_getScanCode()
+: <a class="el" href="group___input.html#ga4a0a846b7a195aeb290dfcd2250137d9">input.h</a>
+</li>
+<li>ALooper
+: <a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">looper.h</a>
+</li>
+<li>ALooper_acquire()
+: <a class="el" href="group___looper.html#gae1ad7ac48ab01a34bfd25840c92ff07b">looper.h</a>
+</li>
+<li>ALooper_addFd()
+: <a class="el" href="group___looper.html#ga2668285bfadcf21ef4d371568a30be33">looper.h</a>
+</li>
+<li>ALooper_callbackFunc
+: <a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">looper.h</a>
+</li>
+<li>ALOOPER_EVENT_ERROR
+: <a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a14016d8f39373b8ce061276a957960f6">looper.h</a>
+</li>
+<li>ALOOPER_EVENT_HANGUP
+: <a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a5e7fb5acdecef18b2c293f6309e5d4ab">looper.h</a>
+</li>
+<li>ALOOPER_EVENT_INPUT
+: <a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9ae3d18f8dd1faf6f34468df10667949bc">looper.h</a>
+</li>
+<li>ALOOPER_EVENT_INVALID
+: <a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9aefe82c6ce8e02d13aceaebdec15c2aff">looper.h</a>
+</li>
+<li>ALOOPER_EVENT_OUTPUT
+: <a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a71273fd07e009057e6e3475d10f8286d">looper.h</a>
+</li>
+<li>ALooper_forThread()
+: <a class="el" href="group___looper.html#ga741ccd90a0eb9209c6bddf2326d89e4a">looper.h</a>
+</li>
+<li>ALOOPER_POLL_CALLBACK
+: <a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a64fe936780bfd9927affaf8e8cc81cc2">looper.h</a>
+</li>
+<li>ALOOPER_POLL_ERROR
+: <a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409af8ebd4022f6f5d5fea864f6999b7e6b4">looper.h</a>
+</li>
+<li>ALOOPER_POLL_TIMEOUT
+: <a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a3fe4eec66dff78a9fa8afca02e8b8443">looper.h</a>
+</li>
+<li>ALOOPER_POLL_WAKE
+: <a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a55528f1b28df17cc4b6317cc0d0fde47">looper.h</a>
+</li>
+<li>ALooper_pollAll()
+: <a class="el" href="group___looper.html#gaa7cd0636edc4ed227aadc585360ebefa">looper.h</a>
+</li>
+<li>ALooper_pollOnce()
+: <a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">looper.h</a>
+</li>
+<li>ALooper_prepare()
+: <a class="el" href="group___looper.html#ga1a070b904dd957cc65af9eb5ef6dfa25">looper.h</a>
+</li>
+<li>ALOOPER_PREPARE_ALLOW_NON_CALLBACKS
+: <a class="el" href="group___looper.html#ggaf9bdc3014f3d54c426b6d2df10de4960a1fff26ab5859b0308b58a3f8d58ef1eb">looper.h</a>
+</li>
+<li>ALooper_release()
+: <a class="el" href="group___looper.html#gab723c3c2ac2c66bc695913a194073727">looper.h</a>
+</li>
+<li>ALooper_removeFd()
+: <a class="el" href="group___looper.html#gaf7d68ed05698b251489b4f6c8e54daad">looper.h</a>
+</li>
+<li>ALooper_wake()
+: <a class="el" href="group___looper.html#gab2585652f8ae2e2444979194ebe32aaf">looper.h</a>
+</li>
+<li>AMETA_ALT_LEFT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca256c74b768ecee57e3218e81ae6945df">input.h</a>
+</li>
+<li>AMETA_ALT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caba44b1077427e4da1d202e0c8f772881">input.h</a>
+</li>
+<li>AMETA_ALT_RIGHT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca985db074c0f44749ca86b5cc0454056a">input.h</a>
+</li>
+<li>AMETA_CAPS_LOCK_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafc467c98d509b0de28b298801a0c3e37">input.h</a>
+</li>
+<li>AMETA_CTRL_LEFT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca752c837afd5ff0fcf75ddee7b6808be6">input.h</a>
+</li>
+<li>AMETA_CTRL_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cabe927318a2a11a46be3e9d78dbd81ef5">input.h</a>
+</li>
+<li>AMETA_CTRL_RIGHT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca0ab007e367ae136b873b3e6636747419">input.h</a>
+</li>
+<li>AMETA_FUNCTION_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca545b31b72b0454c22c170ff534ddfdf1">input.h</a>
+</li>
+<li>AMETA_META_LEFT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca6f923de8f2cd72e3ad86149c0747906f">input.h</a>
+</li>
+<li>AMETA_META_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca9c04e7c2ad1f0f41af60402188a29c4a">input.h</a>
+</li>
+<li>AMETA_META_RIGHT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafdf56d1259ae16c97161c443d7949bdf">input.h</a>
+</li>
+<li>AMETA_NONE
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cae0a3cb26517b3f876beb37594494526d">input.h</a>
+</li>
+<li>AMETA_NUM_LOCK_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca15d234534a6870add5594f02b7333dc6">input.h</a>
+</li>
+<li>AMETA_SCROLL_LOCK_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafe8dacdc6566f655a3eab73ea4a9af5a">input.h</a>
+</li>
+<li>AMETA_SHIFT_LEFT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caa01fa027cdd8951530437bcbe04c3ed7">input.h</a>
+</li>
+<li>AMETA_SHIFT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caa3d5f49c3a55b653a94c798a2c93b197">input.h</a>
+</li>
+<li>AMETA_SHIFT_RIGHT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cac52930581c339216218a6f50c5b57aa1">input.h</a>
+</li>
+<li>AMETA_SYM_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca8af1e90950a728baca807a83e50b22ea">input.h</a>
+</li>
+<li>AMetaDataEvent
+: <a class="el" href="group___sensor.html#ga0378daec23b2d8a70438ef7c3912475f">sensor.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_CANCEL
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a3952b960f5eb8c4f55b42741e286b74e">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_DOWN
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a225e61c48ba334abc1b5811db02edcf1">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_HOVER_ENTER
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a247b2c60ad92f3130ad43c907986ffb3">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_HOVER_EXIT
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600ac00b1eacfbea779863abf3fcf02134aa">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_HOVER_MOVE
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a84bc9fb3c01ff7ca9ee452a510e7de60">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_MASK
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600abf84a22c84d4b7228102b80f3af92a4f">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_MOVE
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a41c56c4e772953fce60c93bc671639a3">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_OUTSIDE
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a7c3c96b74af4c8304b8137ac6d201517">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_POINTER_DOWN
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a1618c641fd3f49fa7483f298d05b3cd2">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_POINTER_INDEX_MASK
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a51384339fbb57c0087f7f50c45d9cff3">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT
+: <a class="el" href="group___input.html#gaeb170c0fbeeed1d999160566f09f169e">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_POINTER_UP
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600af2ef56aa7220eeb2073b9b028737bc1e">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_SCROLL
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a45ba62b1e6fab4e84d5782d7c35ced04">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_UP
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a43798b2b7a6de4616d150b2438b8419e">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_BRAKE
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae3a99764f3681dd9e094852bb2489ece">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_DISTANCE
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae800909411a1e83173b0eef7aa458d0e">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GAS
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab0223f235a6044815918af2abafcbf16">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_1
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadcc18afd3a7069412617df34db5a27bc">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_10
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da29ba08f4ddc658e0127ee5bc08d185f2">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_11
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dafc64a4b307f62bb12b645918aa7edb57">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_12
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae5d32b3e9cec4936ae1e074f320c3063">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_13
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5f19f5bc52e5eaec5ebd4f07aad12180">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_14
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadb866d826ecf25161d7c7f86166e149b">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_15
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da7e86befc8502b8df687284f3c40b2eca">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_16
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daaaa011ba929b18c6da71153638f92336">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_2
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dac4addf06abfa6c76f0578ddde049aad5">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_3
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dac7df57ef5082e10be83f66d7477bce9c">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_4
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da321873d126b7d545665096694cb7d9d9">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_5
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da9b47cef7060197e1b0302a8a718c3085">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_6
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daad7e47a1b5fb66864b6d988374f50a84">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_7
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da222c06f51a60e59504b635dbf89a025b">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_8
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab59a8a373a913e40b146ed762976d6fe">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_9
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da721fa0fbca8b22f1ecc8d3870f4e7443">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_HAT_X
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da04245c76cb9b32dcba920661f11ac9da">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_HAT_Y
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da98c323321d908db459e7cf86a7e8a482">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_HSCROLL
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da92955e6b0f3f82af66a505c854e9edff">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_LTRIGGER
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae4c65c3b1bd2946ff9e18c6041cdb591">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_ORIENTATION
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da114f2b3fc233ccf7a4470787c31457d2">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_PRESSURE
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da3b4fd0f17cfdeb6a055babecd2b0ded8">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_RTRIGGER
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da116e80c6be166290ca481fefa5de38c1">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_RUDDER
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da318a0782f895949407fc192fc4280257">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_RX
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da689b612864177d6b57d4181442e3e38e">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_RY
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa20188da209300e1f80f6f5bd4058e13">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_RZ
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da381948b3321afd390ad164345eb9206b">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_SIZE
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da4baba3ccaec881089a864ba6deaf8bd6">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_THROTTLE
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da6d1f5d64e607104964eb43d8fae07a4f">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_TILT
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dafca0a235f69c4b38bfc95e7a7b8d9ab1">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_TOOL_MAJOR
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa273d64c392f86ae789fd5e24661ba0a">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_TOOL_MINOR
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadebd200b37ffaf36b94e7e478c559142">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_TOUCH_MAJOR
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da792b9e01044a2e43e7f80e5559db20c2">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_TOUCH_MINOR
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa8b24b0f01f24898a36e5751c8eca63c">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_VSCROLL
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dad11be04b4b81715cad905ee9fa348e99">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_WHEEL
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab0ae83ebd74e672bb35378b92a440b1d">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_X
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5f4b5b009634039a1f361048a5fc6064">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_Y
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da64f7de8558265bd8179d206eb33eff6c">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_Z
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5a689e572da9bc5feafcb6c011368305">input.h</a>
+</li>
+<li>AMOTION_EVENT_BUTTON_BACK
+: <a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a1841d075a2992ff7fbefa3fd50189b86">input.h</a>
+</li>
+<li>AMOTION_EVENT_BUTTON_FORWARD
+: <a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a4105edf43f7748c52c859cc5aa7dc438">input.h</a>
+</li>
+<li>AMOTION_EVENT_BUTTON_PRIMARY
+: <a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8ab388f65477b9dd4c51e6367111168d65">input.h</a>
+</li>
+<li>AMOTION_EVENT_BUTTON_SECONDARY
+: <a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a08118700ecb4e147528a0e725afc9451">input.h</a>
+</li>
+<li>AMOTION_EVENT_BUTTON_TERTIARY
+: <a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8ae6e2af1e7065e035e8a10a595827180f">input.h</a>
+</li>
+<li>AMOTION_EVENT_EDGE_FLAG_BOTTOM
+: <a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388ad8b662839787e1c7dd2616f32c02aaeb">input.h</a>
+</li>
+<li>AMOTION_EVENT_EDGE_FLAG_LEFT
+: <a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388afb70c13f16daade25ba8132a5ea3cf52">input.h</a>
+</li>
+<li>AMOTION_EVENT_EDGE_FLAG_NONE
+: <a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a37dd7496968e6defbecc3c8d6ab2734d">input.h</a>
+</li>
+<li>AMOTION_EVENT_EDGE_FLAG_RIGHT
+: <a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a7d45674e03f1876a43d4810508905078">input.h</a>
+</li>
+<li>AMOTION_EVENT_EDGE_FLAG_TOP
+: <a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a915e1ade9b600d11a3c70a17a88de757">input.h</a>
+</li>
+<li>AMOTION_EVENT_FLAG_WINDOW_IS_OBSCURED
+: <a class="el" href="group___input.html#ggab04a0655cd1e3bcac5e8f48c18df1a57a200623e1e4eee7797cad30917d289d7a">input.h</a>
+</li>
+<li>AMOTION_EVENT_TOOL_TYPE_ERASER
+: <a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eaf9932f65b5b6b5800fb5873a60dbf0cb">input.h</a>
+</li>
+<li>AMOTION_EVENT_TOOL_TYPE_FINGER
+: <a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eafd789262defb8a268fa80d26b0c30bcc">input.h</a>
+</li>
+<li>AMOTION_EVENT_TOOL_TYPE_MOUSE
+: <a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9ea7be0c750d7d6719e7c948914400ae0de">input.h</a>
+</li>
+<li>AMOTION_EVENT_TOOL_TYPE_STYLUS
+: <a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eaf05dc95a74e560c89cec1f3100185fc7">input.h</a>
+</li>
+<li>AMOTION_EVENT_TOOL_TYPE_UNKNOWN
+: <a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9ea7e1ea0c955ebbac1349866e8995e0208">input.h</a>
+</li>
+<li>AMotionEvent_getAction()
+: <a class="el" href="group___input.html#ga73ea2093cc2343675ac43dd08bef4247">input.h</a>
+</li>
+<li>AMotionEvent_getAxisValue()
+: <a class="el" href="group___input.html#ga9d364cdcebf85237f599b25861f38c21">input.h</a>
+</li>
+<li>AMotionEvent_getButtonState()
+: <a class="el" href="group___input.html#ga1aa7ebb749416491b6f0c55ae87ddf49">input.h</a>
+</li>
+<li>AMotionEvent_getDownTime()
+: <a class="el" href="group___input.html#gad44be7697e68891688cd7bcfaffec209">input.h</a>
+</li>
+<li>AMotionEvent_getEdgeFlags()
+: <a class="el" href="group___input.html#gad7e1f0caa4c27194d4a8756a18432299">input.h</a>
+</li>
+<li>AMotionEvent_getEventTime()
+: <a class="el" href="group___input.html#ga7e13fbf3cff0700b0b620284ebdd3a33">input.h</a>
+</li>
+<li>AMotionEvent_getFlags()
+: <a class="el" href="group___input.html#ga2891d19197c070207098fa48adeb35af">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalAxisValue()
+: <a class="el" href="group___input.html#ga7ca740e1324f3cdb934252dce0c982d0">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalEventTime()
+: <a class="el" href="group___input.html#ga523f1a760754206965b42b08d62f9346">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalOrientation()
+: <a class="el" href="group___input.html#gaab9cb8fa670175ecc73c75eed4e5cd3f">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalPressure()
+: <a class="el" href="group___input.html#gaa8e9352ee5b043b3e1b6e2062d491010">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalRawX()
+: <a class="el" href="group___input.html#ga5d36c2e7420001c86ae2aa1168fe6f83">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalRawY()
+: <a class="el" href="group___input.html#ga6deb0e7690a93aa53e5872c2691b69fe">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalSize()
+: <a class="el" href="group___input.html#ga0a04bb7ec12928db7e62645e7fad3a9e">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalToolMajor()
+: <a class="el" href="group___input.html#ga160a5830e791e8c42ae97f51b92233d2">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalToolMinor()
+: <a class="el" href="group___input.html#gafe01aa7576a6d1bce750fb8482355849">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalTouchMajor()
+: <a class="el" href="group___input.html#gaf437f223668b97f19ebdbad4b9cf4483">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalTouchMinor()
+: <a class="el" href="group___input.html#ga126715d966e989652aa1ae5d38e0e898">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalX()
+: <a class="el" href="group___input.html#ga49a8ca89ff377b5ed2355e8d7220ae07">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalY()
+: <a class="el" href="group___input.html#ga30fc4e5d3ce144955859f8c97b51b73d">input.h</a>
+</li>
+<li>AMotionEvent_getHistorySize()
+: <a class="el" href="group___input.html#ga0aef34c236db6d7a56a50bf590be7bcc">input.h</a>
+</li>
+<li>AMotionEvent_getMetaState()
+: <a class="el" href="group___input.html#ga5644f0d952e3dea57ba9f7ce51dff2bb">input.h</a>
+</li>
+<li>AMotionEvent_getOrientation()
+: <a class="el" href="group___input.html#gad28422998da15b789edcba6b8bc5d615">input.h</a>
+</li>
+<li>AMotionEvent_getPointerCount()
+: <a class="el" href="group___input.html#ga612e68d104adbc6d14d87510e8066bd8">input.h</a>
+</li>
+<li>AMotionEvent_getPointerId()
+: <a class="el" href="group___input.html#ga599e21a79c706807243a8ee31b116138">input.h</a>
+</li>
+<li>AMotionEvent_getPressure()
+: <a class="el" href="group___input.html#ga97fcaa6cd08c9d54b35711e482e06c8d">input.h</a>
+</li>
+<li>AMotionEvent_getRawX()
+: <a class="el" href="group___input.html#gafe45e29ef138cc30592237ce479837f0">input.h</a>
+</li>
+<li>AMotionEvent_getRawY()
+: <a class="el" href="group___input.html#ga5a09c3d742a93270861aa05f24257c23">input.h</a>
+</li>
+<li>AMotionEvent_getSize()
+: <a class="el" href="group___input.html#ga9b1f3c3df46b5269f9e74d2dd70c88a8">input.h</a>
+</li>
+<li>AMotionEvent_getToolMajor()
+: <a class="el" href="group___input.html#gac04099690f278a6a27191c2027b12a77">input.h</a>
+</li>
+<li>AMotionEvent_getToolMinor()
+: <a class="el" href="group___input.html#ga2222d459759ba4a8269647012d2718fb">input.h</a>
+</li>
+<li>AMotionEvent_getToolType()
+: <a class="el" href="group___input.html#ga2babe4e2e79952e004538f8f1878649c">input.h</a>
+</li>
+<li>AMotionEvent_getTouchMajor()
+: <a class="el" href="group___input.html#ga9ac18fe19534e07d80441582f489d471">input.h</a>
+</li>
+<li>AMotionEvent_getTouchMinor()
+: <a class="el" href="group___input.html#ga65f71e257b5fcb29dcbaaf59b3fcb3a7">input.h</a>
+</li>
+<li>AMotionEvent_getX()
+: <a class="el" href="group___input.html#ga22e255a5fa52761cd92ce78af91e9757">input.h</a>
+</li>
+<li>AMotionEvent_getXOffset()
+: <a class="el" href="group___input.html#ga7a94ce622eb78a17737fd8bddbf86e21">input.h</a>
+</li>
+<li>AMotionEvent_getXPrecision()
+: <a class="el" href="group___input.html#ga81a9be07673a01f43fd0241c7b4c254f">input.h</a>
+</li>
+<li>AMotionEvent_getY()
+: <a class="el" href="group___input.html#ga113f58a37e41f2a6c3007d68418edfa6">input.h</a>
+</li>
+<li>AMotionEvent_getYOffset()
+: <a class="el" href="group___input.html#ga7f6bd2c12d912f502c245b6ced6d3704">input.h</a>
+</li>
+<li>AMotionEvent_getYPrecision()
+: <a class="el" href="group___input.html#gae311e6e28bce4be905526f9ea71278ed">input.h</a>
+</li>
+<li>ANativeActivity
+: <a class="el" href="group___native_activity.html#ga8abd07923f37feb1ce724d139cc2609d">native_activity.h</a>
+</li>
+<li>ANativeActivity_createFunc
+: <a class="el" href="group___native_activity.html#ga569a53bcac3fcedb0189b7c412ebcb22">native_activity.h</a>
+</li>
+<li>ANativeActivity_finish()
+: <a class="el" href="group___native_activity.html#ga4d872ae54a239704c06a0517e23cc0ad">native_activity.h</a>
+</li>
+<li>ANATIVEACTIVITY_HIDE_SOFT_INPUT_IMPLICIT_ONLY
+: <a class="el" href="group___native_activity.html#ggaaf8fd5f0e57d456151c951e0f3715fc4a642e76508cc737bbc1df149756c2a807">native_activity.h</a>
+</li>
+<li>ANATIVEACTIVITY_HIDE_SOFT_INPUT_NOT_ALWAYS
+: <a class="el" href="group___native_activity.html#ggaaf8fd5f0e57d456151c951e0f3715fc4a0f4cbb55fa4c29b963b7b37d13352e6f">native_activity.h</a>
+</li>
+<li>ANativeActivity_hideSoftInput()
+: <a class="el" href="group___native_activity.html#gaf673d6efea7ce517ef46ff2551b25944">native_activity.h</a>
+</li>
+<li>ANativeActivity_onCreate
+: <a class="el" href="group___native_activity.html#ga02791d0d490839055169f39fdc905c5e">native_activity.h</a>
+</li>
+<li>ANativeActivity_setWindowFlags()
+: <a class="el" href="group___native_activity.html#gaa1d091ca4a99b0ce570bab1c8c06f297">native_activity.h</a>
+</li>
+<li>ANativeActivity_setWindowFormat()
+: <a class="el" href="group___native_activity.html#gaec8b12decdf2b9841344e75c4c038c5a">native_activity.h</a>
+</li>
+<li>ANATIVEACTIVITY_SHOW_SOFT_INPUT_FORCED
+: <a class="el" href="group___native_activity.html#gga39fca1837c5ce7715cbf571669660c13a324062ac78fab16b40e8de1b1ae173b5">native_activity.h</a>
+</li>
+<li>ANATIVEACTIVITY_SHOW_SOFT_INPUT_IMPLICIT
+: <a class="el" href="group___native_activity.html#gga39fca1837c5ce7715cbf571669660c13a9b7250ac0e5a626a81b176462a9df7c9">native_activity.h</a>
+</li>
+<li>ANativeActivity_showSoftInput()
+: <a class="el" href="group___native_activity.html#ga14eaeb6190f266369023b04d8ab9dba7">native_activity.h</a>
+</li>
+<li>ANativeActivityCallbacks
+: <a class="el" href="group___native_activity.html#ga28dca784e5ee939427135c72c0151c38">native_activity.h</a>
+</li>
+<li>ANativeWindow
+: <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">native_window.h</a>
+</li>
+<li>ANativeWindow_acquire()
+: <a class="el" href="group___native_activity.html#ga533876b57909243b238927344a6592db">native_window.h</a>
+</li>
+<li>ANativeWindow_Buffer
+: <a class="el" href="group___native_activity.html#gad0983ca473ce36293baf5e51a14c3357">native_window.h</a>
+</li>
+<li>ANativeWindow_fromSurface()
+: <a class="el" href="group___native_activity.html#ga774d0a87ec496b3940fcddccbc31fd9d">native_window_jni.h</a>
+</li>
+<li>ANativeWindow_getFormat()
+: <a class="el" href="group___native_activity.html#ga9e3a492a8300146b30d864f0ab22bb2e">native_window.h</a>
+</li>
+<li>ANativeWindow_getHeight()
+: <a class="el" href="group___native_activity.html#ga463ba99f6dee3edc1167a54e1ff7de15">native_window.h</a>
+</li>
+<li>ANativeWindow_getWidth()
+: <a class="el" href="group___native_activity.html#ga186f0040c5cb405a63d93889bb9a4ff1">native_window.h</a>
+</li>
+<li>ANativeWindow_lock()
+: <a class="el" href="group___native_activity.html#ga0b0e3b7d442dee83e1a1b42e5b0caee6">native_window.h</a>
+</li>
+<li>ANativeWindow_release()
+: <a class="el" href="group___native_activity.html#gae944e98865b902bd924663785d7b0258">native_window.h</a>
+</li>
+<li>ANativeWindow_setBuffersGeometry()
+: <a class="el" href="group___native_activity.html#ga7b0652533998d61e1a3b542485889113">native_window.h</a>
+</li>
+<li>ANativeWindow_unlockAndPost()
+: <a class="el" href="group___native_activity.html#ga4dc9b687ead9034fbc11bf2d90f203f9">native_window.h</a>
+</li>
+<li>ANDROID_BITMAP_FORMAT_A_8
+: <a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ad29996be25f8f88c96e016a1da5c4bca">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_FORMAT_NONE
+: <a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ac6f0378ea5cfefd9abee2596af5a9021">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_FORMAT_RGB_565
+: <a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13a11b32e10d6db28fae70ec3590cb9ee91">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_FORMAT_RGBA_4444
+: <a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13adc2ede06eafe20439271cb8137dc7528">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_FORMAT_RGBA_8888
+: <a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ab92ae96ceea06aa534583beadba84057">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_RESULT_ALLOCATION_FAILED
+: <a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a512f5b95b6b57e78d65502c06391f990">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_RESULT_BAD_PARAMETER
+: <a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7acf7205d1a348d867c63ac2885ce01374">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_RESULT_JNI_EXCEPTION
+: <a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a6b099b9533c38729a6c305f2fe93f98d">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_RESULT_SUCCESS
+: <a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a07f71cf5c5d4950ac9813ae4bbf6d076">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_RESUT_SUCCESS
+: <a class="el" href="group___bitmap.html#gafb665ac9fefad34ac5c035f5d1314080">bitmap.h</a>
+</li>
+<li>AndroidBitmap_getInfo()
+: <a class="el" href="group___bitmap.html#ga80292ee39d8a675928e38849742b54bf">bitmap.h</a>
+</li>
+<li>AndroidBitmap_lockPixels()
+: <a class="el" href="group___bitmap.html#ga2908d42fa4db286c34b7f8c11f29206f">bitmap.h</a>
+</li>
+<li>AndroidBitmap_unlockPixels()
+: <a class="el" href="group___bitmap.html#ga4aca91f37baddd42d0051dca8179d4ed">bitmap.h</a>
+</li>
+<li>AndroidBitmapFormat
+: <a class="el" href="group___bitmap.html#gaea286a2d4c61ae2abb02b51500499f13">bitmap.h</a>
+</li>
+<li>AOBB_STATE_ERROR_ALREADY_MOUNTED
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a8b074af151167a965a550b9829fafb37">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_ERROR_COULD_NOT_MOUNT
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a324da2b8fea5875339d442d1f2d0b45b">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_ERROR_COULD_NOT_UNMOUNT
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a1f2b51b53fc57b57a9967f6ce0c88dbe">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_ERROR_INTERNAL
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a50642881107d6673aace1494a5d6fce2">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_ERROR_NOT_MOUNTED
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a3ce8539aa8b531c9de1d16041322d7a8">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_ERROR_PERMISSION_DENIED
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a2467a4b6a634680e12c288a7790ff66c">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_MOUNTED
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a2a9c420e6008c108a7198fd861c042d5">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_UNMOUNTED
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a6710bb5b68cfc115eedcde2aafd8a667">storage_manager.h</a>
+</li>
+<li>AObbInfo
+: <a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">obb.h</a>
+</li>
+<li>AObbInfo_delete()
+: <a class="el" href="group___storage.html#gaec5a4428008f545e829486099298031a">obb.h</a>
+</li>
+<li>AObbInfo_getFlags()
+: <a class="el" href="group___storage.html#ga68d916570c756da9fd0d9096358300eb">obb.h</a>
+</li>
+<li>AObbInfo_getPackageName()
+: <a class="el" href="group___storage.html#ga1ec7eee61541fa5a9b578801a35b9cf3">obb.h</a>
+</li>
+<li>AObbInfo_getVersion()
+: <a class="el" href="group___storage.html#gacd8471c6d866cffe4a32f3b5997c782c">obb.h</a>
+</li>
+<li>AOBBINFO_OVERLAY
+: <a class="el" href="group___storage.html#ggae4d5251432e1a9e6803c0240cc492e18a33e2ae83b4c25d33a4335dccf1de1c3a">obb.h</a>
+</li>
+<li>AObbScanner_getObbInfo()
+: <a class="el" href="group___storage.html#ga7beb4f82e3bf9a4b8197917f92ac4d5e">obb.h</a>
+</li>
+<li>ARect
+: <a class="el" href="group___native_activity.html#gaa984a498f0e146ac57c6022a323423cf">rect.h</a>
+</li>
+<li>AREPORTING_MODE_CONTINUOUS
+: <a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa8a64337fcb7e338d487dc3edc873df1c">sensor.h</a>
+</li>
+<li>AREPORTING_MODE_ON_CHANGE
+: <a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa8542165ae195bf5784cdd9ba66bd2ab5">sensor.h</a>
+</li>
+<li>AREPORTING_MODE_ONE_SHOT
+: <a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa002273a1ab874159a38a7e3f6bb6a7bb">sensor.h</a>
+</li>
+<li>AREPORTING_MODE_SPECIAL_TRIGGER
+: <a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181faa2d29656b35889c4c23318982e847ae7">sensor.h</a>
+</li>
+<li>ASensor
+: <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">sensor.h</a>
+</li>
+<li>ASensor_getFifoMaxEventCount()
+: <a class="el" href="group___sensor.html#gae9969580eda319926a677a6937c7afb1">sensor.h</a>
+</li>
+<li>ASensor_getFifoReservedEventCount()
+: <a class="el" href="group___sensor.html#gaec7084c6a9d4d85f87c95a70511c5f53">sensor.h</a>
+</li>
+<li>ASensor_getMinDelay()
+: <a class="el" href="group___sensor.html#gacb6e021757c07344b58742611eaf68e7">sensor.h</a>
+</li>
+<li>ASensor_getName()
+: <a class="el" href="group___sensor.html#ga52f4b22990c70df0784b9ccf23314fae">sensor.h</a>
+</li>
+<li>ASensor_getReportingMode()
+: <a class="el" href="group___sensor.html#ga99e56b84cf421788c27998da8eab7e39">sensor.h</a>
+</li>
+<li>ASensor_getResolution()
+: <a class="el" href="group___sensor.html#ga3da2930dd866cf1f76da6bc39e578a46">sensor.h</a>
+</li>
+<li>ASensor_getStringType()
+: <a class="el" href="group___sensor.html#gabee3eb65390fc75a639c59d653af3591">sensor.h</a>
+</li>
+<li>ASensor_getType()
+: <a class="el" href="group___sensor.html#ga93962747ab3c7d2b609f97af26fc0230">sensor.h</a>
+</li>
+<li>ASensor_getVendor()
+: <a class="el" href="group___sensor.html#gafaf467fc71f7adba537a90f166e3320d">sensor.h</a>
+</li>
+<li>ASensor_isWakeUpSensor()
+: <a class="el" href="group___sensor.html#ga0ff4118e400bedac62be6b79e9e0f924">sensor.h</a>
+</li>
+<li>ASENSOR_MAGNETIC_FIELD_EARTH_MAX
+: <a class="el" href="group___sensor.html#gaf8b57b13c6432bc6136aac0ad3813d63">sensor.h</a>
+</li>
+<li>ASENSOR_MAGNETIC_FIELD_EARTH_MIN
+: <a class="el" href="group___sensor.html#ga4423a712e27b6d5a57d138796892886d">sensor.h</a>
+</li>
+<li>ASENSOR_STANDARD_GRAVITY
+: <a class="el" href="group___sensor.html#ga5129cb9e4091fc3474e246d5f950e52b">sensor.h</a>
+</li>
+<li>ASENSOR_STATUS_ACCURACY_HIGH
+: <a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8a2df5fb4e8b684e6a801a4aff9f50ba13">sensor.h</a>
+</li>
+<li>ASENSOR_STATUS_ACCURACY_LOW
+: <a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8a5f306f3d45a19573539462e4c813edc0">sensor.h</a>
+</li>
+<li>ASENSOR_STATUS_ACCURACY_MEDIUM
+: <a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ad7e9379a4f36a42f2659cd7aec214f2d">sensor.h</a>
+</li>
+<li>ASENSOR_STATUS_NO_CONTACT
+: <a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ae5d0475bd9491c4232a09afc81fa283d">sensor.h</a>
+</li>
+<li>ASENSOR_STATUS_UNRELIABLE
+: <a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ae8e43df50b7b85ed54f22c40f2cd748e">sensor.h</a>
+</li>
+<li>ASENSOR_TYPE_ACCELEROMETER
+: <a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167bad72017f34c12971593a8cb14f4f254df">sensor.h</a>
+</li>
+<li>ASENSOR_TYPE_GYROSCOPE
+: <a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba80e9827f6c3ded009f354dc7078a2c68">sensor.h</a>
+</li>
+<li>ASENSOR_TYPE_LIGHT
+: <a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba105331b6dea6f08e0d8fe3b736f8c174">sensor.h</a>
+</li>
+<li>ASENSOR_TYPE_MAGNETIC_FIELD
+: <a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba3b31509a3efebafb413e78f5ec9ae0e8">sensor.h</a>
+</li>
+<li>ASENSOR_TYPE_PROXIMITY
+: <a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba0c6a2e526ed2e4442b3843976f906932">sensor.h</a>
+</li>
+<li>ASensorEvent
+: <a class="el" href="group___sensor.html#ga6bb167c45f0ef0a94d8f178d227e781f">sensor.h</a>
+</li>
+<li>ASensorEventQueue
+: <a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">sensor.h</a>
+</li>
+<li>ASensorEventQueue_disableSensor()
+: <a class="el" href="group___sensor.html#ga03852b813887ec236a34c4aef0df4b68">sensor.h</a>
+</li>
+<li>ASensorEventQueue_enableSensor()
+: <a class="el" href="group___sensor.html#ga48a8379cf9de9b09a71a00f8a3699499">sensor.h</a>
+</li>
+<li>ASensorEventQueue_getEvents()
+: <a class="el" href="group___sensor.html#gab3d4354fd0d3ceb5fa97c129b024a18a">sensor.h</a>
+</li>
+<li>ASensorEventQueue_hasEvents()
+: <a class="el" href="group___sensor.html#ga79c9d6264fe81d4e30800f826db72913">sensor.h</a>
+</li>
+<li>ASensorEventQueue_setEventRate()
+: <a class="el" href="group___sensor.html#gaa6e89b6d69dc3e07f2d7e72e81ec7937">sensor.h</a>
+</li>
+<li>ASensorList
+: <a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">sensor.h</a>
+</li>
+<li>ASensorManager
+: <a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">sensor.h</a>
+</li>
+<li>ASensorManager_createEventQueue()
+: <a class="el" href="group___sensor.html#gac46f8b28bcc7a846dea9d841cab0a67b">sensor.h</a>
+</li>
+<li>ASensorManager_destroyEventQueue()
+: <a class="el" href="group___sensor.html#gaf35624037785cdea1e7fe9e0a73fc5e1">sensor.h</a>
+</li>
+<li>ASensorManager_getDefaultSensor()
+: <a class="el" href="group___sensor.html#gaf4880d87e01f5e2d4a9b8403e4047445">sensor.h</a>
+</li>
+<li>ASensorManager_getDefaultSensorEx()
+: <a class="el" href="group___sensor.html#ga4313457c0e82f4afa77ef13860629633">sensor.h</a>
+</li>
+<li>ASensorManager_getInstance()
+: <a class="el" href="group___sensor.html#gaa438fdaf34783a89d139f0a56d2692cd">sensor.h</a>
+</li>
+<li>ASensorManager_getSensorList()
+: <a class="el" href="group___sensor.html#ga645be938627498ab2b60d94c562204bd">sensor.h</a>
+</li>
+<li>ASensorRef
+: <a class="el" href="group___sensor.html#gafec8dd682458c750a5f0f913a0f162ce">sensor.h</a>
+</li>
+<li>ASensorVector
+: <a class="el" href="group___sensor.html#ga207e807f9e18271f6a763e57232b409f">sensor.h</a>
+</li>
+<li>AStorageManager
+: <a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">storage_manager.h</a>
+</li>
+<li>AStorageManager_delete()
+: <a class="el" href="group___storage.html#ga184c06dd9cec0f21db138167d6b331ed">storage_manager.h</a>
+</li>
+<li>AStorageManager_getMountedObbPath()
+: <a class="el" href="group___storage.html#gad5c90305d627e0c768da37cb3e9f08c4">storage_manager.h</a>
+</li>
+<li>AStorageManager_isObbMounted()
+: <a class="el" href="group___storage.html#ga7572f2c650fc16cce1b0ab94e913a1ba">storage_manager.h</a>
+</li>
+<li>AStorageManager_mountObb()
+: <a class="el" href="group___storage.html#ga61bebaf43e57b4b7f57e7a24a62e9e3d">storage_manager.h</a>
+</li>
+<li>AStorageManager_new()
+: <a class="el" href="group___storage.html#ga1c21ed9e0848fcfc03547c95eeb48877">storage_manager.h</a>
+</li>
+<li>AStorageManager_obbCallbackFunc
+: <a class="el" href="group___storage.html#gaf077d06586fa4c0212baa2fe458b9617">storage_manager.h</a>
+</li>
+<li>AStorageManager_unmountObb()
+: <a class="el" href="group___storage.html#ga4c32c8d2c780016fa36097d833b57809">storage_manager.h</a>
+</li>
+<li>AUncalibratedEvent
+: <a class="el" href="group___sensor.html#ga24acc545b908dd24cadc44c5e0760b3b">sensor.h</a>
+</li>
+<li>AWINDOW_FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa67363c129036872bc9dd29557e807508">window.h</a>
+</li>
+<li>AWINDOW_FLAG_ALT_FOCUSABLE_IM
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa961ff4c9c0903cfb8867d961bebe1659">window.h</a>
+</li>
+<li>AWINDOW_FLAG_BLUR_BEHIND
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa0377f46a626d411ace179c1c27d0a3f7">window.h</a>
+</li>
+<li>AWINDOW_FLAG_DIM_BEHIND
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa6155e77ae4e12cc56fb3f6f55f56bf6f">window.h</a>
+</li>
+<li>AWINDOW_FLAG_DISMISS_KEYGUARD
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa37c1077a12f1c8c6805b1da6f7bb213a">window.h</a>
+</li>
+<li>AWINDOW_FLAG_DITHER
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffae73488b436aaea163ba2f7051bf93d9d">window.h</a>
+</li>
+<li>AWINDOW_FLAG_FORCE_NOT_FULLSCREEN
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa4c21235db629d3937f87ffe98cd6fe5d">window.h</a>
+</li>
+<li>AWINDOW_FLAG_FULLSCREEN
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaca1f1d91313d7c32bb7982d8a5abcd71">window.h</a>
+</li>
+<li>AWINDOW_FLAG_IGNORE_CHEEK_PRESSES
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaa2fe4ee2307bb814a37a043de6d7d326">window.h</a>
+</li>
+<li>AWINDOW_FLAG_KEEP_SCREEN_ON
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaf6f66a498bd3bda8d51b6983eb2a99d8">window.h</a>
+</li>
+<li>AWINDOW_FLAG_LAYOUT_IN_SCREEN
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa6978968d7e0dc1a0e12f58ad395a959a">window.h</a>
+</li>
+<li>AWINDOW_FLAG_LAYOUT_INSET_DECOR
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa97b8542941bfe613bcf92357be89b563">window.h</a>
+</li>
+<li>AWINDOW_FLAG_LAYOUT_NO_LIMITS
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffade9722581a203ee0db25d42f4d2bd389">window.h</a>
+</li>
+<li>AWINDOW_FLAG_NOT_FOCUSABLE
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffab5f19f59dd6b2601e4d1a7ff533bc50f">window.h</a>
+</li>
+<li>AWINDOW_FLAG_NOT_TOUCH_MODAL
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa5ef903c3617dd33e3c22f567abd64b09">window.h</a>
+</li>
+<li>AWINDOW_FLAG_NOT_TOUCHABLE
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffae9f1278ffa6fe9c12c2305d4f4de1450">window.h</a>
+</li>
+<li>AWINDOW_FLAG_SCALED
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa80316264eeae9681a56c1a2297bf465a">window.h</a>
+</li>
+<li>AWINDOW_FLAG_SECURE
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa8ff70709a588a05781d7cb178b526cc0">window.h</a>
+</li>
+<li>AWINDOW_FLAG_SHOW_WALLPAPER
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa952ae6ceebe94d3f0d666454548b8824">window.h</a>
+</li>
+<li>AWINDOW_FLAG_SHOW_WHEN_LOCKED
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa549f08950ef1ed3a334338d08ced1c3b">window.h</a>
+</li>
+<li>AWINDOW_FLAG_TOUCHABLE_WHEN_WAKING
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa5574a513645e6e7cb4d6a9f4a043d773">window.h</a>
+</li>
+<li>AWINDOW_FLAG_TURN_SCREEN_ON
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffac4deee26ac742bbd0bb4c44fda140a01">window.h</a>
+</li>
+<li>AWINDOW_FLAG_WATCH_OUTSIDE_TOUCH
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa35229f75b3309bafdd828cbbf27d05b6">window.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/globals_defs.jd b/docs/html-ndk/ndk/reference/globals_defs.jd
new file mode 100644
index 0000000..64ef6c6
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/globals_defs.jd
@@ -0,0 +1,32 @@
+page.title=Globals
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="contents">
+&#160;<ul>
+<li>AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT
+: <a class="el" href="group___input.html#gaeb170c0fbeeed1d999160566f09f169e">input.h</a>
+</li>
+<li>ANDROID_BITMAP_RESUT_SUCCESS
+: <a class="el" href="group___bitmap.html#gafb665ac9fefad34ac5c035f5d1314080">bitmap.h</a>
+</li>
+<li>ASENSOR_MAGNETIC_FIELD_EARTH_MAX
+: <a class="el" href="group___sensor.html#gaf8b57b13c6432bc6136aac0ad3813d63">sensor.h</a>
+</li>
+<li>ASENSOR_MAGNETIC_FIELD_EARTH_MIN
+: <a class="el" href="group___sensor.html#ga4423a712e27b6d5a57d138796892886d">sensor.h</a>
+</li>
+<li>ASENSOR_STANDARD_GRAVITY
+: <a class="el" href="group___sensor.html#ga5129cb9e4091fc3474e246d5f950e52b">sensor.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/globals_enum.jd b/docs/html-ndk/ndk/reference/globals_enum.jd
new file mode 100644
index 0000000..7d885ea
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/globals_enum.jd
@@ -0,0 +1,20 @@
+page.title=Globals
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="contents">
+&#160;<ul>
+<li>AndroidBitmapFormat
+: <a class="el" href="group___bitmap.html#gaea286a2d4c61ae2abb02b51500499f13">bitmap.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/globals_eval.jd b/docs/html-ndk/ndk/reference/globals_eval.jd
new file mode 100644
index 0000000..8296358
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/globals_eval.jd
@@ -0,0 +1,1660 @@
+page.title=Globals
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>AASSET_MODE_BUFFER
+: <a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba40ec098f4afb7c2869fa449d3059f6bb">asset_manager.h</a>
+</li>
+<li>AASSET_MODE_RANDOM
+: <a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba88e1b2a920963d7596735fe28bf30e2f">asset_manager.h</a>
+</li>
+<li>AASSET_MODE_STREAMING
+: <a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55bac76f5fdb953097efc04e534474a7ea74">asset_manager.h</a>
+</li>
+<li>AASSET_MODE_UNKNOWN
+: <a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba5bf76576f07042f965f230086f7c09f4">asset_manager.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ace87b4f25e5fd6fe0f3316d21ecc66a1">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a966a3855351a97ae865264afd74c1534">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_DEFAULT
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae628b2bf594733b7c19ae394616cec6c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_HIGH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5ef4a97dc058235cdfa9fcfe3300c7eb">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_LOW
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a01ddb34b2376422d2323720049eb57f3">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_MEDIUM
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a2511479d7cd574c4b293d535e4dc337e">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_NONE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a7c1af92914155c418b99844c6aab33d7">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_TV
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a10e6c3d636f3f6de75de9208913b0d8f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_XHIGH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a38a03b3b1c64725679605d8d479c85a0">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_XXHIGH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad6353daf63778a6ec6f2bd3815d7e6e4">configuration.h</a>
+</li>
+<li>ACONFIGURATION_DENSITY_XXXHIGH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a2bd04af33e868a77bd4d83e7d70368ec">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a0195de2a57f028a8171c42beff0b0e88">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD_12KEY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1aaf1a887f146737030cce95c53066ea">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a593f722738682ae4500dab6427670f4a">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD_HIDDEN
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a54e71234e32ed037e2d47472f80eb416">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD_NOKEYS
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a40195a1a2d8e21c74d99606d8a1a9918">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYBOARD_QWERTY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a263ff8efb4d2c757e557adc0d0cdeedf">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYSHIDDEN_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a34d3a830bc2964000052f8486fd76b0c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYSHIDDEN_NO
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5abfbfc3a10affed059263555b00429ab2">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYSHIDDEN_SOFT
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1a56b72c730e40f22f3b8727e54c376c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_KEYSHIDDEN_YES
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5e6a5a3f4175644886bde7d0ed4b1ebf">configuration.h</a>
+</li>
+<li>ACONFIGURATION_LAYOUTDIR
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a65834be1230d1694e5ce8a6f407acab2">configuration.h</a>
+</li>
+<li>ACONFIGURATION_LAYOUTDIR_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4687ede31c438dd9f2701cab88de1dbe">configuration.h</a>
+</li>
+<li>ACONFIGURATION_LAYOUTDIR_LTR
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a05242d8f2d254b43ff9414ff1aa38a83">configuration.h</a>
+</li>
+<li>ACONFIGURATION_LAYOUTDIR_RTL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af98332983b787ab9355b527079636870">configuration.h</a>
+</li>
+<li>ACONFIGURATION_LOCALE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a01ecff796bd0690a9a8498c7de03e9b4">configuration.h</a>
+</li>
+<li>ACONFIGURATION_MCC
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4d40f2aef365c78a52f699b89439db28">configuration.h</a>
+</li>
+<li>ACONFIGURATION_MNC
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ade91a319638eede201579d15f86578a5">configuration.h</a>
+</li>
+<li>ACONFIGURATION_MNC_ZERO
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aa6cda2f222580dbef27f1277d967d58c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVHIDDEN_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a6db7dd6a67196df88117dcdc904e0cb3">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVHIDDEN_NO
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae6ff9883e3e89f8d9ea5c0ebe077c9c5">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVHIDDEN_YES
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a79b3a5fe10e948bb79db47b516d46cf5">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a65e9d31615d2b4adf3738d9a12a1556b">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a90e914b60d28c081b313f4b7b6600f47">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION_DPAD
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ace2e3ed21322100712992ca09f4b75b5">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION_NONAV
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a3d95e899305aeae366fb7f8d8b6c290a">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION_TRACKBALL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad2807d00cb2f5dcb9f456045dd8443a4">configuration.h</a>
+</li>
+<li>ACONFIGURATION_NAVIGATION_WHEEL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a80b53370f65ad283a4fd025f36422bea">configuration.h</a>
+</li>
+<li>ACONFIGURATION_ORIENTATION
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a591461d864136d482fe06e01fd945786">configuration.h</a>
+</li>
+<li>ACONFIGURATION_ORIENTATION_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af44cee3290a23999b0358c5638747a5f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_ORIENTATION_LAND
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad5746872ff6871379fca93c60bfac8a3">configuration.h</a>
+</li>
+<li>ACONFIGURATION_ORIENTATION_PORT
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad9bf5c1fb90f9fdb20f984d0574592fe">configuration.h</a>
+</li>
+<li>ACONFIGURATION_ORIENTATION_SQUARE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ab0ca4fce673baf58447bfeb154d9a03f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREEN_HEIGHT_DP_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ab66ad42d0cf72fd7e8cd99b92b625432">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREEN_LAYOUT
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a12d69ffef9135c1c55e1b8b5c2589e7c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREEN_SIZE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a76ca1eb0e9346d93da592afbbf9a3b72">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREEN_WIDTH_DP_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aad653f0c960112177fdc387a4a0577fa">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENLONG_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a41e55e57da42fd09c378f59c1a63710f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENLONG_NO
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a428bb8fcd8bc731b67b0773dc62781c5">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENLONG_YES
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a91fc014d328507568d225d691b3babfd">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENSIZE_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a9abcd34a6c549e048fc75a545081584e">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENSIZE_LARGE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af871d177fdceedb75612cfc1281d2c12">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENSIZE_NORMAL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a019727e684f25ba921f3479abd62b9f2">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENSIZE_SMALL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1163af972206a65a5d18bda12fdc511c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SCREENSIZE_XLARGE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a0ca385ed504fc92f6ff3f0857e916c9c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SMALLEST_SCREEN_SIZE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5acce415252e0ad95117a05bbe910f06de">configuration.h</a>
+</li>
+<li>ACONFIGURATION_SMALLEST_SCREEN_WIDTH_DP_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a227120217d8b6a9d5add3ccc4b283702">configuration.h</a>
+</li>
+<li>ACONFIGURATION_TOUCHSCREEN
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a255cfb57ac18d460c5614565a84f5561">configuration.h</a>
+</li>
+<li>ACONFIGURATION_TOUCHSCREEN_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aa73bcf45261366840fea743372682fa6">configuration.h</a>
+</li>
+<li>ACONFIGURATION_TOUCHSCREEN_FINGER
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4bf2a8323ec6d072aa48d5fc2cff645e">configuration.h</a>
+</li>
+<li>ACONFIGURATION_TOUCHSCREEN_NOTOUCH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5adfbeb370edd3b4372c9b0f86f152dde0">configuration.h</a>
+</li>
+<li>ACONFIGURATION_TOUCHSCREEN_STYLUS
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a8316a15b06353f883f2aef8bd194f79f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a43a324af59372efd08b34431825cf67e">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_NIGHT_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a975087bbd4087b57a68ef3cdbfeb77a1">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_NIGHT_NO
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a90ebe564e3a3e384d5b013100f81e4b7">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_NIGHT_YES
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a437af4527fac5407de256ec1ef055046">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_ANY
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a10d0916da7fa88c945a9cda259407d4c">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_APPLIANCE
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad99004a7a1b2a97d29b639664947f8e3">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_CAR
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5d6575185e41d909469a1dcf5f81bf4f">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_DESK
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae10bb854f461f60cf399852f8f327077">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_NORMAL
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae7efe2713b6718311da76c828b5b444e">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_TELEVISION
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4738dded616f028fbbedcbad764e7969">configuration.h</a>
+</li>
+<li>ACONFIGURATION_UI_MODE_TYPE_WATCH
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ac8c3e2207f2356bc6a1dffc6a615d131">configuration.h</a>
+</li>
+<li>ACONFIGURATION_VERSION
+: <a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1be62e4fc31cf3d3102c99f7c6b4c71b">configuration.h</a>
+</li>
+<li>AINPUT_EVENT_TYPE_KEY
+: <a class="el" href="group___input.html#gga61dadd085c1777f559549e05962b2c9ea696f0d7635f7a24c17d3f1e4ccdd44ba">input.h</a>
+</li>
+<li>AINPUT_EVENT_TYPE_MOTION
+: <a class="el" href="group___input.html#gga61dadd085c1777f559549e05962b2c9ea2182dfda2cceb5425dcc2823b9b6b56a">input.h</a>
+</li>
+<li>AINPUT_KEYBOARD_TYPE_ALPHABETIC
+: <a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fceaba1f5ab6bc79749ba96a5d2a3af0e574">input.h</a>
+</li>
+<li>AINPUT_KEYBOARD_TYPE_NON_ALPHABETIC
+: <a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fceaf0226d750ea830eb557ae68bd4a1c82a">input.h</a>
+</li>
+<li>AINPUT_KEYBOARD_TYPE_NONE
+: <a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fcea32cb7ce34cdce7095962f0766cc6c3ac">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_ORIENTATION
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaaf9be9c04a41b610d994a3d1d7e90d06d">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_PRESSURE
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa79aca706b12b28d0ab14762902fed31a">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_SIZE
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa46f3a6cf859fb161cd29398d8448c688">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_TOOL_MAJOR
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaaa860f54aa9e5a269dba6a54bbcf3c27c">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_TOOL_MINOR
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa19226f6cf713c1b4d0973a163daf6cf1">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_TOUCH_MAJOR
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa7ead43624c96e165fd8a25e77148aa67">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_TOUCH_MINOR
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa301181a0f20681135c15010b39bb575d">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_X
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa0e5816bc48cdb33f2b488a109596ffe1">input.h</a>
+</li>
+<li>AINPUT_MOTION_RANGE_Y
+: <a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaab48108c9450ea1b7cd021be7d8cbc332">input.h</a>
+</li>
+<li>AINPUT_SOURCE_ANY
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ab04317e7dd273ff5c87038df67d9796e">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_BUTTON
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4dacf1bf3d7b3c6e59f907bdffc9b33370e">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_JOYSTICK
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4daaaeffb6442807dd96ec62e9d8a696b57">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_MASK
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4daae438f475d03ea60fd9fb356abd7fa01">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_NAVIGATION
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da078a18d85d078412721c336a879bcc1a">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_NONE
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4dafd6d5e71f09f6452acf017559481444c">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_POINTER
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da7495274e98fb30dee3dfd903b878cf47">input.h</a>
+</li>
+<li>AINPUT_SOURCE_CLASS_POSITION
+: <a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da682f6982bb55ee809f6acd2deb550167">input.h</a>
+</li>
+<li>AINPUT_SOURCE_DPAD
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ad0fbfeff9f8d57104bff14c70ce5e3ef">input.h</a>
+</li>
+<li>AINPUT_SOURCE_GAMEPAD
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a6417cb50ecd6ade48c708268434a49d3">input.h</a>
+</li>
+<li>AINPUT_SOURCE_JOYSTICK
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25afb28f10dc074e7f7435f5904c513edb5">input.h</a>
+</li>
+<li>AINPUT_SOURCE_KEYBOARD
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a9860918666dd8c0b9d00a8da7af51e6d">input.h</a>
+</li>
+<li>AINPUT_SOURCE_MOUSE
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ae71d3dcbd004bccb6e00fde47097cd86">input.h</a>
+</li>
+<li>AINPUT_SOURCE_STYLUS
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a86d4983c71432b27634ba41a64bffdf9">input.h</a>
+</li>
+<li>AINPUT_SOURCE_TOUCH_NAVIGATION
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a3712c4e4fb8ad7f6ae6e40d48e5c6ee7">input.h</a>
+</li>
+<li>AINPUT_SOURCE_TOUCHPAD
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a7e0715d4b544653ab11893434172a2ef">input.h</a>
+</li>
+<li>AINPUT_SOURCE_TOUCHSCREEN
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a55ea411f927aed8964fa72fec0da444f">input.h</a>
+</li>
+<li>AINPUT_SOURCE_TRACKBALL
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a7e49d9153c86f60f626d7f797f4e78b6">input.h</a>
+</li>
+<li>AINPUT_SOURCE_UNKNOWN
+: <a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ae9348bc04cdaa88b5b010f77a4945454">input.h</a>
+</li>
+<li>AKEY_EVENT_ACTION_DOWN
+: <a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635a123c3bd18fd93b53d8aedbe7597f7b49">input.h</a>
+</li>
+<li>AKEY_EVENT_ACTION_MULTIPLE
+: <a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635a08e2d927e155478ee66ec46ebd845ab0">input.h</a>
+</li>
+<li>AKEY_EVENT_ACTION_UP
+: <a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635abf18b7c5384c5de8657a0650f8da57c3">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_CANCELED
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da3198fad5ab75df614bb41f0f602a9e55">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_CANCELED_LONG_PRESS
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2daf09856f03f2fffee9a82cb8e508efb7a">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_EDITOR_ACTION
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dab9dbcf990d1e4405e32f847fdea52013">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_FALLBACK
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da14f574126d2544863fa8042ddd0f48c0">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_FROM_SYSTEM
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dae1e7ec188b2404fadd94cfba89afd5d6">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_KEEP_TOUCH_MODE
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dadc0a063ca412b0ea08474df422bf9b41">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_LONG_PRESS
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da39f9f7bdf2e256db0e2a8a5dfbfb7185">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_SOFT_KEYBOARD
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da7dbb272c7b28be9c084df3446a629f32">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_TRACKING
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da91e70ab527f27a1779f4550d457f1689">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_VIRTUAL_HARD_KEY
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dad4b5eba5b14e4076c69bc7185f2804f8">input.h</a>
+</li>
+<li>AKEY_EVENT_FLAG_WOKE_HERE
+: <a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da6473a1afc0cc39e029c2a217bc57cdba">input.h</a>
+</li>
+<li>AKEY_STATE_DOWN
+: <a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04a286ec0a7aff5903a982be0cd6785b62c">input.h</a>
+</li>
+<li>AKEY_STATE_UNKNOWN
+: <a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04a9506627d5377c67dbc7fc58804b2cdfd">input.h</a>
+</li>
+<li>AKEY_STATE_UP
+: <a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04afa14022f587487c24d401c87e71c8e28">input.h</a>
+</li>
+<li>AKEY_STATE_VIRTUAL
+: <a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04ad09fd9fe458ca6c66ead9b9a75c56192">input.h</a>
+</li>
+<li>AKEYCODE_0
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa23f585ea17aeceaad2111c51ab289e79">keycodes.h</a>
+</li>
+<li>AKEYCODE_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabcac88b54f8d764bc4573ecc5b9571b0">keycodes.h</a>
+</li>
+<li>AKEYCODE_11
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa22858c3c30d596ad60f355f75df86e1">keycodes.h</a>
+</li>
+<li>AKEYCODE_12
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa781c31195e55b2dcbdd772560dc61aa5">keycodes.h</a>
+</li>
+<li>AKEYCODE_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2079c6fb75141968b60ed79fe895d6db">keycodes.h</a>
+</li>
+<li>AKEYCODE_3
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa40ccc018c0637e4d938e66b789054551">keycodes.h</a>
+</li>
+<li>AKEYCODE_3D_MODE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68d314a5ec06701205cd0097c5c7145c">keycodes.h</a>
+</li>
+<li>AKEYCODE_4
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c2d141c3906bd97cfec91443356f7b">keycodes.h</a>
+</li>
+<li>AKEYCODE_5
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0ca99d2be4a3723ba3406944ad623f6e">keycodes.h</a>
+</li>
+<li>AKEYCODE_6
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa72bc6560e24d08ff8f3116dac9179079">keycodes.h</a>
+</li>
+<li>AKEYCODE_7
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa27070499acdb6c527a285b3840ec7bff">keycodes.h</a>
+</li>
+<li>AKEYCODE_8
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa93543b23683b33724ecf77ac5a8c19ab">keycodes.h</a>
+</li>
+<li>AKEYCODE_9
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa31cd4d7c4e59cf7b057b6c248cff516d">keycodes.h</a>
+</li>
+<li>AKEYCODE_A
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa424a091c62d40f5d65908c9730ae9014">keycodes.h</a>
+</li>
+<li>AKEYCODE_ALT_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3dec175158abe8679bedd98ed1bc3e1a">keycodes.h</a>
+</li>
+<li>AKEYCODE_ALT_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacd9b6b0846c6999f5df47d29e58ac95d">keycodes.h</a>
+</li>
+<li>AKEYCODE_APOSTROPHE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab5518a8502914ea5f87ef5d29b32b1b1">keycodes.h</a>
+</li>
+<li>AKEYCODE_APP_SWITCH
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa53a59a262d6d523bdc2bd30a1e427bad">keycodes.h</a>
+</li>
+<li>AKEYCODE_ASSIST
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d3f036adb654c7752890a283ecbf838">keycodes.h</a>
+</li>
+<li>AKEYCODE_AT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7284f79a266ede479b79726082642e16">keycodes.h</a>
+</li>
+<li>AKEYCODE_AVR_INPUT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa57d42dbd8ea4219f76fb116f234e6504">keycodes.h</a>
+</li>
+<li>AKEYCODE_AVR_POWER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa479d36f9814bd00c8986a252664b938b">keycodes.h</a>
+</li>
+<li>AKEYCODE_B
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa65d3bf8d6a8a6c2f7c1b08394f313758">keycodes.h</a>
+</li>
+<li>AKEYCODE_BACK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaeb71c74bf556ba72e9c8f8dcbe5453d0">keycodes.h</a>
+</li>
+<li>AKEYCODE_BACKSLASH
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaac90eb064382e3c482ae86abb7b3f701">keycodes.h</a>
+</li>
+<li>AKEYCODE_BOOKMARK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa03ce46d177e020690aa9d26a0fa850ae">keycodes.h</a>
+</li>
+<li>AKEYCODE_BREAK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa047501f9cf9bce00e6048d8759ea3a23">keycodes.h</a>
+</li>
+<li>AKEYCODE_BRIGHTNESS_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7cf1bf3528b6d8a0e86998287fe00650">keycodes.h</a>
+</li>
+<li>AKEYCODE_BRIGHTNESS_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0af6ec416c09d160e364466faa955c36">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa28c72c33ab93d83539d0790b7e48336a">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_10
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7e6f8621909f3461032c33f9c8acaa7">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_11
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab413971c698b6e25d3955667c0142ac1">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_12
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafe4ee1e5446dd12bbb579b412048e79e">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_13
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaabde2ed26594b89d5769eef9f0d1fe6f">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_14
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f08dfd2c30ddedf1d2983680e89041b">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_15
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d8d0fb1a610fdb4e53f0fb675b7d7d0">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_16
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa224370cba99bda2db6a1c82fd2f7fa39">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab8089673fea303c7a299eefd2c327cc3">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_3
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa706a5ff492c80b4653e6fe0dcd278ca1">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_4
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c425a063bf6976e1ff8ae9f3cfcbe6">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_5
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa47149f963528ec7abe55066abfb7caf5">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_6
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa55057c8cda53a4c539d02ab1a93ca58b">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_7
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac09e0c0cbbf6449bf106e4199600db35">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_8
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaee64b3e0f30ed09e3c9f01b6c8877c3f">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_9
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac8e54092c8be5dc0e114ec35f40e00dc">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_A
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaef2d2ec912aaa9e7215aeab79f7fb086">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_B
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa721765c8f0bbcdb68af06817dbec8e53">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_C
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad622ad5df40d2fdf806abb2adda73b3d">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_L1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa32e159826404c7d76c2a433c24de82a2">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_L2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa36a38421637cfa5ebfd8a0296650cdf4">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_MODE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa19839eebec939407d901a33b75cf2594">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_R1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7c614b3966583b0ad027e45f594ede46">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_R2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa46d487e9fe31855b7b46739bad58fe3e">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_SELECT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa598289bc85f647c237729126ea392a43">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_START
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf3c818d106f4ec793a43749c4c26a8a4">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_THUMBL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68c5d8dcd8fe708ada8f4a4e17feb638">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_THUMBR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9759d817172d268ced1748909a5f5fbe">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_X
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa21174962f95e32cd0345ce657d03ebc7">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_Y
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6654a8b2c700f7783433c86fcdae7919">keycodes.h</a>
+</li>
+<li>AKEYCODE_BUTTON_Z
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa06156b68e6de951b44fc662e1b16041f">keycodes.h</a>
+</li>
+<li>AKEYCODE_C
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaeed584f454e508ce931bcb33d37adb04">keycodes.h</a>
+</li>
+<li>AKEYCODE_CALCULATOR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa293523c40bb9f1d793cd0b984f636573">keycodes.h</a>
+</li>
+<li>AKEYCODE_CALENDAR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa114be17d1853c77a7406c024d9e4f076">keycodes.h</a>
+</li>
+<li>AKEYCODE_CALL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8b5720ebdd3576c2b536ec9228273d8f">keycodes.h</a>
+</li>
+<li>AKEYCODE_CAMERA
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8670880765756933d3d1a10186d39e26">keycodes.h</a>
+</li>
+<li>AKEYCODE_CAPS_LOCK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab9dcb68b35c85d380846c85f323868f1">keycodes.h</a>
+</li>
+<li>AKEYCODE_CAPTIONS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa81ba8d5343362b841b8a62b8679ff994">keycodes.h</a>
+</li>
+<li>AKEYCODE_CHANNEL_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa18f1808c6a819e787c9a9941f78b910f">keycodes.h</a>
+</li>
+<li>AKEYCODE_CHANNEL_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa056914fd17ae539dca44f43745d8e05c">keycodes.h</a>
+</li>
+<li>AKEYCODE_CLEAR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa95bd8c25adeaa570108c7403f08a2901">keycodes.h</a>
+</li>
+<li>AKEYCODE_COMMA
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0ca0bfbdc67b2c6f76e8fcaaf782c227">keycodes.h</a>
+</li>
+<li>AKEYCODE_CONTACTS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0aa2cfca11b7cabf82341a9dbec83f10">keycodes.h</a>
+</li>
+<li>AKEYCODE_CTRL_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaaca9d0df6cc18492209eb287e659aeb1">keycodes.h</a>
+</li>
+<li>AKEYCODE_CTRL_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa99b317cf2f1eb6b06d0226e05223e60c">keycodes.h</a>
+</li>
+<li>AKEYCODE_D
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7e4cb3ef66209a2779be2c8239b57b51">keycodes.h</a>
+</li>
+<li>AKEYCODE_DEL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacd013221b457d98975dc47e49817e28a">keycodes.h</a>
+</li>
+<li>AKEYCODE_DPAD_CENTER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5e9c93273fd39148f54167133aa5b9ae">keycodes.h</a>
+</li>
+<li>AKEYCODE_DPAD_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa84b721b13aae56c9f1d3c22b3d81627a">keycodes.h</a>
+</li>
+<li>AKEYCODE_DPAD_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa668dfb3ed79a37c2c07838c161c1b344">keycodes.h</a>
+</li>
+<li>AKEYCODE_DPAD_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac6f9d81b6239696a1836695bbfc6a975">keycodes.h</a>
+</li>
+<li>AKEYCODE_DPAD_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf2fd3133a88f3b6725834032bd74bd9e">keycodes.h</a>
+</li>
+<li>AKEYCODE_DVR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacf2f03b925a02ba6de9fd98737546a60">keycodes.h</a>
+</li>
+<li>AKEYCODE_E
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae218af7ceb207227bb10f0525e68a8d0">keycodes.h</a>
+</li>
+<li>AKEYCODE_EISU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaadd69273b99eb0b848d98b2d6b3ad3234">keycodes.h</a>
+</li>
+<li>AKEYCODE_ENDCALL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaff971957ae3a4e272b21987854e18d9b">keycodes.h</a>
+</li>
+<li>AKEYCODE_ENTER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac784a7bbbfbdab05fab6c6a1f29c98ff">keycodes.h</a>
+</li>
+<li>AKEYCODE_ENVELOPE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaade96efe470f428bb5c4eaea6ffc3681c">keycodes.h</a>
+</li>
+<li>AKEYCODE_EQUALS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0a197df7ec719c95ddcd6836e76c8498">keycodes.h</a>
+</li>
+<li>AKEYCODE_ESCAPE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac52177e5508edacb8e9c6d3a25db4fb6">keycodes.h</a>
+</li>
+<li>AKEYCODE_EXPLORER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaded9ec81ae6dab451665317723b94083">keycodes.h</a>
+</li>
+<li>AKEYCODE_F
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa455f71ecfe59af0fbd901ac0d0a8d53a">keycodes.h</a>
+</li>
+<li>AKEYCODE_F1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3b84f2c503a9e839f3d36e10e3307fcf">keycodes.h</a>
+</li>
+<li>AKEYCODE_F10
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa60660b13acab39282d0558cdcc93474">keycodes.h</a>
+</li>
+<li>AKEYCODE_F11
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa64cc7b1d8e53d90ff57c39d0b5a4dd22">keycodes.h</a>
+</li>
+<li>AKEYCODE_F12
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa491000231e0ba221b6916b1d9d2c9fb7">keycodes.h</a>
+</li>
+<li>AKEYCODE_F2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1360f7ec66aa6421e240dae637262e84">keycodes.h</a>
+</li>
+<li>AKEYCODE_F3
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a4ce6105e12a3a9071cae2f40515085">keycodes.h</a>
+</li>
+<li>AKEYCODE_F4
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa882050e4d0f917470a5b91fbf6ae9ebf">keycodes.h</a>
+</li>
+<li>AKEYCODE_F5
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab01807c72b46620bb50fcb6abe24d937">keycodes.h</a>
+</li>
+<li>AKEYCODE_F6
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa04a12e81ed80bb42ef5c63cedf0dc60">keycodes.h</a>
+</li>
+<li>AKEYCODE_F7
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9583b8e4b0d994b7e3a193b67cf6020c">keycodes.h</a>
+</li>
+<li>AKEYCODE_F8
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa55ca54d42d8df70de2ce9031db1344c8">keycodes.h</a>
+</li>
+<li>AKEYCODE_F9
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0c8225c0ef98da730933ae914077dbc9">keycodes.h</a>
+</li>
+<li>AKEYCODE_FOCUS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa23be9506f92f6efe14d47306a39a2187">keycodes.h</a>
+</li>
+<li>AKEYCODE_FORWARD
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafbf0a16c7746e5dee2fd3adbd50da88a">keycodes.h</a>
+</li>
+<li>AKEYCODE_FORWARD_DEL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9516bc190d37fea27e07ddab0c607b51">keycodes.h</a>
+</li>
+<li>AKEYCODE_FUNCTION
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1764b777aa56605f4029d3c71fe70722">keycodes.h</a>
+</li>
+<li>AKEYCODE_G
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa165067e10464019411f768bba9e533d9">keycodes.h</a>
+</li>
+<li>AKEYCODE_GRAVE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa929561086ae7b519fa962597bc85f171">keycodes.h</a>
+</li>
+<li>AKEYCODE_GUIDE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf33a5fa1f163245360aeed89d64b0233">keycodes.h</a>
+</li>
+<li>AKEYCODE_H
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad89a91a1500cb162f22962781ebfd9dc">keycodes.h</a>
+</li>
+<li>AKEYCODE_HEADSETHOOK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0d3d29515a4815fe8d6d8d3291507a33">keycodes.h</a>
+</li>
+<li>AKEYCODE_HELP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab062b403701292c9e2db96a1f88cc6d9">keycodes.h</a>
+</li>
+<li>AKEYCODE_HENKAN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab0686dd37c57d833d1158b7f1d85ee02">keycodes.h</a>
+</li>
+<li>AKEYCODE_HOME
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa526c2411b7476b7ae579f57a0378b2dd">keycodes.h</a>
+</li>
+<li>AKEYCODE_I
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4d44b5e4a19580540d8d77bf5755d74b">keycodes.h</a>
+</li>
+<li>AKEYCODE_INFO
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17e76263257a5dc654a413c9dc2fd649">keycodes.h</a>
+</li>
+<li>AKEYCODE_INSERT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa62f663d11e91af750a51ddd060b08644">keycodes.h</a>
+</li>
+<li>AKEYCODE_J
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa70c259612ccec117d70afaef947a6a7a">keycodes.h</a>
+</li>
+<li>AKEYCODE_K
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5ce56cf50d3632c275c524bd78d0d932">keycodes.h</a>
+</li>
+<li>AKEYCODE_KANA
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa62d090ae5c95a04dacdff79817dad531">keycodes.h</a>
+</li>
+<li>AKEYCODE_KATAKANA_HIRAGANA
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3be7db22b3c8aa046a46631e44863c28">keycodes.h</a>
+</li>
+<li>AKEYCODE_L
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab61c534fd0f4e56c4ba13861a2f5982b">keycodes.h</a>
+</li>
+<li>AKEYCODE_LANGUAGE_SWITCH
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7b8e87b47c17c5f1e97fcb56faaa26ff">keycodes.h</a>
+</li>
+<li>AKEYCODE_LAST_CHANNEL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa187963dd6f74b96f132f23e01dea35e9">keycodes.h</a>
+</li>
+<li>AKEYCODE_LEFT_BRACKET
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabdeda0d373aa37ef2ded5ffdfc008708">keycodes.h</a>
+</li>
+<li>AKEYCODE_M
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa43b19e5e5234ce90c8e7ef67dd0cabd1">keycodes.h</a>
+</li>
+<li>AKEYCODE_MANNER_MODE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa380279768c5c50d92bef2a88394f967f">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_AUDIO_TRACK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3cdb53cdf8c576e272502da06daa52e1">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_CLOSE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6788c6e1443140b0ec4d004d8293e998">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_EJECT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa317bffd44306b021c401d3a26b82a7f6">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_FAST_FORWARD
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa69e648024402af688d490a2041f15bca">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_NEXT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf5a6c3fc963e8163852b9a23e3a198b3">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_PAUSE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f4e0178c2028b3042b0a5948e38e4e4">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_PLAY
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa615cf6202b0ae0ed550f42f6c64b36a1">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_PLAY_PAUSE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa42f8fe71e8d45b5a83d83d80c3da40e1">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_PREVIOUS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa81432c31b00d47f768c29163eb276acb">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_RECORD
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17e1eae0b245176aaa024a53411441f9">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_REWIND
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaecd53183b84c23a2ca65670a23674319">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_STOP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac4faa33993d80db1326073ea15a38e7d">keycodes.h</a>
+</li>
+<li>AKEYCODE_MEDIA_TOP_MENU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf3ddf83cb2f701911b03c3a738e2e73a">keycodes.h</a>
+</li>
+<li>AKEYCODE_MENU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa707b85e89923b0f760be795972a87d76">keycodes.h</a>
+</li>
+<li>AKEYCODE_META_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaaadfb2d920bbe422c096120d39811c58">keycodes.h</a>
+</li>
+<li>AKEYCODE_META_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68038455e2b0846db51f9957e0df9cb8">keycodes.h</a>
+</li>
+<li>AKEYCODE_MINUS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaca10bd34ad0abecfecace908b8cb92ca">keycodes.h</a>
+</li>
+<li>AKEYCODE_MOVE_END
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5605f49f5271430f5f150efb3cd0398a">keycodes.h</a>
+</li>
+<li>AKEYCODE_MOVE_HOME
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7544f3de2fb5f78bec62af94a32fdc58">keycodes.h</a>
+</li>
+<li>AKEYCODE_MUHENKAN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7321e5c6b3cbab142bd16957653b2ac7">keycodes.h</a>
+</li>
+<li>AKEYCODE_MUSIC
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14508751d70a0404b194d4b6df83ec72">keycodes.h</a>
+</li>
+<li>AKEYCODE_MUTE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f6675d38f50e3556a8531839fd83f02">keycodes.h</a>
+</li>
+<li>AKEYCODE_N
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6c0b26804c89560a9e87c45f7f9fed36">keycodes.h</a>
+</li>
+<li>AKEYCODE_NOTIFICATION
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6115506352a5828532fc6a0b91683331">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUM
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe6e880f65bebbdd5246a4164c4ab37a">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUM_LOCK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad5e349eadd3255c6ad4982dc40ed23ef">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_0
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa343df35e6a0ad0599e19b8ef7174909b">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5c0ec8e42917fa9ac53977db3e6aeb17">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4dfd17c2209908e1ec890e10a3211f89">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_3
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa1efe1886a4b472b999215c0e81f7386">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_4
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1fdd16681c1441b934f679b94fd0e4f8">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_5
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf5916003e7c737a8cc06e52d2ee76c3b">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_6
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa13b83389e0f5de129227af4b8d3f035d">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_7
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaed9468951ef2887c07c8095c2e7d4c93">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_8
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5f0a300566235720eb93fee9f2196642">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_9
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad0c490e3965df546e2d5a83edf423d95">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_ADD
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9d2fefa9a3f6037f48b247e66dd28c35">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_COMMA
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa900e3bb0bc4ff70ba786f18ff4db0bd1">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_DIVIDE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaac108b744e8f93af69158d146425236c">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_DOT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6aab6b5914e120b43b3a1a8269e9cee1">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_ENTER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa79432be5f7a44e99ddc3721fd9fd212e">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_EQUALS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c1007a59641499ee5e1508e747c5ed">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_LEFT_PAREN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacc903e9eb495cf6cef7c6bc825f82f54">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_MULTIPLY
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa47ce00b838e7ee0a34066dc2595ac735">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_RIGHT_PAREN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7662e0f2a099239dc69f6a27c7daabf9">keycodes.h</a>
+</li>
+<li>AKEYCODE_NUMPAD_SUBTRACT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa2bee314dbbea0a349eb301d10256bbe">keycodes.h</a>
+</li>
+<li>AKEYCODE_O
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa249667bc4a59d99be1914535877329fb">keycodes.h</a>
+</li>
+<li>AKEYCODE_P
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac68ef56b78bd0c8626cc68bb6cb9156f">keycodes.h</a>
+</li>
+<li>AKEYCODE_PAGE_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0b7fe1c18f53e6328657858a88826393">keycodes.h</a>
+</li>
+<li>AKEYCODE_PAGE_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4fd0d4ea5b6898f4a40011b97a739a04">keycodes.h</a>
+</li>
+<li>AKEYCODE_PAIRING
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0ecddd3dce52cf60c96c5d430b1f553">keycodes.h</a>
+</li>
+<li>AKEYCODE_PERIOD
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9dd68c8ecebd4e274e8c357dcdfe8a04">keycodes.h</a>
+</li>
+<li>AKEYCODE_PICTSYMBOLS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacdc7c004da1594fa156de87befef5f41">keycodes.h</a>
+</li>
+<li>AKEYCODE_PLUS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7f72d867b311e0845aef732dcc66495">keycodes.h</a>
+</li>
+<li>AKEYCODE_POUND
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf448758c44899e41b67f76dfe3be51e9">keycodes.h</a>
+</li>
+<li>AKEYCODE_POWER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabecfbcb9b6f5e85fdfdfa98fbc3326e6">keycodes.h</a>
+</li>
+<li>AKEYCODE_PROG_BLUE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5e82219fdb937fee5a22426c607dd4e0">keycodes.h</a>
+</li>
+<li>AKEYCODE_PROG_GREEN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad50c1e2136e47843a8dabca929f8ead1">keycodes.h</a>
+</li>
+<li>AKEYCODE_PROG_RED
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2d9e3e82e69955f649b586f4518e074c">keycodes.h</a>
+</li>
+<li>AKEYCODE_PROG_YELLOW
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafa813640412bd41a181f0ec3a33dddc4">keycodes.h</a>
+</li>
+<li>AKEYCODE_Q
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa932cf6ea8d87e6d6d97af658dd0fa206">keycodes.h</a>
+</li>
+<li>AKEYCODE_R
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaba25ac2c15a8edbbbff16a9fe6e74532">keycodes.h</a>
+</li>
+<li>AKEYCODE_RIGHT_BRACKET
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa084dfa52626040a08d374f8aec066e6a">keycodes.h</a>
+</li>
+<li>AKEYCODE_RO
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae8b0af04dac5ea56fd55e577fd9e6be4">keycodes.h</a>
+</li>
+<li>AKEYCODE_S
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae1ed25c28a8fce578cddb17ca6888ff6">keycodes.h</a>
+</li>
+<li>AKEYCODE_SCROLL_LOCK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa78ff5c8316235635f76e3c3179e9a7fc">keycodes.h</a>
+</li>
+<li>AKEYCODE_SEARCH
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac644fd307fd0ef0d3ed3d2e074c1a4b7">keycodes.h</a>
+</li>
+<li>AKEYCODE_SEMICOLON
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac0a2920161f4f2d97b0b060614b23391">keycodes.h</a>
+</li>
+<li>AKEYCODE_SETTINGS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa2bbd457230c3028df6b91d5bdda9159">keycodes.h</a>
+</li>
+<li>AKEYCODE_SHIFT_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafb9875645596928cec46368e74499dc4">keycodes.h</a>
+</li>
+<li>AKEYCODE_SHIFT_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf9eab1348ae1e8f18ad5bf3c77df4212">keycodes.h</a>
+</li>
+<li>AKEYCODE_SLASH
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa54c047be3811d637a33d9b3e39d16e1a">keycodes.h</a>
+</li>
+<li>AKEYCODE_SLEEP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafc077e5a6b447ea060c144f6e65bd207">keycodes.h</a>
+</li>
+<li>AKEYCODE_SOFT_LEFT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2dc78d3a93876b77402d2a7f02e4b899">keycodes.h</a>
+</li>
+<li>AKEYCODE_SOFT_RIGHT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8cadfbfcaaa83fef168de13639adfcae">keycodes.h</a>
+</li>
+<li>AKEYCODE_SPACE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa10389300ac5d70f8d9733564b3cab4e7">keycodes.h</a>
+</li>
+<li>AKEYCODE_STAR
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1461fbf54e3dcba96e5d6d0638c18305">keycodes.h</a>
+</li>
+<li>AKEYCODE_STB_INPUT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa988b0372359b2bca7390878fdba9e1b5">keycodes.h</a>
+</li>
+<li>AKEYCODE_STB_POWER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab28aea3a51b11c9f227ce8cd5ff55a3d">keycodes.h</a>
+</li>
+<li>AKEYCODE_SWITCH_CHARSET
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad6a1f88b2cc3b6ff8f1724eb01473ec3">keycodes.h</a>
+</li>
+<li>AKEYCODE_SYM
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6c1c6752d5db5e02da51d8937e5e3c6f">keycodes.h</a>
+</li>
+<li>AKEYCODE_SYSRQ
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14e22c69bcd47ffb4445ee18a4332d84">keycodes.h</a>
+</li>
+<li>AKEYCODE_T
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2feac8b458ef8eb9c0a0dd73766927c2">keycodes.h</a>
+</li>
+<li>AKEYCODE_TAB
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1b1bfda850b2acd0b60e8456e2bfa958">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0776ffae512b4848e53fce762a3a5017">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_ANTENNA_CABLE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe33a80d6d3bf889af25cbd77fdb89f9">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_AUDIO_DESCRIPTION
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa419f0adac43cad104cd6cf83dc5f13f6">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5fca6a9ec1ce246bf3c53d859ac9f5eb">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaccc5900ca5dd399d5ce11dd8ca324678">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_CONTENTS_MENU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4c18feeafff3c41081073c025ee017b8">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_DATA_SERVICE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa954c2251b2cb53f47637802cb66baf06">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa1750b29e396bd1fd237ed4aadacc8f5">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_COMPONENT_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa156e2dba81e7c73624ccf8c2ef8833ae">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_COMPONENT_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8db9b6ee1457267abea03430781bb0ec">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_COMPOSITE_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5c3097f14c6582958ba1d14d70115ccd">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_COMPOSITE_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaada13cbb9d619bc610678ad66325647b9">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_HDMI_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a50de965f50ab3aa42772aac0808445">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_HDMI_2
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7ec65c008471d771bf879ec012f5c7f">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_HDMI_3
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a0f267a2696d15bf16127121b1f1c7f">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_HDMI_4
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4437c1d8d2d33058cfa71ec7b2771ec5">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_INPUT_VGA_1
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa149b2c8a4817075c0a41e0adf11c8e85">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_MEDIA_CONTEXT_MENU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaadde70071f6a432f367079efa6e1a6fe">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_NETWORK
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaec5e46a5afc57953d1772e086307aa42">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_NUMBER_ENTRY
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa630a08e07a3b4c6bcac9a1a72d176055">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_POWER
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafda3b0ea1b158831fc443bf4911a3930">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_RADIO_SERVICE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa93dd3fd752701af5a5491e01cc15db72">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_SATELLITE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3707d4396417535a611e4548afe33936">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_SATELLITE_BS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8c52e7d06525c0ee5d943d63a0fa8ea5">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_SATELLITE_CS
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4eea1809a9ff679ed7773332d728c6b0">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_SATELLITE_SERVICE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17c0e68066b86610ff168c6367af36eb">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_TELETEXT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d3d7b89756df37f01d6d0f13beff1db">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_TERRESTRIAL_ANALOG
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14f2b6fe8550832ef9e3f9aa53164073">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_TERRESTRIAL_DIGITAL
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacad8c149251a78760a5fe4931b9cdf16">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_TIMER_PROGRAMMING
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0293c2a63e4d955080334bef6640840">keycodes.h</a>
+</li>
+<li>AKEYCODE_TV_ZOOM_MODE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8e79045045293070c8eb9e408f1335b4">keycodes.h</a>
+</li>
+<li>AKEYCODE_U
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac1a220314f986aae45d7fe3b35501595">keycodes.h</a>
+</li>
+<li>AKEYCODE_UNKNOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa593f8ae18990d627785719284a12a6f">keycodes.h</a>
+</li>
+<li>AKEYCODE_V
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4043bc48fa55cce7825176052d6e199a">keycodes.h</a>
+</li>
+<li>AKEYCODE_VOICE_ASSIST
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa95898663b7f74c93d0b860a43528c744">keycodes.h</a>
+</li>
+<li>AKEYCODE_VOLUME_DOWN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a882dae17080d3b5f3329e79db60c66">keycodes.h</a>
+</li>
+<li>AKEYCODE_VOLUME_MUTE
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa174a5c7c39753235109696e82870c575">keycodes.h</a>
+</li>
+<li>AKEYCODE_VOLUME_UP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5b81e325d9efd633eef7535a5b538882">keycodes.h</a>
+</li>
+<li>AKEYCODE_W
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0c80e98547c3daa01f3d9e7f4f00425">keycodes.h</a>
+</li>
+<li>AKEYCODE_WAKEUP
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa903c5152d26b3011ae521afa06759429">keycodes.h</a>
+</li>
+<li>AKEYCODE_WINDOW
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe7531c40ff4a31614ff6fd61802ebe8">keycodes.h</a>
+</li>
+<li>AKEYCODE_X
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaec585cebac89004faffbdc28dc6d81c5">keycodes.h</a>
+</li>
+<li>AKEYCODE_Y
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa06fc277ef25acdd89d64c18eed0daa9b">keycodes.h</a>
+</li>
+<li>AKEYCODE_YEN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5ee19d21912056b902e283efa2d9d14b">keycodes.h</a>
+</li>
+<li>AKEYCODE_Z
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7439a09f219a0addc13c758ef7508cce">keycodes.h</a>
+</li>
+<li>AKEYCODE_ZENKAKU_HANKAKU
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf782be8df9a8ca5dc86c9bfeabac6f22">keycodes.h</a>
+</li>
+<li>AKEYCODE_ZOOM_IN
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacfce9bb78ef8106dce4868f81cca4fb4">keycodes.h</a>
+</li>
+<li>AKEYCODE_ZOOM_OUT
+: <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacf035f5234c3df4589f35a50e99e0535">keycodes.h</a>
+</li>
+<li>ALOOPER_EVENT_ERROR
+: <a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a14016d8f39373b8ce061276a957960f6">looper.h</a>
+</li>
+<li>ALOOPER_EVENT_HANGUP
+: <a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a5e7fb5acdecef18b2c293f6309e5d4ab">looper.h</a>
+</li>
+<li>ALOOPER_EVENT_INPUT
+: <a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9ae3d18f8dd1faf6f34468df10667949bc">looper.h</a>
+</li>
+<li>ALOOPER_EVENT_INVALID
+: <a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9aefe82c6ce8e02d13aceaebdec15c2aff">looper.h</a>
+</li>
+<li>ALOOPER_EVENT_OUTPUT
+: <a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a71273fd07e009057e6e3475d10f8286d">looper.h</a>
+</li>
+<li>ALOOPER_POLL_CALLBACK
+: <a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a64fe936780bfd9927affaf8e8cc81cc2">looper.h</a>
+</li>
+<li>ALOOPER_POLL_ERROR
+: <a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409af8ebd4022f6f5d5fea864f6999b7e6b4">looper.h</a>
+</li>
+<li>ALOOPER_POLL_TIMEOUT
+: <a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a3fe4eec66dff78a9fa8afca02e8b8443">looper.h</a>
+</li>
+<li>ALOOPER_POLL_WAKE
+: <a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a55528f1b28df17cc4b6317cc0d0fde47">looper.h</a>
+</li>
+<li>ALOOPER_PREPARE_ALLOW_NON_CALLBACKS
+: <a class="el" href="group___looper.html#ggaf9bdc3014f3d54c426b6d2df10de4960a1fff26ab5859b0308b58a3f8d58ef1eb">looper.h</a>
+</li>
+<li>AMETA_ALT_LEFT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca256c74b768ecee57e3218e81ae6945df">input.h</a>
+</li>
+<li>AMETA_ALT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caba44b1077427e4da1d202e0c8f772881">input.h</a>
+</li>
+<li>AMETA_ALT_RIGHT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca985db074c0f44749ca86b5cc0454056a">input.h</a>
+</li>
+<li>AMETA_CAPS_LOCK_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafc467c98d509b0de28b298801a0c3e37">input.h</a>
+</li>
+<li>AMETA_CTRL_LEFT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca752c837afd5ff0fcf75ddee7b6808be6">input.h</a>
+</li>
+<li>AMETA_CTRL_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cabe927318a2a11a46be3e9d78dbd81ef5">input.h</a>
+</li>
+<li>AMETA_CTRL_RIGHT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca0ab007e367ae136b873b3e6636747419">input.h</a>
+</li>
+<li>AMETA_FUNCTION_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca545b31b72b0454c22c170ff534ddfdf1">input.h</a>
+</li>
+<li>AMETA_META_LEFT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca6f923de8f2cd72e3ad86149c0747906f">input.h</a>
+</li>
+<li>AMETA_META_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca9c04e7c2ad1f0f41af60402188a29c4a">input.h</a>
+</li>
+<li>AMETA_META_RIGHT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafdf56d1259ae16c97161c443d7949bdf">input.h</a>
+</li>
+<li>AMETA_NONE
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cae0a3cb26517b3f876beb37594494526d">input.h</a>
+</li>
+<li>AMETA_NUM_LOCK_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca15d234534a6870add5594f02b7333dc6">input.h</a>
+</li>
+<li>AMETA_SCROLL_LOCK_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafe8dacdc6566f655a3eab73ea4a9af5a">input.h</a>
+</li>
+<li>AMETA_SHIFT_LEFT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caa01fa027cdd8951530437bcbe04c3ed7">input.h</a>
+</li>
+<li>AMETA_SHIFT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caa3d5f49c3a55b653a94c798a2c93b197">input.h</a>
+</li>
+<li>AMETA_SHIFT_RIGHT_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cac52930581c339216218a6f50c5b57aa1">input.h</a>
+</li>
+<li>AMETA_SYM_ON
+: <a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca8af1e90950a728baca807a83e50b22ea">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_CANCEL
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a3952b960f5eb8c4f55b42741e286b74e">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_DOWN
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a225e61c48ba334abc1b5811db02edcf1">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_HOVER_ENTER
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a247b2c60ad92f3130ad43c907986ffb3">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_HOVER_EXIT
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600ac00b1eacfbea779863abf3fcf02134aa">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_HOVER_MOVE
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a84bc9fb3c01ff7ca9ee452a510e7de60">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_MASK
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600abf84a22c84d4b7228102b80f3af92a4f">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_MOVE
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a41c56c4e772953fce60c93bc671639a3">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_OUTSIDE
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a7c3c96b74af4c8304b8137ac6d201517">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_POINTER_DOWN
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a1618c641fd3f49fa7483f298d05b3cd2">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_POINTER_INDEX_MASK
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a51384339fbb57c0087f7f50c45d9cff3">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_POINTER_UP
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600af2ef56aa7220eeb2073b9b028737bc1e">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_SCROLL
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a45ba62b1e6fab4e84d5782d7c35ced04">input.h</a>
+</li>
+<li>AMOTION_EVENT_ACTION_UP
+: <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a43798b2b7a6de4616d150b2438b8419e">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_BRAKE
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae3a99764f3681dd9e094852bb2489ece">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_DISTANCE
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae800909411a1e83173b0eef7aa458d0e">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GAS
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab0223f235a6044815918af2abafcbf16">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_1
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadcc18afd3a7069412617df34db5a27bc">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_10
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da29ba08f4ddc658e0127ee5bc08d185f2">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_11
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dafc64a4b307f62bb12b645918aa7edb57">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_12
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae5d32b3e9cec4936ae1e074f320c3063">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_13
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5f19f5bc52e5eaec5ebd4f07aad12180">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_14
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadb866d826ecf25161d7c7f86166e149b">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_15
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da7e86befc8502b8df687284f3c40b2eca">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_16
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daaaa011ba929b18c6da71153638f92336">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_2
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dac4addf06abfa6c76f0578ddde049aad5">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_3
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dac7df57ef5082e10be83f66d7477bce9c">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_4
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da321873d126b7d545665096694cb7d9d9">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_5
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da9b47cef7060197e1b0302a8a718c3085">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_6
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daad7e47a1b5fb66864b6d988374f50a84">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_7
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da222c06f51a60e59504b635dbf89a025b">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_8
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab59a8a373a913e40b146ed762976d6fe">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_GENERIC_9
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da721fa0fbca8b22f1ecc8d3870f4e7443">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_HAT_X
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da04245c76cb9b32dcba920661f11ac9da">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_HAT_Y
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da98c323321d908db459e7cf86a7e8a482">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_HSCROLL
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da92955e6b0f3f82af66a505c854e9edff">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_LTRIGGER
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae4c65c3b1bd2946ff9e18c6041cdb591">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_ORIENTATION
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da114f2b3fc233ccf7a4470787c31457d2">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_PRESSURE
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da3b4fd0f17cfdeb6a055babecd2b0ded8">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_RTRIGGER
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da116e80c6be166290ca481fefa5de38c1">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_RUDDER
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da318a0782f895949407fc192fc4280257">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_RX
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da689b612864177d6b57d4181442e3e38e">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_RY
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa20188da209300e1f80f6f5bd4058e13">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_RZ
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da381948b3321afd390ad164345eb9206b">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_SIZE
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da4baba3ccaec881089a864ba6deaf8bd6">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_THROTTLE
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da6d1f5d64e607104964eb43d8fae07a4f">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_TILT
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dafca0a235f69c4b38bfc95e7a7b8d9ab1">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_TOOL_MAJOR
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa273d64c392f86ae789fd5e24661ba0a">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_TOOL_MINOR
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadebd200b37ffaf36b94e7e478c559142">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_TOUCH_MAJOR
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da792b9e01044a2e43e7f80e5559db20c2">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_TOUCH_MINOR
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa8b24b0f01f24898a36e5751c8eca63c">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_VSCROLL
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dad11be04b4b81715cad905ee9fa348e99">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_WHEEL
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab0ae83ebd74e672bb35378b92a440b1d">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_X
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5f4b5b009634039a1f361048a5fc6064">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_Y
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da64f7de8558265bd8179d206eb33eff6c">input.h</a>
+</li>
+<li>AMOTION_EVENT_AXIS_Z
+: <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5a689e572da9bc5feafcb6c011368305">input.h</a>
+</li>
+<li>AMOTION_EVENT_BUTTON_BACK
+: <a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a1841d075a2992ff7fbefa3fd50189b86">input.h</a>
+</li>
+<li>AMOTION_EVENT_BUTTON_FORWARD
+: <a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a4105edf43f7748c52c859cc5aa7dc438">input.h</a>
+</li>
+<li>AMOTION_EVENT_BUTTON_PRIMARY
+: <a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8ab388f65477b9dd4c51e6367111168d65">input.h</a>
+</li>
+<li>AMOTION_EVENT_BUTTON_SECONDARY
+: <a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a08118700ecb4e147528a0e725afc9451">input.h</a>
+</li>
+<li>AMOTION_EVENT_BUTTON_TERTIARY
+: <a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8ae6e2af1e7065e035e8a10a595827180f">input.h</a>
+</li>
+<li>AMOTION_EVENT_EDGE_FLAG_BOTTOM
+: <a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388ad8b662839787e1c7dd2616f32c02aaeb">input.h</a>
+</li>
+<li>AMOTION_EVENT_EDGE_FLAG_LEFT
+: <a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388afb70c13f16daade25ba8132a5ea3cf52">input.h</a>
+</li>
+<li>AMOTION_EVENT_EDGE_FLAG_NONE
+: <a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a37dd7496968e6defbecc3c8d6ab2734d">input.h</a>
+</li>
+<li>AMOTION_EVENT_EDGE_FLAG_RIGHT
+: <a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a7d45674e03f1876a43d4810508905078">input.h</a>
+</li>
+<li>AMOTION_EVENT_EDGE_FLAG_TOP
+: <a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a915e1ade9b600d11a3c70a17a88de757">input.h</a>
+</li>
+<li>AMOTION_EVENT_FLAG_WINDOW_IS_OBSCURED
+: <a class="el" href="group___input.html#ggab04a0655cd1e3bcac5e8f48c18df1a57a200623e1e4eee7797cad30917d289d7a">input.h</a>
+</li>
+<li>AMOTION_EVENT_TOOL_TYPE_ERASER
+: <a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eaf9932f65b5b6b5800fb5873a60dbf0cb">input.h</a>
+</li>
+<li>AMOTION_EVENT_TOOL_TYPE_FINGER
+: <a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eafd789262defb8a268fa80d26b0c30bcc">input.h</a>
+</li>
+<li>AMOTION_EVENT_TOOL_TYPE_MOUSE
+: <a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9ea7be0c750d7d6719e7c948914400ae0de">input.h</a>
+</li>
+<li>AMOTION_EVENT_TOOL_TYPE_STYLUS
+: <a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eaf05dc95a74e560c89cec1f3100185fc7">input.h</a>
+</li>
+<li>AMOTION_EVENT_TOOL_TYPE_UNKNOWN
+: <a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9ea7e1ea0c955ebbac1349866e8995e0208">input.h</a>
+</li>
+<li>ANATIVEACTIVITY_HIDE_SOFT_INPUT_IMPLICIT_ONLY
+: <a class="el" href="group___native_activity.html#ggaaf8fd5f0e57d456151c951e0f3715fc4a642e76508cc737bbc1df149756c2a807">native_activity.h</a>
+</li>
+<li>ANATIVEACTIVITY_HIDE_SOFT_INPUT_NOT_ALWAYS
+: <a class="el" href="group___native_activity.html#ggaaf8fd5f0e57d456151c951e0f3715fc4a0f4cbb55fa4c29b963b7b37d13352e6f">native_activity.h</a>
+</li>
+<li>ANATIVEACTIVITY_SHOW_SOFT_INPUT_FORCED
+: <a class="el" href="group___native_activity.html#gga39fca1837c5ce7715cbf571669660c13a324062ac78fab16b40e8de1b1ae173b5">native_activity.h</a>
+</li>
+<li>ANATIVEACTIVITY_SHOW_SOFT_INPUT_IMPLICIT
+: <a class="el" href="group___native_activity.html#gga39fca1837c5ce7715cbf571669660c13a9b7250ac0e5a626a81b176462a9df7c9">native_activity.h</a>
+</li>
+<li>ANDROID_BITMAP_FORMAT_A_8
+: <a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ad29996be25f8f88c96e016a1da5c4bca">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_FORMAT_NONE
+: <a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ac6f0378ea5cfefd9abee2596af5a9021">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_FORMAT_RGB_565
+: <a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13a11b32e10d6db28fae70ec3590cb9ee91">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_FORMAT_RGBA_4444
+: <a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13adc2ede06eafe20439271cb8137dc7528">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_FORMAT_RGBA_8888
+: <a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ab92ae96ceea06aa534583beadba84057">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_RESULT_ALLOCATION_FAILED
+: <a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a512f5b95b6b57e78d65502c06391f990">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_RESULT_BAD_PARAMETER
+: <a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7acf7205d1a348d867c63ac2885ce01374">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_RESULT_JNI_EXCEPTION
+: <a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a6b099b9533c38729a6c305f2fe93f98d">bitmap.h</a>
+</li>
+<li>ANDROID_BITMAP_RESULT_SUCCESS
+: <a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a07f71cf5c5d4950ac9813ae4bbf6d076">bitmap.h</a>
+</li>
+<li>AOBB_STATE_ERROR_ALREADY_MOUNTED
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a8b074af151167a965a550b9829fafb37">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_ERROR_COULD_NOT_MOUNT
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a324da2b8fea5875339d442d1f2d0b45b">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_ERROR_COULD_NOT_UNMOUNT
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a1f2b51b53fc57b57a9967f6ce0c88dbe">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_ERROR_INTERNAL
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a50642881107d6673aace1494a5d6fce2">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_ERROR_NOT_MOUNTED
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a3ce8539aa8b531c9de1d16041322d7a8">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_ERROR_PERMISSION_DENIED
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a2467a4b6a634680e12c288a7790ff66c">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_MOUNTED
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a2a9c420e6008c108a7198fd861c042d5">storage_manager.h</a>
+</li>
+<li>AOBB_STATE_UNMOUNTED
+: <a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a6710bb5b68cfc115eedcde2aafd8a667">storage_manager.h</a>
+</li>
+<li>AOBBINFO_OVERLAY
+: <a class="el" href="group___storage.html#ggae4d5251432e1a9e6803c0240cc492e18a33e2ae83b4c25d33a4335dccf1de1c3a">obb.h</a>
+</li>
+<li>AREPORTING_MODE_CONTINUOUS
+: <a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa8a64337fcb7e338d487dc3edc873df1c">sensor.h</a>
+</li>
+<li>AREPORTING_MODE_ON_CHANGE
+: <a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa8542165ae195bf5784cdd9ba66bd2ab5">sensor.h</a>
+</li>
+<li>AREPORTING_MODE_ONE_SHOT
+: <a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa002273a1ab874159a38a7e3f6bb6a7bb">sensor.h</a>
+</li>
+<li>AREPORTING_MODE_SPECIAL_TRIGGER
+: <a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181faa2d29656b35889c4c23318982e847ae7">sensor.h</a>
+</li>
+<li>ASENSOR_STATUS_ACCURACY_HIGH
+: <a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8a2df5fb4e8b684e6a801a4aff9f50ba13">sensor.h</a>
+</li>
+<li>ASENSOR_STATUS_ACCURACY_LOW
+: <a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8a5f306f3d45a19573539462e4c813edc0">sensor.h</a>
+</li>
+<li>ASENSOR_STATUS_ACCURACY_MEDIUM
+: <a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ad7e9379a4f36a42f2659cd7aec214f2d">sensor.h</a>
+</li>
+<li>ASENSOR_STATUS_NO_CONTACT
+: <a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ae5d0475bd9491c4232a09afc81fa283d">sensor.h</a>
+</li>
+<li>ASENSOR_STATUS_UNRELIABLE
+: <a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ae8e43df50b7b85ed54f22c40f2cd748e">sensor.h</a>
+</li>
+<li>ASENSOR_TYPE_ACCELEROMETER
+: <a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167bad72017f34c12971593a8cb14f4f254df">sensor.h</a>
+</li>
+<li>ASENSOR_TYPE_GYROSCOPE
+: <a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba80e9827f6c3ded009f354dc7078a2c68">sensor.h</a>
+</li>
+<li>ASENSOR_TYPE_LIGHT
+: <a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba105331b6dea6f08e0d8fe3b736f8c174">sensor.h</a>
+</li>
+<li>ASENSOR_TYPE_MAGNETIC_FIELD
+: <a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba3b31509a3efebafb413e78f5ec9ae0e8">sensor.h</a>
+</li>
+<li>ASENSOR_TYPE_PROXIMITY
+: <a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba0c6a2e526ed2e4442b3843976f906932">sensor.h</a>
+</li>
+<li>AWINDOW_FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa67363c129036872bc9dd29557e807508">window.h</a>
+</li>
+<li>AWINDOW_FLAG_ALT_FOCUSABLE_IM
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa961ff4c9c0903cfb8867d961bebe1659">window.h</a>
+</li>
+<li>AWINDOW_FLAG_BLUR_BEHIND
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa0377f46a626d411ace179c1c27d0a3f7">window.h</a>
+</li>
+<li>AWINDOW_FLAG_DIM_BEHIND
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa6155e77ae4e12cc56fb3f6f55f56bf6f">window.h</a>
+</li>
+<li>AWINDOW_FLAG_DISMISS_KEYGUARD
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa37c1077a12f1c8c6805b1da6f7bb213a">window.h</a>
+</li>
+<li>AWINDOW_FLAG_DITHER
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffae73488b436aaea163ba2f7051bf93d9d">window.h</a>
+</li>
+<li>AWINDOW_FLAG_FORCE_NOT_FULLSCREEN
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa4c21235db629d3937f87ffe98cd6fe5d">window.h</a>
+</li>
+<li>AWINDOW_FLAG_FULLSCREEN
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaca1f1d91313d7c32bb7982d8a5abcd71">window.h</a>
+</li>
+<li>AWINDOW_FLAG_IGNORE_CHEEK_PRESSES
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaa2fe4ee2307bb814a37a043de6d7d326">window.h</a>
+</li>
+<li>AWINDOW_FLAG_KEEP_SCREEN_ON
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaf6f66a498bd3bda8d51b6983eb2a99d8">window.h</a>
+</li>
+<li>AWINDOW_FLAG_LAYOUT_IN_SCREEN
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa6978968d7e0dc1a0e12f58ad395a959a">window.h</a>
+</li>
+<li>AWINDOW_FLAG_LAYOUT_INSET_DECOR
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa97b8542941bfe613bcf92357be89b563">window.h</a>
+</li>
+<li>AWINDOW_FLAG_LAYOUT_NO_LIMITS
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffade9722581a203ee0db25d42f4d2bd389">window.h</a>
+</li>
+<li>AWINDOW_FLAG_NOT_FOCUSABLE
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffab5f19f59dd6b2601e4d1a7ff533bc50f">window.h</a>
+</li>
+<li>AWINDOW_FLAG_NOT_TOUCH_MODAL
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa5ef903c3617dd33e3c22f567abd64b09">window.h</a>
+</li>
+<li>AWINDOW_FLAG_NOT_TOUCHABLE
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffae9f1278ffa6fe9c12c2305d4f4de1450">window.h</a>
+</li>
+<li>AWINDOW_FLAG_SCALED
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa80316264eeae9681a56c1a2297bf465a">window.h</a>
+</li>
+<li>AWINDOW_FLAG_SECURE
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa8ff70709a588a05781d7cb178b526cc0">window.h</a>
+</li>
+<li>AWINDOW_FLAG_SHOW_WALLPAPER
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa952ae6ceebe94d3f0d666454548b8824">window.h</a>
+</li>
+<li>AWINDOW_FLAG_SHOW_WHEN_LOCKED
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa549f08950ef1ed3a334338d08ced1c3b">window.h</a>
+</li>
+<li>AWINDOW_FLAG_TOUCHABLE_WHEN_WAKING
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa5574a513645e6e7cb4d6a9f4a043d773">window.h</a>
+</li>
+<li>AWINDOW_FLAG_TURN_SCREEN_ON
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffac4deee26ac742bbd0bb4c44fda140a01">window.h</a>
+</li>
+<li>AWINDOW_FLAG_WATCH_OUTSIDE_TOUCH
+: <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa35229f75b3309bafdd828cbbf27d05b6">window.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/globals_eval_w.jd b/docs/html-ndk/ndk/reference/globals_eval_w.jd
new file mode 100644
index 0000000..ab9cfe9
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/globals_eval_w.jd
@@ -0,0 +1,28 @@
+page.title=Globals
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>WINDOW_FORMAT_RGB_565
+: <a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310ab26fa9c38f169263b611a8b757bb0259">native_window.h</a>
+</li>
+<li>WINDOW_FORMAT_RGBA_8888
+: <a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310a6a165383340acce0b32c555dd2ac2c01">native_window.h</a>
+</li>
+<li>WINDOW_FORMAT_RGBX_8888
+: <a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310a5f83a97ccf64fc1554c220476e8aaf30">native_window.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/globals_func.jd b/docs/html-ndk/ndk/reference/globals_func.jd
new file mode 100644
index 0000000..b6073e6
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/globals_func.jd
@@ -0,0 +1,559 @@
+page.title=Globals
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>AAsset_close()
+: <a class="el" href="group___asset.html#ga1f241e49f691dafcada23bcb76155122">asset_manager.h</a>
+</li>
+<li>AAsset_getBuffer()
+: <a class="el" href="group___asset.html#ga553a14512a98542306238c3ce70d344f">asset_manager.h</a>
+</li>
+<li>AAsset_getLength()
+: <a class="el" href="group___asset.html#gaad8ec42e28522ebc72d3a5c357f9a600">asset_manager.h</a>
+</li>
+<li>AAsset_getLength64()
+: <a class="el" href="group___asset.html#ga55c8bc459327d5d23089e6a4b453f3f1">asset_manager.h</a>
+</li>
+<li>AAsset_getRemainingLength()
+: <a class="el" href="group___asset.html#gae806f55cbc4a93ca245f2adfd63d3eee">asset_manager.h</a>
+</li>
+<li>AAsset_getRemainingLength64()
+: <a class="el" href="group___asset.html#ga21e7221d88dcc44106843192b66755b5">asset_manager.h</a>
+</li>
+<li>AAsset_isAllocated()
+: <a class="el" href="group___asset.html#ga20344cb952a77fa1004f592fb1b55124">asset_manager.h</a>
+</li>
+<li>AAsset_openFileDescriptor()
+: <a class="el" href="group___asset.html#ga1af4ffd050016e99961e24f550981677">asset_manager.h</a>
+</li>
+<li>AAsset_openFileDescriptor64()
+: <a class="el" href="group___asset.html#ga123a44a575f85d91a00a8456dab7bd0a">asset_manager.h</a>
+</li>
+<li>AAsset_read()
+: <a class="el" href="group___asset.html#gaadd86322c1fda5121b6d33745c317fb9">asset_manager.h</a>
+</li>
+<li>AAsset_seek()
+: <a class="el" href="group___asset.html#gacc026a8bedeb1ef80bf12df3b72611a2">asset_manager.h</a>
+</li>
+<li>AAsset_seek64()
+: <a class="el" href="group___asset.html#ga81fbe4368de24a3296ef7a6eba0053c7">asset_manager.h</a>
+</li>
+<li>AAssetDir_close()
+: <a class="el" href="group___asset.html#gace1c4d0da274d643c5b10ca218cc6088">asset_manager.h</a>
+</li>
+<li>AAssetDir_getNextFileName()
+: <a class="el" href="group___asset.html#ga4703b9f7baa3daeba248b6547de6b9b0">asset_manager.h</a>
+</li>
+<li>AAssetDir_rewind()
+: <a class="el" href="group___asset.html#ga45db6d19ad5e1c0f9b2e6b4059da14b3">asset_manager.h</a>
+</li>
+<li>AAssetManager_fromJava()
+: <a class="el" href="group___asset.html#gadfd6537af41577735bcaee52120127f4">asset_manager_jni.h</a>
+</li>
+<li>AAssetManager_open()
+: <a class="el" href="group___asset.html#ga0037ce3c10a591fe632f34c1aa62955c">asset_manager.h</a>
+</li>
+<li>AAssetManager_openDir()
+: <a class="el" href="group___asset.html#gab5b57ff012d6d1024d8bf5d30aedced4">asset_manager.h</a>
+</li>
+<li>AConfiguration_copy()
+: <a class="el" href="group___configuration.html#gaabff04218a0a76afb8d3ea551b001565">configuration.h</a>
+</li>
+<li>AConfiguration_delete()
+: <a class="el" href="group___configuration.html#ga60fe264b97da84d3370eb9e220159e6d">configuration.h</a>
+</li>
+<li>AConfiguration_diff()
+: <a class="el" href="group___configuration.html#gabfe69b0dccae425a16fe94d084f20402">configuration.h</a>
+</li>
+<li>AConfiguration_fromAssetManager()
+: <a class="el" href="group___configuration.html#ga75e061fd0b4f761e08e43af36508c4f3">configuration.h</a>
+</li>
+<li>AConfiguration_getCountry()
+: <a class="el" href="group___configuration.html#gad2b47f787012a82a67a20e5de5211d46">configuration.h</a>
+</li>
+<li>AConfiguration_getDensity()
+: <a class="el" href="group___configuration.html#ga4c994e0555947340582094c3da32a663">configuration.h</a>
+</li>
+<li>AConfiguration_getKeyboard()
+: <a class="el" href="group___configuration.html#gafd0f76ccd4fe4bda5172b8e0bc6675e4">configuration.h</a>
+</li>
+<li>AConfiguration_getKeysHidden()
+: <a class="el" href="group___configuration.html#ga7a8317ab975f621f3fe62ed1b44f2605">configuration.h</a>
+</li>
+<li>AConfiguration_getLanguage()
+: <a class="el" href="group___configuration.html#ga7b004c13448704afb0ea2040d69468c1">configuration.h</a>
+</li>
+<li>AConfiguration_getLayoutDirection()
+: <a class="el" href="group___configuration.html#ga13dbf2fc9a382c62b391e7de9cf9b468">configuration.h</a>
+</li>
+<li>AConfiguration_getMcc()
+: <a class="el" href="group___configuration.html#ga1e78004237a931086d2ae4bd8324bd30">configuration.h</a>
+</li>
+<li>AConfiguration_getMnc()
+: <a class="el" href="group___configuration.html#ga4783776a4fad4501898472375d781fb9">configuration.h</a>
+</li>
+<li>AConfiguration_getNavHidden()
+: <a class="el" href="group___configuration.html#gafe8d3a9c2f715ea76c8e4a99c2db9eaa">configuration.h</a>
+</li>
+<li>AConfiguration_getNavigation()
+: <a class="el" href="group___configuration.html#gae3ff1541b63f5b9256f7c0ebae372977">configuration.h</a>
+</li>
+<li>AConfiguration_getOrientation()
+: <a class="el" href="group___configuration.html#gaa7d8e3e9871dc925fef3e342a92e4e22">configuration.h</a>
+</li>
+<li>AConfiguration_getScreenHeightDp()
+: <a class="el" href="group___configuration.html#ga9905a4765f8d0d921c476ebce01c7648">configuration.h</a>
+</li>
+<li>AConfiguration_getScreenLong()
+: <a class="el" href="group___configuration.html#gab7d1f5aa59e8fa4db0a1b91bb322034c">configuration.h</a>
+</li>
+<li>AConfiguration_getScreenSize()
+: <a class="el" href="group___configuration.html#ga9d2c1b8731795d8e74be7e23cbc77552">configuration.h</a>
+</li>
+<li>AConfiguration_getScreenWidthDp()
+: <a class="el" href="group___configuration.html#ga61e5fe9612c170c33e1c7e9fb92f2219">configuration.h</a>
+</li>
+<li>AConfiguration_getSdkVersion()
+: <a class="el" href="group___configuration.html#ga4aa7062198e5aacd9fabb04d0453dd91">configuration.h</a>
+</li>
+<li>AConfiguration_getSmallestScreenWidthDp()
+: <a class="el" href="group___configuration.html#ga7fc015e41fad342edba66a003d9848aa">configuration.h</a>
+</li>
+<li>AConfiguration_getTouchscreen()
+: <a class="el" href="group___configuration.html#gad305e6cf86fa915c24212e71bb2bf027">configuration.h</a>
+</li>
+<li>AConfiguration_getUiModeNight()
+: <a class="el" href="group___configuration.html#ga447f16a9e4f8400e5e0328900749ff16">configuration.h</a>
+</li>
+<li>AConfiguration_getUiModeType()
+: <a class="el" href="group___configuration.html#ga1d75777892f38208feb3d2a94a977fcf">configuration.h</a>
+</li>
+<li>AConfiguration_isBetterThan()
+: <a class="el" href="group___configuration.html#gafd2bb31057c8d57efcea7603458d2a8d">configuration.h</a>
+</li>
+<li>AConfiguration_match()
+: <a class="el" href="group___configuration.html#gafb27b901a1d7d44ed866608fb8399a18">configuration.h</a>
+</li>
+<li>AConfiguration_new()
+: <a class="el" href="group___configuration.html#ga9543655922980466eb05c7be94a0a567">configuration.h</a>
+</li>
+<li>AConfiguration_setCountry()
+: <a class="el" href="group___configuration.html#gac2f5d414a6466634b1639b5c6f8879ac">configuration.h</a>
+</li>
+<li>AConfiguration_setDensity()
+: <a class="el" href="group___configuration.html#ga9217af9858a7166dcb9a877192779eac">configuration.h</a>
+</li>
+<li>AConfiguration_setKeyboard()
+: <a class="el" href="group___configuration.html#ga4ab3429c5505c108c09349f1ddef572f">configuration.h</a>
+</li>
+<li>AConfiguration_setKeysHidden()
+: <a class="el" href="group___configuration.html#ga5a80a02aa10cfa17de0795054e927183">configuration.h</a>
+</li>
+<li>AConfiguration_setLanguage()
+: <a class="el" href="group___configuration.html#ga1f3c6cf6667655f83777acda7387ddff">configuration.h</a>
+</li>
+<li>AConfiguration_setLayoutDirection()
+: <a class="el" href="group___configuration.html#gaaf47215cf551594f8c2a0594419b47e1">configuration.h</a>
+</li>
+<li>AConfiguration_setMcc()
+: <a class="el" href="group___configuration.html#gae6198b4eaf3e34168f4b13b8b5975d93">configuration.h</a>
+</li>
+<li>AConfiguration_setMnc()
+: <a class="el" href="group___configuration.html#gaaf060ef69c3636f62e90ae0b520eecb8">configuration.h</a>
+</li>
+<li>AConfiguration_setNavHidden()
+: <a class="el" href="group___configuration.html#ga67e86e0347596421771af841710308d5">configuration.h</a>
+</li>
+<li>AConfiguration_setNavigation()
+: <a class="el" href="group___configuration.html#gad21dd14fb823a6a80b66132a05ce8913">configuration.h</a>
+</li>
+<li>AConfiguration_setOrientation()
+: <a class="el" href="group___configuration.html#gadcaa8540bad4172a74032143bcaade04">configuration.h</a>
+</li>
+<li>AConfiguration_setScreenHeightDp()
+: <a class="el" href="group___configuration.html#ga6ffac3b41415ec8a3031737ccdcd63b8">configuration.h</a>
+</li>
+<li>AConfiguration_setScreenLong()
+: <a class="el" href="group___configuration.html#gaed853ab7e2bc915591d05997130bc448">configuration.h</a>
+</li>
+<li>AConfiguration_setScreenSize()
+: <a class="el" href="group___configuration.html#ga7bcf05150933ead34a01061d05ad3245">configuration.h</a>
+</li>
+<li>AConfiguration_setScreenWidthDp()
+: <a class="el" href="group___configuration.html#gafc51d45679095965fe3ba1abd402f120">configuration.h</a>
+</li>
+<li>AConfiguration_setSdkVersion()
+: <a class="el" href="group___configuration.html#ga06c66072902ee455011120188ca4810b">configuration.h</a>
+</li>
+<li>AConfiguration_setSmallestScreenWidthDp()
+: <a class="el" href="group___configuration.html#ga6b004c9585671efc5cebd96c1d43c4f0">configuration.h</a>
+</li>
+<li>AConfiguration_setTouchscreen()
+: <a class="el" href="group___configuration.html#ga0d51dbe710c1afe31ece4dd6a8c188ff">configuration.h</a>
+</li>
+<li>AConfiguration_setUiModeNight()
+: <a class="el" href="group___configuration.html#ga08df1e801afbe4a12411e393b8141e42">configuration.h</a>
+</li>
+<li>AConfiguration_setUiModeType()
+: <a class="el" href="group___configuration.html#gaec61e3cf91cd79e8b76a35bbcb15789d">configuration.h</a>
+</li>
+<li>AInputEvent_getDeviceId()
+: <a class="el" href="group___input.html#ga9dd3fd81e51dbfde19ab861541242aa1">input.h</a>
+</li>
+<li>AInputEvent_getSource()
+: <a class="el" href="group___input.html#gac90d4b497669dbc709ec9650db4e49be">input.h</a>
+</li>
+<li>AInputEvent_getType()
+: <a class="el" href="group___input.html#ga8292ae06aa8120c52d7380d228600b9c">input.h</a>
+</li>
+<li>AInputQueue_attachLooper()
+: <a class="el" href="group___input.html#ga900711156bfb58d1a4b158da7874930f">input.h</a>
+</li>
+<li>AInputQueue_detachLooper()
+: <a class="el" href="group___input.html#gaeebe9f83392ac79b31ca40a6fd4dbeff">input.h</a>
+</li>
+<li>AInputQueue_finishEvent()
+: <a class="el" href="group___input.html#ga17e87e0f35d47d729eac31a0dfb1ac33">input.h</a>
+</li>
+<li>AInputQueue_getEvent()
+: <a class="el" href="group___input.html#ga88de12e2b39787ba7d3e4ce2ea46a48c">input.h</a>
+</li>
+<li>AInputQueue_hasEvents()
+: <a class="el" href="group___input.html#ga2b72ad6ab5ef656e8c41163aa7871c96">input.h</a>
+</li>
+<li>AInputQueue_preDispatchEvent()
+: <a class="el" href="group___input.html#gadecd32e6c7aefa4a508b355550d3eaa9">input.h</a>
+</li>
+<li>AKeyEvent_getAction()
+: <a class="el" href="group___input.html#ga36ec0b59f98f86a7ca263ba91279896d">input.h</a>
+</li>
+<li>AKeyEvent_getDownTime()
+: <a class="el" href="group___input.html#gaf475b6f0860bdfca4ceea7bc46eab1a9">input.h</a>
+</li>
+<li>AKeyEvent_getEventTime()
+: <a class="el" href="group___input.html#gae3eac7d68195d1767c947ca267842696">input.h</a>
+</li>
+<li>AKeyEvent_getFlags()
+: <a class="el" href="group___input.html#ga2a18e98efe0c4ccb6f39bb13c555010e">input.h</a>
+</li>
+<li>AKeyEvent_getKeyCode()
+: <a class="el" href="group___input.html#ga6b01ecd60018a5445f4917a861ca9466">input.h</a>
+</li>
+<li>AKeyEvent_getMetaState()
+: <a class="el" href="group___input.html#gabdda62b40b22727af2fb41740bf4787b">input.h</a>
+</li>
+<li>AKeyEvent_getRepeatCount()
+: <a class="el" href="group___input.html#ga5358fe3ebbd4b5b2f88a4ad2eba6f885">input.h</a>
+</li>
+<li>AKeyEvent_getScanCode()
+: <a class="el" href="group___input.html#ga4a0a846b7a195aeb290dfcd2250137d9">input.h</a>
+</li>
+<li>ALooper_acquire()
+: <a class="el" href="group___looper.html#gae1ad7ac48ab01a34bfd25840c92ff07b">looper.h</a>
+</li>
+<li>ALooper_addFd()
+: <a class="el" href="group___looper.html#ga2668285bfadcf21ef4d371568a30be33">looper.h</a>
+</li>
+<li>ALooper_forThread()
+: <a class="el" href="group___looper.html#ga741ccd90a0eb9209c6bddf2326d89e4a">looper.h</a>
+</li>
+<li>ALooper_pollAll()
+: <a class="el" href="group___looper.html#gaa7cd0636edc4ed227aadc585360ebefa">looper.h</a>
+</li>
+<li>ALooper_pollOnce()
+: <a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">looper.h</a>
+</li>
+<li>ALooper_prepare()
+: <a class="el" href="group___looper.html#ga1a070b904dd957cc65af9eb5ef6dfa25">looper.h</a>
+</li>
+<li>ALooper_release()
+: <a class="el" href="group___looper.html#gab723c3c2ac2c66bc695913a194073727">looper.h</a>
+</li>
+<li>ALooper_removeFd()
+: <a class="el" href="group___looper.html#gaf7d68ed05698b251489b4f6c8e54daad">looper.h</a>
+</li>
+<li>ALooper_wake()
+: <a class="el" href="group___looper.html#gab2585652f8ae2e2444979194ebe32aaf">looper.h</a>
+</li>
+<li>AMotionEvent_getAction()
+: <a class="el" href="group___input.html#ga73ea2093cc2343675ac43dd08bef4247">input.h</a>
+</li>
+<li>AMotionEvent_getAxisValue()
+: <a class="el" href="group___input.html#ga9d364cdcebf85237f599b25861f38c21">input.h</a>
+</li>
+<li>AMotionEvent_getButtonState()
+: <a class="el" href="group___input.html#ga1aa7ebb749416491b6f0c55ae87ddf49">input.h</a>
+</li>
+<li>AMotionEvent_getDownTime()
+: <a class="el" href="group___input.html#gad44be7697e68891688cd7bcfaffec209">input.h</a>
+</li>
+<li>AMotionEvent_getEdgeFlags()
+: <a class="el" href="group___input.html#gad7e1f0caa4c27194d4a8756a18432299">input.h</a>
+</li>
+<li>AMotionEvent_getEventTime()
+: <a class="el" href="group___input.html#ga7e13fbf3cff0700b0b620284ebdd3a33">input.h</a>
+</li>
+<li>AMotionEvent_getFlags()
+: <a class="el" href="group___input.html#ga2891d19197c070207098fa48adeb35af">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalAxisValue()
+: <a class="el" href="group___input.html#ga7ca740e1324f3cdb934252dce0c982d0">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalEventTime()
+: <a class="el" href="group___input.html#ga523f1a760754206965b42b08d62f9346">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalOrientation()
+: <a class="el" href="group___input.html#gaab9cb8fa670175ecc73c75eed4e5cd3f">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalPressure()
+: <a class="el" href="group___input.html#gaa8e9352ee5b043b3e1b6e2062d491010">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalRawX()
+: <a class="el" href="group___input.html#ga5d36c2e7420001c86ae2aa1168fe6f83">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalRawY()
+: <a class="el" href="group___input.html#ga6deb0e7690a93aa53e5872c2691b69fe">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalSize()
+: <a class="el" href="group___input.html#ga0a04bb7ec12928db7e62645e7fad3a9e">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalToolMajor()
+: <a class="el" href="group___input.html#ga160a5830e791e8c42ae97f51b92233d2">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalToolMinor()
+: <a class="el" href="group___input.html#gafe01aa7576a6d1bce750fb8482355849">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalTouchMajor()
+: <a class="el" href="group___input.html#gaf437f223668b97f19ebdbad4b9cf4483">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalTouchMinor()
+: <a class="el" href="group___input.html#ga126715d966e989652aa1ae5d38e0e898">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalX()
+: <a class="el" href="group___input.html#ga49a8ca89ff377b5ed2355e8d7220ae07">input.h</a>
+</li>
+<li>AMotionEvent_getHistoricalY()
+: <a class="el" href="group___input.html#ga30fc4e5d3ce144955859f8c97b51b73d">input.h</a>
+</li>
+<li>AMotionEvent_getHistorySize()
+: <a class="el" href="group___input.html#ga0aef34c236db6d7a56a50bf590be7bcc">input.h</a>
+</li>
+<li>AMotionEvent_getMetaState()
+: <a class="el" href="group___input.html#ga5644f0d952e3dea57ba9f7ce51dff2bb">input.h</a>
+</li>
+<li>AMotionEvent_getOrientation()
+: <a class="el" href="group___input.html#gad28422998da15b789edcba6b8bc5d615">input.h</a>
+</li>
+<li>AMotionEvent_getPointerCount()
+: <a class="el" href="group___input.html#ga612e68d104adbc6d14d87510e8066bd8">input.h</a>
+</li>
+<li>AMotionEvent_getPointerId()
+: <a class="el" href="group___input.html#ga599e21a79c706807243a8ee31b116138">input.h</a>
+</li>
+<li>AMotionEvent_getPressure()
+: <a class="el" href="group___input.html#ga97fcaa6cd08c9d54b35711e482e06c8d">input.h</a>
+</li>
+<li>AMotionEvent_getRawX()
+: <a class="el" href="group___input.html#gafe45e29ef138cc30592237ce479837f0">input.h</a>
+</li>
+<li>AMotionEvent_getRawY()
+: <a class="el" href="group___input.html#ga5a09c3d742a93270861aa05f24257c23">input.h</a>
+</li>
+<li>AMotionEvent_getSize()
+: <a class="el" href="group___input.html#ga9b1f3c3df46b5269f9e74d2dd70c88a8">input.h</a>
+</li>
+<li>AMotionEvent_getToolMajor()
+: <a class="el" href="group___input.html#gac04099690f278a6a27191c2027b12a77">input.h</a>
+</li>
+<li>AMotionEvent_getToolMinor()
+: <a class="el" href="group___input.html#ga2222d459759ba4a8269647012d2718fb">input.h</a>
+</li>
+<li>AMotionEvent_getToolType()
+: <a class="el" href="group___input.html#ga2babe4e2e79952e004538f8f1878649c">input.h</a>
+</li>
+<li>AMotionEvent_getTouchMajor()
+: <a class="el" href="group___input.html#ga9ac18fe19534e07d80441582f489d471">input.h</a>
+</li>
+<li>AMotionEvent_getTouchMinor()
+: <a class="el" href="group___input.html#ga65f71e257b5fcb29dcbaaf59b3fcb3a7">input.h</a>
+</li>
+<li>AMotionEvent_getX()
+: <a class="el" href="group___input.html#ga22e255a5fa52761cd92ce78af91e9757">input.h</a>
+</li>
+<li>AMotionEvent_getXOffset()
+: <a class="el" href="group___input.html#ga7a94ce622eb78a17737fd8bddbf86e21">input.h</a>
+</li>
+<li>AMotionEvent_getXPrecision()
+: <a class="el" href="group___input.html#ga81a9be07673a01f43fd0241c7b4c254f">input.h</a>
+</li>
+<li>AMotionEvent_getY()
+: <a class="el" href="group___input.html#ga113f58a37e41f2a6c3007d68418edfa6">input.h</a>
+</li>
+<li>AMotionEvent_getYOffset()
+: <a class="el" href="group___input.html#ga7f6bd2c12d912f502c245b6ced6d3704">input.h</a>
+</li>
+<li>AMotionEvent_getYPrecision()
+: <a class="el" href="group___input.html#gae311e6e28bce4be905526f9ea71278ed">input.h</a>
+</li>
+<li>ANativeActivity_finish()
+: <a class="el" href="group___native_activity.html#ga4d872ae54a239704c06a0517e23cc0ad">native_activity.h</a>
+</li>
+<li>ANativeActivity_hideSoftInput()
+: <a class="el" href="group___native_activity.html#gaf673d6efea7ce517ef46ff2551b25944">native_activity.h</a>
+</li>
+<li>ANativeActivity_setWindowFlags()
+: <a class="el" href="group___native_activity.html#gaa1d091ca4a99b0ce570bab1c8c06f297">native_activity.h</a>
+</li>
+<li>ANativeActivity_setWindowFormat()
+: <a class="el" href="group___native_activity.html#gaec8b12decdf2b9841344e75c4c038c5a">native_activity.h</a>
+</li>
+<li>ANativeActivity_showSoftInput()
+: <a class="el" href="group___native_activity.html#ga14eaeb6190f266369023b04d8ab9dba7">native_activity.h</a>
+</li>
+<li>ANativeWindow_acquire()
+: <a class="el" href="group___native_activity.html#ga533876b57909243b238927344a6592db">native_window.h</a>
+</li>
+<li>ANativeWindow_fromSurface()
+: <a class="el" href="group___native_activity.html#ga774d0a87ec496b3940fcddccbc31fd9d">native_window_jni.h</a>
+</li>
+<li>ANativeWindow_getFormat()
+: <a class="el" href="group___native_activity.html#ga9e3a492a8300146b30d864f0ab22bb2e">native_window.h</a>
+</li>
+<li>ANativeWindow_getHeight()
+: <a class="el" href="group___native_activity.html#ga463ba99f6dee3edc1167a54e1ff7de15">native_window.h</a>
+</li>
+<li>ANativeWindow_getWidth()
+: <a class="el" href="group___native_activity.html#ga186f0040c5cb405a63d93889bb9a4ff1">native_window.h</a>
+</li>
+<li>ANativeWindow_lock()
+: <a class="el" href="group___native_activity.html#ga0b0e3b7d442dee83e1a1b42e5b0caee6">native_window.h</a>
+</li>
+<li>ANativeWindow_release()
+: <a class="el" href="group___native_activity.html#gae944e98865b902bd924663785d7b0258">native_window.h</a>
+</li>
+<li>ANativeWindow_setBuffersGeometry()
+: <a class="el" href="group___native_activity.html#ga7b0652533998d61e1a3b542485889113">native_window.h</a>
+</li>
+<li>ANativeWindow_unlockAndPost()
+: <a class="el" href="group___native_activity.html#ga4dc9b687ead9034fbc11bf2d90f203f9">native_window.h</a>
+</li>
+<li>AndroidBitmap_getInfo()
+: <a class="el" href="group___bitmap.html#ga80292ee39d8a675928e38849742b54bf">bitmap.h</a>
+</li>
+<li>AndroidBitmap_lockPixels()
+: <a class="el" href="group___bitmap.html#ga2908d42fa4db286c34b7f8c11f29206f">bitmap.h</a>
+</li>
+<li>AndroidBitmap_unlockPixels()
+: <a class="el" href="group___bitmap.html#ga4aca91f37baddd42d0051dca8179d4ed">bitmap.h</a>
+</li>
+<li>AObbInfo_delete()
+: <a class="el" href="group___storage.html#gaec5a4428008f545e829486099298031a">obb.h</a>
+</li>
+<li>AObbInfo_getFlags()
+: <a class="el" href="group___storage.html#ga68d916570c756da9fd0d9096358300eb">obb.h</a>
+</li>
+<li>AObbInfo_getPackageName()
+: <a class="el" href="group___storage.html#ga1ec7eee61541fa5a9b578801a35b9cf3">obb.h</a>
+</li>
+<li>AObbInfo_getVersion()
+: <a class="el" href="group___storage.html#gacd8471c6d866cffe4a32f3b5997c782c">obb.h</a>
+</li>
+<li>AObbScanner_getObbInfo()
+: <a class="el" href="group___storage.html#ga7beb4f82e3bf9a4b8197917f92ac4d5e">obb.h</a>
+</li>
+<li>ASensor_getFifoMaxEventCount()
+: <a class="el" href="group___sensor.html#gae9969580eda319926a677a6937c7afb1">sensor.h</a>
+</li>
+<li>ASensor_getFifoReservedEventCount()
+: <a class="el" href="group___sensor.html#gaec7084c6a9d4d85f87c95a70511c5f53">sensor.h</a>
+</li>
+<li>ASensor_getMinDelay()
+: <a class="el" href="group___sensor.html#gacb6e021757c07344b58742611eaf68e7">sensor.h</a>
+</li>
+<li>ASensor_getName()
+: <a class="el" href="group___sensor.html#ga52f4b22990c70df0784b9ccf23314fae">sensor.h</a>
+</li>
+<li>ASensor_getReportingMode()
+: <a class="el" href="group___sensor.html#ga99e56b84cf421788c27998da8eab7e39">sensor.h</a>
+</li>
+<li>ASensor_getResolution()
+: <a class="el" href="group___sensor.html#ga3da2930dd866cf1f76da6bc39e578a46">sensor.h</a>
+</li>
+<li>ASensor_getStringType()
+: <a class="el" href="group___sensor.html#gabee3eb65390fc75a639c59d653af3591">sensor.h</a>
+</li>
+<li>ASensor_getType()
+: <a class="el" href="group___sensor.html#ga93962747ab3c7d2b609f97af26fc0230">sensor.h</a>
+</li>
+<li>ASensor_getVendor()
+: <a class="el" href="group___sensor.html#gafaf467fc71f7adba537a90f166e3320d">sensor.h</a>
+</li>
+<li>ASensor_isWakeUpSensor()
+: <a class="el" href="group___sensor.html#ga0ff4118e400bedac62be6b79e9e0f924">sensor.h</a>
+</li>
+<li>ASensorEventQueue_disableSensor()
+: <a class="el" href="group___sensor.html#ga03852b813887ec236a34c4aef0df4b68">sensor.h</a>
+</li>
+<li>ASensorEventQueue_enableSensor()
+: <a class="el" href="group___sensor.html#ga48a8379cf9de9b09a71a00f8a3699499">sensor.h</a>
+</li>
+<li>ASensorEventQueue_getEvents()
+: <a class="el" href="group___sensor.html#gab3d4354fd0d3ceb5fa97c129b024a18a">sensor.h</a>
+</li>
+<li>ASensorEventQueue_hasEvents()
+: <a class="el" href="group___sensor.html#ga79c9d6264fe81d4e30800f826db72913">sensor.h</a>
+</li>
+<li>ASensorEventQueue_setEventRate()
+: <a class="el" href="group___sensor.html#gaa6e89b6d69dc3e07f2d7e72e81ec7937">sensor.h</a>
+</li>
+<li>ASensorManager_createEventQueue()
+: <a class="el" href="group___sensor.html#gac46f8b28bcc7a846dea9d841cab0a67b">sensor.h</a>
+</li>
+<li>ASensorManager_destroyEventQueue()
+: <a class="el" href="group___sensor.html#gaf35624037785cdea1e7fe9e0a73fc5e1">sensor.h</a>
+</li>
+<li>ASensorManager_getDefaultSensor()
+: <a class="el" href="group___sensor.html#gaf4880d87e01f5e2d4a9b8403e4047445">sensor.h</a>
+</li>
+<li>ASensorManager_getDefaultSensorEx()
+: <a class="el" href="group___sensor.html#ga4313457c0e82f4afa77ef13860629633">sensor.h</a>
+</li>
+<li>ASensorManager_getInstance()
+: <a class="el" href="group___sensor.html#gaa438fdaf34783a89d139f0a56d2692cd">sensor.h</a>
+</li>
+<li>ASensorManager_getSensorList()
+: <a class="el" href="group___sensor.html#ga645be938627498ab2b60d94c562204bd">sensor.h</a>
+</li>
+<li>AStorageManager_delete()
+: <a class="el" href="group___storage.html#ga184c06dd9cec0f21db138167d6b331ed">storage_manager.h</a>
+</li>
+<li>AStorageManager_getMountedObbPath()
+: <a class="el" href="group___storage.html#gad5c90305d627e0c768da37cb3e9f08c4">storage_manager.h</a>
+</li>
+<li>AStorageManager_isObbMounted()
+: <a class="el" href="group___storage.html#ga7572f2c650fc16cce1b0ab94e913a1ba">storage_manager.h</a>
+</li>
+<li>AStorageManager_mountObb()
+: <a class="el" href="group___storage.html#ga61bebaf43e57b4b7f57e7a24a62e9e3d">storage_manager.h</a>
+</li>
+<li>AStorageManager_new()
+: <a class="el" href="group___storage.html#ga1c21ed9e0848fcfc03547c95eeb48877">storage_manager.h</a>
+</li>
+<li>AStorageManager_unmountObb()
+: <a class="el" href="group___storage.html#ga4c32c8d2c780016fa36097d833b57809">storage_manager.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/globals_type.jd b/docs/html-ndk/ndk/reference/globals_type.jd
new file mode 100644
index 0000000..2659971
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/globals_type.jd
@@ -0,0 +1,98 @@
+page.title=Globals
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="contents">
+&#160;<ul>
+<li>AAsset
+: <a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">asset_manager.h</a>
+</li>
+<li>AAssetDir
+: <a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">asset_manager.h</a>
+</li>
+<li>AAssetManager
+: <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">asset_manager.h</a>
+</li>
+<li>AConfiguration
+: <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">configuration.h</a>
+</li>
+<li>AHeartRateEvent
+: <a class="el" href="group___sensor.html#gae85b6eac76abe74e6e53d78bb3a4858c">sensor.h</a>
+</li>
+<li>AInputEvent
+: <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">input.h</a>
+</li>
+<li>AInputQueue
+: <a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">input.h</a>
+</li>
+<li>ALooper
+: <a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">looper.h</a>
+</li>
+<li>ALooper_callbackFunc
+: <a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">looper.h</a>
+</li>
+<li>AMetaDataEvent
+: <a class="el" href="group___sensor.html#ga0378daec23b2d8a70438ef7c3912475f">sensor.h</a>
+</li>
+<li>ANativeActivity
+: <a class="el" href="group___native_activity.html#ga8abd07923f37feb1ce724d139cc2609d">native_activity.h</a>
+</li>
+<li>ANativeActivity_createFunc
+: <a class="el" href="group___native_activity.html#ga569a53bcac3fcedb0189b7c412ebcb22">native_activity.h</a>
+</li>
+<li>ANativeActivityCallbacks
+: <a class="el" href="group___native_activity.html#ga28dca784e5ee939427135c72c0151c38">native_activity.h</a>
+</li>
+<li>ANativeWindow
+: <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">native_window.h</a>
+</li>
+<li>ANativeWindow_Buffer
+: <a class="el" href="group___native_activity.html#gad0983ca473ce36293baf5e51a14c3357">native_window.h</a>
+</li>
+<li>AObbInfo
+: <a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">obb.h</a>
+</li>
+<li>ARect
+: <a class="el" href="group___native_activity.html#gaa984a498f0e146ac57c6022a323423cf">rect.h</a>
+</li>
+<li>ASensor
+: <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">sensor.h</a>
+</li>
+<li>ASensorEvent
+: <a class="el" href="group___sensor.html#ga6bb167c45f0ef0a94d8f178d227e781f">sensor.h</a>
+</li>
+<li>ASensorEventQueue
+: <a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">sensor.h</a>
+</li>
+<li>ASensorList
+: <a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">sensor.h</a>
+</li>
+<li>ASensorManager
+: <a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">sensor.h</a>
+</li>
+<li>ASensorRef
+: <a class="el" href="group___sensor.html#gafec8dd682458c750a5f0f913a0f162ce">sensor.h</a>
+</li>
+<li>ASensorVector
+: <a class="el" href="group___sensor.html#ga207e807f9e18271f6a763e57232b409f">sensor.h</a>
+</li>
+<li>AStorageManager
+: <a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">storage_manager.h</a>
+</li>
+<li>AStorageManager_obbCallbackFunc
+: <a class="el" href="group___storage.html#gaf077d06586fa4c0212baa2fe458b9617">storage_manager.h</a>
+</li>
+<li>AUncalibratedEvent
+: <a class="el" href="group___sensor.html#ga24acc545b908dd24cadc44c5e0760b3b">sensor.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/globals_vars.jd b/docs/html-ndk/ndk/reference/globals_vars.jd
new file mode 100644
index 0000000..f538a6f
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/globals_vars.jd
@@ -0,0 +1,20 @@
+page.title=Globals
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="contents">
+&#160;<ul>
+<li>ANativeActivity_onCreate
+: <a class="el" href="group___native_activity.html#ga02791d0d490839055169f39fdc905c5e">native_activity.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/globals_w.jd b/docs/html-ndk/ndk/reference/globals_w.jd
new file mode 100644
index 0000000..0bb34db
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/globals_w.jd
@@ -0,0 +1,28 @@
+page.title=Globals
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="contents">
+<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>WINDOW_FORMAT_RGB_565
+: <a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310ab26fa9c38f169263b611a8b757bb0259">native_window.h</a>
+</li>
+<li>WINDOW_FORMAT_RGBA_8888
+: <a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310a6a165383340acce0b32c555dd2ac2c01">native_window.h</a>
+</li>
+<li>WINDOW_FORMAT_RGBX_8888
+: <a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310a5f83a97ccf64fc1554c220476e8aaf30">native_window.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/group___asset.jd b/docs/html-ndk/ndk/reference/group___asset.jd
new file mode 100644
index 0000000..300bc87
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/group___asset.jd
@@ -0,0 +1,599 @@
+page.title=Asset
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#files">Files</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Asset</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:asset__manager_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="asset__manager_8h.html">asset_manager.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:asset__manager__jni_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="asset__manager__jni_8h.html">asset_manager_jni.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga90c459935e76acf809b9ec90d1872771"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a></td></tr>
+<tr class="separator:ga90c459935e76acf809b9ec90d1872771"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga001a6b9c36a06ee977b9f51ed7103cdb"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a></td></tr>
+<tr class="separator:ga001a6b9c36a06ee977b9f51ed7103cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5630b1f1aa5cd363303018cb2f12f95c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a></td></tr>
+<tr class="separator:ga5630b1f1aa5cd363303018cb2f12f95c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba5bf76576f07042f965f230086f7c09f4">AASSET_MODE_UNKNOWN</a> = 0, 
+<a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba88e1b2a920963d7596735fe28bf30e2f">AASSET_MODE_RANDOM</a> = 1, 
+<a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55bac76f5fdb953097efc04e534474a7ea74">AASSET_MODE_STREAMING</a> = 2, 
+<a class="el" href="group___asset.html#gga06fc87d81c62e9abb8790b6e5713c55ba40ec098f4afb7c2869fa449d3059f6bb">AASSET_MODE_BUFFER</a> = 3
+ }</td></tr>
+<tr class="separator:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gab5b57ff012d6d1024d8bf5d30aedced4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gab5b57ff012d6d1024d8bf5d30aedced4">AAssetManager_openDir</a> (<a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *mgr, const char *dirName)</td></tr>
+<tr class="separator:gab5b57ff012d6d1024d8bf5d30aedced4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0037ce3c10a591fe632f34c1aa62955c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga0037ce3c10a591fe632f34c1aa62955c">AAssetManager_open</a> (<a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *mgr, const char *filename, int mode)</td></tr>
+<tr class="separator:ga0037ce3c10a591fe632f34c1aa62955c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4703b9f7baa3daeba248b6547de6b9b0"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga4703b9f7baa3daeba248b6547de6b9b0">AAssetDir_getNextFileName</a> (<a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> *assetDir)</td></tr>
+<tr class="separator:ga4703b9f7baa3daeba248b6547de6b9b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga45db6d19ad5e1c0f9b2e6b4059da14b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga45db6d19ad5e1c0f9b2e6b4059da14b3">AAssetDir_rewind</a> (<a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> *assetDir)</td></tr>
+<tr class="separator:ga45db6d19ad5e1c0f9b2e6b4059da14b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gace1c4d0da274d643c5b10ca218cc6088"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gace1c4d0da274d643c5b10ca218cc6088">AAssetDir_close</a> (<a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> *assetDir)</td></tr>
+<tr class="separator:gace1c4d0da274d643c5b10ca218cc6088"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaadd86322c1fda5121b6d33745c317fb9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gaadd86322c1fda5121b6d33745c317fb9">AAsset_read</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset, void *buf, size_t count)</td></tr>
+<tr class="separator:gaadd86322c1fda5121b6d33745c317fb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacc026a8bedeb1ef80bf12df3b72611a2"><td class="memItemLeft" align="right" valign="top">off_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gacc026a8bedeb1ef80bf12df3b72611a2">AAsset_seek</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset, off_t offset, int whence)</td></tr>
+<tr class="separator:gacc026a8bedeb1ef80bf12df3b72611a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga81fbe4368de24a3296ef7a6eba0053c7"><td class="memItemLeft" align="right" valign="top">off64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga81fbe4368de24a3296ef7a6eba0053c7">AAsset_seek64</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset, off64_t offset, int whence)</td></tr>
+<tr class="separator:ga81fbe4368de24a3296ef7a6eba0053c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f241e49f691dafcada23bcb76155122"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga1f241e49f691dafcada23bcb76155122">AAsset_close</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:ga1f241e49f691dafcada23bcb76155122"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga553a14512a98542306238c3ce70d344f"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga553a14512a98542306238c3ce70d344f">AAsset_getBuffer</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:ga553a14512a98542306238c3ce70d344f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaad8ec42e28522ebc72d3a5c357f9a600"><td class="memItemLeft" align="right" valign="top">off_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gaad8ec42e28522ebc72d3a5c357f9a600">AAsset_getLength</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:gaad8ec42e28522ebc72d3a5c357f9a600"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga55c8bc459327d5d23089e6a4b453f3f1"><td class="memItemLeft" align="right" valign="top">off64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga55c8bc459327d5d23089e6a4b453f3f1">AAsset_getLength64</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:ga55c8bc459327d5d23089e6a4b453f3f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae806f55cbc4a93ca245f2adfd63d3eee"><td class="memItemLeft" align="right" valign="top">off_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gae806f55cbc4a93ca245f2adfd63d3eee">AAsset_getRemainingLength</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:gae806f55cbc4a93ca245f2adfd63d3eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21e7221d88dcc44106843192b66755b5"><td class="memItemLeft" align="right" valign="top">off64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga21e7221d88dcc44106843192b66755b5">AAsset_getRemainingLength64</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:ga21e7221d88dcc44106843192b66755b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1af4ffd050016e99961e24f550981677"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga1af4ffd050016e99961e24f550981677">AAsset_openFileDescriptor</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset, off_t *outStart, off_t *outLength)</td></tr>
+<tr class="separator:ga1af4ffd050016e99961e24f550981677"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga123a44a575f85d91a00a8456dab7bd0a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga123a44a575f85d91a00a8456dab7bd0a">AAsset_openFileDescriptor64</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset, off64_t *outStart, off64_t *outLength)</td></tr>
+<tr class="separator:ga123a44a575f85d91a00a8456dab7bd0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga20344cb952a77fa1004f592fb1b55124"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#ga20344cb952a77fa1004f592fb1b55124">AAsset_isAllocated</a> (<a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *asset)</td></tr>
+<tr class="separator:ga20344cb952a77fa1004f592fb1b55124"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadfd6537af41577735bcaee52120127f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___asset.html#gadfd6537af41577735bcaee52120127f4">AAssetManager_fromJava</a> (JNIEnv *env, jobject assetManager)</td></tr>
+<tr class="separator:gadfd6537af41577735bcaee52120127f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga5630b1f1aa5cd363303018cb2f12f95c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> <a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> provides access to a read-only asset.</p>
+<p><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> objects are NOT thread-safe, and should not be shared across threads. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga001a6b9c36a06ee977b9f51ed7103cdb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> <a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> provides access to a chunk of the asset hierarchy as if it were a single directory. The contents are populated by the <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a>.</p>
+<p>The list of files will be sorted in ascending order by ASCII value. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga90c459935e76acf809b9ec90d1872771"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> provides access to an application's raw assets by creating <a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> objects.</p>
+<p>AAssetManager is a wrapper to the low-level native implementation of the java <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a>, a pointer can be obtained using <a class="el" href="group___asset.html#gadfd6537af41577735bcaee52120127f4">AAssetManager_fromJava()</a>.</p>
+<p>The asset hierarchy may be examined like a filesystem, using <a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> objects to peruse a single directory.</p>
+<p>A native <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> pointer may be shared across multiple threads. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="ga06fc87d81c62e9abb8790b6e5713c55b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Available access modes for opening assets with <a class="el" href="group___asset.html#ga0037ce3c10a591fe632f34c1aa62955c">AAssetManager_open</a> </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga06fc87d81c62e9abb8790b6e5713c55ba5bf76576f07042f965f230086f7c09f4"></a>AASSET_MODE_UNKNOWN</em>&#160;</td><td class="fielddoc">
+<p>No specific information about how data will be accessed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga06fc87d81c62e9abb8790b6e5713c55ba88e1b2a920963d7596735fe28bf30e2f"></a>AASSET_MODE_RANDOM</em>&#160;</td><td class="fielddoc">
+<p>Read chunks, and seek forward and backward. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga06fc87d81c62e9abb8790b6e5713c55bac76f5fdb953097efc04e534474a7ea74"></a>AASSET_MODE_STREAMING</em>&#160;</td><td class="fielddoc">
+<p>Read sequentially, with an occasional forward seek. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga06fc87d81c62e9abb8790b6e5713c55ba40ec098f4afb7c2869fa449d3059f6bb"></a>AASSET_MODE_BUFFER</em>&#160;</td><td class="fielddoc">
+<p>Caller plans to ask for a read-only buffer with all data. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga1f241e49f691dafcada23bcb76155122"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AAsset_close </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Close the asset, freeing all associated resources. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga553a14512a98542306238c3ce70d344f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const void* AAsset_getBuffer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get a pointer to a buffer holding the entire contents of the assset.</p>
+<p>Returns NULL on failure. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaad8ec42e28522ebc72d3a5c357f9a600"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">off_t AAsset_getLength </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Report the total size of the asset data. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga55c8bc459327d5d23089e6a4b453f3f1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">off64_t AAsset_getLength64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Report the total size of the asset data. Reports the size using a 64-bit number insted of 32-bit as AAsset_getLength. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae806f55cbc4a93ca245f2adfd63d3eee"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">off_t AAsset_getRemainingLength </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Report the total amount of asset data that can be read from the current position. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga21e7221d88dcc44106843192b66755b5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">off64_t AAsset_getRemainingLength64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Report the total amount of asset data that can be read from the current position.</p>
+<p>Uses a 64-bit number instead of a 32-bit number as AAsset_getRemainingLength does. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga20344cb952a77fa1004f592fb1b55124"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int AAsset_isAllocated </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns whether this asset's internal buffer is allocated in ordinary RAM (i.e. not mmapped). </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1af4ffd050016e99961e24f550981677"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int AAsset_openFileDescriptor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">off_t *&#160;</td>
+          <td class="paramname"><em>outStart</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">off_t *&#160;</td>
+          <td class="paramname"><em>outLength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Open a new file descriptor that can be used to read the asset data. If the start or length cannot be represented by a 32-bit number, it will be truncated. If the file is large, use AAsset_openFileDescriptor64 instead.</p>
+<p>Returns &lt; 0 if direct fd access is not possible (for example, if the asset is compressed). </p>
+
+</div>
+</div>
+<a class="anchor" id="ga123a44a575f85d91a00a8456dab7bd0a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int AAsset_openFileDescriptor64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">off64_t *&#160;</td>
+          <td class="paramname"><em>outStart</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">off64_t *&#160;</td>
+          <td class="paramname"><em>outLength</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Open a new file descriptor that can be used to read the asset data.</p>
+<p>Uses a 64-bit number for the offset and length instead of 32-bit instead of as AAsset_openFileDescriptor does.</p>
+<p>Returns &lt; 0 if direct fd access is not possible (for example, if the asset is compressed). </p>
+
+</div>
+</div>
+<a class="anchor" id="gaadd86322c1fda5121b6d33745c317fb9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int AAsset_read </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Attempt to read 'count' bytes of data from the current offset.</p>
+<p>Returns the number of bytes read, zero on EOF, or &lt; 0 on error. </p>
+
+</div>
+</div>
+<a class="anchor" id="gacc026a8bedeb1ef80bf12df3b72611a2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">off_t AAsset_seek </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">off_t&#160;</td>
+          <td class="paramname"><em>offset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>whence</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Seek to the specified offset within the asset data. 'whence' uses the same constants as lseek()/fseek().</p>
+<p>Returns the new position on success, or (off_t) -1 on error. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga81fbe4368de24a3296ef7a6eba0053c7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">off64_t AAsset_seek64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a> *&#160;</td>
+          <td class="paramname"><em>asset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">off64_t&#160;</td>
+          <td class="paramname"><em>offset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>whence</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Seek to the specified offset within the asset data. 'whence' uses the same constants as lseek()/fseek().</p>
+<p>Uses 64-bit data type for large files as opposed to the 32-bit type used by AAsset_seek.</p>
+<p>Returns the new position on success, or (off64_t) -1 on error. </p>
+
+</div>
+</div>
+<a class="anchor" id="gace1c4d0da274d643c5b10ca218cc6088"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AAssetDir_close </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> *&#160;</td>
+          <td class="paramname"><em>assetDir</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Close an opened AAssetDir, freeing any related resources. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4703b9f7baa3daeba248b6547de6b9b0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* AAssetDir_getNextFileName </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> *&#160;</td>
+          <td class="paramname"><em>assetDir</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Iterate over the files in an asset directory. A NULL string is returned when all the file names have been returned.</p>
+<p>The returned file name is suitable for passing to <a class="el" href="group___asset.html#ga0037ce3c10a591fe632f34c1aa62955c">AAssetManager_open()</a>.</p>
+<p>The string returned here is owned by the AssetDir implementation and is not guaranteed to remain valid if any other calls are made on this AAssetDir instance. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga45db6d19ad5e1c0f9b2e6b4059da14b3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AAssetDir_rewind </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a> *&#160;</td>
+          <td class="paramname"><em>assetDir</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Reset the iteration state of <a class="el" href="group___asset.html#ga4703b9f7baa3daeba248b6547de6b9b0">AAssetDir_getNextFileName()</a> to the beginning. </p>
+
+</div>
+</div>
+<a class="anchor" id="gadfd6537af41577735bcaee52120127f4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a>* AAssetManager_fromJava </td>
+          <td>(</td>
+          <td class="paramtype">JNIEnv *&#160;</td>
+          <td class="paramname"><em>env</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">jobject&#160;</td>
+          <td class="paramname"><em>assetManager</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Given a Dalvik AssetManager object, obtain the corresponding native AAssetManager object. Note that the caller is responsible for obtaining and holding a VM reference to the jobject to prevent its being garbage collected while the native object is in use. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0037ce3c10a591fe632f34c1aa62955c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___asset.html#ga5630b1f1aa5cd363303018cb2f12f95c">AAsset</a>* AAssetManager_open </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *&#160;</td>
+          <td class="paramname"><em>mgr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>filename</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>mode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Open an asset.</p>
+<p>The object returned here should be freed by calling <a class="el" href="group___asset.html#ga1f241e49f691dafcada23bcb76155122">AAsset_close()</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="gab5b57ff012d6d1024d8bf5d30aedced4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___asset.html#ga001a6b9c36a06ee977b9f51ed7103cdb">AAssetDir</a>* AAssetManager_openDir </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *&#160;</td>
+          <td class="paramname"><em>mgr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>dirName</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Open the named directory within the asset hierarchy. The directory can then be inspected with the AAssetDir functions. To open the top-level directory, pass in "" as the dirName.</p>
+<p>The object returned here should be freed by calling <a class="el" href="group___asset.html#gace1c4d0da274d643c5b10ca218cc6088">AAssetDir_close()</a>. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/group___bitmap.jd b/docs/html-ndk/ndk/reference/group___bitmap.jd
new file mode 100644
index 0000000..045b550
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/group___bitmap.jd
@@ -0,0 +1,238 @@
+page.title=Bitmap
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#files">Files</a> &#124;
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Bitmap</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:bitmap_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bitmap_8h.html">bitmap.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_android_bitmap_info.html">AndroidBitmapInfo</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:gafb665ac9fefad34ac5c035f5d1314080"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___bitmap.html#gafb665ac9fefad34ac5c035f5d1314080">ANDROID_BITMAP_RESUT_SUCCESS</a>&#160;&#160;&#160;<a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a07f71cf5c5d4950ac9813ae4bbf6d076">ANDROID_BITMAP_RESULT_SUCCESS</a></td></tr>
+<tr class="separator:gafb665ac9fefad34ac5c035f5d1314080"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gadf764cbdea00d65edcd07bb9953ad2b7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a07f71cf5c5d4950ac9813ae4bbf6d076">ANDROID_BITMAP_RESULT_SUCCESS</a> = 0, 
+<a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7acf7205d1a348d867c63ac2885ce01374">ANDROID_BITMAP_RESULT_BAD_PARAMETER</a> = -1, 
+<a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a6b099b9533c38729a6c305f2fe93f98d">ANDROID_BITMAP_RESULT_JNI_EXCEPTION</a> = -2, 
+<a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a512f5b95b6b57e78d65502c06391f990">ANDROID_BITMAP_RESULT_ALLOCATION_FAILED</a> = -3
+ }</td></tr>
+<tr class="separator:gadf764cbdea00d65edcd07bb9953ad2b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea286a2d4c61ae2abb02b51500499f13"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___bitmap.html#gaea286a2d4c61ae2abb02b51500499f13">AndroidBitmapFormat</a> { <br/>
+&#160;&#160;<a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ac6f0378ea5cfefd9abee2596af5a9021">ANDROID_BITMAP_FORMAT_NONE</a> = 0, 
+<a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ab92ae96ceea06aa534583beadba84057">ANDROID_BITMAP_FORMAT_RGBA_8888</a> = 1, 
+<a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13a11b32e10d6db28fae70ec3590cb9ee91">ANDROID_BITMAP_FORMAT_RGB_565</a> = 4, 
+<a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13adc2ede06eafe20439271cb8137dc7528">ANDROID_BITMAP_FORMAT_RGBA_4444</a> = 7, 
+<br/>
+&#160;&#160;<a class="el" href="group___bitmap.html#ggaea286a2d4c61ae2abb02b51500499f13ad29996be25f8f88c96e016a1da5c4bca">ANDROID_BITMAP_FORMAT_A_8</a> = 8
+<br/>
+ }</td></tr>
+<tr class="separator:gaea286a2d4c61ae2abb02b51500499f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga80292ee39d8a675928e38849742b54bf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___bitmap.html#ga80292ee39d8a675928e38849742b54bf">AndroidBitmap_getInfo</a> (JNIEnv *env, jobject jbitmap, <a class="el" href="struct_android_bitmap_info.html">AndroidBitmapInfo</a> *info)</td></tr>
+<tr class="separator:ga80292ee39d8a675928e38849742b54bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2908d42fa4db286c34b7f8c11f29206f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___bitmap.html#ga2908d42fa4db286c34b7f8c11f29206f">AndroidBitmap_lockPixels</a> (JNIEnv *env, jobject jbitmap, void **addrPtr)</td></tr>
+<tr class="separator:ga2908d42fa4db286c34b7f8c11f29206f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4aca91f37baddd42d0051dca8179d4ed"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___bitmap.html#ga4aca91f37baddd42d0051dca8179d4ed">AndroidBitmap_unlockPixels</a> (JNIEnv *env, jobject jbitmap)</td></tr>
+<tr class="separator:ga4aca91f37baddd42d0051dca8179d4ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="gafb665ac9fefad34ac5c035f5d1314080"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ANDROID_BITMAP_RESUT_SUCCESS&#160;&#160;&#160;<a class="el" href="group___bitmap.html#ggadf764cbdea00d65edcd07bb9953ad2b7a07f71cf5c5d4950ac9813ae4bbf6d076">ANDROID_BITMAP_RESULT_SUCCESS</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Backward compatibility: this macro used to be misspelled. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="gadf764cbdea00d65edcd07bb9953ad2b7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>AndroidBitmap functions result code. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggadf764cbdea00d65edcd07bb9953ad2b7a07f71cf5c5d4950ac9813ae4bbf6d076"></a>ANDROID_BITMAP_RESULT_SUCCESS</em>&#160;</td><td class="fielddoc">
+<p>Operation was successful. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadf764cbdea00d65edcd07bb9953ad2b7acf7205d1a348d867c63ac2885ce01374"></a>ANDROID_BITMAP_RESULT_BAD_PARAMETER</em>&#160;</td><td class="fielddoc">
+<p>Bad parameter. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadf764cbdea00d65edcd07bb9953ad2b7a6b099b9533c38729a6c305f2fe93f98d"></a>ANDROID_BITMAP_RESULT_JNI_EXCEPTION</em>&#160;</td><td class="fielddoc">
+<p>JNI exception occured. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadf764cbdea00d65edcd07bb9953ad2b7a512f5b95b6b57e78d65502c06391f990"></a>ANDROID_BITMAP_RESULT_ALLOCATION_FAILED</em>&#160;</td><td class="fielddoc">
+<p>Allocation failed. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gaea286a2d4c61ae2abb02b51500499f13"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="group___bitmap.html#gaea286a2d4c61ae2abb02b51500499f13">AndroidBitmapFormat</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Bitmap pixel format. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaea286a2d4c61ae2abb02b51500499f13ac6f0378ea5cfefd9abee2596af5a9021"></a>ANDROID_BITMAP_FORMAT_NONE</em>&#160;</td><td class="fielddoc">
+<p>No format. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaea286a2d4c61ae2abb02b51500499f13ab92ae96ceea06aa534583beadba84057"></a>ANDROID_BITMAP_FORMAT_RGBA_8888</em>&#160;</td><td class="fielddoc">
+<p>Red: 8 bits, Green: 8 bits, Blue: 8 bits, Alpha: 8 bits. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaea286a2d4c61ae2abb02b51500499f13a11b32e10d6db28fae70ec3590cb9ee91"></a>ANDROID_BITMAP_FORMAT_RGB_565</em>&#160;</td><td class="fielddoc">
+<p>Red: 5 bits, Green: 6 bits, Blue: 5 bits. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaea286a2d4c61ae2abb02b51500499f13adc2ede06eafe20439271cb8137dc7528"></a>ANDROID_BITMAP_FORMAT_RGBA_4444</em>&#160;</td><td class="fielddoc">
+<p>Red: 4 bits, Green: 4 bits, Blue: 4 bits, Alpha: 4 bits. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaea286a2d4c61ae2abb02b51500499f13ad29996be25f8f88c96e016a1da5c4bca"></a>ANDROID_BITMAP_FORMAT_A_8</em>&#160;</td><td class="fielddoc">
+<p>Deprecated. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga80292ee39d8a675928e38849742b54bf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int AndroidBitmap_getInfo </td>
+          <td>(</td>
+          <td class="paramtype">JNIEnv *&#160;</td>
+          <td class="paramname"><em>env</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">jobject&#160;</td>
+          <td class="paramname"><em>jbitmap</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_android_bitmap_info.html">AndroidBitmapInfo</a> *&#160;</td>
+          <td class="paramname"><em>info</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Given a java bitmap object, fill out the <a class="el" href="struct_android_bitmap_info.html">AndroidBitmapInfo</a> struct for it. If the call fails, the info parameter will be ignored. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2908d42fa4db286c34b7f8c11f29206f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int AndroidBitmap_lockPixels </td>
+          <td>(</td>
+          <td class="paramtype">JNIEnv *&#160;</td>
+          <td class="paramname"><em>env</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">jobject&#160;</td>
+          <td class="paramname"><em>jbitmap</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void **&#160;</td>
+          <td class="paramname"><em>addrPtr</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Given a java bitmap object, attempt to lock the pixel address. Locking will ensure that the memory for the pixels will not move until the unlockPixels call, and ensure that, if the pixels had been previously purged, they will have been restored.</p>
+<p>If this call succeeds, it must be balanced by a call to AndroidBitmap_unlockPixels, after which time the address of the pixels should no longer be used.</p>
+<p>If this succeeds, *addrPtr will be set to the pixel address. If the call fails, addrPtr will be ignored. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4aca91f37baddd42d0051dca8179d4ed"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int AndroidBitmap_unlockPixels </td>
+          <td>(</td>
+          <td class="paramtype">JNIEnv *&#160;</td>
+          <td class="paramname"><em>env</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">jobject&#160;</td>
+          <td class="paramname"><em>jbitmap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Call this to balance a successful call to AndroidBitmap_lockPixels. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/group___configuration.jd b/docs/html-ndk/ndk/reference/group___configuration.jd
new file mode 100644
index 0000000..93d0fab
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/group___configuration.jd
@@ -0,0 +1,1565 @@
+page.title=Configuration
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#files">Files</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Configuration</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:configuration_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="configuration_8h.html">configuration.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga6709434d0f99b8367d0df2dfdfbef45a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a></td></tr>
+<tr class="separator:ga6709434d0f99b8367d0df2dfdfbef45a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga99fb83031ce9923c84392b4e92f956b5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af44cee3290a23999b0358c5638747a5f">ACONFIGURATION_ORIENTATION_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad9bf5c1fb90f9fdb20f984d0574592fe">ACONFIGURATION_ORIENTATION_PORT</a> = 0x0001, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad5746872ff6871379fca93c60bfac8a3">ACONFIGURATION_ORIENTATION_LAND</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ab0ca4fce673baf58447bfeb154d9a03f">ACONFIGURATION_ORIENTATION_SQUARE</a> = 0x0003, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aa73bcf45261366840fea743372682fa6">ACONFIGURATION_TOUCHSCREEN_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5adfbeb370edd3b4372c9b0f86f152dde0">ACONFIGURATION_TOUCHSCREEN_NOTOUCH</a> = 0x0001, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a8316a15b06353f883f2aef8bd194f79f">ACONFIGURATION_TOUCHSCREEN_STYLUS</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4bf2a8323ec6d072aa48d5fc2cff645e">ACONFIGURATION_TOUCHSCREEN_FINGER</a> = 0x0003, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae628b2bf594733b7c19ae394616cec6c">ACONFIGURATION_DENSITY_DEFAULT</a> = 0, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a01ddb34b2376422d2323720049eb57f3">ACONFIGURATION_DENSITY_LOW</a> = 120, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a2511479d7cd574c4b293d535e4dc337e">ACONFIGURATION_DENSITY_MEDIUM</a> = 160, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a10e6c3d636f3f6de75de9208913b0d8f">ACONFIGURATION_DENSITY_TV</a> = 213, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5ef4a97dc058235cdfa9fcfe3300c7eb">ACONFIGURATION_DENSITY_HIGH</a> = 240, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a38a03b3b1c64725679605d8d479c85a0">ACONFIGURATION_DENSITY_XHIGH</a> = 320, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad6353daf63778a6ec6f2bd3815d7e6e4">ACONFIGURATION_DENSITY_XXHIGH</a> = 480, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a2bd04af33e868a77bd4d83e7d70368ec">ACONFIGURATION_DENSITY_XXXHIGH</a> = 640, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a966a3855351a97ae865264afd74c1534">ACONFIGURATION_DENSITY_ANY</a> = 0xfffe, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a7c1af92914155c418b99844c6aab33d7">ACONFIGURATION_DENSITY_NONE</a> = 0xffff, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a593f722738682ae4500dab6427670f4a">ACONFIGURATION_KEYBOARD_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a40195a1a2d8e21c74d99606d8a1a9918">ACONFIGURATION_KEYBOARD_NOKEYS</a> = 0x0001, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a263ff8efb4d2c757e557adc0d0cdeedf">ACONFIGURATION_KEYBOARD_QWERTY</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1aaf1a887f146737030cce95c53066ea">ACONFIGURATION_KEYBOARD_12KEY</a> = 0x0003, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a90e914b60d28c081b313f4b7b6600f47">ACONFIGURATION_NAVIGATION_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a3d95e899305aeae366fb7f8d8b6c290a">ACONFIGURATION_NAVIGATION_NONAV</a> = 0x0001, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ace2e3ed21322100712992ca09f4b75b5">ACONFIGURATION_NAVIGATION_DPAD</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad2807d00cb2f5dcb9f456045dd8443a4">ACONFIGURATION_NAVIGATION_TRACKBALL</a> = 0x0003, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a80b53370f65ad283a4fd025f36422bea">ACONFIGURATION_NAVIGATION_WHEEL</a> = 0x0004, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a34d3a830bc2964000052f8486fd76b0c">ACONFIGURATION_KEYSHIDDEN_ANY</a> = 0x0000, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5abfbfc3a10affed059263555b00429ab2">ACONFIGURATION_KEYSHIDDEN_NO</a> = 0x0001, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5e6a5a3f4175644886bde7d0ed4b1ebf">ACONFIGURATION_KEYSHIDDEN_YES</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1a56b72c730e40f22f3b8727e54c376c">ACONFIGURATION_KEYSHIDDEN_SOFT</a> = 0x0003, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a6db7dd6a67196df88117dcdc904e0cb3">ACONFIGURATION_NAVHIDDEN_ANY</a> = 0x0000, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae6ff9883e3e89f8d9ea5c0ebe077c9c5">ACONFIGURATION_NAVHIDDEN_NO</a> = 0x0001, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a79b3a5fe10e948bb79db47b516d46cf5">ACONFIGURATION_NAVHIDDEN_YES</a> = 0x0002, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a9abcd34a6c549e048fc75a545081584e">ACONFIGURATION_SCREENSIZE_ANY</a> = 0x00, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1163af972206a65a5d18bda12fdc511c">ACONFIGURATION_SCREENSIZE_SMALL</a> = 0x01, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a019727e684f25ba921f3479abd62b9f2">ACONFIGURATION_SCREENSIZE_NORMAL</a> = 0x02, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af871d177fdceedb75612cfc1281d2c12">ACONFIGURATION_SCREENSIZE_LARGE</a> = 0x03, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a0ca385ed504fc92f6ff3f0857e916c9c">ACONFIGURATION_SCREENSIZE_XLARGE</a> = 0x04, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a41e55e57da42fd09c378f59c1a63710f">ACONFIGURATION_SCREENLONG_ANY</a> = 0x00, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a428bb8fcd8bc731b67b0773dc62781c5">ACONFIGURATION_SCREENLONG_NO</a> = 0x1, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a91fc014d328507568d225d691b3babfd">ACONFIGURATION_SCREENLONG_YES</a> = 0x2, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a10d0916da7fa88c945a9cda259407d4c">ACONFIGURATION_UI_MODE_TYPE_ANY</a> = 0x00, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae7efe2713b6718311da76c828b5b444e">ACONFIGURATION_UI_MODE_TYPE_NORMAL</a> = 0x01, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ae10bb854f461f60cf399852f8f327077">ACONFIGURATION_UI_MODE_TYPE_DESK</a> = 0x02, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a5d6575185e41d909469a1dcf5f81bf4f">ACONFIGURATION_UI_MODE_TYPE_CAR</a> = 0x03, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4738dded616f028fbbedcbad764e7969">ACONFIGURATION_UI_MODE_TYPE_TELEVISION</a> = 0x04, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ad99004a7a1b2a97d29b639664947f8e3">ACONFIGURATION_UI_MODE_TYPE_APPLIANCE</a> = 0x05, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ac8c3e2207f2356bc6a1dffc6a615d131">ACONFIGURATION_UI_MODE_TYPE_WATCH</a> = 0x06, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a975087bbd4087b57a68ef3cdbfeb77a1">ACONFIGURATION_UI_MODE_NIGHT_ANY</a> = 0x00, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a90ebe564e3a3e384d5b013100f81e4b7">ACONFIGURATION_UI_MODE_NIGHT_NO</a> = 0x1, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a437af4527fac5407de256ec1ef055046">ACONFIGURATION_UI_MODE_NIGHT_YES</a> = 0x2, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aad653f0c960112177fdc387a4a0577fa">ACONFIGURATION_SCREEN_WIDTH_DP_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ab66ad42d0cf72fd7e8cd99b92b625432">ACONFIGURATION_SCREEN_HEIGHT_DP_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a227120217d8b6a9d5add3ccc4b283702">ACONFIGURATION_SMALLEST_SCREEN_WIDTH_DP_ANY</a> = 0x0000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4687ede31c438dd9f2701cab88de1dbe">ACONFIGURATION_LAYOUTDIR_ANY</a> = 0x00, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a05242d8f2d254b43ff9414ff1aa38a83">ACONFIGURATION_LAYOUTDIR_LTR</a> = 0x01, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5af98332983b787ab9355b527079636870">ACONFIGURATION_LAYOUTDIR_RTL</a> = 0x02, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a4d40f2aef365c78a52f699b89439db28">ACONFIGURATION_MCC</a> = 0x0001, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ade91a319638eede201579d15f86578a5">ACONFIGURATION_MNC</a> = 0x0002, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a01ecff796bd0690a9a8498c7de03e9b4">ACONFIGURATION_LOCALE</a> = 0x0004, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a255cfb57ac18d460c5614565a84f5561">ACONFIGURATION_TOUCHSCREEN</a> = 0x0008, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a0195de2a57f028a8171c42beff0b0e88">ACONFIGURATION_KEYBOARD</a> = 0x0010, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a54e71234e32ed037e2d47472f80eb416">ACONFIGURATION_KEYBOARD_HIDDEN</a> = 0x0020, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a65e9d31615d2b4adf3738d9a12a1556b">ACONFIGURATION_NAVIGATION</a> = 0x0040, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a591461d864136d482fe06e01fd945786">ACONFIGURATION_ORIENTATION</a> = 0x0080, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5ace87b4f25e5fd6fe0f3316d21ecc66a1">ACONFIGURATION_DENSITY</a> = 0x0100, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a76ca1eb0e9346d93da592afbbf9a3b72">ACONFIGURATION_SCREEN_SIZE</a> = 0x0200, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a1be62e4fc31cf3d3102c99f7c6b4c71b">ACONFIGURATION_VERSION</a> = 0x0400, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a12d69ffef9135c1c55e1b8b5c2589e7c">ACONFIGURATION_SCREEN_LAYOUT</a> = 0x0800, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a43a324af59372efd08b34431825cf67e">ACONFIGURATION_UI_MODE</a> = 0x1000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5acce415252e0ad95117a05bbe910f06de">ACONFIGURATION_SMALLEST_SCREEN_SIZE</a> = 0x2000, 
+<br/>
+&#160;&#160;<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5a65834be1230d1694e5ce8a6f407acab2">ACONFIGURATION_LAYOUTDIR</a> = 0x4000, 
+<a class="el" href="group___configuration.html#gga99fb83031ce9923c84392b4e92f956b5aa6cda2f222580dbef27f1277d967d58c">ACONFIGURATION_MNC_ZERO</a> = 0xffff
+<br/>
+ }</td></tr>
+<tr class="separator:ga99fb83031ce9923c84392b4e92f956b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga9543655922980466eb05c7be94a0a567"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga9543655922980466eb05c7be94a0a567">AConfiguration_new</a> ()</td></tr>
+<tr class="separator:ga9543655922980466eb05c7be94a0a567"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga60fe264b97da84d3370eb9e220159e6d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga60fe264b97da84d3370eb9e220159e6d">AConfiguration_delete</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga60fe264b97da84d3370eb9e220159e6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga75e061fd0b4f761e08e43af36508c4f3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga75e061fd0b4f761e08e43af36508c4f3">AConfiguration_fromAssetManager</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *out, <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *am)</td></tr>
+<tr class="separator:ga75e061fd0b4f761e08e43af36508c4f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabff04218a0a76afb8d3ea551b001565"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaabff04218a0a76afb8d3ea551b001565">AConfiguration_copy</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *dest, <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *src)</td></tr>
+<tr class="separator:gaabff04218a0a76afb8d3ea551b001565"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1e78004237a931086d2ae4bd8324bd30"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga1e78004237a931086d2ae4bd8324bd30">AConfiguration_getMcc</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga1e78004237a931086d2ae4bd8324bd30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae6198b4eaf3e34168f4b13b8b5975d93"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gae6198b4eaf3e34168f4b13b8b5975d93">AConfiguration_setMcc</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t mcc)</td></tr>
+<tr class="separator:gae6198b4eaf3e34168f4b13b8b5975d93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4783776a4fad4501898472375d781fb9"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga4783776a4fad4501898472375d781fb9">AConfiguration_getMnc</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga4783776a4fad4501898472375d781fb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf060ef69c3636f62e90ae0b520eecb8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaaf060ef69c3636f62e90ae0b520eecb8">AConfiguration_setMnc</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t mnc)</td></tr>
+<tr class="separator:gaaf060ef69c3636f62e90ae0b520eecb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b004c13448704afb0ea2040d69468c1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga7b004c13448704afb0ea2040d69468c1">AConfiguration_getLanguage</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, char *outLanguage)</td></tr>
+<tr class="separator:ga7b004c13448704afb0ea2040d69468c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1f3c6cf6667655f83777acda7387ddff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga1f3c6cf6667655f83777acda7387ddff">AConfiguration_setLanguage</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, const char *language)</td></tr>
+<tr class="separator:ga1f3c6cf6667655f83777acda7387ddff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2b47f787012a82a67a20e5de5211d46"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gad2b47f787012a82a67a20e5de5211d46">AConfiguration_getCountry</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, char *outCountry)</td></tr>
+<tr class="separator:gad2b47f787012a82a67a20e5de5211d46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac2f5d414a6466634b1639b5c6f8879ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gac2f5d414a6466634b1639b5c6f8879ac">AConfiguration_setCountry</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, const char *country)</td></tr>
+<tr class="separator:gac2f5d414a6466634b1639b5c6f8879ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7d8e3e9871dc925fef3e342a92e4e22"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaa7d8e3e9871dc925fef3e342a92e4e22">AConfiguration_getOrientation</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gaa7d8e3e9871dc925fef3e342a92e4e22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadcaa8540bad4172a74032143bcaade04"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gadcaa8540bad4172a74032143bcaade04">AConfiguration_setOrientation</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t orientation)</td></tr>
+<tr class="separator:gadcaa8540bad4172a74032143bcaade04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad305e6cf86fa915c24212e71bb2bf027"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gad305e6cf86fa915c24212e71bb2bf027">AConfiguration_getTouchscreen</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gad305e6cf86fa915c24212e71bb2bf027"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0d51dbe710c1afe31ece4dd6a8c188ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga0d51dbe710c1afe31ece4dd6a8c188ff">AConfiguration_setTouchscreen</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t touchscreen)</td></tr>
+<tr class="separator:ga0d51dbe710c1afe31ece4dd6a8c188ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4c994e0555947340582094c3da32a663"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga4c994e0555947340582094c3da32a663">AConfiguration_getDensity</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga4c994e0555947340582094c3da32a663"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9217af9858a7166dcb9a877192779eac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga9217af9858a7166dcb9a877192779eac">AConfiguration_setDensity</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t density)</td></tr>
+<tr class="separator:ga9217af9858a7166dcb9a877192779eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd0f76ccd4fe4bda5172b8e0bc6675e4"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gafd0f76ccd4fe4bda5172b8e0bc6675e4">AConfiguration_getKeyboard</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gafd0f76ccd4fe4bda5172b8e0bc6675e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4ab3429c5505c108c09349f1ddef572f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga4ab3429c5505c108c09349f1ddef572f">AConfiguration_setKeyboard</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t keyboard)</td></tr>
+<tr class="separator:ga4ab3429c5505c108c09349f1ddef572f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3ff1541b63f5b9256f7c0ebae372977"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gae3ff1541b63f5b9256f7c0ebae372977">AConfiguration_getNavigation</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gae3ff1541b63f5b9256f7c0ebae372977"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad21dd14fb823a6a80b66132a05ce8913"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gad21dd14fb823a6a80b66132a05ce8913">AConfiguration_setNavigation</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t navigation)</td></tr>
+<tr class="separator:gad21dd14fb823a6a80b66132a05ce8913"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a8317ab975f621f3fe62ed1b44f2605"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga7a8317ab975f621f3fe62ed1b44f2605">AConfiguration_getKeysHidden</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga7a8317ab975f621f3fe62ed1b44f2605"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5a80a02aa10cfa17de0795054e927183"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga5a80a02aa10cfa17de0795054e927183">AConfiguration_setKeysHidden</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t keysHidden)</td></tr>
+<tr class="separator:ga5a80a02aa10cfa17de0795054e927183"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe8d3a9c2f715ea76c8e4a99c2db9eaa"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gafe8d3a9c2f715ea76c8e4a99c2db9eaa">AConfiguration_getNavHidden</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gafe8d3a9c2f715ea76c8e4a99c2db9eaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga67e86e0347596421771af841710308d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga67e86e0347596421771af841710308d5">AConfiguration_setNavHidden</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t navHidden)</td></tr>
+<tr class="separator:ga67e86e0347596421771af841710308d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4aa7062198e5aacd9fabb04d0453dd91"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga4aa7062198e5aacd9fabb04d0453dd91">AConfiguration_getSdkVersion</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga4aa7062198e5aacd9fabb04d0453dd91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga06c66072902ee455011120188ca4810b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga06c66072902ee455011120188ca4810b">AConfiguration_setSdkVersion</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t sdkVersion)</td></tr>
+<tr class="separator:ga06c66072902ee455011120188ca4810b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d2c1b8731795d8e74be7e23cbc77552"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga9d2c1b8731795d8e74be7e23cbc77552">AConfiguration_getScreenSize</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga9d2c1b8731795d8e74be7e23cbc77552"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7bcf05150933ead34a01061d05ad3245"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga7bcf05150933ead34a01061d05ad3245">AConfiguration_setScreenSize</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t screenSize)</td></tr>
+<tr class="separator:ga7bcf05150933ead34a01061d05ad3245"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab7d1f5aa59e8fa4db0a1b91bb322034c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gab7d1f5aa59e8fa4db0a1b91bb322034c">AConfiguration_getScreenLong</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:gab7d1f5aa59e8fa4db0a1b91bb322034c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaed853ab7e2bc915591d05997130bc448"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaed853ab7e2bc915591d05997130bc448">AConfiguration_setScreenLong</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t screenLong)</td></tr>
+<tr class="separator:gaed853ab7e2bc915591d05997130bc448"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1d75777892f38208feb3d2a94a977fcf"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga1d75777892f38208feb3d2a94a977fcf">AConfiguration_getUiModeType</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga1d75777892f38208feb3d2a94a977fcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec61e3cf91cd79e8b76a35bbcb15789d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaec61e3cf91cd79e8b76a35bbcb15789d">AConfiguration_setUiModeType</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t uiModeType)</td></tr>
+<tr class="separator:gaec61e3cf91cd79e8b76a35bbcb15789d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga447f16a9e4f8400e5e0328900749ff16"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga447f16a9e4f8400e5e0328900749ff16">AConfiguration_getUiModeNight</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga447f16a9e4f8400e5e0328900749ff16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga08df1e801afbe4a12411e393b8141e42"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga08df1e801afbe4a12411e393b8141e42">AConfiguration_setUiModeNight</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t uiModeNight)</td></tr>
+<tr class="separator:ga08df1e801afbe4a12411e393b8141e42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61e5fe9612c170c33e1c7e9fb92f2219"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga61e5fe9612c170c33e1c7e9fb92f2219">AConfiguration_getScreenWidthDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga61e5fe9612c170c33e1c7e9fb92f2219"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafc51d45679095965fe3ba1abd402f120"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gafc51d45679095965fe3ba1abd402f120">AConfiguration_setScreenWidthDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t value)</td></tr>
+<tr class="separator:gafc51d45679095965fe3ba1abd402f120"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9905a4765f8d0d921c476ebce01c7648"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga9905a4765f8d0d921c476ebce01c7648">AConfiguration_getScreenHeightDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga9905a4765f8d0d921c476ebce01c7648"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6ffac3b41415ec8a3031737ccdcd63b8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga6ffac3b41415ec8a3031737ccdcd63b8">AConfiguration_setScreenHeightDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t value)</td></tr>
+<tr class="separator:ga6ffac3b41415ec8a3031737ccdcd63b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7fc015e41fad342edba66a003d9848aa"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga7fc015e41fad342edba66a003d9848aa">AConfiguration_getSmallestScreenWidthDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga7fc015e41fad342edba66a003d9848aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b004c9585671efc5cebd96c1d43c4f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga6b004c9585671efc5cebd96c1d43c4f0">AConfiguration_setSmallestScreenWidthDp</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t value)</td></tr>
+<tr class="separator:ga6b004c9585671efc5cebd96c1d43c4f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga13dbf2fc9a382c62b391e7de9cf9b468"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#ga13dbf2fc9a382c62b391e7de9cf9b468">AConfiguration_getLayoutDirection</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config)</td></tr>
+<tr class="separator:ga13dbf2fc9a382c62b391e7de9cf9b468"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf47215cf551594f8c2a0594419b47e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gaaf47215cf551594f8c2a0594419b47e1">AConfiguration_setLayoutDirection</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config, int32_t value)</td></tr>
+<tr class="separator:gaaf47215cf551594f8c2a0594419b47e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabfe69b0dccae425a16fe94d084f20402"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gabfe69b0dccae425a16fe94d084f20402">AConfiguration_diff</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config1, <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *config2)</td></tr>
+<tr class="separator:gabfe69b0dccae425a16fe94d084f20402"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb27b901a1d7d44ed866608fb8399a18"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gafb27b901a1d7d44ed866608fb8399a18">AConfiguration_match</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *base, <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *requested)</td></tr>
+<tr class="separator:gafb27b901a1d7d44ed866608fb8399a18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafd2bb31057c8d57efcea7603458d2a8d"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___configuration.html#gafd2bb31057c8d57efcea7603458d2a8d">AConfiguration_isBetterThan</a> (<a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *base, <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *test, <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *requested)</td></tr>
+<tr class="separator:gafd2bb31057c8d57efcea7603458d2a8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga6709434d0f99b8367d0df2dfdfbef45a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> is an opaque type used to get and set various subsystem configurations.</p>
+<p>A <a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> pointer can be obtained using:</p>
+<ul>
+<li><a class="el" href="group___configuration.html#ga9543655922980466eb05c7be94a0a567">AConfiguration_new()</a></li>
+<li><a class="el" href="group___configuration.html#ga75e061fd0b4f761e08e43af36508c4f3">AConfiguration_fromAssetManager()</a> </li>
+</ul>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="ga99fb83031ce9923c84392b4e92f956b5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Define flags and constants for various subsystem configurations. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5af44cee3290a23999b0358c5638747a5f"></a>ACONFIGURATION_ORIENTATION_ANY</em>&#160;</td><td class="fielddoc">
+<p>Orientation: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ad9bf5c1fb90f9fdb20f984d0574592fe"></a>ACONFIGURATION_ORIENTATION_PORT</em>&#160;</td><td class="fielddoc">
+<p>Orientation: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#OrientationQualifier">port</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ad5746872ff6871379fca93c60bfac8a3"></a>ACONFIGURATION_ORIENTATION_LAND</em>&#160;</td><td class="fielddoc">
+<p>Orientation: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#OrientationQualifier">land</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ab0ca4fce673baf58447bfeb154d9a03f"></a>ACONFIGURATION_ORIENTATION_SQUARE</em>&#160;</td><td class="fielddoc">
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Not currently supported or used. </dd></dl>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5aa73bcf45261366840fea743372682fa6"></a>ACONFIGURATION_TOUCHSCREEN_ANY</em>&#160;</td><td class="fielddoc">
+<p>Touchscreen: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5adfbeb370edd3b4372c9b0f86f152dde0"></a>ACONFIGURATION_TOUCHSCREEN_NOTOUCH</em>&#160;</td><td class="fielddoc">
+<p>Touchscreen: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#TouchscreenQualifier">notouch</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a8316a15b06353f883f2aef8bd194f79f"></a>ACONFIGURATION_TOUCHSCREEN_STYLUS</em>&#160;</td><td class="fielddoc">
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Not currently supported or used. </dd></dl>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a4bf2a8323ec6d072aa48d5fc2cff645e"></a>ACONFIGURATION_TOUCHSCREEN_FINGER</em>&#160;</td><td class="fielddoc">
+<p>Touchscreen: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#TouchscreenQualifier">finger</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ae628b2bf594733b7c19ae394616cec6c"></a>ACONFIGURATION_DENSITY_DEFAULT</em>&#160;</td><td class="fielddoc">
+<p>Density: default density. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a01ddb34b2376422d2323720049eb57f3"></a>ACONFIGURATION_DENSITY_LOW</em>&#160;</td><td class="fielddoc">
+<p>Density: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">ldpi</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a2511479d7cd574c4b293d535e4dc337e"></a>ACONFIGURATION_DENSITY_MEDIUM</em>&#160;</td><td class="fielddoc">
+<p>Density: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">mdpi</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a10e6c3d636f3f6de75de9208913b0d8f"></a>ACONFIGURATION_DENSITY_TV</em>&#160;</td><td class="fielddoc">
+<p>Density: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">tvdpi</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a5ef4a97dc058235cdfa9fcfe3300c7eb"></a>ACONFIGURATION_DENSITY_HIGH</em>&#160;</td><td class="fielddoc">
+<p>Density: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">hdpi</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a38a03b3b1c64725679605d8d479c85a0"></a>ACONFIGURATION_DENSITY_XHIGH</em>&#160;</td><td class="fielddoc">
+<p>Density: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">xhdpi</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ad6353daf63778a6ec6f2bd3815d7e6e4"></a>ACONFIGURATION_DENSITY_XXHIGH</em>&#160;</td><td class="fielddoc">
+<p>Density: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">xxhdpi</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a2bd04af33e868a77bd4d83e7d70368ec"></a>ACONFIGURATION_DENSITY_XXXHIGH</em>&#160;</td><td class="fielddoc">
+<p>Density: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">xxxhdpi</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a966a3855351a97ae865264afd74c1534"></a>ACONFIGURATION_DENSITY_ANY</em>&#160;</td><td class="fielddoc">
+<p>Density: any density. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a7c1af92914155c418b99844c6aab33d7"></a>ACONFIGURATION_DENSITY_NONE</em>&#160;</td><td class="fielddoc">
+<p>Density: no density specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a593f722738682ae4500dab6427670f4a"></a>ACONFIGURATION_KEYBOARD_ANY</em>&#160;</td><td class="fielddoc">
+<p>Keyboard: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a40195a1a2d8e21c74d99606d8a1a9918"></a>ACONFIGURATION_KEYBOARD_NOKEYS</em>&#160;</td><td class="fielddoc">
+<p>Keyboard: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#ImeQualifier">nokeys</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a263ff8efb4d2c757e557adc0d0cdeedf"></a>ACONFIGURATION_KEYBOARD_QWERTY</em>&#160;</td><td class="fielddoc">
+<p>Keyboard: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#ImeQualifier">qwerty</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a1aaf1a887f146737030cce95c53066ea"></a>ACONFIGURATION_KEYBOARD_12KEY</em>&#160;</td><td class="fielddoc">
+<p>Keyboard: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#ImeQualifier">12key</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a90e914b60d28c081b313f4b7b6600f47"></a>ACONFIGURATION_NAVIGATION_ANY</em>&#160;</td><td class="fielddoc">
+<p>Navigation: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a3d95e899305aeae366fb7f8d8b6c290a"></a>ACONFIGURATION_NAVIGATION_NONAV</em>&#160;</td><td class="fielddoc">
+<p>Navigation: value corresponding to the <a href="@@dacRoot/guide/topics/resources/providing-resources.html#NavigationQualifier">nonav</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ace2e3ed21322100712992ca09f4b75b5"></a>ACONFIGURATION_NAVIGATION_DPAD</em>&#160;</td><td class="fielddoc">
+<p>Navigation: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavigationQualifier">dpad</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ad2807d00cb2f5dcb9f456045dd8443a4"></a>ACONFIGURATION_NAVIGATION_TRACKBALL</em>&#160;</td><td class="fielddoc">
+<p>Navigation: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavigationQualifier">trackball</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a80b53370f65ad283a4fd025f36422bea"></a>ACONFIGURATION_NAVIGATION_WHEEL</em>&#160;</td><td class="fielddoc">
+<p>Navigation: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavigationQualifier">wheel</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a34d3a830bc2964000052f8486fd76b0c"></a>ACONFIGURATION_KEYSHIDDEN_ANY</em>&#160;</td><td class="fielddoc">
+<p>Keyboard availability: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5abfbfc3a10affed059263555b00429ab2"></a>ACONFIGURATION_KEYSHIDDEN_NO</em>&#160;</td><td class="fielddoc">
+<p>Keyboard availability: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#KeyboardAvailQualifier">keysexposed</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a5e6a5a3f4175644886bde7d0ed4b1ebf"></a>ACONFIGURATION_KEYSHIDDEN_YES</em>&#160;</td><td class="fielddoc">
+<p>Keyboard availability: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#KeyboardAvailQualifier">keyshidden</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a1a56b72c730e40f22f3b8727e54c376c"></a>ACONFIGURATION_KEYSHIDDEN_SOFT</em>&#160;</td><td class="fielddoc">
+<p>Keyboard availability: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#KeyboardAvailQualifier">keyssoft</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a6db7dd6a67196df88117dcdc904e0cb3"></a>ACONFIGURATION_NAVHIDDEN_ANY</em>&#160;</td><td class="fielddoc">
+<p>Navigation availability: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ae6ff9883e3e89f8d9ea5c0ebe077c9c5"></a>ACONFIGURATION_NAVHIDDEN_NO</em>&#160;</td><td class="fielddoc">
+<p>Navigation availability: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavAvailQualifier">navexposed</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a79b3a5fe10e948bb79db47b516d46cf5"></a>ACONFIGURATION_NAVHIDDEN_YES</em>&#160;</td><td class="fielddoc">
+<p>Navigation availability: value corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavAvailQualifier">navhidden</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a9abcd34a6c549e048fc75a545081584e"></a>ACONFIGURATION_SCREENSIZE_ANY</em>&#160;</td><td class="fielddoc">
+<p>Screen size: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a1163af972206a65a5d18bda12fdc511c"></a>ACONFIGURATION_SCREENSIZE_SMALL</em>&#160;</td><td class="fielddoc">
+<p>Screen size: value indicating the screen is at least approximately 320x426 dp units, corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenSizeQualifier">small</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a019727e684f25ba921f3479abd62b9f2"></a>ACONFIGURATION_SCREENSIZE_NORMAL</em>&#160;</td><td class="fielddoc">
+<p>Screen size: value indicating the screen is at least approximately 320x470 dp units, corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenSizeQualifier">normal</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5af871d177fdceedb75612cfc1281d2c12"></a>ACONFIGURATION_SCREENSIZE_LARGE</em>&#160;</td><td class="fielddoc">
+<p>Screen size: value indicating the screen is at least approximately 480x640 dp units, corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenSizeQualifier">large</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a0ca385ed504fc92f6ff3f0857e916c9c"></a>ACONFIGURATION_SCREENSIZE_XLARGE</em>&#160;</td><td class="fielddoc">
+<p>Screen size: value indicating the screen is at least approximately 720x960 dp units, corresponding to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenSizeQualifier">xlarge</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a41e55e57da42fd09c378f59c1a63710f"></a>ACONFIGURATION_SCREENLONG_ANY</em>&#160;</td><td class="fielddoc">
+<p>Screen layout: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a428bb8fcd8bc731b67b0773dc62781c5"></a>ACONFIGURATION_SCREENLONG_NO</em>&#160;</td><td class="fielddoc">
+<p>Screen layout: value that corresponds to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenAspectQualifier">notlong</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a91fc014d328507568d225d691b3babfd"></a>ACONFIGURATION_SCREENLONG_YES</em>&#160;</td><td class="fielddoc">
+<p>Screen layout: value that corresponds to the <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenAspectQualifier">long</a> resource qualifier. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a10d0916da7fa88c945a9cda259407d4c"></a>ACONFIGURATION_UI_MODE_TYPE_ANY</em>&#160;</td><td class="fielddoc">
+<p>UI mode: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ae7efe2713b6718311da76c828b5b444e"></a>ACONFIGURATION_UI_MODE_TYPE_NORMAL</em>&#160;</td><td class="fielddoc">
+<p>UI mode: value that corresponds to <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">no UI mode type</a> resource qualifier specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ae10bb854f461f60cf399852f8f327077"></a>ACONFIGURATION_UI_MODE_TYPE_DESK</em>&#160;</td><td class="fielddoc">
+<p>UI mode: value that corresponds to <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">desk</a> resource qualifier specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a5d6575185e41d909469a1dcf5f81bf4f"></a>ACONFIGURATION_UI_MODE_TYPE_CAR</em>&#160;</td><td class="fielddoc">
+<p>UI mode: value that corresponds to <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">car</a> resource qualifier specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a4738dded616f028fbbedcbad764e7969"></a>ACONFIGURATION_UI_MODE_TYPE_TELEVISION</em>&#160;</td><td class="fielddoc">
+<p>UI mode: value that corresponds to <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">television</a> resource qualifier specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ad99004a7a1b2a97d29b639664947f8e3"></a>ACONFIGURATION_UI_MODE_TYPE_APPLIANCE</em>&#160;</td><td class="fielddoc">
+<p>UI mode: value that corresponds to <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">appliance</a> resource qualifier specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ac8c3e2207f2356bc6a1dffc6a615d131"></a>ACONFIGURATION_UI_MODE_TYPE_WATCH</em>&#160;</td><td class="fielddoc">
+<p>UI mode: value that corresponds to <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">watch</a> resource qualifier specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a975087bbd4087b57a68ef3cdbfeb77a1"></a>ACONFIGURATION_UI_MODE_NIGHT_ANY</em>&#160;</td><td class="fielddoc">
+<p>UI night mode: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a90ebe564e3a3e384d5b013100f81e4b7"></a>ACONFIGURATION_UI_MODE_NIGHT_NO</em>&#160;</td><td class="fielddoc">
+<p>UI night mode: value that corresponds to <a href="@dacRoot/guide/topics/resources/providing-resources.html#NightQualifier">notnight</a> resource qualifier specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a437af4527fac5407de256ec1ef055046"></a>ACONFIGURATION_UI_MODE_NIGHT_YES</em>&#160;</td><td class="fielddoc">
+<p>UI night mode: value that corresponds to <a href="@dacRoot/guide/topics/resources/providing-resources.html#NightQualifier">night</a> resource qualifier specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5aad653f0c960112177fdc387a4a0577fa"></a>ACONFIGURATION_SCREEN_WIDTH_DP_ANY</em>&#160;</td><td class="fielddoc">
+<p>Screen width DPI: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ab66ad42d0cf72fd7e8cd99b92b625432"></a>ACONFIGURATION_SCREEN_HEIGHT_DP_ANY</em>&#160;</td><td class="fielddoc">
+<p>Screen height DPI: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a227120217d8b6a9d5add3ccc4b283702"></a>ACONFIGURATION_SMALLEST_SCREEN_WIDTH_DP_ANY</em>&#160;</td><td class="fielddoc">
+<p>Smallest screen width DPI: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a4687ede31c438dd9f2701cab88de1dbe"></a>ACONFIGURATION_LAYOUTDIR_ANY</em>&#160;</td><td class="fielddoc">
+<p>Layout direction: not specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a05242d8f2d254b43ff9414ff1aa38a83"></a>ACONFIGURATION_LAYOUTDIR_LTR</em>&#160;</td><td class="fielddoc">
+<p>Layout direction: value that corresponds to <a href="@dacRoot/guide/topics/resources/providing-resources.html#LayoutDirectionQualifier">ldltr</a> resource qualifier specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5af98332983b787ab9355b527079636870"></a>ACONFIGURATION_LAYOUTDIR_RTL</em>&#160;</td><td class="fielddoc">
+<p>Layout direction: value that corresponds to <a href="@dacRoot/guide/topics/resources/providing-resources.html#LayoutDirectionQualifier">ldrtl</a> resource qualifier specified. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a4d40f2aef365c78a52f699b89439db28"></a>ACONFIGURATION_MCC</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#MccQualifier">mcc</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ade91a319638eede201579d15f86578a5"></a>ACONFIGURATION_MNC</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#MccQualifier">mnc</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a01ecff796bd0690a9a8498c7de03e9b4"></a>ACONFIGURATION_LOCALE</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="{@docRoot}guide/topics/resources/providing-resources.html#LocaleQualifier">locale</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a255cfb57ac18d460c5614565a84f5561"></a>ACONFIGURATION_TOUCHSCREEN</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#TouchscreenQualifier">touchscreen</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a0195de2a57f028a8171c42beff0b0e88"></a>ACONFIGURATION_KEYBOARD</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#ImeQualifier">keyboard</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a54e71234e32ed037e2d47472f80eb416"></a>ACONFIGURATION_KEYBOARD_HIDDEN</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#KeyboardAvailQualifier">keyboardHidden</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a65e9d31615d2b4adf3738d9a12a1556b"></a>ACONFIGURATION_NAVIGATION</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#NavigationQualifier">navigation</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a591461d864136d482fe06e01fd945786"></a>ACONFIGURATION_ORIENTATION</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#OrientationQualifier">orientation</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5ace87b4f25e5fd6fe0f3316d21ecc66a1"></a>ACONFIGURATION_DENSITY</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#DensityQualifier">density</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a76ca1eb0e9346d93da592afbbf9a3b72"></a>ACONFIGURATION_SCREEN_SIZE</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#ScreenSizeQualifier">screen size</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a1be62e4fc31cf3d3102c99f7c6b4c71b"></a>ACONFIGURATION_VERSION</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#VersionQualifier">platform version</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a12d69ffef9135c1c55e1b8b5c2589e7c"></a>ACONFIGURATION_SCREEN_LAYOUT</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for screen layout configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a43a324af59372efd08b34431825cf67e"></a>ACONFIGURATION_UI_MODE</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#UiModeQualifier">ui mode</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5acce415252e0ad95117a05bbe910f06de"></a>ACONFIGURATION_SMALLEST_SCREEN_SIZE</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#SmallestScreenWidthQualifier">smallest screen width</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5a65834be1230d1694e5ce8a6f407acab2"></a>ACONFIGURATION_LAYOUTDIR</em>&#160;</td><td class="fielddoc">
+<p>Bit mask for <a href="@dacRoot/guide/topics/resources/providing-resources.html#LayoutDirectionQualifier">layout direction</a> configuration. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga99fb83031ce9923c84392b4e92f956b5aa6cda2f222580dbef27f1277d967d58c"></a>ACONFIGURATION_MNC_ZERO</em>&#160;</td><td class="fielddoc">
+<p>Constant used to to represent MNC (Mobile Network Code) zero. 0 cannot be used, since it is used to represent an undefined MNC. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gaabff04218a0a76afb8d3ea551b001565"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_copy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>src</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Copy the contents of 'src' to 'dest'. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga60fe264b97da84d3370eb9e220159e6d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_delete </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Free an AConfiguration that was previously created with <a class="el" href="group___configuration.html#ga9543655922980466eb05c7be94a0a567">AConfiguration_new()</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="gabfe69b0dccae425a16fe94d084f20402"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_diff </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config2</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Perform a diff between two configurations. Returns a bit mask of ACONFIGURATION_* constants, each bit set meaning that configuration element is different between them. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga75e061fd0b4f761e08e43af36508c4f3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_fromAssetManager </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>out</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *&#160;</td>
+          <td class="paramname"><em>am</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Create and return a new AConfiguration based on the current configuration in use in the given <a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad2b47f787012a82a67a20e5de5211d46"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_getCountry </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>outCountry</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current country code set in the configuration. The output will be filled with an array of two characters. They are not 0-terminated. If a country is not set, they will be 0. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4c994e0555947340582094c3da32a663"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getDensity </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current ACONFIGURATION_DENSITY_* set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="gafd0f76ccd4fe4bda5172b8e0bc6675e4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getKeyboard </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current ACONFIGURATION_KEYBOARD_* set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7a8317ab975f621f3fe62ed1b44f2605"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getKeysHidden </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current ACONFIGURATION_KEYSHIDDEN_* set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7b004c13448704afb0ea2040d69468c1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_getLanguage </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>outLanguage</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current language code set in the configuration. The output will be filled with an array of two characters. They are not 0-terminated. If a language is not set, they will be 0. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga13dbf2fc9a382c62b391e7de9cf9b468"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getLayoutDirection </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the configuration's layout direction, or ACONFIGURATION_LAYOUTDIR_ANY if not set. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1e78004237a931086d2ae4bd8324bd30"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getMcc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current MCC set in the configuration. 0 if not set. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4783776a4fad4501898472375d781fb9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getMnc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current MNC set in the configuration. 0 if not set. </p>
+
+</div>
+</div>
+<a class="anchor" id="gafe8d3a9c2f715ea76c8e4a99c2db9eaa"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getNavHidden </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current ACONFIGURATION_NAVHIDDEN_* set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae3ff1541b63f5b9256f7c0ebae372977"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getNavigation </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current ACONFIGURATION_NAVIGATION_* set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa7d8e3e9871dc925fef3e342a92e4e22"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getOrientation </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current ACONFIGURATION_ORIENTATION_* set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9905a4765f8d0d921c476ebce01c7648"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getScreenHeightDp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current configuration screen height in dp units, or ACONFIGURATION_SCREEN_HEIGHT_DP_ANY if not set. </p>
+
+</div>
+</div>
+<a class="anchor" id="gab7d1f5aa59e8fa4db0a1b91bb322034c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getScreenLong </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current ACONFIGURATION_SCREENLONG_* set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9d2c1b8731795d8e74be7e23cbc77552"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getScreenSize </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current ACONFIGURATION_SCREENSIZE_* set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga61e5fe9612c170c33e1c7e9fb92f2219"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getScreenWidthDp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current configuration screen width in dp units, or ACONFIGURATION_SCREEN_WIDTH_DP_ANY if not set. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4aa7062198e5aacd9fabb04d0453dd91"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getSdkVersion </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current SDK (API) version set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7fc015e41fad342edba66a003d9848aa"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getSmallestScreenWidthDp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the configuration's smallest screen width in dp units, or ACONFIGURATION_SMALLEST_SCREEN_WIDTH_DP_ANY if not set. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad305e6cf86fa915c24212e71bb2bf027"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getTouchscreen </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current ACONFIGURATION_TOUCHSCREEN_* set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga447f16a9e4f8400e5e0328900749ff16"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getUiModeNight </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current ACONFIGURATION_UI_MODE_NIGHT_* set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1d75777892f38208feb3d2a94a977fcf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_getUiModeType </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current ACONFIGURATION_UI_MODE_TYPE_* set in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="gafd2bb31057c8d57efcea7603458d2a8d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_isBetterThan </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>base</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>test</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>requested</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Determine whether the configuration in 'test' is better than the existing configuration in 'base'. If 'requested' is non-NULL, this decision is based on the overall configuration given there. If it is NULL, this decision is simply based on which configuration is more specific. Returns non-0 if 'test' is better than 'base'.</p>
+<p>This assumes you have already filtered the configurations with <a class="el" href="group___configuration.html#gafb27b901a1d7d44ed866608fb8399a18">AConfiguration_match()</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="gafb27b901a1d7d44ed866608fb8399a18"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AConfiguration_match </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>base</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>requested</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Determine whether 'base' is a valid configuration for use within the environment 'requested'. Returns 0 if there are any values in 'base' that conflict with 'requested'. Returns 1 if it does not conflict. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9543655922980466eb05c7be94a0a567"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a>* AConfiguration_new </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Create a new AConfiguration, initialized with no values set. </p>
+
+</div>
+</div>
+<a class="anchor" id="gac2f5d414a6466634b1639b5c6f8879ac"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setCountry </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>country</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current country code in the configuration, from the first two characters in the string. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9217af9858a7166dcb9a877192779eac"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setDensity </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>density</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current density in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4ab3429c5505c108c09349f1ddef572f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setKeyboard </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>keyboard</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current keyboard in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga5a80a02aa10cfa17de0795054e927183"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setKeysHidden </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>keysHidden</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current keys hidden in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1f3c6cf6667655f83777acda7387ddff"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setLanguage </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>language</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current language code in the configuration, from the first two characters in the string. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaaf47215cf551594f8c2a0594419b47e1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setLayoutDirection </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the configuration's layout direction. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae6198b4eaf3e34168f4b13b8b5975d93"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setMcc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>mcc</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current MCC in the configuration. 0 to clear. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaaf060ef69c3636f62e90ae0b520eecb8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setMnc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>mnc</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current MNC in the configuration. 0 to clear. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga67e86e0347596421771af841710308d5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setNavHidden </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>navHidden</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current nav hidden in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad21dd14fb823a6a80b66132a05ce8913"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setNavigation </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>navigation</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current navigation in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="gadcaa8540bad4172a74032143bcaade04"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setOrientation </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>orientation</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current orientation in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga6ffac3b41415ec8a3031737ccdcd63b8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setScreenHeightDp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the configuration's current screen width in dp units. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaed853ab7e2bc915591d05997130bc448"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setScreenLong </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>screenLong</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current screen long in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7bcf05150933ead34a01061d05ad3245"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setScreenSize </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>screenSize</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current screen size in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="gafc51d45679095965fe3ba1abd402f120"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setScreenWidthDp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the configuration's current screen width in dp units. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga06c66072902ee455011120188ca4810b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setSdkVersion </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>sdkVersion</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current SDK version in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga6b004c9585671efc5cebd96c1d43c4f0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setSmallestScreenWidthDp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the configuration's smallest screen width in dp units. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0d51dbe710c1afe31ece4dd6a8c188ff"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setTouchscreen </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>touchscreen</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current touchscreen in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga08df1e801afbe4a12411e393b8141e42"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setUiModeNight </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>uiModeNight</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current UI mode night in the configuration. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaec61e3cf91cd79e8b76a35bbcb15789d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AConfiguration_setUiModeType </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___configuration.html#ga6709434d0f99b8367d0df2dfdfbef45a">AConfiguration</a> *&#160;</td>
+          <td class="paramname"><em>config</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>uiModeType</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Set the current UI mode type in the configuration. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/group___input.jd b/docs/html-ndk/ndk/reference/group___input.jd
new file mode 100644
index 0000000..42ff102
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/group___input.jd
@@ -0,0 +1,3690 @@
+page.title=Input
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#files">Files</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Input</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:input_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="input_8h.html">input.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:keycodes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="keycodes_8h.html">keycodes.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:gaeb170c0fbeeed1d999160566f09f169e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaeb170c0fbeeed1d999160566f09f169e">AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT</a>&#160;&#160;&#160;8</td></tr>
+<tr class="separator:gaeb170c0fbeeed1d999160566f09f169e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gac35dbbc035371e799d8badabc981e8fa"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a></td></tr>
+<tr class="separator:gac35dbbc035371e799d8badabc981e8fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21d8182651f4b61ae558560023e8339c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a></td></tr>
+<tr class="separator:ga21d8182651f4b61ae558560023e8339c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gabc6126af1d45847bc59afa0aa3216b04"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04a9506627d5377c67dbc7fc58804b2cdfd">AKEY_STATE_UNKNOWN</a> = -1, 
+<a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04afa14022f587487c24d401c87e71c8e28">AKEY_STATE_UP</a> = 0, 
+<a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04a286ec0a7aff5903a982be0cd6785b62c">AKEY_STATE_DOWN</a> = 1, 
+<a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04ad09fd9fe458ca6c66ead9b9a75c56192">AKEY_STATE_VIRTUAL</a> = 2
+ }</td></tr>
+<tr class="separator:gabc6126af1d45847bc59afa0aa3216b04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadc29c2ff13d900c2f185ee95427fb06c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cae0a3cb26517b3f876beb37594494526d">AMETA_NONE</a> = 0, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caba44b1077427e4da1d202e0c8f772881">AMETA_ALT_ON</a> = 0x02, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca256c74b768ecee57e3218e81ae6945df">AMETA_ALT_LEFT_ON</a> = 0x10, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca985db074c0f44749ca86b5cc0454056a">AMETA_ALT_RIGHT_ON</a> = 0x20, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caa3d5f49c3a55b653a94c798a2c93b197">AMETA_SHIFT_ON</a> = 0x01, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caa01fa027cdd8951530437bcbe04c3ed7">AMETA_SHIFT_LEFT_ON</a> = 0x40, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cac52930581c339216218a6f50c5b57aa1">AMETA_SHIFT_RIGHT_ON</a> = 0x80, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca8af1e90950a728baca807a83e50b22ea">AMETA_SYM_ON</a> = 0x04, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca545b31b72b0454c22c170ff534ddfdf1">AMETA_FUNCTION_ON</a> = 0x08, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cabe927318a2a11a46be3e9d78dbd81ef5">AMETA_CTRL_ON</a> = 0x1000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca752c837afd5ff0fcf75ddee7b6808be6">AMETA_CTRL_LEFT_ON</a> = 0x2000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca0ab007e367ae136b873b3e6636747419">AMETA_CTRL_RIGHT_ON</a> = 0x4000, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca9c04e7c2ad1f0f41af60402188a29c4a">AMETA_META_ON</a> = 0x10000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca6f923de8f2cd72e3ad86149c0747906f">AMETA_META_LEFT_ON</a> = 0x20000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafdf56d1259ae16c97161c443d7949bdf">AMETA_META_RIGHT_ON</a> = 0x40000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafc467c98d509b0de28b298801a0c3e37">AMETA_CAPS_LOCK_ON</a> = 0x100000, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca15d234534a6870add5594f02b7333dc6">AMETA_NUM_LOCK_ON</a> = 0x200000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafe8dacdc6566f655a3eab73ea4a9af5a">AMETA_SCROLL_LOCK_ON</a> = 0x400000
+<br/>
+ }</td></tr>
+<tr class="separator:gadc29c2ff13d900c2f185ee95427fb06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61dadd085c1777f559549e05962b2c9e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___input.html#gga61dadd085c1777f559549e05962b2c9ea696f0d7635f7a24c17d3f1e4ccdd44ba">AINPUT_EVENT_TYPE_KEY</a> = 1, 
+<a class="el" href="group___input.html#gga61dadd085c1777f559549e05962b2c9ea2182dfda2cceb5425dcc2823b9b6b56a">AINPUT_EVENT_TYPE_MOTION</a> = 2
+ }</td></tr>
+<tr class="separator:ga61dadd085c1777f559549e05962b2c9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga726ca809ffd3d67ab4b8476646f26635"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635a123c3bd18fd93b53d8aedbe7597f7b49">AKEY_EVENT_ACTION_DOWN</a> = 0, 
+<a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635abf18b7c5384c5de8657a0650f8da57c3">AKEY_EVENT_ACTION_UP</a> = 1, 
+<a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635a08e2d927e155478ee66ec46ebd845ab0">AKEY_EVENT_ACTION_MULTIPLE</a> = 2
+ }</td></tr>
+<tr class="separator:ga726ca809ffd3d67ab4b8476646f26635"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0411cd49bb5b71852cecd93bcbf0ca2d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da6473a1afc0cc39e029c2a217bc57cdba">AKEY_EVENT_FLAG_WOKE_HERE</a> = 0x1, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da7dbb272c7b28be9c084df3446a629f32">AKEY_EVENT_FLAG_SOFT_KEYBOARD</a> = 0x2, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dadc0a063ca412b0ea08474df422bf9b41">AKEY_EVENT_FLAG_KEEP_TOUCH_MODE</a> = 0x4, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dae1e7ec188b2404fadd94cfba89afd5d6">AKEY_EVENT_FLAG_FROM_SYSTEM</a> = 0x8, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dab9dbcf990d1e4405e32f847fdea52013">AKEY_EVENT_FLAG_EDITOR_ACTION</a> = 0x10, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da3198fad5ab75df614bb41f0f602a9e55">AKEY_EVENT_FLAG_CANCELED</a> = 0x20, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dad4b5eba5b14e4076c69bc7185f2804f8">AKEY_EVENT_FLAG_VIRTUAL_HARD_KEY</a> = 0x40, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da39f9f7bdf2e256db0e2a8a5dfbfb7185">AKEY_EVENT_FLAG_LONG_PRESS</a> = 0x80, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2daf09856f03f2fffee9a82cb8e508efb7a">AKEY_EVENT_FLAG_CANCELED_LONG_PRESS</a> = 0x100, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da91e70ab527f27a1779f4550d457f1689">AKEY_EVENT_FLAG_TRACKING</a> = 0x200, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da14f574126d2544863fa8042ddd0f48c0">AKEY_EVENT_FLAG_FALLBACK</a> = 0x400
+<br/>
+ }</td></tr>
+<tr class="separator:ga0411cd49bb5b71852cecd93bcbf0ca2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabed82baf7f470b522273a3e37c24c600"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600abf84a22c84d4b7228102b80f3af92a4f">AMOTION_EVENT_ACTION_MASK</a> = 0xff, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a51384339fbb57c0087f7f50c45d9cff3">AMOTION_EVENT_ACTION_POINTER_INDEX_MASK</a> = 0xff00, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a225e61c48ba334abc1b5811db02edcf1">AMOTION_EVENT_ACTION_DOWN</a> = 0, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a43798b2b7a6de4616d150b2438b8419e">AMOTION_EVENT_ACTION_UP</a> = 1, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a41c56c4e772953fce60c93bc671639a3">AMOTION_EVENT_ACTION_MOVE</a> = 2, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a3952b960f5eb8c4f55b42741e286b74e">AMOTION_EVENT_ACTION_CANCEL</a> = 3, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a7c3c96b74af4c8304b8137ac6d201517">AMOTION_EVENT_ACTION_OUTSIDE</a> = 4, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a1618c641fd3f49fa7483f298d05b3cd2">AMOTION_EVENT_ACTION_POINTER_DOWN</a> = 5, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600af2ef56aa7220eeb2073b9b028737bc1e">AMOTION_EVENT_ACTION_POINTER_UP</a> = 6, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a84bc9fb3c01ff7ca9ee452a510e7de60">AMOTION_EVENT_ACTION_HOVER_MOVE</a> = 7, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a45ba62b1e6fab4e84d5782d7c35ced04">AMOTION_EVENT_ACTION_SCROLL</a> = 8, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a247b2c60ad92f3130ad43c907986ffb3">AMOTION_EVENT_ACTION_HOVER_ENTER</a> = 9, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600ac00b1eacfbea779863abf3fcf02134aa">AMOTION_EVENT_ACTION_HOVER_EXIT</a> = 10
+<br/>
+ }</td></tr>
+<tr class="separator:gabed82baf7f470b522273a3e37c24c600"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab04a0655cd1e3bcac5e8f48c18df1a57"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___input.html#ggab04a0655cd1e3bcac5e8f48c18df1a57a200623e1e4eee7797cad30917d289d7a">AMOTION_EVENT_FLAG_WINDOW_IS_OBSCURED</a> = 0x1
+ }</td></tr>
+<tr class="separator:gab04a0655cd1e3bcac5e8f48c18df1a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga385c44f6fb256e5716a2302a5b940388"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a37dd7496968e6defbecc3c8d6ab2734d">AMOTION_EVENT_EDGE_FLAG_NONE</a> = 0, 
+<a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a915e1ade9b600d11a3c70a17a88de757">AMOTION_EVENT_EDGE_FLAG_TOP</a> = 0x01, 
+<a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388ad8b662839787e1c7dd2616f32c02aaeb">AMOTION_EVENT_EDGE_FLAG_BOTTOM</a> = 0x02, 
+<a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388afb70c13f16daade25ba8132a5ea3cf52">AMOTION_EVENT_EDGE_FLAG_LEFT</a> = 0x04, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a7d45674e03f1876a43d4810508905078">AMOTION_EVENT_EDGE_FLAG_RIGHT</a> = 0x08
+<br/>
+ }</td></tr>
+<tr class="separator:ga385c44f6fb256e5716a2302a5b940388"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabc5c98fcc1211af2b80116dd6e0a035d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5f4b5b009634039a1f361048a5fc6064">AMOTION_EVENT_AXIS_X</a> = 0, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da64f7de8558265bd8179d206eb33eff6c">AMOTION_EVENT_AXIS_Y</a> = 1, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da3b4fd0f17cfdeb6a055babecd2b0ded8">AMOTION_EVENT_AXIS_PRESSURE</a> = 2, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da4baba3ccaec881089a864ba6deaf8bd6">AMOTION_EVENT_AXIS_SIZE</a> = 3, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da792b9e01044a2e43e7f80e5559db20c2">AMOTION_EVENT_AXIS_TOUCH_MAJOR</a> = 4, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa8b24b0f01f24898a36e5751c8eca63c">AMOTION_EVENT_AXIS_TOUCH_MINOR</a> = 5, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa273d64c392f86ae789fd5e24661ba0a">AMOTION_EVENT_AXIS_TOOL_MAJOR</a> = 6, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadebd200b37ffaf36b94e7e478c559142">AMOTION_EVENT_AXIS_TOOL_MINOR</a> = 7, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da114f2b3fc233ccf7a4470787c31457d2">AMOTION_EVENT_AXIS_ORIENTATION</a> = 8, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dad11be04b4b81715cad905ee9fa348e99">AMOTION_EVENT_AXIS_VSCROLL</a> = 9, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da92955e6b0f3f82af66a505c854e9edff">AMOTION_EVENT_AXIS_HSCROLL</a> = 10, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5a689e572da9bc5feafcb6c011368305">AMOTION_EVENT_AXIS_Z</a> = 11, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da689b612864177d6b57d4181442e3e38e">AMOTION_EVENT_AXIS_RX</a> = 12, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa20188da209300e1f80f6f5bd4058e13">AMOTION_EVENT_AXIS_RY</a> = 13, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da381948b3321afd390ad164345eb9206b">AMOTION_EVENT_AXIS_RZ</a> = 14, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da04245c76cb9b32dcba920661f11ac9da">AMOTION_EVENT_AXIS_HAT_X</a> = 15, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da98c323321d908db459e7cf86a7e8a482">AMOTION_EVENT_AXIS_HAT_Y</a> = 16, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae4c65c3b1bd2946ff9e18c6041cdb591">AMOTION_EVENT_AXIS_LTRIGGER</a> = 17, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da116e80c6be166290ca481fefa5de38c1">AMOTION_EVENT_AXIS_RTRIGGER</a> = 18, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da6d1f5d64e607104964eb43d8fae07a4f">AMOTION_EVENT_AXIS_THROTTLE</a> = 19, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da318a0782f895949407fc192fc4280257">AMOTION_EVENT_AXIS_RUDDER</a> = 20, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab0ae83ebd74e672bb35378b92a440b1d">AMOTION_EVENT_AXIS_WHEEL</a> = 21, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab0223f235a6044815918af2abafcbf16">AMOTION_EVENT_AXIS_GAS</a> = 22, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae3a99764f3681dd9e094852bb2489ece">AMOTION_EVENT_AXIS_BRAKE</a> = 23, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae800909411a1e83173b0eef7aa458d0e">AMOTION_EVENT_AXIS_DISTANCE</a> = 24, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dafca0a235f69c4b38bfc95e7a7b8d9ab1">AMOTION_EVENT_AXIS_TILT</a> = 25, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadcc18afd3a7069412617df34db5a27bc">AMOTION_EVENT_AXIS_GENERIC_1</a> = 32, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dac4addf06abfa6c76f0578ddde049aad5">AMOTION_EVENT_AXIS_GENERIC_2</a> = 33, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dac7df57ef5082e10be83f66d7477bce9c">AMOTION_EVENT_AXIS_GENERIC_3</a> = 34, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da321873d126b7d545665096694cb7d9d9">AMOTION_EVENT_AXIS_GENERIC_4</a> = 35, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da9b47cef7060197e1b0302a8a718c3085">AMOTION_EVENT_AXIS_GENERIC_5</a> = 36, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daad7e47a1b5fb66864b6d988374f50a84">AMOTION_EVENT_AXIS_GENERIC_6</a> = 37, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da222c06f51a60e59504b635dbf89a025b">AMOTION_EVENT_AXIS_GENERIC_7</a> = 38, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab59a8a373a913e40b146ed762976d6fe">AMOTION_EVENT_AXIS_GENERIC_8</a> = 39, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da721fa0fbca8b22f1ecc8d3870f4e7443">AMOTION_EVENT_AXIS_GENERIC_9</a> = 40, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da29ba08f4ddc658e0127ee5bc08d185f2">AMOTION_EVENT_AXIS_GENERIC_10</a> = 41, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dafc64a4b307f62bb12b645918aa7edb57">AMOTION_EVENT_AXIS_GENERIC_11</a> = 42, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae5d32b3e9cec4936ae1e074f320c3063">AMOTION_EVENT_AXIS_GENERIC_12</a> = 43, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5f19f5bc52e5eaec5ebd4f07aad12180">AMOTION_EVENT_AXIS_GENERIC_13</a> = 44, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadb866d826ecf25161d7c7f86166e149b">AMOTION_EVENT_AXIS_GENERIC_14</a> = 45, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da7e86befc8502b8df687284f3c40b2eca">AMOTION_EVENT_AXIS_GENERIC_15</a> = 46, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daaaa011ba929b18c6da71153638f92336">AMOTION_EVENT_AXIS_GENERIC_16</a> = 47
+<br/>
+ }</td></tr>
+<tr class="separator:gabc5c98fcc1211af2b80116dd6e0a035d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac36f475ca5b446f4fde4c9b90bec77c8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8ab388f65477b9dd4c51e6367111168d65">AMOTION_EVENT_BUTTON_PRIMARY</a> = 1 &lt;&lt; 0, 
+<a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a08118700ecb4e147528a0e725afc9451">AMOTION_EVENT_BUTTON_SECONDARY</a> = 1 &lt;&lt; 1, 
+<a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8ae6e2af1e7065e035e8a10a595827180f">AMOTION_EVENT_BUTTON_TERTIARY</a> = 1 &lt;&lt; 2, 
+<a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a1841d075a2992ff7fbefa3fd50189b86">AMOTION_EVENT_BUTTON_BACK</a> = 1 &lt;&lt; 3, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a4105edf43f7748c52c859cc5aa7dc438">AMOTION_EVENT_BUTTON_FORWARD</a> = 1 &lt;&lt; 4
+<br/>
+ }</td></tr>
+<tr class="separator:gac36f475ca5b446f4fde4c9b90bec77c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga05589fbab0657f08285ebdfe93f5ec9e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9ea7e1ea0c955ebbac1349866e8995e0208">AMOTION_EVENT_TOOL_TYPE_UNKNOWN</a> = 0, 
+<a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eafd789262defb8a268fa80d26b0c30bcc">AMOTION_EVENT_TOOL_TYPE_FINGER</a> = 1, 
+<a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eaf05dc95a74e560c89cec1f3100185fc7">AMOTION_EVENT_TOOL_TYPE_STYLUS</a> = 2, 
+<a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9ea7be0c750d7d6719e7c948914400ae0de">AMOTION_EVENT_TOOL_TYPE_MOUSE</a> = 3, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eaf9932f65b5b6b5800fb5873a60dbf0cb">AMOTION_EVENT_TOOL_TYPE_ERASER</a> = 4
+<br/>
+ }</td></tr>
+<tr class="separator:ga05589fbab0657f08285ebdfe93f5ec9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga16af7b253440dadd46a80a4b9fddba4d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4daae438f475d03ea60fd9fb356abd7fa01">AINPUT_SOURCE_CLASS_MASK</a> = 0x000000ff, 
+<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4dafd6d5e71f09f6452acf017559481444c">AINPUT_SOURCE_CLASS_NONE</a> = 0x00000000, 
+<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4dacf1bf3d7b3c6e59f907bdffc9b33370e">AINPUT_SOURCE_CLASS_BUTTON</a> = 0x00000001, 
+<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da7495274e98fb30dee3dfd903b878cf47">AINPUT_SOURCE_CLASS_POINTER</a> = 0x00000002, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da078a18d85d078412721c336a879bcc1a">AINPUT_SOURCE_CLASS_NAVIGATION</a> = 0x00000004, 
+<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da682f6982bb55ee809f6acd2deb550167">AINPUT_SOURCE_CLASS_POSITION</a> = 0x00000008, 
+<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4daaaeffb6442807dd96ec62e9d8a696b57">AINPUT_SOURCE_CLASS_JOYSTICK</a> = 0x00000010
+<br/>
+ }</td></tr>
+<tr class="separator:ga16af7b253440dadd46a80a4b9fddba4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba01db17f4a2bfbc3db60dc172972a25"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ae9348bc04cdaa88b5b010f77a4945454">AINPUT_SOURCE_UNKNOWN</a> = 0x00000000, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a9860918666dd8c0b9d00a8da7af51e6d">AINPUT_SOURCE_KEYBOARD</a> = 0x00000100 | AINPUT_SOURCE_CLASS_BUTTON, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ad0fbfeff9f8d57104bff14c70ce5e3ef">AINPUT_SOURCE_DPAD</a> = 0x00000200 | AINPUT_SOURCE_CLASS_BUTTON, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a6417cb50ecd6ade48c708268434a49d3">AINPUT_SOURCE_GAMEPAD</a> = 0x00000400 | AINPUT_SOURCE_CLASS_BUTTON, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a55ea411f927aed8964fa72fec0da444f">AINPUT_SOURCE_TOUCHSCREEN</a> = 0x00001000 | AINPUT_SOURCE_CLASS_POINTER, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ae71d3dcbd004bccb6e00fde47097cd86">AINPUT_SOURCE_MOUSE</a> = 0x00002000 | AINPUT_SOURCE_CLASS_POINTER, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a86d4983c71432b27634ba41a64bffdf9">AINPUT_SOURCE_STYLUS</a> = 0x00004000 | AINPUT_SOURCE_CLASS_POINTER, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a7e49d9153c86f60f626d7f797f4e78b6">AINPUT_SOURCE_TRACKBALL</a> = 0x00010000 | AINPUT_SOURCE_CLASS_NAVIGATION, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a7e0715d4b544653ab11893434172a2ef">AINPUT_SOURCE_TOUCHPAD</a> = 0x00100000 | AINPUT_SOURCE_CLASS_POSITION, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a3712c4e4fb8ad7f6ae6e40d48e5c6ee7">AINPUT_SOURCE_TOUCH_NAVIGATION</a> = 0x00200000 | AINPUT_SOURCE_CLASS_NONE, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25afb28f10dc074e7f7435f5904c513edb5">AINPUT_SOURCE_JOYSTICK</a> = 0x01000000 | AINPUT_SOURCE_CLASS_JOYSTICK, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ab04317e7dd273ff5c87038df67d9796e">AINPUT_SOURCE_ANY</a> = 0xffffff00
+<br/>
+ }</td></tr>
+<tr class="separator:gaba01db17f4a2bfbc3db60dc172972a25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf105ae5beaca1dee30ae54530691fce"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fcea32cb7ce34cdce7095962f0766cc6c3ac">AINPUT_KEYBOARD_TYPE_NONE</a> = 0, 
+<a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fceaf0226d750ea830eb557ae68bd4a1c82a">AINPUT_KEYBOARD_TYPE_NON_ALPHABETIC</a> = 1, 
+<a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fceaba1f5ab6bc79749ba96a5d2a3af0e574">AINPUT_KEYBOARD_TYPE_ALPHABETIC</a> = 2
+ }</td></tr>
+<tr class="separator:gaaf105ae5beaca1dee30ae54530691fce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga80155586fa275b28773c9b203f52caba"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa0e5816bc48cdb33f2b488a109596ffe1">AINPUT_MOTION_RANGE_X</a> = AMOTION_EVENT_AXIS_X, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaab48108c9450ea1b7cd021be7d8cbc332">AINPUT_MOTION_RANGE_Y</a> = AMOTION_EVENT_AXIS_Y, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa79aca706b12b28d0ab14762902fed31a">AINPUT_MOTION_RANGE_PRESSURE</a> = AMOTION_EVENT_AXIS_PRESSURE, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa46f3a6cf859fb161cd29398d8448c688">AINPUT_MOTION_RANGE_SIZE</a> = AMOTION_EVENT_AXIS_SIZE, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa7ead43624c96e165fd8a25e77148aa67">AINPUT_MOTION_RANGE_TOUCH_MAJOR</a> = AMOTION_EVENT_AXIS_TOUCH_MAJOR, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa301181a0f20681135c15010b39bb575d">AINPUT_MOTION_RANGE_TOUCH_MINOR</a> = AMOTION_EVENT_AXIS_TOUCH_MINOR, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaaa860f54aa9e5a269dba6a54bbcf3c27c">AINPUT_MOTION_RANGE_TOOL_MAJOR</a> = AMOTION_EVENT_AXIS_TOOL_MAJOR, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa19226f6cf713c1b4d0973a163daf6cf1">AINPUT_MOTION_RANGE_TOOL_MINOR</a> = AMOTION_EVENT_AXIS_TOOL_MINOR, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaaf9be9c04a41b610d994a3d1d7e90d06d">AINPUT_MOTION_RANGE_ORIENTATION</a> = AMOTION_EVENT_AXIS_ORIENTATION
+<br/>
+ }</td></tr>
+<tr class="separator:ga80155586fa275b28773c9b203f52caba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b7b47dd702d9e331586d485013fd1ea"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa593f8ae18990d627785719284a12a6f">AKEYCODE_UNKNOWN</a> = 0, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2dc78d3a93876b77402d2a7f02e4b899">AKEYCODE_SOFT_LEFT</a> = 1, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8cadfbfcaaa83fef168de13639adfcae">AKEYCODE_SOFT_RIGHT</a> = 2, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa526c2411b7476b7ae579f57a0378b2dd">AKEYCODE_HOME</a> = 3, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaeb71c74bf556ba72e9c8f8dcbe5453d0">AKEYCODE_BACK</a> = 4, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8b5720ebdd3576c2b536ec9228273d8f">AKEYCODE_CALL</a> = 5, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaff971957ae3a4e272b21987854e18d9b">AKEYCODE_ENDCALL</a> = 6, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa23f585ea17aeceaad2111c51ab289e79">AKEYCODE_0</a> = 7, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabcac88b54f8d764bc4573ecc5b9571b0">AKEYCODE_1</a> = 8, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2079c6fb75141968b60ed79fe895d6db">AKEYCODE_2</a> = 9, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa40ccc018c0637e4d938e66b789054551">AKEYCODE_3</a> = 10, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c2d141c3906bd97cfec91443356f7b">AKEYCODE_4</a> = 11, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0ca99d2be4a3723ba3406944ad623f6e">AKEYCODE_5</a> = 12, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa72bc6560e24d08ff8f3116dac9179079">AKEYCODE_6</a> = 13, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa27070499acdb6c527a285b3840ec7bff">AKEYCODE_7</a> = 14, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa93543b23683b33724ecf77ac5a8c19ab">AKEYCODE_8</a> = 15, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa31cd4d7c4e59cf7b057b6c248cff516d">AKEYCODE_9</a> = 16, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1461fbf54e3dcba96e5d6d0638c18305">AKEYCODE_STAR</a> = 17, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf448758c44899e41b67f76dfe3be51e9">AKEYCODE_POUND</a> = 18, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf2fd3133a88f3b6725834032bd74bd9e">AKEYCODE_DPAD_UP</a> = 19, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa84b721b13aae56c9f1d3c22b3d81627a">AKEYCODE_DPAD_DOWN</a> = 20, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa668dfb3ed79a37c2c07838c161c1b344">AKEYCODE_DPAD_LEFT</a> = 21, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac6f9d81b6239696a1836695bbfc6a975">AKEYCODE_DPAD_RIGHT</a> = 22, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5e9c93273fd39148f54167133aa5b9ae">AKEYCODE_DPAD_CENTER</a> = 23, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5b81e325d9efd633eef7535a5b538882">AKEYCODE_VOLUME_UP</a> = 24, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a882dae17080d3b5f3329e79db60c66">AKEYCODE_VOLUME_DOWN</a> = 25, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabecfbcb9b6f5e85fdfdfa98fbc3326e6">AKEYCODE_POWER</a> = 26, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8670880765756933d3d1a10186d39e26">AKEYCODE_CAMERA</a> = 27, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa95bd8c25adeaa570108c7403f08a2901">AKEYCODE_CLEAR</a> = 28, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa424a091c62d40f5d65908c9730ae9014">AKEYCODE_A</a> = 29, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa65d3bf8d6a8a6c2f7c1b08394f313758">AKEYCODE_B</a> = 30, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaeed584f454e508ce931bcb33d37adb04">AKEYCODE_C</a> = 31, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7e4cb3ef66209a2779be2c8239b57b51">AKEYCODE_D</a> = 32, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae218af7ceb207227bb10f0525e68a8d0">AKEYCODE_E</a> = 33, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa455f71ecfe59af0fbd901ac0d0a8d53a">AKEYCODE_F</a> = 34, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa165067e10464019411f768bba9e533d9">AKEYCODE_G</a> = 35, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad89a91a1500cb162f22962781ebfd9dc">AKEYCODE_H</a> = 36, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4d44b5e4a19580540d8d77bf5755d74b">AKEYCODE_I</a> = 37, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa70c259612ccec117d70afaef947a6a7a">AKEYCODE_J</a> = 38, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5ce56cf50d3632c275c524bd78d0d932">AKEYCODE_K</a> = 39, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab61c534fd0f4e56c4ba13861a2f5982b">AKEYCODE_L</a> = 40, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa43b19e5e5234ce90c8e7ef67dd0cabd1">AKEYCODE_M</a> = 41, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6c0b26804c89560a9e87c45f7f9fed36">AKEYCODE_N</a> = 42, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa249667bc4a59d99be1914535877329fb">AKEYCODE_O</a> = 43, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac68ef56b78bd0c8626cc68bb6cb9156f">AKEYCODE_P</a> = 44, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa932cf6ea8d87e6d6d97af658dd0fa206">AKEYCODE_Q</a> = 45, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaba25ac2c15a8edbbbff16a9fe6e74532">AKEYCODE_R</a> = 46, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae1ed25c28a8fce578cddb17ca6888ff6">AKEYCODE_S</a> = 47, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2feac8b458ef8eb9c0a0dd73766927c2">AKEYCODE_T</a> = 48, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac1a220314f986aae45d7fe3b35501595">AKEYCODE_U</a> = 49, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4043bc48fa55cce7825176052d6e199a">AKEYCODE_V</a> = 50, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0c80e98547c3daa01f3d9e7f4f00425">AKEYCODE_W</a> = 51, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaec585cebac89004faffbdc28dc6d81c5">AKEYCODE_X</a> = 52, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa06fc277ef25acdd89d64c18eed0daa9b">AKEYCODE_Y</a> = 53, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7439a09f219a0addc13c758ef7508cce">AKEYCODE_Z</a> = 54, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0ca0bfbdc67b2c6f76e8fcaaf782c227">AKEYCODE_COMMA</a> = 55, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9dd68c8ecebd4e274e8c357dcdfe8a04">AKEYCODE_PERIOD</a> = 56, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3dec175158abe8679bedd98ed1bc3e1a">AKEYCODE_ALT_LEFT</a> = 57, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacd9b6b0846c6999f5df47d29e58ac95d">AKEYCODE_ALT_RIGHT</a> = 58, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafb9875645596928cec46368e74499dc4">AKEYCODE_SHIFT_LEFT</a> = 59, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf9eab1348ae1e8f18ad5bf3c77df4212">AKEYCODE_SHIFT_RIGHT</a> = 60, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1b1bfda850b2acd0b60e8456e2bfa958">AKEYCODE_TAB</a> = 61, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa10389300ac5d70f8d9733564b3cab4e7">AKEYCODE_SPACE</a> = 62, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6c1c6752d5db5e02da51d8937e5e3c6f">AKEYCODE_SYM</a> = 63, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaded9ec81ae6dab451665317723b94083">AKEYCODE_EXPLORER</a> = 64, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaade96efe470f428bb5c4eaea6ffc3681c">AKEYCODE_ENVELOPE</a> = 65, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac784a7bbbfbdab05fab6c6a1f29c98ff">AKEYCODE_ENTER</a> = 66, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacd013221b457d98975dc47e49817e28a">AKEYCODE_DEL</a> = 67, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa929561086ae7b519fa962597bc85f171">AKEYCODE_GRAVE</a> = 68, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaca10bd34ad0abecfecace908b8cb92ca">AKEYCODE_MINUS</a> = 69, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0a197df7ec719c95ddcd6836e76c8498">AKEYCODE_EQUALS</a> = 70, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabdeda0d373aa37ef2ded5ffdfc008708">AKEYCODE_LEFT_BRACKET</a> = 71, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa084dfa52626040a08d374f8aec066e6a">AKEYCODE_RIGHT_BRACKET</a> = 72, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaac90eb064382e3c482ae86abb7b3f701">AKEYCODE_BACKSLASH</a> = 73, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac0a2920161f4f2d97b0b060614b23391">AKEYCODE_SEMICOLON</a> = 74, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab5518a8502914ea5f87ef5d29b32b1b1">AKEYCODE_APOSTROPHE</a> = 75, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa54c047be3811d637a33d9b3e39d16e1a">AKEYCODE_SLASH</a> = 76, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7284f79a266ede479b79726082642e16">AKEYCODE_AT</a> = 77, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe6e880f65bebbdd5246a4164c4ab37a">AKEYCODE_NUM</a> = 78, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0d3d29515a4815fe8d6d8d3291507a33">AKEYCODE_HEADSETHOOK</a> = 79, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa23be9506f92f6efe14d47306a39a2187">AKEYCODE_FOCUS</a> = 80, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7f72d867b311e0845aef732dcc66495">AKEYCODE_PLUS</a> = 81, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa707b85e89923b0f760be795972a87d76">AKEYCODE_MENU</a> = 82, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6115506352a5828532fc6a0b91683331">AKEYCODE_NOTIFICATION</a> = 83, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac644fd307fd0ef0d3ed3d2e074c1a4b7">AKEYCODE_SEARCH</a> = 84, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa42f8fe71e8d45b5a83d83d80c3da40e1">AKEYCODE_MEDIA_PLAY_PAUSE</a> = 85, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac4faa33993d80db1326073ea15a38e7d">AKEYCODE_MEDIA_STOP</a> = 86, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf5a6c3fc963e8163852b9a23e3a198b3">AKEYCODE_MEDIA_NEXT</a> = 87, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa81432c31b00d47f768c29163eb276acb">AKEYCODE_MEDIA_PREVIOUS</a> = 88, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaecd53183b84c23a2ca65670a23674319">AKEYCODE_MEDIA_REWIND</a> = 89, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa69e648024402af688d490a2041f15bca">AKEYCODE_MEDIA_FAST_FORWARD</a> = 90, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f6675d38f50e3556a8531839fd83f02">AKEYCODE_MUTE</a> = 91, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4fd0d4ea5b6898f4a40011b97a739a04">AKEYCODE_PAGE_UP</a> = 92, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0b7fe1c18f53e6328657858a88826393">AKEYCODE_PAGE_DOWN</a> = 93, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacdc7c004da1594fa156de87befef5f41">AKEYCODE_PICTSYMBOLS</a> = 94, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad6a1f88b2cc3b6ff8f1724eb01473ec3">AKEYCODE_SWITCH_CHARSET</a> = 95, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaef2d2ec912aaa9e7215aeab79f7fb086">AKEYCODE_BUTTON_A</a> = 96, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa721765c8f0bbcdb68af06817dbec8e53">AKEYCODE_BUTTON_B</a> = 97, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad622ad5df40d2fdf806abb2adda73b3d">AKEYCODE_BUTTON_C</a> = 98, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa21174962f95e32cd0345ce657d03ebc7">AKEYCODE_BUTTON_X</a> = 99, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6654a8b2c700f7783433c86fcdae7919">AKEYCODE_BUTTON_Y</a> = 100, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa06156b68e6de951b44fc662e1b16041f">AKEYCODE_BUTTON_Z</a> = 101, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa32e159826404c7d76c2a433c24de82a2">AKEYCODE_BUTTON_L1</a> = 102, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7c614b3966583b0ad027e45f594ede46">AKEYCODE_BUTTON_R1</a> = 103, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa36a38421637cfa5ebfd8a0296650cdf4">AKEYCODE_BUTTON_L2</a> = 104, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa46d487e9fe31855b7b46739bad58fe3e">AKEYCODE_BUTTON_R2</a> = 105, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68c5d8dcd8fe708ada8f4a4e17feb638">AKEYCODE_BUTTON_THUMBL</a> = 106, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9759d817172d268ced1748909a5f5fbe">AKEYCODE_BUTTON_THUMBR</a> = 107, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf3c818d106f4ec793a43749c4c26a8a4">AKEYCODE_BUTTON_START</a> = 108, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa598289bc85f647c237729126ea392a43">AKEYCODE_BUTTON_SELECT</a> = 109, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa19839eebec939407d901a33b75cf2594">AKEYCODE_BUTTON_MODE</a> = 110, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac52177e5508edacb8e9c6d3a25db4fb6">AKEYCODE_ESCAPE</a> = 111, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9516bc190d37fea27e07ddab0c607b51">AKEYCODE_FORWARD_DEL</a> = 112, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaaca9d0df6cc18492209eb287e659aeb1">AKEYCODE_CTRL_LEFT</a> = 113, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa99b317cf2f1eb6b06d0226e05223e60c">AKEYCODE_CTRL_RIGHT</a> = 114, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab9dcb68b35c85d380846c85f323868f1">AKEYCODE_CAPS_LOCK</a> = 115, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa78ff5c8316235635f76e3c3179e9a7fc">AKEYCODE_SCROLL_LOCK</a> = 116, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaaadfb2d920bbe422c096120d39811c58">AKEYCODE_META_LEFT</a> = 117, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68038455e2b0846db51f9957e0df9cb8">AKEYCODE_META_RIGHT</a> = 118, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1764b777aa56605f4029d3c71fe70722">AKEYCODE_FUNCTION</a> = 119, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14e22c69bcd47ffb4445ee18a4332d84">AKEYCODE_SYSRQ</a> = 120, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa047501f9cf9bce00e6048d8759ea3a23">AKEYCODE_BREAK</a> = 121, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7544f3de2fb5f78bec62af94a32fdc58">AKEYCODE_MOVE_HOME</a> = 122, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5605f49f5271430f5f150efb3cd0398a">AKEYCODE_MOVE_END</a> = 123, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa62f663d11e91af750a51ddd060b08644">AKEYCODE_INSERT</a> = 124, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafbf0a16c7746e5dee2fd3adbd50da88a">AKEYCODE_FORWARD</a> = 125, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa615cf6202b0ae0ed550f42f6c64b36a1">AKEYCODE_MEDIA_PLAY</a> = 126, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f4e0178c2028b3042b0a5948e38e4e4">AKEYCODE_MEDIA_PAUSE</a> = 127, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6788c6e1443140b0ec4d004d8293e998">AKEYCODE_MEDIA_CLOSE</a> = 128, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa317bffd44306b021c401d3a26b82a7f6">AKEYCODE_MEDIA_EJECT</a> = 129, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17e1eae0b245176aaa024a53411441f9">AKEYCODE_MEDIA_RECORD</a> = 130, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3b84f2c503a9e839f3d36e10e3307fcf">AKEYCODE_F1</a> = 131, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1360f7ec66aa6421e240dae637262e84">AKEYCODE_F2</a> = 132, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a4ce6105e12a3a9071cae2f40515085">AKEYCODE_F3</a> = 133, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa882050e4d0f917470a5b91fbf6ae9ebf">AKEYCODE_F4</a> = 134, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab01807c72b46620bb50fcb6abe24d937">AKEYCODE_F5</a> = 135, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa04a12e81ed80bb42ef5c63cedf0dc60">AKEYCODE_F6</a> = 136, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9583b8e4b0d994b7e3a193b67cf6020c">AKEYCODE_F7</a> = 137, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa55ca54d42d8df70de2ce9031db1344c8">AKEYCODE_F8</a> = 138, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0c8225c0ef98da730933ae914077dbc9">AKEYCODE_F9</a> = 139, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa60660b13acab39282d0558cdcc93474">AKEYCODE_F10</a> = 140, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa64cc7b1d8e53d90ff57c39d0b5a4dd22">AKEYCODE_F11</a> = 141, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa491000231e0ba221b6916b1d9d2c9fb7">AKEYCODE_F12</a> = 142, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad5e349eadd3255c6ad4982dc40ed23ef">AKEYCODE_NUM_LOCK</a> = 143, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa343df35e6a0ad0599e19b8ef7174909b">AKEYCODE_NUMPAD_0</a> = 144, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5c0ec8e42917fa9ac53977db3e6aeb17">AKEYCODE_NUMPAD_1</a> = 145, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4dfd17c2209908e1ec890e10a3211f89">AKEYCODE_NUMPAD_2</a> = 146, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa1efe1886a4b472b999215c0e81f7386">AKEYCODE_NUMPAD_3</a> = 147, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1fdd16681c1441b934f679b94fd0e4f8">AKEYCODE_NUMPAD_4</a> = 148, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf5916003e7c737a8cc06e52d2ee76c3b">AKEYCODE_NUMPAD_5</a> = 149, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa13b83389e0f5de129227af4b8d3f035d">AKEYCODE_NUMPAD_6</a> = 150, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaed9468951ef2887c07c8095c2e7d4c93">AKEYCODE_NUMPAD_7</a> = 151, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5f0a300566235720eb93fee9f2196642">AKEYCODE_NUMPAD_8</a> = 152, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad0c490e3965df546e2d5a83edf423d95">AKEYCODE_NUMPAD_9</a> = 153, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaac108b744e8f93af69158d146425236c">AKEYCODE_NUMPAD_DIVIDE</a> = 154, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa47ce00b838e7ee0a34066dc2595ac735">AKEYCODE_NUMPAD_MULTIPLY</a> = 155, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa2bee314dbbea0a349eb301d10256bbe">AKEYCODE_NUMPAD_SUBTRACT</a> = 156, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9d2fefa9a3f6037f48b247e66dd28c35">AKEYCODE_NUMPAD_ADD</a> = 157, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6aab6b5914e120b43b3a1a8269e9cee1">AKEYCODE_NUMPAD_DOT</a> = 158, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa900e3bb0bc4ff70ba786f18ff4db0bd1">AKEYCODE_NUMPAD_COMMA</a> = 159, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa79432be5f7a44e99ddc3721fd9fd212e">AKEYCODE_NUMPAD_ENTER</a> = 160, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c1007a59641499ee5e1508e747c5ed">AKEYCODE_NUMPAD_EQUALS</a> = 161, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacc903e9eb495cf6cef7c6bc825f82f54">AKEYCODE_NUMPAD_LEFT_PAREN</a> = 162, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7662e0f2a099239dc69f6a27c7daabf9">AKEYCODE_NUMPAD_RIGHT_PAREN</a> = 163, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa174a5c7c39753235109696e82870c575">AKEYCODE_VOLUME_MUTE</a> = 164, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17e76263257a5dc654a413c9dc2fd649">AKEYCODE_INFO</a> = 165, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa056914fd17ae539dca44f43745d8e05c">AKEYCODE_CHANNEL_UP</a> = 166, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa18f1808c6a819e787c9a9941f78b910f">AKEYCODE_CHANNEL_DOWN</a> = 167, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacfce9bb78ef8106dce4868f81cca4fb4">AKEYCODE_ZOOM_IN</a> = 168, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacf035f5234c3df4589f35a50e99e0535">AKEYCODE_ZOOM_OUT</a> = 169, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0776ffae512b4848e53fce762a3a5017">AKEYCODE_TV</a> = 170, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe7531c40ff4a31614ff6fd61802ebe8">AKEYCODE_WINDOW</a> = 171, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf33a5fa1f163245360aeed89d64b0233">AKEYCODE_GUIDE</a> = 172, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacf2f03b925a02ba6de9fd98737546a60">AKEYCODE_DVR</a> = 173, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa03ce46d177e020690aa9d26a0fa850ae">AKEYCODE_BOOKMARK</a> = 174, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa81ba8d5343362b841b8a62b8679ff994">AKEYCODE_CAPTIONS</a> = 175, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa2bbd457230c3028df6b91d5bdda9159">AKEYCODE_SETTINGS</a> = 176, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafda3b0ea1b158831fc443bf4911a3930">AKEYCODE_TV_POWER</a> = 177, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa1750b29e396bd1fd237ed4aadacc8f5">AKEYCODE_TV_INPUT</a> = 178, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab28aea3a51b11c9f227ce8cd5ff55a3d">AKEYCODE_STB_POWER</a> = 179, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa988b0372359b2bca7390878fdba9e1b5">AKEYCODE_STB_INPUT</a> = 180, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa479d36f9814bd00c8986a252664b938b">AKEYCODE_AVR_POWER</a> = 181, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa57d42dbd8ea4219f76fb116f234e6504">AKEYCODE_AVR_INPUT</a> = 182, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2d9e3e82e69955f649b586f4518e074c">AKEYCODE_PROG_RED</a> = 183, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad50c1e2136e47843a8dabca929f8ead1">AKEYCODE_PROG_GREEN</a> = 184, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafa813640412bd41a181f0ec3a33dddc4">AKEYCODE_PROG_YELLOW</a> = 185, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5e82219fdb937fee5a22426c607dd4e0">AKEYCODE_PROG_BLUE</a> = 186, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa53a59a262d6d523bdc2bd30a1e427bad">AKEYCODE_APP_SWITCH</a> = 187, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa28c72c33ab93d83539d0790b7e48336a">AKEYCODE_BUTTON_1</a> = 188, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab8089673fea303c7a299eefd2c327cc3">AKEYCODE_BUTTON_2</a> = 189, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa706a5ff492c80b4653e6fe0dcd278ca1">AKEYCODE_BUTTON_3</a> = 190, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c425a063bf6976e1ff8ae9f3cfcbe6">AKEYCODE_BUTTON_4</a> = 191, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa47149f963528ec7abe55066abfb7caf5">AKEYCODE_BUTTON_5</a> = 192, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa55057c8cda53a4c539d02ab1a93ca58b">AKEYCODE_BUTTON_6</a> = 193, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac09e0c0cbbf6449bf106e4199600db35">AKEYCODE_BUTTON_7</a> = 194, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaee64b3e0f30ed09e3c9f01b6c8877c3f">AKEYCODE_BUTTON_8</a> = 195, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac8e54092c8be5dc0e114ec35f40e00dc">AKEYCODE_BUTTON_9</a> = 196, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7e6f8621909f3461032c33f9c8acaa7">AKEYCODE_BUTTON_10</a> = 197, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab413971c698b6e25d3955667c0142ac1">AKEYCODE_BUTTON_11</a> = 198, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafe4ee1e5446dd12bbb579b412048e79e">AKEYCODE_BUTTON_12</a> = 199, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaabde2ed26594b89d5769eef9f0d1fe6f">AKEYCODE_BUTTON_13</a> = 200, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f08dfd2c30ddedf1d2983680e89041b">AKEYCODE_BUTTON_14</a> = 201, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d8d0fb1a610fdb4e53f0fb675b7d7d0">AKEYCODE_BUTTON_15</a> = 202, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa224370cba99bda2db6a1c82fd2f7fa39">AKEYCODE_BUTTON_16</a> = 203, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7b8e87b47c17c5f1e97fcb56faaa26ff">AKEYCODE_LANGUAGE_SWITCH</a> = 204, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa380279768c5c50d92bef2a88394f967f">AKEYCODE_MANNER_MODE</a> = 205, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68d314a5ec06701205cd0097c5c7145c">AKEYCODE_3D_MODE</a> = 206, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0aa2cfca11b7cabf82341a9dbec83f10">AKEYCODE_CONTACTS</a> = 207, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa114be17d1853c77a7406c024d9e4f076">AKEYCODE_CALENDAR</a> = 208, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14508751d70a0404b194d4b6df83ec72">AKEYCODE_MUSIC</a> = 209, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa293523c40bb9f1d793cd0b984f636573">AKEYCODE_CALCULATOR</a> = 210, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf782be8df9a8ca5dc86c9bfeabac6f22">AKEYCODE_ZENKAKU_HANKAKU</a> = 211, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaadd69273b99eb0b848d98b2d6b3ad3234">AKEYCODE_EISU</a> = 212, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7321e5c6b3cbab142bd16957653b2ac7">AKEYCODE_MUHENKAN</a> = 213, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab0686dd37c57d833d1158b7f1d85ee02">AKEYCODE_HENKAN</a> = 214, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3be7db22b3c8aa046a46631e44863c28">AKEYCODE_KATAKANA_HIRAGANA</a> = 215, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5ee19d21912056b902e283efa2d9d14b">AKEYCODE_YEN</a> = 216, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae8b0af04dac5ea56fd55e577fd9e6be4">AKEYCODE_RO</a> = 217, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa62d090ae5c95a04dacdff79817dad531">AKEYCODE_KANA</a> = 218, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d3f036adb654c7752890a283ecbf838">AKEYCODE_ASSIST</a> = 219, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7cf1bf3528b6d8a0e86998287fe00650">AKEYCODE_BRIGHTNESS_DOWN</a> = 220, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0af6ec416c09d160e364466faa955c36">AKEYCODE_BRIGHTNESS_UP</a> = 221, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3cdb53cdf8c576e272502da06daa52e1">AKEYCODE_MEDIA_AUDIO_TRACK</a> = 222, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafc077e5a6b447ea060c144f6e65bd207">AKEYCODE_SLEEP</a> = 223, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa903c5152d26b3011ae521afa06759429">AKEYCODE_WAKEUP</a> = 224, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0ecddd3dce52cf60c96c5d430b1f553">AKEYCODE_PAIRING</a> = 225, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf3ddf83cb2f701911b03c3a738e2e73a">AKEYCODE_MEDIA_TOP_MENU</a> = 226, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa22858c3c30d596ad60f355f75df86e1">AKEYCODE_11</a> = 227, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa781c31195e55b2dcbdd772560dc61aa5">AKEYCODE_12</a> = 228, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa187963dd6f74b96f132f23e01dea35e9">AKEYCODE_LAST_CHANNEL</a> = 229, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa954c2251b2cb53f47637802cb66baf06">AKEYCODE_TV_DATA_SERVICE</a> = 230, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa95898663b7f74c93d0b860a43528c744">AKEYCODE_VOICE_ASSIST</a> = 231, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa93dd3fd752701af5a5491e01cc15db72">AKEYCODE_TV_RADIO_SERVICE</a> = 232, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d3d7b89756df37f01d6d0f13beff1db">AKEYCODE_TV_TELETEXT</a> = 233, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa630a08e07a3b4c6bcac9a1a72d176055">AKEYCODE_TV_NUMBER_ENTRY</a> = 234, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14f2b6fe8550832ef9e3f9aa53164073">AKEYCODE_TV_TERRESTRIAL_ANALOG</a> = 235, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacad8c149251a78760a5fe4931b9cdf16">AKEYCODE_TV_TERRESTRIAL_DIGITAL</a> = 236, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3707d4396417535a611e4548afe33936">AKEYCODE_TV_SATELLITE</a> = 237, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8c52e7d06525c0ee5d943d63a0fa8ea5">AKEYCODE_TV_SATELLITE_BS</a> = 238, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4eea1809a9ff679ed7773332d728c6b0">AKEYCODE_TV_SATELLITE_CS</a> = 239, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17c0e68066b86610ff168c6367af36eb">AKEYCODE_TV_SATELLITE_SERVICE</a> = 240, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaec5e46a5afc57953d1772e086307aa42">AKEYCODE_TV_NETWORK</a> = 241, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe33a80d6d3bf889af25cbd77fdb89f9">AKEYCODE_TV_ANTENNA_CABLE</a> = 242, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a50de965f50ab3aa42772aac0808445">AKEYCODE_TV_INPUT_HDMI_1</a> = 243, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7ec65c008471d771bf879ec012f5c7f">AKEYCODE_TV_INPUT_HDMI_2</a> = 244, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a0f267a2696d15bf16127121b1f1c7f">AKEYCODE_TV_INPUT_HDMI_3</a> = 245, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4437c1d8d2d33058cfa71ec7b2771ec5">AKEYCODE_TV_INPUT_HDMI_4</a> = 246, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5c3097f14c6582958ba1d14d70115ccd">AKEYCODE_TV_INPUT_COMPOSITE_1</a> = 247, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaada13cbb9d619bc610678ad66325647b9">AKEYCODE_TV_INPUT_COMPOSITE_2</a> = 248, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa156e2dba81e7c73624ccf8c2ef8833ae">AKEYCODE_TV_INPUT_COMPONENT_1</a> = 249, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8db9b6ee1457267abea03430781bb0ec">AKEYCODE_TV_INPUT_COMPONENT_2</a> = 250, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa149b2c8a4817075c0a41e0adf11c8e85">AKEYCODE_TV_INPUT_VGA_1</a> = 251, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa419f0adac43cad104cd6cf83dc5f13f6">AKEYCODE_TV_AUDIO_DESCRIPTION</a> = 252, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaccc5900ca5dd399d5ce11dd8ca324678">AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP</a> = 253, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5fca6a9ec1ce246bf3c53d859ac9f5eb">AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN</a> = 254, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8e79045045293070c8eb9e408f1335b4">AKEYCODE_TV_ZOOM_MODE</a> = 255, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4c18feeafff3c41081073c025ee017b8">AKEYCODE_TV_CONTENTS_MENU</a> = 256, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaadde70071f6a432f367079efa6e1a6fe">AKEYCODE_TV_MEDIA_CONTEXT_MENU</a> = 257, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0293c2a63e4d955080334bef6640840">AKEYCODE_TV_TIMER_PROGRAMMING</a> = 258, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab062b403701292c9e2db96a1f88cc6d9">AKEYCODE_HELP</a> = 259
+<br/>
+ }</td></tr>
+<tr class="separator:ga6b7b47dd702d9e331586d485013fd1ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga8292ae06aa8120c52d7380d228600b9c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga8292ae06aa8120c52d7380d228600b9c">AInputEvent_getType</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *event)</td></tr>
+<tr class="separator:ga8292ae06aa8120c52d7380d228600b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9dd3fd81e51dbfde19ab861541242aa1"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga9dd3fd81e51dbfde19ab861541242aa1">AInputEvent_getDeviceId</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *event)</td></tr>
+<tr class="separator:ga9dd3fd81e51dbfde19ab861541242aa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac90d4b497669dbc709ec9650db4e49be"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gac90d4b497669dbc709ec9650db4e49be">AInputEvent_getSource</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *event)</td></tr>
+<tr class="separator:gac90d4b497669dbc709ec9650db4e49be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga36ec0b59f98f86a7ca263ba91279896d"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga36ec0b59f98f86a7ca263ba91279896d">AKeyEvent_getAction</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:ga36ec0b59f98f86a7ca263ba91279896d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2a18e98efe0c4ccb6f39bb13c555010e"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga2a18e98efe0c4ccb6f39bb13c555010e">AKeyEvent_getFlags</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:ga2a18e98efe0c4ccb6f39bb13c555010e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b01ecd60018a5445f4917a861ca9466"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga6b01ecd60018a5445f4917a861ca9466">AKeyEvent_getKeyCode</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:ga6b01ecd60018a5445f4917a861ca9466"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a0a846b7a195aeb290dfcd2250137d9"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga4a0a846b7a195aeb290dfcd2250137d9">AKeyEvent_getScanCode</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:ga4a0a846b7a195aeb290dfcd2250137d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabdda62b40b22727af2fb41740bf4787b"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gabdda62b40b22727af2fb41740bf4787b">AKeyEvent_getMetaState</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:gabdda62b40b22727af2fb41740bf4787b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5358fe3ebbd4b5b2f88a4ad2eba6f885"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga5358fe3ebbd4b5b2f88a4ad2eba6f885">AKeyEvent_getRepeatCount</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:ga5358fe3ebbd4b5b2f88a4ad2eba6f885"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf475b6f0860bdfca4ceea7bc46eab1a9"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaf475b6f0860bdfca4ceea7bc46eab1a9">AKeyEvent_getDownTime</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:gaf475b6f0860bdfca4ceea7bc46eab1a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3eac7d68195d1767c947ca267842696"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gae3eac7d68195d1767c947ca267842696">AKeyEvent_getEventTime</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:gae3eac7d68195d1767c947ca267842696"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73ea2093cc2343675ac43dd08bef4247"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga73ea2093cc2343675ac43dd08bef4247">AMotionEvent_getAction</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga73ea2093cc2343675ac43dd08bef4247"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2891d19197c070207098fa48adeb35af"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga2891d19197c070207098fa48adeb35af">AMotionEvent_getFlags</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga2891d19197c070207098fa48adeb35af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5644f0d952e3dea57ba9f7ce51dff2bb"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga5644f0d952e3dea57ba9f7ce51dff2bb">AMotionEvent_getMetaState</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga5644f0d952e3dea57ba9f7ce51dff2bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1aa7ebb749416491b6f0c55ae87ddf49"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga1aa7ebb749416491b6f0c55ae87ddf49">AMotionEvent_getButtonState</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga1aa7ebb749416491b6f0c55ae87ddf49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7e1f0caa4c27194d4a8756a18432299"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gad7e1f0caa4c27194d4a8756a18432299">AMotionEvent_getEdgeFlags</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:gad7e1f0caa4c27194d4a8756a18432299"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad44be7697e68891688cd7bcfaffec209"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gad44be7697e68891688cd7bcfaffec209">AMotionEvent_getDownTime</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:gad44be7697e68891688cd7bcfaffec209"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7e13fbf3cff0700b0b620284ebdd3a33"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga7e13fbf3cff0700b0b620284ebdd3a33">AMotionEvent_getEventTime</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga7e13fbf3cff0700b0b620284ebdd3a33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a94ce622eb78a17737fd8bddbf86e21"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga7a94ce622eb78a17737fd8bddbf86e21">AMotionEvent_getXOffset</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga7a94ce622eb78a17737fd8bddbf86e21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f6bd2c12d912f502c245b6ced6d3704"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga7f6bd2c12d912f502c245b6ced6d3704">AMotionEvent_getYOffset</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga7f6bd2c12d912f502c245b6ced6d3704"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga81a9be07673a01f43fd0241c7b4c254f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga81a9be07673a01f43fd0241c7b4c254f">AMotionEvent_getXPrecision</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga81a9be07673a01f43fd0241c7b4c254f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae311e6e28bce4be905526f9ea71278ed"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gae311e6e28bce4be905526f9ea71278ed">AMotionEvent_getYPrecision</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:gae311e6e28bce4be905526f9ea71278ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga612e68d104adbc6d14d87510e8066bd8"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga612e68d104adbc6d14d87510e8066bd8">AMotionEvent_getPointerCount</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga612e68d104adbc6d14d87510e8066bd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga599e21a79c706807243a8ee31b116138"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga599e21a79c706807243a8ee31b116138">AMotionEvent_getPointerId</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga599e21a79c706807243a8ee31b116138"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2babe4e2e79952e004538f8f1878649c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga2babe4e2e79952e004538f8f1878649c">AMotionEvent_getToolType</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga2babe4e2e79952e004538f8f1878649c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe45e29ef138cc30592237ce479837f0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gafe45e29ef138cc30592237ce479837f0">AMotionEvent_getRawX</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:gafe45e29ef138cc30592237ce479837f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5a09c3d742a93270861aa05f24257c23"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga5a09c3d742a93270861aa05f24257c23">AMotionEvent_getRawY</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga5a09c3d742a93270861aa05f24257c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22e255a5fa52761cd92ce78af91e9757"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga22e255a5fa52761cd92ce78af91e9757">AMotionEvent_getX</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga22e255a5fa52761cd92ce78af91e9757"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga113f58a37e41f2a6c3007d68418edfa6"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga113f58a37e41f2a6c3007d68418edfa6">AMotionEvent_getY</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga113f58a37e41f2a6c3007d68418edfa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga97fcaa6cd08c9d54b35711e482e06c8d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga97fcaa6cd08c9d54b35711e482e06c8d">AMotionEvent_getPressure</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga97fcaa6cd08c9d54b35711e482e06c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9b1f3c3df46b5269f9e74d2dd70c88a8"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga9b1f3c3df46b5269f9e74d2dd70c88a8">AMotionEvent_getSize</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga9b1f3c3df46b5269f9e74d2dd70c88a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ac18fe19534e07d80441582f489d471"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga9ac18fe19534e07d80441582f489d471">AMotionEvent_getTouchMajor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga9ac18fe19534e07d80441582f489d471"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga65f71e257b5fcb29dcbaaf59b3fcb3a7"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga65f71e257b5fcb29dcbaaf59b3fcb3a7">AMotionEvent_getTouchMinor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga65f71e257b5fcb29dcbaaf59b3fcb3a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac04099690f278a6a27191c2027b12a77"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gac04099690f278a6a27191c2027b12a77">AMotionEvent_getToolMajor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:gac04099690f278a6a27191c2027b12a77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2222d459759ba4a8269647012d2718fb"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga2222d459759ba4a8269647012d2718fb">AMotionEvent_getToolMinor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga2222d459759ba4a8269647012d2718fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad28422998da15b789edcba6b8bc5d615"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gad28422998da15b789edcba6b8bc5d615">AMotionEvent_getOrientation</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:gad28422998da15b789edcba6b8bc5d615"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d364cdcebf85237f599b25861f38c21"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga9d364cdcebf85237f599b25861f38c21">AMotionEvent_getAxisValue</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, int32_t axis, size_t pointer_index)</td></tr>
+<tr class="separator:ga9d364cdcebf85237f599b25861f38c21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0aef34c236db6d7a56a50bf590be7bcc"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga0aef34c236db6d7a56a50bf590be7bcc">AMotionEvent_getHistorySize</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga0aef34c236db6d7a56a50bf590be7bcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga523f1a760754206965b42b08d62f9346"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga523f1a760754206965b42b08d62f9346">AMotionEvent_getHistoricalEventTime</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t history_index)</td></tr>
+<tr class="separator:ga523f1a760754206965b42b08d62f9346"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5d36c2e7420001c86ae2aa1168fe6f83"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga5d36c2e7420001c86ae2aa1168fe6f83">AMotionEvent_getHistoricalRawX</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga5d36c2e7420001c86ae2aa1168fe6f83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6deb0e7690a93aa53e5872c2691b69fe"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga6deb0e7690a93aa53e5872c2691b69fe">AMotionEvent_getHistoricalRawY</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga6deb0e7690a93aa53e5872c2691b69fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49a8ca89ff377b5ed2355e8d7220ae07"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga49a8ca89ff377b5ed2355e8d7220ae07">AMotionEvent_getHistoricalX</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga49a8ca89ff377b5ed2355e8d7220ae07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga30fc4e5d3ce144955859f8c97b51b73d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga30fc4e5d3ce144955859f8c97b51b73d">AMotionEvent_getHistoricalY</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga30fc4e5d3ce144955859f8c97b51b73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa8e9352ee5b043b3e1b6e2062d491010"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaa8e9352ee5b043b3e1b6e2062d491010">AMotionEvent_getHistoricalPressure</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:gaa8e9352ee5b043b3e1b6e2062d491010"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a04bb7ec12928db7e62645e7fad3a9e"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga0a04bb7ec12928db7e62645e7fad3a9e">AMotionEvent_getHistoricalSize</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga0a04bb7ec12928db7e62645e7fad3a9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf437f223668b97f19ebdbad4b9cf4483"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaf437f223668b97f19ebdbad4b9cf4483">AMotionEvent_getHistoricalTouchMajor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:gaf437f223668b97f19ebdbad4b9cf4483"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga126715d966e989652aa1ae5d38e0e898"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga126715d966e989652aa1ae5d38e0e898">AMotionEvent_getHistoricalTouchMinor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga126715d966e989652aa1ae5d38e0e898"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga160a5830e791e8c42ae97f51b92233d2"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga160a5830e791e8c42ae97f51b92233d2">AMotionEvent_getHistoricalToolMajor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga160a5830e791e8c42ae97f51b92233d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe01aa7576a6d1bce750fb8482355849"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gafe01aa7576a6d1bce750fb8482355849">AMotionEvent_getHistoricalToolMinor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:gafe01aa7576a6d1bce750fb8482355849"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaab9cb8fa670175ecc73c75eed4e5cd3f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaab9cb8fa670175ecc73c75eed4e5cd3f">AMotionEvent_getHistoricalOrientation</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:gaab9cb8fa670175ecc73c75eed4e5cd3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ca740e1324f3cdb934252dce0c982d0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga7ca740e1324f3cdb934252dce0c982d0">AMotionEvent_getHistoricalAxisValue</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, int32_t axis, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga7ca740e1324f3cdb934252dce0c982d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga900711156bfb58d1a4b158da7874930f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga900711156bfb58d1a4b158da7874930f">AInputQueue_attachLooper</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue, <a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper, int ident, <a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">ALooper_callbackFunc</a> callback, void *data)</td></tr>
+<tr class="separator:ga900711156bfb58d1a4b158da7874930f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeebe9f83392ac79b31ca40a6fd4dbeff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaeebe9f83392ac79b31ca40a6fd4dbeff">AInputQueue_detachLooper</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue)</td></tr>
+<tr class="separator:gaeebe9f83392ac79b31ca40a6fd4dbeff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2b72ad6ab5ef656e8c41163aa7871c96"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga2b72ad6ab5ef656e8c41163aa7871c96">AInputQueue_hasEvents</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue)</td></tr>
+<tr class="separator:ga2b72ad6ab5ef656e8c41163aa7871c96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga88de12e2b39787ba7d3e4ce2ea46a48c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga88de12e2b39787ba7d3e4ce2ea46a48c">AInputQueue_getEvent</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue, <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> **outEvent)</td></tr>
+<tr class="separator:ga88de12e2b39787ba7d3e4ce2ea46a48c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadecd32e6c7aefa4a508b355550d3eaa9"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gadecd32e6c7aefa4a508b355550d3eaa9">AInputQueue_preDispatchEvent</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue, <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *event)</td></tr>
+<tr class="separator:gadecd32e6c7aefa4a508b355550d3eaa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga17e87e0f35d47d729eac31a0dfb1ac33"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga17e87e0f35d47d729eac31a0dfb1ac33">AInputQueue_finishEvent</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue, <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *event, int handled)</td></tr>
+<tr class="separator:ga17e87e0f35d47d729eac31a0dfb1ac33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="gaeb170c0fbeeed1d999160566f09f169e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT&#160;&#160;&#160;8</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Bit shift for the action bits holding the pointer index as defined by AMOTION_EVENT_ACTION_POINTER_INDEX_MASK. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gac35dbbc035371e799d8badabc981e8fa"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Input events.</p>
+<p>Input events are opaque structures. Use the provided accessors functions to read their properties. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga21d8182651f4b61ae558560023e8339c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> <a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Input queue</p>
+<p>An input queue is the facility through which you retrieve input events. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="ga385c44f6fb256e5716a2302a5b940388"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Motion event edge touch flags. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga385c44f6fb256e5716a2302a5b940388a37dd7496968e6defbecc3c8d6ab2734d"></a>AMOTION_EVENT_EDGE_FLAG_NONE</em>&#160;</td><td class="fielddoc">
+<p>No edges intersected. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga385c44f6fb256e5716a2302a5b940388a915e1ade9b600d11a3c70a17a88de757"></a>AMOTION_EVENT_EDGE_FLAG_TOP</em>&#160;</td><td class="fielddoc">
+<p>Flag indicating the motion event intersected the top edge of the screen. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga385c44f6fb256e5716a2302a5b940388ad8b662839787e1c7dd2616f32c02aaeb"></a>AMOTION_EVENT_EDGE_FLAG_BOTTOM</em>&#160;</td><td class="fielddoc">
+<p>Flag indicating the motion event intersected the bottom edge of the screen. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga385c44f6fb256e5716a2302a5b940388afb70c13f16daade25ba8132a5ea3cf52"></a>AMOTION_EVENT_EDGE_FLAG_LEFT</em>&#160;</td><td class="fielddoc">
+<p>Flag indicating the motion event intersected the left edge of the screen. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga385c44f6fb256e5716a2302a5b940388a7d45674e03f1876a43d4810508905078"></a>AMOTION_EVENT_EDGE_FLAG_RIGHT</em>&#160;</td><td class="fielddoc">
+<p>Flag indicating the motion event intersected the right edge of the screen. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gabc5c98fcc1211af2b80116dd6e0a035d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Constants that identify each individual axis of a motion event. <a class="anchor" id="AMOTION_EVENT_AXIS"></a></p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da5f4b5b009634039a1f361048a5fc6064"></a>AMOTION_EVENT_AXIS_X</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: X axis of a motion event.</p>
+<ul>
+<li>For a touch screen, reports the absolute X screen position of the center of the touch contact area. The units are display pixels.</li>
+<li>For a touch pad, reports the absolute X surface position of the center of the touch contact area. The units are device-dependent.</li>
+<li>For a mouse, reports the absolute X screen position of the mouse pointer. The units are display pixels.</li>
+<li>For a trackball, reports the relative horizontal displacement of the trackball. The value is normalized to a range from -1.0 (left) to 1.0 (right).</li>
+<li>For a joystick, reports the absolute X position of the joystick. The value is normalized to a range from -1.0 (left) to 1.0 (right). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da64f7de8558265bd8179d206eb33eff6c"></a>AMOTION_EVENT_AXIS_Y</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Y axis of a motion event.</p>
+<ul>
+<li>For a touch screen, reports the absolute Y screen position of the center of the touch contact area. The units are display pixels.</li>
+<li>For a touch pad, reports the absolute Y surface position of the center of the touch contact area. The units are device-dependent.</li>
+<li>For a mouse, reports the absolute Y screen position of the mouse pointer. The units are display pixels.</li>
+<li>For a trackball, reports the relative vertical displacement of the trackball. The value is normalized to a range from -1.0 (up) to 1.0 (down).</li>
+<li>For a joystick, reports the absolute Y position of the joystick. The value is normalized to a range from -1.0 (up or far) to 1.0 (down or near). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da3b4fd0f17cfdeb6a055babecd2b0ded8"></a>AMOTION_EVENT_AXIS_PRESSURE</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Pressure axis of a motion event.</p>
+<ul>
+<li>For a touch screen or touch pad, reports the approximate pressure applied to the surface by a finger or other tool. The value is normalized to a range from 0 (no pressure at all) to 1 (normal pressure), although values higher than 1 may be generated depending on the calibration of the input device.</li>
+<li>For a trackball, the value is set to 1 if the trackball button is pressed or 0 otherwise.</li>
+<li>For a mouse, the value is set to 1 if the primary mouse button is pressed or 0 otherwise. </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da4baba3ccaec881089a864ba6deaf8bd6"></a>AMOTION_EVENT_AXIS_SIZE</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Size axis of a motion event.</p>
+<ul>
+<li>For a touch screen or touch pad, reports the approximate size of the contact area in relation to the maximum detectable size for the device. The value is normalized to a range from 0 (smallest detectable size) to 1 (largest detectable size), although it is not a linear scale. This value is of limited use. To obtain calibrated size information, see <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da792b9e01044a2e43e7f80e5559db20c2">AMOTION_EVENT_AXIS_TOUCH_MAJOR</a> or <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa273d64c392f86ae789fd5e24661ba0a">AMOTION_EVENT_AXIS_TOOL_MAJOR</a>. </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da792b9e01044a2e43e7f80e5559db20c2"></a>AMOTION_EVENT_AXIS_TOUCH_MAJOR</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: TouchMajor axis of a motion event.</p>
+<ul>
+<li>For a touch screen, reports the length of the major axis of an ellipse that represents the touch area at the point of contact. The units are display pixels.</li>
+<li>For a touch pad, reports the length of the major axis of an ellipse that represents the touch area at the point of contact. The units are device-dependent. </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035daa8b24b0f01f24898a36e5751c8eca63c"></a>AMOTION_EVENT_AXIS_TOUCH_MINOR</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: TouchMinor axis of a motion event.</p>
+<ul>
+<li>For a touch screen, reports the length of the minor axis of an ellipse that represents the touch area at the point of contact. The units are display pixels.</li>
+<li>For a touch pad, reports the length of the minor axis of an ellipse that represents the touch area at the point of contact. The units are device-dependent.</li>
+</ul>
+<p>When the touch is circular, the major and minor axis lengths will be equal to one another. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035daa273d64c392f86ae789fd5e24661ba0a"></a>AMOTION_EVENT_AXIS_TOOL_MAJOR</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: ToolMajor axis of a motion event.</p>
+<ul>
+<li>For a touch screen, reports the length of the major axis of an ellipse that represents the size of the approaching finger or tool used to make contact.</li>
+<li>For a touch pad, reports the length of the major axis of an ellipse that represents the size of the approaching finger or tool used to make contact. The units are device-dependent.</li>
+</ul>
+<p>When the touch is circular, the major and minor axis lengths will be equal to one another.</p>
+<p>The tool size may be larger than the touch size since the tool may not be fully in contact with the touch sensor. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dadebd200b37ffaf36b94e7e478c559142"></a>AMOTION_EVENT_AXIS_TOOL_MINOR</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: ToolMinor axis of a motion event.</p>
+<ul>
+<li>For a touch screen, reports the length of the minor axis of an ellipse that represents the size of the approaching finger or tool used to make contact.</li>
+<li>For a touch pad, reports the length of the minor axis of an ellipse that represents the size of the approaching finger or tool used to make contact. The units are device-dependent.</li>
+</ul>
+<p>When the touch is circular, the major and minor axis lengths will be equal to one another.</p>
+<p>The tool size may be larger than the touch size since the tool may not be fully in contact with the touch sensor. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da114f2b3fc233ccf7a4470787c31457d2"></a>AMOTION_EVENT_AXIS_ORIENTATION</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Orientation axis of a motion event.</p>
+<ul>
+<li>For a touch screen or touch pad, reports the orientation of the finger or tool in radians relative to the vertical plane of the device. An angle of 0 radians indicates that the major axis of contact is oriented upwards, is perfectly circular or is of unknown orientation. A positive angle indicates that the major axis of contact is oriented to the right. A negative angle indicates that the major axis of contact is oriented to the left. The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians (finger pointing fully right).</li>
+<li>For a stylus, the orientation indicates the direction in which the stylus is pointing in relation to the vertical axis of the current orientation of the screen. The range is from -PI radians to PI radians, where 0 is pointing up, -PI/2 radians is pointing left, -PI or PI radians is pointing down, and PI/2 radians is pointing right. See also <a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dafca0a235f69c4b38bfc95e7a7b8d9ab1">AMOTION_EVENT_AXIS_TILT</a>. </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dad11be04b4b81715cad905ee9fa348e99"></a>AMOTION_EVENT_AXIS_VSCROLL</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Vertical Scroll axis of a motion event.</p>
+<ul>
+<li>For a mouse, reports the relative movement of the vertical scroll wheel. The value is normalized to a range from -1.0 (down) to 1.0 (up).</li>
+</ul>
+<p>This axis should be used to scroll views vertically. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da92955e6b0f3f82af66a505c854e9edff"></a>AMOTION_EVENT_AXIS_HSCROLL</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Horizontal Scroll axis of a motion event.</p>
+<ul>
+<li>For a mouse, reports the relative movement of the horizontal scroll wheel. The value is normalized to a range from -1.0 (left) to 1.0 (right).</li>
+</ul>
+<p>This axis should be used to scroll views horizontally. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da5a689e572da9bc5feafcb6c011368305"></a>AMOTION_EVENT_AXIS_Z</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Z axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute Z position of the joystick. The value is normalized to a range from -1.0 (high) to 1.0 (low). <em>On game pads with two analog joysticks, this axis is often reinterpreted to report the absolute X position of the second joystick instead.</em> </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da689b612864177d6b57d4181442e3e38e"></a>AMOTION_EVENT_AXIS_RX</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: X Rotation axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute rotation angle about the X axis. The value is normalized to a range from -1.0 (counter-clockwise) to 1.0 (clockwise). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035daa20188da209300e1f80f6f5bd4058e13"></a>AMOTION_EVENT_AXIS_RY</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Y Rotation axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute rotation angle about the Y axis. The value is normalized to a range from -1.0 (counter-clockwise) to 1.0 (clockwise). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da381948b3321afd390ad164345eb9206b"></a>AMOTION_EVENT_AXIS_RZ</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Z Rotation axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute rotation angle about the Z axis. The value is normalized to a range from -1.0 (counter-clockwise) to 1.0 (clockwise). On game pads with two analog joysticks, this axis is often reinterpreted to report the absolute Y position of the second joystick instead. </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da04245c76cb9b32dcba920661f11ac9da"></a>AMOTION_EVENT_AXIS_HAT_X</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Hat X axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute X position of the directional hat control. The value is normalized to a range from -1.0 (left) to 1.0 (right). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da98c323321d908db459e7cf86a7e8a482"></a>AMOTION_EVENT_AXIS_HAT_Y</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Hat Y axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute Y position of the directional hat control. The value is normalized to a range from -1.0 (up) to 1.0 (down). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dae4c65c3b1bd2946ff9e18c6041cdb591"></a>AMOTION_EVENT_AXIS_LTRIGGER</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Left Trigger axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute position of the left trigger control. The value is normalized to a range from 0.0 (released) to 1.0 (fully pressed). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da116e80c6be166290ca481fefa5de38c1"></a>AMOTION_EVENT_AXIS_RTRIGGER</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Right Trigger axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute position of the right trigger control. The value is normalized to a range from 0.0 (released) to 1.0 (fully pressed). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da6d1f5d64e607104964eb43d8fae07a4f"></a>AMOTION_EVENT_AXIS_THROTTLE</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Throttle axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute position of the throttle control. The value is normalized to a range from 0.0 (fully open) to 1.0 (fully closed). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da318a0782f895949407fc192fc4280257"></a>AMOTION_EVENT_AXIS_RUDDER</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Rudder axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute position of the rudder control. The value is normalized to a range from -1.0 (turn left) to 1.0 (turn right). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dab0ae83ebd74e672bb35378b92a440b1d"></a>AMOTION_EVENT_AXIS_WHEEL</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Wheel axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute position of the steering wheel control. The value is normalized to a range from -1.0 (turn left) to 1.0 (turn right). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dab0223f235a6044815918af2abafcbf16"></a>AMOTION_EVENT_AXIS_GAS</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Gas axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute position of the gas (accelerator) control. The value is normalized to a range from 0.0 (no acceleration) to 1.0 (maximum acceleration). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dae3a99764f3681dd9e094852bb2489ece"></a>AMOTION_EVENT_AXIS_BRAKE</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Brake axis of a motion event.</p>
+<ul>
+<li>For a joystick, reports the absolute position of the brake control. The value is normalized to a range from 0.0 (no braking) to 1.0 (maximum braking). </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dae800909411a1e83173b0eef7aa458d0e"></a>AMOTION_EVENT_AXIS_DISTANCE</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Distance axis of a motion event.</p>
+<ul>
+<li>For a stylus, reports the distance of the stylus from the screen. A value of 0.0 indicates direct contact and larger values indicate increasing distance from the surface. </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dafca0a235f69c4b38bfc95e7a7b8d9ab1"></a>AMOTION_EVENT_AXIS_TILT</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Tilt axis of a motion event.</p>
+<ul>
+<li>For a stylus, reports the tilt angle of the stylus in radians where 0 radians indicates that the stylus is being held perpendicular to the surface, and PI/2 radians indicates that the stylus is being held flat against the surface. </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dadcc18afd3a7069412617df34db5a27bc"></a>AMOTION_EVENT_AXIS_GENERIC_1</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 1 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dac4addf06abfa6c76f0578ddde049aad5"></a>AMOTION_EVENT_AXIS_GENERIC_2</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 2 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dac7df57ef5082e10be83f66d7477bce9c"></a>AMOTION_EVENT_AXIS_GENERIC_3</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 3 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da321873d126b7d545665096694cb7d9d9"></a>AMOTION_EVENT_AXIS_GENERIC_4</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 4 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da9b47cef7060197e1b0302a8a718c3085"></a>AMOTION_EVENT_AXIS_GENERIC_5</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 5 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035daad7e47a1b5fb66864b6d988374f50a84"></a>AMOTION_EVENT_AXIS_GENERIC_6</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 6 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da222c06f51a60e59504b635dbf89a025b"></a>AMOTION_EVENT_AXIS_GENERIC_7</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 7 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dab59a8a373a913e40b146ed762976d6fe"></a>AMOTION_EVENT_AXIS_GENERIC_8</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 8 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da721fa0fbca8b22f1ecc8d3870f4e7443"></a>AMOTION_EVENT_AXIS_GENERIC_9</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 9 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da29ba08f4ddc658e0127ee5bc08d185f2"></a>AMOTION_EVENT_AXIS_GENERIC_10</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 10 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dafc64a4b307f62bb12b645918aa7edb57"></a>AMOTION_EVENT_AXIS_GENERIC_11</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 11 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dae5d32b3e9cec4936ae1e074f320c3063"></a>AMOTION_EVENT_AXIS_GENERIC_12</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 12 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da5f19f5bc52e5eaec5ebd4f07aad12180"></a>AMOTION_EVENT_AXIS_GENERIC_13</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 13 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035dadb866d826ecf25161d7c7f86166e149b"></a>AMOTION_EVENT_AXIS_GENERIC_14</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 14 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035da7e86befc8502b8df687284f3c40b2eca"></a>AMOTION_EVENT_AXIS_GENERIC_15</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 15 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc5c98fcc1211af2b80116dd6e0a035daaaa011ba929b18c6da71153638f92336"></a>AMOTION_EVENT_AXIS_GENERIC_16</em>&#160;</td><td class="fielddoc">
+<p>Axis constant: Generic 16 axis of a motion event. The interpretation of a generic axis is device-specific. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gac36f475ca5b446f4fde4c9b90bec77c8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Constants that identify buttons that are associated with motion events. Refer to the documentation on the MotionEvent class for descriptions of each button. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggac36f475ca5b446f4fde4c9b90bec77c8ab388f65477b9dd4c51e6367111168d65"></a>AMOTION_EVENT_BUTTON_PRIMARY</em>&#160;</td><td class="fielddoc">
+<p>primary </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggac36f475ca5b446f4fde4c9b90bec77c8a08118700ecb4e147528a0e725afc9451"></a>AMOTION_EVENT_BUTTON_SECONDARY</em>&#160;</td><td class="fielddoc">
+<p>secondary </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggac36f475ca5b446f4fde4c9b90bec77c8ae6e2af1e7065e035e8a10a595827180f"></a>AMOTION_EVENT_BUTTON_TERTIARY</em>&#160;</td><td class="fielddoc">
+<p>tertiary </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggac36f475ca5b446f4fde4c9b90bec77c8a1841d075a2992ff7fbefa3fd50189b86"></a>AMOTION_EVENT_BUTTON_BACK</em>&#160;</td><td class="fielddoc">
+<p>back </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggac36f475ca5b446f4fde4c9b90bec77c8a4105edf43f7748c52c859cc5aa7dc438"></a>AMOTION_EVENT_BUTTON_FORWARD</em>&#160;</td><td class="fielddoc">
+<p>forward </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="ga05589fbab0657f08285ebdfe93f5ec9e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Constants that identify tool types. Refer to the documentation on the MotionEvent class for descriptions of each tool type. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga05589fbab0657f08285ebdfe93f5ec9ea7e1ea0c955ebbac1349866e8995e0208"></a>AMOTION_EVENT_TOOL_TYPE_UNKNOWN</em>&#160;</td><td class="fielddoc">
+<p>unknown </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga05589fbab0657f08285ebdfe93f5ec9eafd789262defb8a268fa80d26b0c30bcc"></a>AMOTION_EVENT_TOOL_TYPE_FINGER</em>&#160;</td><td class="fielddoc">
+<p>finger </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga05589fbab0657f08285ebdfe93f5ec9eaf05dc95a74e560c89cec1f3100185fc7"></a>AMOTION_EVENT_TOOL_TYPE_STYLUS</em>&#160;</td><td class="fielddoc">
+<p>stylus </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga05589fbab0657f08285ebdfe93f5ec9ea7be0c750d7d6719e7c948914400ae0de"></a>AMOTION_EVENT_TOOL_TYPE_MOUSE</em>&#160;</td><td class="fielddoc">
+<p>mouse </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga05589fbab0657f08285ebdfe93f5ec9eaf9932f65b5b6b5800fb5873a60dbf0cb"></a>AMOTION_EVENT_TOOL_TYPE_ERASER</em>&#160;</td><td class="fielddoc">
+<p>eraser </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="ga16af7b253440dadd46a80a4b9fddba4d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Input source masks.</p>
+<p>Refer to the documentation on android.view.InputDevice for more details about input sources and their correct interpretation. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga16af7b253440dadd46a80a4b9fddba4daae438f475d03ea60fd9fb356abd7fa01"></a>AINPUT_SOURCE_CLASS_MASK</em>&#160;</td><td class="fielddoc">
+<p>mask </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga16af7b253440dadd46a80a4b9fddba4dafd6d5e71f09f6452acf017559481444c"></a>AINPUT_SOURCE_CLASS_NONE</em>&#160;</td><td class="fielddoc">
+<p>none </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga16af7b253440dadd46a80a4b9fddba4dacf1bf3d7b3c6e59f907bdffc9b33370e"></a>AINPUT_SOURCE_CLASS_BUTTON</em>&#160;</td><td class="fielddoc">
+<p>button </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga16af7b253440dadd46a80a4b9fddba4da7495274e98fb30dee3dfd903b878cf47"></a>AINPUT_SOURCE_CLASS_POINTER</em>&#160;</td><td class="fielddoc">
+<p>pointer </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga16af7b253440dadd46a80a4b9fddba4da078a18d85d078412721c336a879bcc1a"></a>AINPUT_SOURCE_CLASS_NAVIGATION</em>&#160;</td><td class="fielddoc">
+<p>navigation </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga16af7b253440dadd46a80a4b9fddba4da682f6982bb55ee809f6acd2deb550167"></a>AINPUT_SOURCE_CLASS_POSITION</em>&#160;</td><td class="fielddoc">
+<p>position </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga16af7b253440dadd46a80a4b9fddba4daaaeffb6442807dd96ec62e9d8a696b57"></a>AINPUT_SOURCE_CLASS_JOYSTICK</em>&#160;</td><td class="fielddoc">
+<p>joystick </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gaba01db17f4a2bfbc3db60dc172972a25"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Input sources. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25ae9348bc04cdaa88b5b010f77a4945454"></a>AINPUT_SOURCE_UNKNOWN</em>&#160;</td><td class="fielddoc">
+<p>unknown </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25a9860918666dd8c0b9d00a8da7af51e6d"></a>AINPUT_SOURCE_KEYBOARD</em>&#160;</td><td class="fielddoc">
+<p>keyboard </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25ad0fbfeff9f8d57104bff14c70ce5e3ef"></a>AINPUT_SOURCE_DPAD</em>&#160;</td><td class="fielddoc">
+<p>dpad </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25a6417cb50ecd6ade48c708268434a49d3"></a>AINPUT_SOURCE_GAMEPAD</em>&#160;</td><td class="fielddoc">
+<p>gamepad </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25a55ea411f927aed8964fa72fec0da444f"></a>AINPUT_SOURCE_TOUCHSCREEN</em>&#160;</td><td class="fielddoc">
+<p>touchscreen </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25ae71d3dcbd004bccb6e00fde47097cd86"></a>AINPUT_SOURCE_MOUSE</em>&#160;</td><td class="fielddoc">
+<p>mouse </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25a86d4983c71432b27634ba41a64bffdf9"></a>AINPUT_SOURCE_STYLUS</em>&#160;</td><td class="fielddoc">
+<p>stylus </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25a7e49d9153c86f60f626d7f797f4e78b6"></a>AINPUT_SOURCE_TRACKBALL</em>&#160;</td><td class="fielddoc">
+<p>trackball </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25a7e0715d4b544653ab11893434172a2ef"></a>AINPUT_SOURCE_TOUCHPAD</em>&#160;</td><td class="fielddoc">
+<p>touchpad </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25a3712c4e4fb8ad7f6ae6e40d48e5c6ee7"></a>AINPUT_SOURCE_TOUCH_NAVIGATION</em>&#160;</td><td class="fielddoc">
+<p>navigation </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25afb28f10dc074e7f7435f5904c513edb5"></a>AINPUT_SOURCE_JOYSTICK</em>&#160;</td><td class="fielddoc">
+<p>joystick </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaba01db17f4a2bfbc3db60dc172972a25ab04317e7dd273ff5c87038df67d9796e"></a>AINPUT_SOURCE_ANY</em>&#160;</td><td class="fielddoc">
+<p>any </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gaaf105ae5beaca1dee30ae54530691fce"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Keyboard types.</p>
+<p>Refer to the documentation on android.view.InputDevice for more details. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaaf105ae5beaca1dee30ae54530691fcea32cb7ce34cdce7095962f0766cc6c3ac"></a>AINPUT_KEYBOARD_TYPE_NONE</em>&#160;</td><td class="fielddoc">
+<p>none </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaaf105ae5beaca1dee30ae54530691fceaf0226d750ea830eb557ae68bd4a1c82a"></a>AINPUT_KEYBOARD_TYPE_NON_ALPHABETIC</em>&#160;</td><td class="fielddoc">
+<p>non alphabetic </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaaf105ae5beaca1dee30ae54530691fceaba1f5ab6bc79749ba96a5d2a3af0e574"></a>AINPUT_KEYBOARD_TYPE_ALPHABETIC</em>&#160;</td><td class="fielddoc">
+<p>alphabetic </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="ga80155586fa275b28773c9b203f52caba"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Constants used to retrieve information about the range of motion for a particular coordinate of a motion event.</p>
+<p>Refer to the documentation on android.view.InputDevice for more details about input sources and their correct interpretation.</p>
+<dl class="deprecated"><dt><b>Deprecated:</b></dt><dd>These constants are deprecated. Use <a class="el" href="#AMOTION_EVENT_AXIS">AMOTION_EVENT_AXIS_*</a> constants instead. </dd></dl>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga80155586fa275b28773c9b203f52cabaa0e5816bc48cdb33f2b488a109596ffe1"></a>AINPUT_MOTION_RANGE_X</em>&#160;</td><td class="fielddoc">
+<p>x </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga80155586fa275b28773c9b203f52cabaab48108c9450ea1b7cd021be7d8cbc332"></a>AINPUT_MOTION_RANGE_Y</em>&#160;</td><td class="fielddoc">
+<p>y </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga80155586fa275b28773c9b203f52cabaa79aca706b12b28d0ab14762902fed31a"></a>AINPUT_MOTION_RANGE_PRESSURE</em>&#160;</td><td class="fielddoc">
+<p>pressure </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga80155586fa275b28773c9b203f52cabaa46f3a6cf859fb161cd29398d8448c688"></a>AINPUT_MOTION_RANGE_SIZE</em>&#160;</td><td class="fielddoc">
+<p>size </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga80155586fa275b28773c9b203f52cabaa7ead43624c96e165fd8a25e77148aa67"></a>AINPUT_MOTION_RANGE_TOUCH_MAJOR</em>&#160;</td><td class="fielddoc">
+<p>touch major </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga80155586fa275b28773c9b203f52cabaa301181a0f20681135c15010b39bb575d"></a>AINPUT_MOTION_RANGE_TOUCH_MINOR</em>&#160;</td><td class="fielddoc">
+<p>touch minor </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga80155586fa275b28773c9b203f52cabaaa860f54aa9e5a269dba6a54bbcf3c27c"></a>AINPUT_MOTION_RANGE_TOOL_MAJOR</em>&#160;</td><td class="fielddoc">
+<p>tool major </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga80155586fa275b28773c9b203f52cabaa19226f6cf713c1b4d0973a163daf6cf1"></a>AINPUT_MOTION_RANGE_TOOL_MINOR</em>&#160;</td><td class="fielddoc">
+<p>tool minor </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga80155586fa275b28773c9b203f52cabaaf9be9c04a41b610d994a3d1d7e90d06d"></a>AINPUT_MOTION_RANGE_ORIENTATION</em>&#160;</td><td class="fielddoc">
+<p>orientation </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="ga6b7b47dd702d9e331586d485013fd1ea"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Key codes. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaa593f8ae18990d627785719284a12a6f"></a>AKEYCODE_UNKNOWN</em>&#160;</td><td class="fielddoc">
+<p>Unknown key code. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa2dc78d3a93876b77402d2a7f02e4b899"></a>AKEYCODE_SOFT_LEFT</em>&#160;</td><td class="fielddoc">
+<p>Soft Left key. Usually situated below the display on phones and used as a multi-function feature key for selecting a software defined function shown on the bottom left of the display. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa8cadfbfcaaa83fef168de13639adfcae"></a>AKEYCODE_SOFT_RIGHT</em>&#160;</td><td class="fielddoc">
+<p>Soft Right key. Usually situated below the display on phones and used as a multi-function feature key for selecting a software defined function shown on the bottom right of the display. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa526c2411b7476b7ae579f57a0378b2dd"></a>AKEYCODE_HOME</em>&#160;</td><td class="fielddoc">
+<p>Home key. This key is handled by the framework and is never delivered to applications. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaeb71c74bf556ba72e9c8f8dcbe5453d0"></a>AKEYCODE_BACK</em>&#160;</td><td class="fielddoc">
+<p>Back key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa8b5720ebdd3576c2b536ec9228273d8f"></a>AKEYCODE_CALL</em>&#160;</td><td class="fielddoc">
+<p>Call key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaff971957ae3a4e272b21987854e18d9b"></a>AKEYCODE_ENDCALL</em>&#160;</td><td class="fielddoc">
+<p>End Call key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa23f585ea17aeceaad2111c51ab289e79"></a>AKEYCODE_0</em>&#160;</td><td class="fielddoc">
+<p>'0' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaabcac88b54f8d764bc4573ecc5b9571b0"></a>AKEYCODE_1</em>&#160;</td><td class="fielddoc">
+<p>'1' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa2079c6fb75141968b60ed79fe895d6db"></a>AKEYCODE_2</em>&#160;</td><td class="fielddoc">
+<p>'2' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa40ccc018c0637e4d938e66b789054551"></a>AKEYCODE_3</em>&#160;</td><td class="fielddoc">
+<p>'3' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa73c2d141c3906bd97cfec91443356f7b"></a>AKEYCODE_4</em>&#160;</td><td class="fielddoc">
+<p>'4' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa0ca99d2be4a3723ba3406944ad623f6e"></a>AKEYCODE_5</em>&#160;</td><td class="fielddoc">
+<p>'5' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa72bc6560e24d08ff8f3116dac9179079"></a>AKEYCODE_6</em>&#160;</td><td class="fielddoc">
+<p>'6' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa27070499acdb6c527a285b3840ec7bff"></a>AKEYCODE_7</em>&#160;</td><td class="fielddoc">
+<p>'7' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa93543b23683b33724ecf77ac5a8c19ab"></a>AKEYCODE_8</em>&#160;</td><td class="fielddoc">
+<p>'8' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa31cd4d7c4e59cf7b057b6c248cff516d"></a>AKEYCODE_9</em>&#160;</td><td class="fielddoc">
+<p>'9' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa1461fbf54e3dcba96e5d6d0638c18305"></a>AKEYCODE_STAR</em>&#160;</td><td class="fielddoc">
+<p>'*' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf448758c44899e41b67f76dfe3be51e9"></a>AKEYCODE_POUND</em>&#160;</td><td class="fielddoc">
+<p>'#' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf2fd3133a88f3b6725834032bd74bd9e"></a>AKEYCODE_DPAD_UP</em>&#160;</td><td class="fielddoc">
+<p>Directional Pad Up key. May also be synthesized from trackball motions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa84b721b13aae56c9f1d3c22b3d81627a"></a>AKEYCODE_DPAD_DOWN</em>&#160;</td><td class="fielddoc">
+<p>Directional Pad Down key. May also be synthesized from trackball motions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa668dfb3ed79a37c2c07838c161c1b344"></a>AKEYCODE_DPAD_LEFT</em>&#160;</td><td class="fielddoc">
+<p>Directional Pad Left key. May also be synthesized from trackball motions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaac6f9d81b6239696a1836695bbfc6a975"></a>AKEYCODE_DPAD_RIGHT</em>&#160;</td><td class="fielddoc">
+<p>Directional Pad Right key. May also be synthesized from trackball motions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa5e9c93273fd39148f54167133aa5b9ae"></a>AKEYCODE_DPAD_CENTER</em>&#160;</td><td class="fielddoc">
+<p>Directional Pad Center key. May also be synthesized from trackball motions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa5b81e325d9efd633eef7535a5b538882"></a>AKEYCODE_VOLUME_UP</em>&#160;</td><td class="fielddoc">
+<p>Volume Up key. Adjusts the speaker volume up. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa6a882dae17080d3b5f3329e79db60c66"></a>AKEYCODE_VOLUME_DOWN</em>&#160;</td><td class="fielddoc">
+<p>Volume Down key. Adjusts the speaker volume down. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaabecfbcb9b6f5e85fdfdfa98fbc3326e6"></a>AKEYCODE_POWER</em>&#160;</td><td class="fielddoc">
+<p>Power key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa8670880765756933d3d1a10186d39e26"></a>AKEYCODE_CAMERA</em>&#160;</td><td class="fielddoc">
+<p>Camera key. Used to launch a camera application or take pictures. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa95bd8c25adeaa570108c7403f08a2901"></a>AKEYCODE_CLEAR</em>&#160;</td><td class="fielddoc">
+<p>Clear key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa424a091c62d40f5d65908c9730ae9014"></a>AKEYCODE_A</em>&#160;</td><td class="fielddoc">
+<p>'A' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa65d3bf8d6a8a6c2f7c1b08394f313758"></a>AKEYCODE_B</em>&#160;</td><td class="fielddoc">
+<p>'B' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaeed584f454e508ce931bcb33d37adb04"></a>AKEYCODE_C</em>&#160;</td><td class="fielddoc">
+<p>'C' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7e4cb3ef66209a2779be2c8239b57b51"></a>AKEYCODE_D</em>&#160;</td><td class="fielddoc">
+<p>'D' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaae218af7ceb207227bb10f0525e68a8d0"></a>AKEYCODE_E</em>&#160;</td><td class="fielddoc">
+<p>'E' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa455f71ecfe59af0fbd901ac0d0a8d53a"></a>AKEYCODE_F</em>&#160;</td><td class="fielddoc">
+<p>'F' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa165067e10464019411f768bba9e533d9"></a>AKEYCODE_G</em>&#160;</td><td class="fielddoc">
+<p>'G' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaad89a91a1500cb162f22962781ebfd9dc"></a>AKEYCODE_H</em>&#160;</td><td class="fielddoc">
+<p>'H' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa4d44b5e4a19580540d8d77bf5755d74b"></a>AKEYCODE_I</em>&#160;</td><td class="fielddoc">
+<p>'I' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa70c259612ccec117d70afaef947a6a7a"></a>AKEYCODE_J</em>&#160;</td><td class="fielddoc">
+<p>'J' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa5ce56cf50d3632c275c524bd78d0d932"></a>AKEYCODE_K</em>&#160;</td><td class="fielddoc">
+<p>'K' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab61c534fd0f4e56c4ba13861a2f5982b"></a>AKEYCODE_L</em>&#160;</td><td class="fielddoc">
+<p>'L' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa43b19e5e5234ce90c8e7ef67dd0cabd1"></a>AKEYCODE_M</em>&#160;</td><td class="fielddoc">
+<p>'M' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa6c0b26804c89560a9e87c45f7f9fed36"></a>AKEYCODE_N</em>&#160;</td><td class="fielddoc">
+<p>'N' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa249667bc4a59d99be1914535877329fb"></a>AKEYCODE_O</em>&#160;</td><td class="fielddoc">
+<p>'O' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaac68ef56b78bd0c8626cc68bb6cb9156f"></a>AKEYCODE_P</em>&#160;</td><td class="fielddoc">
+<p>'P' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa932cf6ea8d87e6d6d97af658dd0fa206"></a>AKEYCODE_Q</em>&#160;</td><td class="fielddoc">
+<p>'Q' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaba25ac2c15a8edbbbff16a9fe6e74532"></a>AKEYCODE_R</em>&#160;</td><td class="fielddoc">
+<p>'R' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaae1ed25c28a8fce578cddb17ca6888ff6"></a>AKEYCODE_S</em>&#160;</td><td class="fielddoc">
+<p>'S' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa2feac8b458ef8eb9c0a0dd73766927c2"></a>AKEYCODE_T</em>&#160;</td><td class="fielddoc">
+<p>'T' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaac1a220314f986aae45d7fe3b35501595"></a>AKEYCODE_U</em>&#160;</td><td class="fielddoc">
+<p>'U' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa4043bc48fa55cce7825176052d6e199a"></a>AKEYCODE_V</em>&#160;</td><td class="fielddoc">
+<p>'V' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf0c80e98547c3daa01f3d9e7f4f00425"></a>AKEYCODE_W</em>&#160;</td><td class="fielddoc">
+<p>'W' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaec585cebac89004faffbdc28dc6d81c5"></a>AKEYCODE_X</em>&#160;</td><td class="fielddoc">
+<p>'X' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa06fc277ef25acdd89d64c18eed0daa9b"></a>AKEYCODE_Y</em>&#160;</td><td class="fielddoc">
+<p>'Y' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7439a09f219a0addc13c758ef7508cce"></a>AKEYCODE_Z</em>&#160;</td><td class="fielddoc">
+<p>'Z' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa0ca0bfbdc67b2c6f76e8fcaaf782c227"></a>AKEYCODE_COMMA</em>&#160;</td><td class="fielddoc">
+<p>',' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa9dd68c8ecebd4e274e8c357dcdfe8a04"></a>AKEYCODE_PERIOD</em>&#160;</td><td class="fielddoc">
+<p>'.' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa3dec175158abe8679bedd98ed1bc3e1a"></a>AKEYCODE_ALT_LEFT</em>&#160;</td><td class="fielddoc">
+<p>Left Alt modifier key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaacd9b6b0846c6999f5df47d29e58ac95d"></a>AKEYCODE_ALT_RIGHT</em>&#160;</td><td class="fielddoc">
+<p>Right Alt modifier key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaafb9875645596928cec46368e74499dc4"></a>AKEYCODE_SHIFT_LEFT</em>&#160;</td><td class="fielddoc">
+<p>Left Shift modifier key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf9eab1348ae1e8f18ad5bf3c77df4212"></a>AKEYCODE_SHIFT_RIGHT</em>&#160;</td><td class="fielddoc">
+<p>Right Shift modifier key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa1b1bfda850b2acd0b60e8456e2bfa958"></a>AKEYCODE_TAB</em>&#160;</td><td class="fielddoc">
+<p>Tab key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa10389300ac5d70f8d9733564b3cab4e7"></a>AKEYCODE_SPACE</em>&#160;</td><td class="fielddoc">
+<p>Space key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa6c1c6752d5db5e02da51d8937e5e3c6f"></a>AKEYCODE_SYM</em>&#160;</td><td class="fielddoc">
+<p>Symbol modifier key. Used to enter alternate symbols. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaded9ec81ae6dab451665317723b94083"></a>AKEYCODE_EXPLORER</em>&#160;</td><td class="fielddoc">
+<p>Explorer special function key. Used to launch a browser application. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaade96efe470f428bb5c4eaea6ffc3681c"></a>AKEYCODE_ENVELOPE</em>&#160;</td><td class="fielddoc">
+<p>Envelope special function key. Used to launch a mail application. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaac784a7bbbfbdab05fab6c6a1f29c98ff"></a>AKEYCODE_ENTER</em>&#160;</td><td class="fielddoc">
+<p>Enter key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaacd013221b457d98975dc47e49817e28a"></a>AKEYCODE_DEL</em>&#160;</td><td class="fielddoc">
+<p>Backspace key. Deletes characters before the insertion point, unlike <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9516bc190d37fea27e07ddab0c607b51">AKEYCODE_FORWARD_DEL</a>. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa929561086ae7b519fa962597bc85f171"></a>AKEYCODE_GRAVE</em>&#160;</td><td class="fielddoc">
+<p>'`' (backtick) key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaca10bd34ad0abecfecace908b8cb92ca"></a>AKEYCODE_MINUS</em>&#160;</td><td class="fielddoc">
+<p>'-'. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa0a197df7ec719c95ddcd6836e76c8498"></a>AKEYCODE_EQUALS</em>&#160;</td><td class="fielddoc">
+<p>'=' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaabdeda0d373aa37ef2ded5ffdfc008708"></a>AKEYCODE_LEFT_BRACKET</em>&#160;</td><td class="fielddoc">
+<p>'[' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa084dfa52626040a08d374f8aec066e6a"></a>AKEYCODE_RIGHT_BRACKET</em>&#160;</td><td class="fielddoc">
+<p>']' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaac90eb064382e3c482ae86abb7b3f701"></a>AKEYCODE_BACKSLASH</em>&#160;</td><td class="fielddoc">
+<p>'\' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaac0a2920161f4f2d97b0b060614b23391"></a>AKEYCODE_SEMICOLON</em>&#160;</td><td class="fielddoc">
+<p>';' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab5518a8502914ea5f87ef5d29b32b1b1"></a>AKEYCODE_APOSTROPHE</em>&#160;</td><td class="fielddoc">
+<p>''' (apostrophe) key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa54c047be3811d637a33d9b3e39d16e1a"></a>AKEYCODE_SLASH</em>&#160;</td><td class="fielddoc">
+<p>'/' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7284f79a266ede479b79726082642e16"></a>AKEYCODE_AT</em>&#160;</td><td class="fielddoc">
+<p>'@' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaabe6e880f65bebbdd5246a4164c4ab37a"></a>AKEYCODE_NUM</em>&#160;</td><td class="fielddoc">
+<p>Number modifier key. Used to enter numeric symbols. This key is not <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad5e349eadd3255c6ad4982dc40ed23ef">AKEYCODE_NUM_LOCK</a>; it is more like <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3dec175158abe8679bedd98ed1bc3e1a">AKEYCODE_ALT_LEFT</a>. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa0d3d29515a4815fe8d6d8d3291507a33"></a>AKEYCODE_HEADSETHOOK</em>&#160;</td><td class="fielddoc">
+<p>Headset Hook key. Used to hang up calls and stop media. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa23be9506f92f6efe14d47306a39a2187"></a>AKEYCODE_FOCUS</em>&#160;</td><td class="fielddoc">
+<p>Camera Focus key. Used to focus the camera. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab7f72d867b311e0845aef732dcc66495"></a>AKEYCODE_PLUS</em>&#160;</td><td class="fielddoc">
+<p>'+' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa707b85e89923b0f760be795972a87d76"></a>AKEYCODE_MENU</em>&#160;</td><td class="fielddoc">
+<p>Menu key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa6115506352a5828532fc6a0b91683331"></a>AKEYCODE_NOTIFICATION</em>&#160;</td><td class="fielddoc">
+<p>Notification key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaac644fd307fd0ef0d3ed3d2e074c1a4b7"></a>AKEYCODE_SEARCH</em>&#160;</td><td class="fielddoc">
+<p>Search key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa42f8fe71e8d45b5a83d83d80c3da40e1"></a>AKEYCODE_MEDIA_PLAY_PAUSE</em>&#160;</td><td class="fielddoc">
+<p>Play/Pause media key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaac4faa33993d80db1326073ea15a38e7d"></a>AKEYCODE_MEDIA_STOP</em>&#160;</td><td class="fielddoc">
+<p>Stop media key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf5a6c3fc963e8163852b9a23e3a198b3"></a>AKEYCODE_MEDIA_NEXT</em>&#160;</td><td class="fielddoc">
+<p>Play Next media key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa81432c31b00d47f768c29163eb276acb"></a>AKEYCODE_MEDIA_PREVIOUS</em>&#160;</td><td class="fielddoc">
+<p>Play Previous media key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaecd53183b84c23a2ca65670a23674319"></a>AKEYCODE_MEDIA_REWIND</em>&#160;</td><td class="fielddoc">
+<p>Rewind media key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa69e648024402af688d490a2041f15bca"></a>AKEYCODE_MEDIA_FAST_FORWARD</em>&#160;</td><td class="fielddoc">
+<p>Fast Forward media key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa1f6675d38f50e3556a8531839fd83f02"></a>AKEYCODE_MUTE</em>&#160;</td><td class="fielddoc">
+<p>Mute key. Mutes the microphone, unlike <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa174a5c7c39753235109696e82870c575">AKEYCODE_VOLUME_MUTE</a>. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa4fd0d4ea5b6898f4a40011b97a739a04"></a>AKEYCODE_PAGE_UP</em>&#160;</td><td class="fielddoc">
+<p>Page Up key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa0b7fe1c18f53e6328657858a88826393"></a>AKEYCODE_PAGE_DOWN</em>&#160;</td><td class="fielddoc">
+<p>Page Down key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaacdc7c004da1594fa156de87befef5f41"></a>AKEYCODE_PICTSYMBOLS</em>&#160;</td><td class="fielddoc">
+<p>Picture Symbols modifier key. Used to switch symbol sets (Emoji, Kao-moji). </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaad6a1f88b2cc3b6ff8f1724eb01473ec3"></a>AKEYCODE_SWITCH_CHARSET</em>&#160;</td><td class="fielddoc">
+<p>Switch Charset modifier key. Used to switch character sets (Kanji, Katakana). </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaef2d2ec912aaa9e7215aeab79f7fb086"></a>AKEYCODE_BUTTON_A</em>&#160;</td><td class="fielddoc">
+<p>A Button key. On a game controller, the A button should be either the button labeled A or the first button on the bottom row of controller buttons. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa721765c8f0bbcdb68af06817dbec8e53"></a>AKEYCODE_BUTTON_B</em>&#160;</td><td class="fielddoc">
+<p>B Button key. On a game controller, the B button should be either the button labeled B or the second button on the bottom row of controller buttons. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaad622ad5df40d2fdf806abb2adda73b3d"></a>AKEYCODE_BUTTON_C</em>&#160;</td><td class="fielddoc">
+<p>C Button key. On a game controller, the C button should be either the button labeled C or the third button on the bottom row of controller buttons. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa21174962f95e32cd0345ce657d03ebc7"></a>AKEYCODE_BUTTON_X</em>&#160;</td><td class="fielddoc">
+<p>X Button key. On a game controller, the X button should be either the button labeled X or the first button on the upper row of controller buttons. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa6654a8b2c700f7783433c86fcdae7919"></a>AKEYCODE_BUTTON_Y</em>&#160;</td><td class="fielddoc">
+<p>Y Button key. On a game controller, the Y button should be either the button labeled Y or the second button on the upper row of controller buttons. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa06156b68e6de951b44fc662e1b16041f"></a>AKEYCODE_BUTTON_Z</em>&#160;</td><td class="fielddoc">
+<p>Z Button key. On a game controller, the Z button should be either the button labeled Z or the third button on the upper row of controller buttons. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa32e159826404c7d76c2a433c24de82a2"></a>AKEYCODE_BUTTON_L1</em>&#160;</td><td class="fielddoc">
+<p>L1 Button key. On a game controller, the L1 button should be either the button labeled L1 (or L) or the top left trigger button. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7c614b3966583b0ad027e45f594ede46"></a>AKEYCODE_BUTTON_R1</em>&#160;</td><td class="fielddoc">
+<p>R1 Button key. On a game controller, the R1 button should be either the button labeled R1 (or R) or the top right trigger button. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa36a38421637cfa5ebfd8a0296650cdf4"></a>AKEYCODE_BUTTON_L2</em>&#160;</td><td class="fielddoc">
+<p>L2 Button key. On a game controller, the L2 button should be either the button labeled L2 or the bottom left trigger button. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa46d487e9fe31855b7b46739bad58fe3e"></a>AKEYCODE_BUTTON_R2</em>&#160;</td><td class="fielddoc">
+<p>R2 Button key. On a game controller, the R2 button should be either the button labeled R2 or the bottom right trigger button. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa68c5d8dcd8fe708ada8f4a4e17feb638"></a>AKEYCODE_BUTTON_THUMBL</em>&#160;</td><td class="fielddoc">
+<p>Left Thumb Button key. On a game controller, the left thumb button indicates that the left (or only) joystick is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa9759d817172d268ced1748909a5f5fbe"></a>AKEYCODE_BUTTON_THUMBR</em>&#160;</td><td class="fielddoc">
+<p>Right Thumb Button key. On a game controller, the right thumb button indicates that the right joystick is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf3c818d106f4ec793a43749c4c26a8a4"></a>AKEYCODE_BUTTON_START</em>&#160;</td><td class="fielddoc">
+<p>Start Button key. On a game controller, the button labeled Start. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa598289bc85f647c237729126ea392a43"></a>AKEYCODE_BUTTON_SELECT</em>&#160;</td><td class="fielddoc">
+<p>Select Button key. On a game controller, the button labeled Select. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa19839eebec939407d901a33b75cf2594"></a>AKEYCODE_BUTTON_MODE</em>&#160;</td><td class="fielddoc">
+<p>Mode Button key. On a game controller, the button labeled Mode. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaac52177e5508edacb8e9c6d3a25db4fb6"></a>AKEYCODE_ESCAPE</em>&#160;</td><td class="fielddoc">
+<p>Escape key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa9516bc190d37fea27e07ddab0c607b51"></a>AKEYCODE_FORWARD_DEL</em>&#160;</td><td class="fielddoc">
+<p>Forward Delete key. Deletes characters ahead of the insertion point, unlike <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacd013221b457d98975dc47e49817e28a">AKEYCODE_DEL</a>. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaaca9d0df6cc18492209eb287e659aeb1"></a>AKEYCODE_CTRL_LEFT</em>&#160;</td><td class="fielddoc">
+<p>Left Control modifier key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa99b317cf2f1eb6b06d0226e05223e60c"></a>AKEYCODE_CTRL_RIGHT</em>&#160;</td><td class="fielddoc">
+<p>Right Control modifier key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab9dcb68b35c85d380846c85f323868f1"></a>AKEYCODE_CAPS_LOCK</em>&#160;</td><td class="fielddoc">
+<p>Caps Lock key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa78ff5c8316235635f76e3c3179e9a7fc"></a>AKEYCODE_SCROLL_LOCK</em>&#160;</td><td class="fielddoc">
+<p>Scroll Lock key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaaadfb2d920bbe422c096120d39811c58"></a>AKEYCODE_META_LEFT</em>&#160;</td><td class="fielddoc">
+<p>Left Meta modifier key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa68038455e2b0846db51f9957e0df9cb8"></a>AKEYCODE_META_RIGHT</em>&#160;</td><td class="fielddoc">
+<p>Right Meta modifier key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa1764b777aa56605f4029d3c71fe70722"></a>AKEYCODE_FUNCTION</em>&#160;</td><td class="fielddoc">
+<p>Function modifier key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa14e22c69bcd47ffb4445ee18a4332d84"></a>AKEYCODE_SYSRQ</em>&#160;</td><td class="fielddoc">
+<p>System Request / Print Screen key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa047501f9cf9bce00e6048d8759ea3a23"></a>AKEYCODE_BREAK</em>&#160;</td><td class="fielddoc">
+<p>Break / Pause key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7544f3de2fb5f78bec62af94a32fdc58"></a>AKEYCODE_MOVE_HOME</em>&#160;</td><td class="fielddoc">
+<p>Home Movement key. Used for scrolling or moving the cursor around to the start of a line or to the top of a list. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa5605f49f5271430f5f150efb3cd0398a"></a>AKEYCODE_MOVE_END</em>&#160;</td><td class="fielddoc">
+<p>End Movement key. Used for scrolling or moving the cursor around to the end of a line or to the bottom of a list. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa62f663d11e91af750a51ddd060b08644"></a>AKEYCODE_INSERT</em>&#160;</td><td class="fielddoc">
+<p>Insert key. Toggles insert / overwrite edit mode. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaafbf0a16c7746e5dee2fd3adbd50da88a"></a>AKEYCODE_FORWARD</em>&#160;</td><td class="fielddoc">
+<p>Forward key. Navigates forward in the history stack. Complement of <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaeb71c74bf556ba72e9c8f8dcbe5453d0">AKEYCODE_BACK</a>. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa615cf6202b0ae0ed550f42f6c64b36a1"></a>AKEYCODE_MEDIA_PLAY</em>&#160;</td><td class="fielddoc">
+<p>Play media key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa1f4e0178c2028b3042b0a5948e38e4e4"></a>AKEYCODE_MEDIA_PAUSE</em>&#160;</td><td class="fielddoc">
+<p>Pause media key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa6788c6e1443140b0ec4d004d8293e998"></a>AKEYCODE_MEDIA_CLOSE</em>&#160;</td><td class="fielddoc">
+<p>Close media key. May be used to close a CD tray, for example. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa317bffd44306b021c401d3a26b82a7f6"></a>AKEYCODE_MEDIA_EJECT</em>&#160;</td><td class="fielddoc">
+<p>Eject media key. May be used to eject a CD tray, for example. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa17e1eae0b245176aaa024a53411441f9"></a>AKEYCODE_MEDIA_RECORD</em>&#160;</td><td class="fielddoc">
+<p>Record media key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa3b84f2c503a9e839f3d36e10e3307fcf"></a>AKEYCODE_F1</em>&#160;</td><td class="fielddoc">
+<p>F1 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa1360f7ec66aa6421e240dae637262e84"></a>AKEYCODE_F2</em>&#160;</td><td class="fielddoc">
+<p>F2 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa6a4ce6105e12a3a9071cae2f40515085"></a>AKEYCODE_F3</em>&#160;</td><td class="fielddoc">
+<p>F3 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa882050e4d0f917470a5b91fbf6ae9ebf"></a>AKEYCODE_F4</em>&#160;</td><td class="fielddoc">
+<p>F4 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab01807c72b46620bb50fcb6abe24d937"></a>AKEYCODE_F5</em>&#160;</td><td class="fielddoc">
+<p>F5 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaa04a12e81ed80bb42ef5c63cedf0dc60"></a>AKEYCODE_F6</em>&#160;</td><td class="fielddoc">
+<p>F6 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa9583b8e4b0d994b7e3a193b67cf6020c"></a>AKEYCODE_F7</em>&#160;</td><td class="fielddoc">
+<p>F7 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa55ca54d42d8df70de2ce9031db1344c8"></a>AKEYCODE_F8</em>&#160;</td><td class="fielddoc">
+<p>F8 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa0c8225c0ef98da730933ae914077dbc9"></a>AKEYCODE_F9</em>&#160;</td><td class="fielddoc">
+<p>F9 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaa60660b13acab39282d0558cdcc93474"></a>AKEYCODE_F10</em>&#160;</td><td class="fielddoc">
+<p>F10 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa64cc7b1d8e53d90ff57c39d0b5a4dd22"></a>AKEYCODE_F11</em>&#160;</td><td class="fielddoc">
+<p>F11 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa491000231e0ba221b6916b1d9d2c9fb7"></a>AKEYCODE_F12</em>&#160;</td><td class="fielddoc">
+<p>F12 key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaad5e349eadd3255c6ad4982dc40ed23ef"></a>AKEYCODE_NUM_LOCK</em>&#160;</td><td class="fielddoc">
+<p>Num Lock key. This is the Num Lock key; it is different from <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe6e880f65bebbdd5246a4164c4ab37a">AKEYCODE_NUM</a>. This key alters the behavior of other keys on the numeric keypad. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa343df35e6a0ad0599e19b8ef7174909b"></a>AKEYCODE_NUMPAD_0</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '0' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa5c0ec8e42917fa9ac53977db3e6aeb17"></a>AKEYCODE_NUMPAD_1</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '1' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa4dfd17c2209908e1ec890e10a3211f89"></a>AKEYCODE_NUMPAD_2</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '2' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaa1efe1886a4b472b999215c0e81f7386"></a>AKEYCODE_NUMPAD_3</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '3' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa1fdd16681c1441b934f679b94fd0e4f8"></a>AKEYCODE_NUMPAD_4</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '4' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf5916003e7c737a8cc06e52d2ee76c3b"></a>AKEYCODE_NUMPAD_5</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '5' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa13b83389e0f5de129227af4b8d3f035d"></a>AKEYCODE_NUMPAD_6</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '6' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaed9468951ef2887c07c8095c2e7d4c93"></a>AKEYCODE_NUMPAD_7</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '7' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa5f0a300566235720eb93fee9f2196642"></a>AKEYCODE_NUMPAD_8</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '8' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaad0c490e3965df546e2d5a83edf423d95"></a>AKEYCODE_NUMPAD_9</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '9' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaac108b744e8f93af69158d146425236c"></a>AKEYCODE_NUMPAD_DIVIDE</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '/' key (for division). </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa47ce00b838e7ee0a34066dc2595ac735"></a>AKEYCODE_NUMPAD_MULTIPLY</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '*' key (for multiplication). </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaa2bee314dbbea0a349eb301d10256bbe"></a>AKEYCODE_NUMPAD_SUBTRACT</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '-' key (for subtraction). </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa9d2fefa9a3f6037f48b247e66dd28c35"></a>AKEYCODE_NUMPAD_ADD</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '+' key (for addition). </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa6aab6b5914e120b43b3a1a8269e9cee1"></a>AKEYCODE_NUMPAD_DOT</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '.' key (for decimals or digit grouping). </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa900e3bb0bc4ff70ba786f18ff4db0bd1"></a>AKEYCODE_NUMPAD_COMMA</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad ',' key (for decimals or digit grouping). </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa79432be5f7a44e99ddc3721fd9fd212e"></a>AKEYCODE_NUMPAD_ENTER</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad Enter key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa73c1007a59641499ee5e1508e747c5ed"></a>AKEYCODE_NUMPAD_EQUALS</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '=' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaacc903e9eb495cf6cef7c6bc825f82f54"></a>AKEYCODE_NUMPAD_LEFT_PAREN</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad '(' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7662e0f2a099239dc69f6a27c7daabf9"></a>AKEYCODE_NUMPAD_RIGHT_PAREN</em>&#160;</td><td class="fielddoc">
+<p>Numeric keypad ')' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa174a5c7c39753235109696e82870c575"></a>AKEYCODE_VOLUME_MUTE</em>&#160;</td><td class="fielddoc">
+<p>Volume Mute key. Mutes the speaker, unlike <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f6675d38f50e3556a8531839fd83f02">AKEYCODE_MUTE</a>. This key should normally be implemented as a toggle such that the first press mutes the speaker and the second press restores the original volume. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa17e76263257a5dc654a413c9dc2fd649"></a>AKEYCODE_INFO</em>&#160;</td><td class="fielddoc">
+<p>Info key. Common on TV remotes to show additional information related to what is currently being viewed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa056914fd17ae539dca44f43745d8e05c"></a>AKEYCODE_CHANNEL_UP</em>&#160;</td><td class="fielddoc">
+<p>Channel up key. On TV remotes, increments the television channel. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa18f1808c6a819e787c9a9941f78b910f"></a>AKEYCODE_CHANNEL_DOWN</em>&#160;</td><td class="fielddoc">
+<p>Channel down key. On TV remotes, decrements the television channel. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaacfce9bb78ef8106dce4868f81cca4fb4"></a>AKEYCODE_ZOOM_IN</em>&#160;</td><td class="fielddoc">
+<p>Zoom in key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaacf035f5234c3df4589f35a50e99e0535"></a>AKEYCODE_ZOOM_OUT</em>&#160;</td><td class="fielddoc">
+<p>Zoom out key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa0776ffae512b4848e53fce762a3a5017"></a>AKEYCODE_TV</em>&#160;</td><td class="fielddoc">
+<p>TV key. On TV remotes, switches to viewing live TV. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaabe7531c40ff4a31614ff6fd61802ebe8"></a>AKEYCODE_WINDOW</em>&#160;</td><td class="fielddoc">
+<p>Window key. On TV remotes, toggles picture-in-picture mode or other windowing functions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf33a5fa1f163245360aeed89d64b0233"></a>AKEYCODE_GUIDE</em>&#160;</td><td class="fielddoc">
+<p>Guide key. On TV remotes, shows a programming guide. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaacf2f03b925a02ba6de9fd98737546a60"></a>AKEYCODE_DVR</em>&#160;</td><td class="fielddoc">
+<p>DVR key. On some TV remotes, switches to a DVR mode for recorded shows. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa03ce46d177e020690aa9d26a0fa850ae"></a>AKEYCODE_BOOKMARK</em>&#160;</td><td class="fielddoc">
+<p>Bookmark key. On some TV remotes, bookmarks content or web pages. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa81ba8d5343362b841b8a62b8679ff994"></a>AKEYCODE_CAPTIONS</em>&#160;</td><td class="fielddoc">
+<p>Toggle captions key. Switches the mode for closed-captioning text, for example during television shows. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaa2bbd457230c3028df6b91d5bdda9159"></a>AKEYCODE_SETTINGS</em>&#160;</td><td class="fielddoc">
+<p>Settings key. Starts the system settings activity. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaafda3b0ea1b158831fc443bf4911a3930"></a>AKEYCODE_TV_POWER</em>&#160;</td><td class="fielddoc">
+<p>TV power key. On TV remotes, toggles the power on a television screen. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaa1750b29e396bd1fd237ed4aadacc8f5"></a>AKEYCODE_TV_INPUT</em>&#160;</td><td class="fielddoc">
+<p>TV input key. On TV remotes, switches the input on a television screen. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab28aea3a51b11c9f227ce8cd5ff55a3d"></a>AKEYCODE_STB_POWER</em>&#160;</td><td class="fielddoc">
+<p>Set-top-box power key. On TV remotes, toggles the power on an external Set-top-box. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa988b0372359b2bca7390878fdba9e1b5"></a>AKEYCODE_STB_INPUT</em>&#160;</td><td class="fielddoc">
+<p>Set-top-box input key. On TV remotes, switches the input mode on an external Set-top-box. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa479d36f9814bd00c8986a252664b938b"></a>AKEYCODE_AVR_POWER</em>&#160;</td><td class="fielddoc">
+<p>A/V Receiver power key. On TV remotes, toggles the power on an external A/V Receiver. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa57d42dbd8ea4219f76fb116f234e6504"></a>AKEYCODE_AVR_INPUT</em>&#160;</td><td class="fielddoc">
+<p>A/V Receiver input key. On TV remotes, switches the input mode on an external A/V Receiver. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa2d9e3e82e69955f649b586f4518e074c"></a>AKEYCODE_PROG_RED</em>&#160;</td><td class="fielddoc">
+<p>Red "programmable" key. On TV remotes, acts as a contextual/programmable key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaad50c1e2136e47843a8dabca929f8ead1"></a>AKEYCODE_PROG_GREEN</em>&#160;</td><td class="fielddoc">
+<p>Green "programmable" key. On TV remotes, actsas a contextual/programmable key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaafa813640412bd41a181f0ec3a33dddc4"></a>AKEYCODE_PROG_YELLOW</em>&#160;</td><td class="fielddoc">
+<p>Yellow "programmable" key. On TV remotes, acts as a contextual/programmable key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa5e82219fdb937fee5a22426c607dd4e0"></a>AKEYCODE_PROG_BLUE</em>&#160;</td><td class="fielddoc">
+<p>Blue "programmable" key. On TV remotes, acts as a contextual/programmable key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa53a59a262d6d523bdc2bd30a1e427bad"></a>AKEYCODE_APP_SWITCH</em>&#160;</td><td class="fielddoc">
+<p>App switch key. Should bring up the application switcher dialog. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa28c72c33ab93d83539d0790b7e48336a"></a>AKEYCODE_BUTTON_1</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #1. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab8089673fea303c7a299eefd2c327cc3"></a>AKEYCODE_BUTTON_2</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #2. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa706a5ff492c80b4653e6fe0dcd278ca1"></a>AKEYCODE_BUTTON_3</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #3. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa73c425a063bf6976e1ff8ae9f3cfcbe6"></a>AKEYCODE_BUTTON_4</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #4. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa47149f963528ec7abe55066abfb7caf5"></a>AKEYCODE_BUTTON_5</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #5. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa55057c8cda53a4c539d02ab1a93ca58b"></a>AKEYCODE_BUTTON_6</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #6. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaac09e0c0cbbf6449bf106e4199600db35"></a>AKEYCODE_BUTTON_7</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #7. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaee64b3e0f30ed09e3c9f01b6c8877c3f"></a>AKEYCODE_BUTTON_8</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #8. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaac8e54092c8be5dc0e114ec35f40e00dc"></a>AKEYCODE_BUTTON_9</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #9. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab7e6f8621909f3461032c33f9c8acaa7"></a>AKEYCODE_BUTTON_10</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #10. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab413971c698b6e25d3955667c0142ac1"></a>AKEYCODE_BUTTON_11</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #11. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaafe4ee1e5446dd12bbb579b412048e79e"></a>AKEYCODE_BUTTON_12</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #12. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaabde2ed26594b89d5769eef9f0d1fe6f"></a>AKEYCODE_BUTTON_13</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #13. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa1f08dfd2c30ddedf1d2983680e89041b"></a>AKEYCODE_BUTTON_14</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #14. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7d8d0fb1a610fdb4e53f0fb675b7d7d0"></a>AKEYCODE_BUTTON_15</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #15. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa224370cba99bda2db6a1c82fd2f7fa39"></a>AKEYCODE_BUTTON_16</em>&#160;</td><td class="fielddoc">
+<p>Generic Game Pad Button #16. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7b8e87b47c17c5f1e97fcb56faaa26ff"></a>AKEYCODE_LANGUAGE_SWITCH</em>&#160;</td><td class="fielddoc">
+<p>Language Switch key. Toggles the current input language such as switching between English and Japanese on a QWERTY keyboard. On some devices, the same function may be performed by pressing Shift+Spacebar. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa380279768c5c50d92bef2a88394f967f"></a>AKEYCODE_MANNER_MODE</em>&#160;</td><td class="fielddoc">
+<p>Manner Mode key. Toggles silent or vibrate mode on and off to make the device behave more politely in certain settings such as on a crowded train. On some devices, the key may only operate when long-pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa68d314a5ec06701205cd0097c5c7145c"></a>AKEYCODE_3D_MODE</em>&#160;</td><td class="fielddoc">
+<p>3D Mode key. Toggles the display between 2D and 3D mode. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa0aa2cfca11b7cabf82341a9dbec83f10"></a>AKEYCODE_CONTACTS</em>&#160;</td><td class="fielddoc">
+<p>Contacts special function key. Used to launch an address book application. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa114be17d1853c77a7406c024d9e4f076"></a>AKEYCODE_CALENDAR</em>&#160;</td><td class="fielddoc">
+<p>Calendar special function key. Used to launch a calendar application. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa14508751d70a0404b194d4b6df83ec72"></a>AKEYCODE_MUSIC</em>&#160;</td><td class="fielddoc">
+<p>Music special function key. Used to launch a music player application. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa293523c40bb9f1d793cd0b984f636573"></a>AKEYCODE_CALCULATOR</em>&#160;</td><td class="fielddoc">
+<p>Calculator special function key. Used to launch a calculator application. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf782be8df9a8ca5dc86c9bfeabac6f22"></a>AKEYCODE_ZENKAKU_HANKAKU</em>&#160;</td><td class="fielddoc">
+<p>Japanese full-width / half-width key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaadd69273b99eb0b848d98b2d6b3ad3234"></a>AKEYCODE_EISU</em>&#160;</td><td class="fielddoc">
+<p>Japanese alphanumeric key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7321e5c6b3cbab142bd16957653b2ac7"></a>AKEYCODE_MUHENKAN</em>&#160;</td><td class="fielddoc">
+<p>Japanese non-conversion key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab0686dd37c57d833d1158b7f1d85ee02"></a>AKEYCODE_HENKAN</em>&#160;</td><td class="fielddoc">
+<p>Japanese conversion key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa3be7db22b3c8aa046a46631e44863c28"></a>AKEYCODE_KATAKANA_HIRAGANA</em>&#160;</td><td class="fielddoc">
+<p>Japanese katakana / hiragana key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa5ee19d21912056b902e283efa2d9d14b"></a>AKEYCODE_YEN</em>&#160;</td><td class="fielddoc">
+<p>Japanese Yen key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaae8b0af04dac5ea56fd55e577fd9e6be4"></a>AKEYCODE_RO</em>&#160;</td><td class="fielddoc">
+<p>Japanese Ro key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa62d090ae5c95a04dacdff79817dad531"></a>AKEYCODE_KANA</em>&#160;</td><td class="fielddoc">
+<p>Japanese kana key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7d3f036adb654c7752890a283ecbf838"></a>AKEYCODE_ASSIST</em>&#160;</td><td class="fielddoc">
+<p>Assist key. Launches the global assist activity. Not delivered to applications. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7cf1bf3528b6d8a0e86998287fe00650"></a>AKEYCODE_BRIGHTNESS_DOWN</em>&#160;</td><td class="fielddoc">
+<p>Brightness Down key. Adjusts the screen brightness down. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa0af6ec416c09d160e364466faa955c36"></a>AKEYCODE_BRIGHTNESS_UP</em>&#160;</td><td class="fielddoc">
+<p>Brightness Up key. Adjusts the screen brightness up. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa3cdb53cdf8c576e272502da06daa52e1"></a>AKEYCODE_MEDIA_AUDIO_TRACK</em>&#160;</td><td class="fielddoc">
+<p>Audio Track key. Switches the audio tracks. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaafc077e5a6b447ea060c144f6e65bd207"></a>AKEYCODE_SLEEP</em>&#160;</td><td class="fielddoc">
+<p>Sleep key. Puts the device to sleep. Behaves somewhat like <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabecfbcb9b6f5e85fdfdfa98fbc3326e6">AKEYCODE_POWER</a> but it has no effect if the device is already asleep. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa903c5152d26b3011ae521afa06759429"></a>AKEYCODE_WAKEUP</em>&#160;</td><td class="fielddoc">
+<p>Wakeup key. Wakes up the device. Behaves somewhat like <a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabecfbcb9b6f5e85fdfdfa98fbc3326e6">AKEYCODE_POWER</a> but it has no effect if the device is already awake. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf0ecddd3dce52cf60c96c5d430b1f553"></a>AKEYCODE_PAIRING</em>&#160;</td><td class="fielddoc">
+<p>Pairing key. Initiates peripheral pairing mode. Useful for pairing remote control devices or game controllers, especially if no other input mode is available. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf3ddf83cb2f701911b03c3a738e2e73a"></a>AKEYCODE_MEDIA_TOP_MENU</em>&#160;</td><td class="fielddoc">
+<p>Media Top Menu key. Goes to the top of media menu. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaa22858c3c30d596ad60f355f75df86e1"></a>AKEYCODE_11</em>&#160;</td><td class="fielddoc">
+<p>'11' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa781c31195e55b2dcbdd772560dc61aa5"></a>AKEYCODE_12</em>&#160;</td><td class="fielddoc">
+<p>'12' key. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa187963dd6f74b96f132f23e01dea35e9"></a>AKEYCODE_LAST_CHANNEL</em>&#160;</td><td class="fielddoc">
+<p>Last Channel key. Goes to the last viewed channel. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa954c2251b2cb53f47637802cb66baf06"></a>AKEYCODE_TV_DATA_SERVICE</em>&#160;</td><td class="fielddoc">
+<p>TV data service key. Displays data services like weather, sports. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa95898663b7f74c93d0b860a43528c744"></a>AKEYCODE_VOICE_ASSIST</em>&#160;</td><td class="fielddoc">
+<p>Voice Assist key. Launches the global voice assist activity. Not delivered to applications. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa93dd3fd752701af5a5491e01cc15db72"></a>AKEYCODE_TV_RADIO_SERVICE</em>&#160;</td><td class="fielddoc">
+<p>Radio key. Toggles TV service / Radio service. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa7d3d7b89756df37f01d6d0f13beff1db"></a>AKEYCODE_TV_TELETEXT</em>&#160;</td><td class="fielddoc">
+<p>Teletext key. Displays Teletext service. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa630a08e07a3b4c6bcac9a1a72d176055"></a>AKEYCODE_TV_NUMBER_ENTRY</em>&#160;</td><td class="fielddoc">
+<p>Number entry key. Initiates to enter multi-digit channel nubmber when each digit key is assigned for selecting separate channel. Corresponds to Number Entry Mode (0x1D) of CEC User Control Code. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa14f2b6fe8550832ef9e3f9aa53164073"></a>AKEYCODE_TV_TERRESTRIAL_ANALOG</em>&#160;</td><td class="fielddoc">
+<p>Analog Terrestrial key. Switches to analog terrestrial broadcast service. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaacad8c149251a78760a5fe4931b9cdf16"></a>AKEYCODE_TV_TERRESTRIAL_DIGITAL</em>&#160;</td><td class="fielddoc">
+<p>Digital Terrestrial key. Switches to digital terrestrial broadcast service. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa3707d4396417535a611e4548afe33936"></a>AKEYCODE_TV_SATELLITE</em>&#160;</td><td class="fielddoc">
+<p>Satellite key. Switches to digital satellite broadcast service. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa8c52e7d06525c0ee5d943d63a0fa8ea5"></a>AKEYCODE_TV_SATELLITE_BS</em>&#160;</td><td class="fielddoc">
+<p>BS key. Switches to BS digital satellite broadcasting service available in Japan. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa4eea1809a9ff679ed7773332d728c6b0"></a>AKEYCODE_TV_SATELLITE_CS</em>&#160;</td><td class="fielddoc">
+<p>CS key. Switches to CS digital satellite broadcasting service available in Japan. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa17c0e68066b86610ff168c6367af36eb"></a>AKEYCODE_TV_SATELLITE_SERVICE</em>&#160;</td><td class="fielddoc">
+<p>BS/CS key. Toggles between BS and CS digital satellite services. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaec5e46a5afc57953d1772e086307aa42"></a>AKEYCODE_TV_NETWORK</em>&#160;</td><td class="fielddoc">
+<p>Toggle Network key. Toggles selecting broacast services. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaabe33a80d6d3bf889af25cbd77fdb89f9"></a>AKEYCODE_TV_ANTENNA_CABLE</em>&#160;</td><td class="fielddoc">
+<p>Antenna/Cable key. Toggles broadcast input source between antenna and cable. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa6a50de965f50ab3aa42772aac0808445"></a>AKEYCODE_TV_INPUT_HDMI_1</em>&#160;</td><td class="fielddoc">
+<p>HDMI #1 key. Switches to HDMI input #1. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab7ec65c008471d771bf879ec012f5c7f"></a>AKEYCODE_TV_INPUT_HDMI_2</em>&#160;</td><td class="fielddoc">
+<p>HDMI #2 key. Switches to HDMI input #2. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa6a0f267a2696d15bf16127121b1f1c7f"></a>AKEYCODE_TV_INPUT_HDMI_3</em>&#160;</td><td class="fielddoc">
+<p>HDMI #3 key. Switches to HDMI input #3. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa4437c1d8d2d33058cfa71ec7b2771ec5"></a>AKEYCODE_TV_INPUT_HDMI_4</em>&#160;</td><td class="fielddoc">
+<p>HDMI #4 key. Switches to HDMI input #4. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa5c3097f14c6582958ba1d14d70115ccd"></a>AKEYCODE_TV_INPUT_COMPOSITE_1</em>&#160;</td><td class="fielddoc">
+<p>Composite #1 key. Switches to composite video input #1. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaada13cbb9d619bc610678ad66325647b9"></a>AKEYCODE_TV_INPUT_COMPOSITE_2</em>&#160;</td><td class="fielddoc">
+<p>Composite #2 key. Switches to composite video input #2. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa156e2dba81e7c73624ccf8c2ef8833ae"></a>AKEYCODE_TV_INPUT_COMPONENT_1</em>&#160;</td><td class="fielddoc">
+<p>Component #1 key. Switches to component video input #1. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa8db9b6ee1457267abea03430781bb0ec"></a>AKEYCODE_TV_INPUT_COMPONENT_2</em>&#160;</td><td class="fielddoc">
+<p>Component #2 key. Switches to component video input #2. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa149b2c8a4817075c0a41e0adf11c8e85"></a>AKEYCODE_TV_INPUT_VGA_1</em>&#160;</td><td class="fielddoc">
+<p>VGA #1 key. Switches to VGA (analog RGB) input #1. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa419f0adac43cad104cd6cf83dc5f13f6"></a>AKEYCODE_TV_AUDIO_DESCRIPTION</em>&#160;</td><td class="fielddoc">
+<p>Audio description key. Toggles audio description off / on. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaccc5900ca5dd399d5ce11dd8ca324678"></a>AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP</em>&#160;</td><td class="fielddoc">
+<p>Audio description mixing volume up key. Louden audio description volume as compared with normal audio volume. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa5fca6a9ec1ce246bf3c53d859ac9f5eb"></a>AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN</em>&#160;</td><td class="fielddoc">
+<p>Audio description mixing volume down key. Lessen audio description volume as compared with normal audio volume. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa8e79045045293070c8eb9e408f1335b4"></a>AKEYCODE_TV_ZOOM_MODE</em>&#160;</td><td class="fielddoc">
+<p>Zoom mode key. Changes Zoom mode (Normal, Full, Zoom, Wide-zoom, etc.) </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaa4c18feeafff3c41081073c025ee017b8"></a>AKEYCODE_TV_CONTENTS_MENU</em>&#160;</td><td class="fielddoc">
+<p>Contents menu key. Goes to the title list. Corresponds to Contents Menu (0x0B) of CEC User Control Code </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaadde70071f6a432f367079efa6e1a6fe"></a>AKEYCODE_TV_MEDIA_CONTEXT_MENU</em>&#160;</td><td class="fielddoc">
+<p>Media context menu key. Goes to the context menu of media contents. Corresponds to Media Context-sensitive Menu (0x11) of CEC User Control Code. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaaf0293c2a63e4d955080334bef6640840"></a>AKEYCODE_TV_TIMER_PROGRAMMING</em>&#160;</td><td class="fielddoc">
+<p>Timer programming key. Goes to the timer recording menu. Corresponds to Timer Programming (0x54) of CEC User Control Code. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga6b7b47dd702d9e331586d485013fd1eaab062b403701292c9e2db96a1f88cc6d9"></a>AKEYCODE_HELP</em>&#160;</td><td class="fielddoc">
+<p>Help key. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gabc6126af1d45847bc59afa0aa3216b04"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Key states (may be returned by queries about the current state of a particular key code, scan code or switch). </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggabc6126af1d45847bc59afa0aa3216b04a9506627d5377c67dbc7fc58804b2cdfd"></a>AKEY_STATE_UNKNOWN</em>&#160;</td><td class="fielddoc">
+<p>The key state is unknown or the requested key itself is not supported. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc6126af1d45847bc59afa0aa3216b04afa14022f587487c24d401c87e71c8e28"></a>AKEY_STATE_UP</em>&#160;</td><td class="fielddoc">
+<p>The key is up. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc6126af1d45847bc59afa0aa3216b04a286ec0a7aff5903a982be0cd6785b62c"></a>AKEY_STATE_DOWN</em>&#160;</td><td class="fielddoc">
+<p>The key is down. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabc6126af1d45847bc59afa0aa3216b04ad09fd9fe458ca6c66ead9b9a75c56192"></a>AKEY_STATE_VIRTUAL</em>&#160;</td><td class="fielddoc">
+<p>The key is down but is a virtual key press that is being emulated by the system. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gadc29c2ff13d900c2f185ee95427fb06c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Meta key / modifer state. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06cae0a3cb26517b3f876beb37594494526d"></a>AMETA_NONE</em>&#160;</td><td class="fielddoc">
+<p>No meta keys are pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06caba44b1077427e4da1d202e0c8f772881"></a>AMETA_ALT_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether one of the ALT meta keys is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06ca256c74b768ecee57e3218e81ae6945df"></a>AMETA_ALT_LEFT_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the left ALT meta key is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06ca985db074c0f44749ca86b5cc0454056a"></a>AMETA_ALT_RIGHT_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the right ALT meta key is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06caa3d5f49c3a55b653a94c798a2c93b197"></a>AMETA_SHIFT_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether one of the SHIFT meta keys is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06caa01fa027cdd8951530437bcbe04c3ed7"></a>AMETA_SHIFT_LEFT_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the left SHIFT meta key is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06cac52930581c339216218a6f50c5b57aa1"></a>AMETA_SHIFT_RIGHT_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the right SHIFT meta key is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06ca8af1e90950a728baca807a83e50b22ea"></a>AMETA_SYM_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the SYM meta key is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06ca545b31b72b0454c22c170ff534ddfdf1"></a>AMETA_FUNCTION_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the FUNCTION meta key is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06cabe927318a2a11a46be3e9d78dbd81ef5"></a>AMETA_CTRL_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether one of the CTRL meta keys is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06ca752c837afd5ff0fcf75ddee7b6808be6"></a>AMETA_CTRL_LEFT_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the left CTRL meta key is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06ca0ab007e367ae136b873b3e6636747419"></a>AMETA_CTRL_RIGHT_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the right CTRL meta key is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06ca9c04e7c2ad1f0f41af60402188a29c4a"></a>AMETA_META_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether one of the META meta keys is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06ca6f923de8f2cd72e3ad86149c0747906f"></a>AMETA_META_LEFT_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the left META meta key is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06cafdf56d1259ae16c97161c443d7949bdf"></a>AMETA_META_RIGHT_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the right META meta key is pressed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06cafc467c98d509b0de28b298801a0c3e37"></a>AMETA_CAPS_LOCK_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the CAPS LOCK meta key is on. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06ca15d234534a6870add5594f02b7333dc6"></a>AMETA_NUM_LOCK_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the NUM LOCK meta key is on. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadc29c2ff13d900c2f185ee95427fb06cafe8dacdc6566f655a3eab73ea4a9af5a"></a>AMETA_SCROLL_LOCK_ON</em>&#160;</td><td class="fielddoc">
+<p>This mask is used to check whether the SCROLL LOCK meta key is on. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="ga61dadd085c1777f559549e05962b2c9e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Input event types. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga61dadd085c1777f559549e05962b2c9ea696f0d7635f7a24c17d3f1e4ccdd44ba"></a>AINPUT_EVENT_TYPE_KEY</em>&#160;</td><td class="fielddoc">
+<p>Indicates that the input event is a key event. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga61dadd085c1777f559549e05962b2c9ea2182dfda2cceb5425dcc2823b9b6b56a"></a>AINPUT_EVENT_TYPE_MOTION</em>&#160;</td><td class="fielddoc">
+<p>Indicates that the input event is a motion event. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="ga726ca809ffd3d67ab4b8476646f26635"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Key event actions. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga726ca809ffd3d67ab4b8476646f26635a123c3bd18fd93b53d8aedbe7597f7b49"></a>AKEY_EVENT_ACTION_DOWN</em>&#160;</td><td class="fielddoc">
+<p>The key has been pressed down. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga726ca809ffd3d67ab4b8476646f26635abf18b7c5384c5de8657a0650f8da57c3"></a>AKEY_EVENT_ACTION_UP</em>&#160;</td><td class="fielddoc">
+<p>The key has been released. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga726ca809ffd3d67ab4b8476646f26635a08e2d927e155478ee66ec46ebd845ab0"></a>AKEY_EVENT_ACTION_MULTIPLE</em>&#160;</td><td class="fielddoc">
+<p>Multiple duplicate key events have occurred in a row, or a complex string is being delivered. The repeat_count property of the key event contains the number of times the given key code should be executed. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="ga0411cd49bb5b71852cecd93bcbf0ca2d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Key event flags. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2da6473a1afc0cc39e029c2a217bc57cdba"></a>AKEY_EVENT_FLAG_WOKE_HERE</em>&#160;</td><td class="fielddoc">
+<p>This mask is set if the device woke because of this key event. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2da7dbb272c7b28be9c084df3446a629f32"></a>AKEY_EVENT_FLAG_SOFT_KEYBOARD</em>&#160;</td><td class="fielddoc">
+<p>This mask is set if the key event was generated by a software keyboard. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2dadc0a063ca412b0ea08474df422bf9b41"></a>AKEY_EVENT_FLAG_KEEP_TOUCH_MODE</em>&#160;</td><td class="fielddoc">
+<p>This mask is set if we don't want the key event to cause us to leave touch mode. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2dae1e7ec188b2404fadd94cfba89afd5d6"></a>AKEY_EVENT_FLAG_FROM_SYSTEM</em>&#160;</td><td class="fielddoc">
+<p>This mask is set if an event was known to come from a trusted part of the system. That is, the event is known to come from the user, and could not have been spoofed by a third party component. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2dab9dbcf990d1e4405e32f847fdea52013"></a>AKEY_EVENT_FLAG_EDITOR_ACTION</em>&#160;</td><td class="fielddoc">
+<p>This mask is used for compatibility, to identify enter keys that are coming from an IME whose enter key has been auto-labelled "next" or "done". This allows TextView to dispatch these as normal enter keys for old applications, but still do the appropriate action when receiving them. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2da3198fad5ab75df614bb41f0f602a9e55"></a>AKEY_EVENT_FLAG_CANCELED</em>&#160;</td><td class="fielddoc">
+<p>When associated with up key events, this indicates that the key press has been canceled. Typically this is used with virtual touch screen keys, where the user can slide from the virtual key area on to the display: in that case, the application will receive a canceled up event and should not perform the action normally associated with the key. Note that for this to work, the application can not perform an action for a key until it receives an up or the long press timeout has expired. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2dad4b5eba5b14e4076c69bc7185f2804f8"></a>AKEY_EVENT_FLAG_VIRTUAL_HARD_KEY</em>&#160;</td><td class="fielddoc">
+<p>This key event was generated by a virtual (on-screen) hard key area. Typically this is an area of the touchscreen, outside of the regular display, dedicated to "hardware" buttons. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2da39f9f7bdf2e256db0e2a8a5dfbfb7185"></a>AKEY_EVENT_FLAG_LONG_PRESS</em>&#160;</td><td class="fielddoc">
+<p>This flag is set for the first key repeat that occurs after the long press timeout. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2daf09856f03f2fffee9a82cb8e508efb7a"></a>AKEY_EVENT_FLAG_CANCELED_LONG_PRESS</em>&#160;</td><td class="fielddoc">
+<p>Set when a key event has AKEY_EVENT_FLAG_CANCELED set because a long press action was executed while it was down. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2da91e70ab527f27a1779f4550d457f1689"></a>AKEY_EVENT_FLAG_TRACKING</em>&#160;</td><td class="fielddoc">
+<p>Set for AKEY_EVENT_ACTION_UP when this event's key code is still being tracked from its initial down. That is, somebody requested that tracking started on the key down and a long press has not caused the tracking to be canceled. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga0411cd49bb5b71852cecd93bcbf0ca2da14f574126d2544863fa8042ddd0f48c0"></a>AKEY_EVENT_FLAG_FALLBACK</em>&#160;</td><td class="fielddoc">
+<p>Set when a key event has been synthesized to implement default behavior for an event that the application did not handle. Fallback key events are generated by unhandled trackball motions (to emulate a directional keypad) and by certain unhandled key presses that are declared in the key map (such as special function numeric keypad keys when numlock is off). </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gabed82baf7f470b522273a3e37c24c600"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Motion event actions </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600abf84a22c84d4b7228102b80f3af92a4f"></a>AMOTION_EVENT_ACTION_MASK</em>&#160;</td><td class="fielddoc">
+<p>Bit mask of the parts of the action code that are the action itself. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600a51384339fbb57c0087f7f50c45d9cff3"></a>AMOTION_EVENT_ACTION_POINTER_INDEX_MASK</em>&#160;</td><td class="fielddoc">
+<p>Bits in the action code that represent a pointer index, used with AMOTION_EVENT_ACTION_POINTER_DOWN and AMOTION_EVENT_ACTION_POINTER_UP. Shifting down by AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT provides the actual pointer index where the data for the pointer going up or down can be found. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600a225e61c48ba334abc1b5811db02edcf1"></a>AMOTION_EVENT_ACTION_DOWN</em>&#160;</td><td class="fielddoc">
+<p>A pressed gesture has started, the motion contains the initial starting location. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600a43798b2b7a6de4616d150b2438b8419e"></a>AMOTION_EVENT_ACTION_UP</em>&#160;</td><td class="fielddoc">
+<p>A pressed gesture has finished, the motion contains the final release location as well as any intermediate points since the last down or move event. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600a41c56c4e772953fce60c93bc671639a3"></a>AMOTION_EVENT_ACTION_MOVE</em>&#160;</td><td class="fielddoc">
+<p>A change has happened during a press gesture (between AMOTION_EVENT_ACTION_DOWN and AMOTION_EVENT_ACTION_UP). The motion contains the most recent point, as well as any intermediate points since the last down or move event. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600a3952b960f5eb8c4f55b42741e286b74e"></a>AMOTION_EVENT_ACTION_CANCEL</em>&#160;</td><td class="fielddoc">
+<p>The current gesture has been aborted. You will not receive any more points in it. You should treat this as an up event, but not perform any action that you normally would. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600a7c3c96b74af4c8304b8137ac6d201517"></a>AMOTION_EVENT_ACTION_OUTSIDE</em>&#160;</td><td class="fielddoc">
+<p>A movement has happened outside of the normal bounds of the UI element. This does not provide a full gesture, but only the initial location of the movement/touch. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600a1618c641fd3f49fa7483f298d05b3cd2"></a>AMOTION_EVENT_ACTION_POINTER_DOWN</em>&#160;</td><td class="fielddoc">
+<p>A non-primary pointer has gone down. The bits in AMOTION_EVENT_ACTION_POINTER_INDEX_MASK indicate which pointer changed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600af2ef56aa7220eeb2073b9b028737bc1e"></a>AMOTION_EVENT_ACTION_POINTER_UP</em>&#160;</td><td class="fielddoc">
+<p>A non-primary pointer has gone up. The bits in AMOTION_EVENT_ACTION_POINTER_INDEX_MASK indicate which pointer changed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600a84bc9fb3c01ff7ca9ee452a510e7de60"></a>AMOTION_EVENT_ACTION_HOVER_MOVE</em>&#160;</td><td class="fielddoc">
+<p>A change happened but the pointer is not down (unlike AMOTION_EVENT_ACTION_MOVE). The motion contains the most recent point, as well as any intermediate points since the last hover move event. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600a45ba62b1e6fab4e84d5782d7c35ced04"></a>AMOTION_EVENT_ACTION_SCROLL</em>&#160;</td><td class="fielddoc">
+<p>The motion event contains relative vertical and/or horizontal scroll offsets. Use getAxisValue to retrieve the information from AMOTION_EVENT_AXIS_VSCROLL and AMOTION_EVENT_AXIS_HSCROLL. The pointer may or may not be down when this event is dispatched. This action is always delivered to the winder under the pointer, which may not be the window currently touched. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600a247b2c60ad92f3130ad43c907986ffb3"></a>AMOTION_EVENT_ACTION_HOVER_ENTER</em>&#160;</td><td class="fielddoc">
+<p>The pointer is not down but has entered the boundaries of a window or view. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggabed82baf7f470b522273a3e37c24c600ac00b1eacfbea779863abf3fcf02134aa"></a>AMOTION_EVENT_ACTION_HOVER_EXIT</em>&#160;</td><td class="fielddoc">
+<p>The pointer is not down but has exited the boundaries of a window or view. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gab04a0655cd1e3bcac5e8f48c18df1a57"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Motion event flags. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggab04a0655cd1e3bcac5e8f48c18df1a57a200623e1e4eee7797cad30917d289d7a"></a>AMOTION_EVENT_FLAG_WINDOW_IS_OBSCURED</em>&#160;</td><td class="fielddoc">
+<p>This flag indicates that the window that received this motion event is partly or wholly obscured by another visible window above it. This flag is set to true even if the event did not directly pass through the obscured area. A security sensitive application can check this flag to identify situations in which a malicious application may have covered up part of its content for the purpose of misleading the user or hijacking touches. An appropriate response might be to drop the suspect touches or to take additional precautions to confirm the user's actual intent. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga9dd3fd81e51dbfde19ab861541242aa1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AInputEvent_getDeviceId </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the id for the device that an input event came from.</p>
+<p>Input events can be generated by multiple different input devices. Use the input device id to obtain information about the input device that was responsible for generating a particular event.</p>
+<p>An input device id of 0 indicates that the event didn't come from a physical device; other numbers are arbitrary and you shouldn't depend on the values. Use the provided input device query API to obtain information about input devices. </p>
+
+</div>
+</div>
+<a class="anchor" id="gac90d4b497669dbc709ec9650db4e49be"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AInputEvent_getSource </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the input event source. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga8292ae06aa8120c52d7380d228600b9c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AInputEvent_getType </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Input event accessors.</p>
+<p>Note that most functions can only be used on input events that are of a given type. Calling these functions on input events of other types will yield undefined behavior.Get the input event type. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga900711156bfb58d1a4b158da7874930f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AInputQueue_attachLooper </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *&#160;</td>
+          <td class="paramname"><em>looper</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>ident</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">ALooper_callbackFunc</a>&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Add this input queue to a looper for processing. See <a class="el" href="group___looper.html#ga2668285bfadcf21ef4d371568a30be33">ALooper_addFd()</a> for information on the ident, callback, and data params. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaeebe9f83392ac79b31ca40a6fd4dbeff"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AInputQueue_detachLooper </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Remove the input queue from the looper it is currently attached to. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga17e87e0f35d47d729eac31a0dfb1ac33"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AInputQueue_finishEvent </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>handled</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Report that dispatching has finished with the given event. This must be called after receiving an event with AInputQueue_get_event(). </p>
+
+</div>
+</div>
+<a class="anchor" id="ga88de12e2b39787ba7d3e4ce2ea46a48c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AInputQueue_getEvent </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> **&#160;</td>
+          <td class="paramname"><em>outEvent</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns the next available event from the queue. Returns a negative value if no events are available or an error has occurred. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2b72ad6ab5ef656e8c41163aa7871c96"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AInputQueue_hasEvents </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns true if there are one or more events available in the input queue. Returns 1 if the queue has events; 0 if it does not have events; and a negative value if there is an error. </p>
+
+</div>
+</div>
+<a class="anchor" id="gadecd32e6c7aefa4a508b355550d3eaa9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AInputQueue_preDispatchEvent </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>event</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Sends the key for standard pre-dispatching &ndash; that is, possibly deliver it to the current IME to be consumed before the app. Returns 0 if it was not pre-dispatched, meaning you can process it right now. If non-zero is returned, you must abandon the current event processing and allow the event to appear again in the event queue (if it does not get consumed during pre-dispatching). </p>
+
+</div>
+</div>
+<a class="anchor" id="ga36ec0b59f98f86a7ca263ba91279896d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AKeyEvent_getAction </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>key_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the key event action. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf475b6f0860bdfca4ceea7bc46eab1a9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int64_t AKeyEvent_getDownTime </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>key_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the time of the most recent key down event, in the java.lang.System.nanoTime() time base. If this is a down event, this will be the same as eventTime. Note that when chording keys, this value is the down time of the most recently pressed key, which may not be the same physical key of this event. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae3eac7d68195d1767c947ca267842696"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int64_t AKeyEvent_getEventTime </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>key_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the time this event occurred, in the java.lang.System.nanoTime() time base. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2a18e98efe0c4ccb6f39bb13c555010e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AKeyEvent_getFlags </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>key_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the key event flags. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga6b01ecd60018a5445f4917a861ca9466"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AKeyEvent_getKeyCode </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>key_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the key code of the key event. This is the physical key that was pressed, not the Unicode character. </p>
+
+</div>
+</div>
+<a class="anchor" id="gabdda62b40b22727af2fb41740bf4787b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AKeyEvent_getMetaState </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>key_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the meta key state. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga5358fe3ebbd4b5b2f88a4ad2eba6f885"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AKeyEvent_getRepeatCount </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>key_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the repeat count of the event. For both key up an key down events, this is the number of times the key has repeated with the first down starting at 0 and counting up from there. For multiple key events, this is the number of down/up pairs that have occurred. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4a0a846b7a195aeb290dfcd2250137d9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AKeyEvent_getScanCode </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>key_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the hardware key id of this key event. These values are not reliable and vary from device to device. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga73ea2093cc2343675ac43dd08bef4247"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AMotionEvent_getAction </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the combined motion event action code and pointer index. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9d364cdcebf85237f599b25861f38c21"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getAxisValue </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>axis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the value of the request axis for the given pointer index. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1aa7ebb749416491b6f0c55ae87ddf49"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AMotionEvent_getButtonState </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the button state of all buttons that are pressed. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad44be7697e68891688cd7bcfaffec209"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int64_t AMotionEvent_getDownTime </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the time when the user originally pressed down to start a stream of position events, in the java.lang.System.nanoTime() time base. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad7e1f0caa4c27194d4a8756a18432299"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AMotionEvent_getEdgeFlags </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get a bitfield indicating which edges, if any, were touched by this motion event. For touch events, clients can use this to determine if the user's finger was touching the edge of the display. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7e13fbf3cff0700b0b620284ebdd3a33"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int64_t AMotionEvent_getEventTime </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the time when this specific event was generated, in the java.lang.System.nanoTime() time base. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2891d19197c070207098fa48adeb35af"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AMotionEvent_getFlags </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the motion event flags. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7ca740e1324f3cdb934252dce0c982d0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalAxisValue </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>axis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the historical value of the request axis for the given pointer index that occurred between this event and the previous motion event. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga523f1a760754206965b42b08d62f9346"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int64_t AMotionEvent_getHistoricalEventTime </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the time that a historical movement occurred between this event and the previous event, in the java.lang.System.nanoTime() time base. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaab9cb8fa670175ecc73c75eed4e5cd3f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalOrientation </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the historical orientation of the touch area and tool area in radians clockwise from vertical for the given pointer index that occurred between this event and the previous motion event. An angle of 0 degrees indicates that the major axis of contact is oriented upwards, is perfectly circular or is of unknown orientation. A positive angle indicates that the major axis of contact is oriented to the right. A negative angle indicates that the major axis of contact is oriented to the left. The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians (finger pointing fully right). </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa8e9352ee5b043b3e1b6e2062d491010"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalPressure </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the historical pressure of this event for the given pointer index that occurred between this event and the previous motion event. The pressure generally ranges from 0 (no pressure at all) to 1 (normal pressure), although values higher than 1 may be generated depending on the calibration of the input device. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga5d36c2e7420001c86ae2aa1168fe6f83"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalRawX </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the historical raw X coordinate of this event for the given pointer index that occurred between this event and the previous motion event. For touch events on the screen, this is the original location of the event on the screen, before it had been adjusted for the containing window and views. Whole numbers are pixels; the value may have a fraction for input devices that are sub-pixel precise. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga6deb0e7690a93aa53e5872c2691b69fe"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalRawY </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the historical raw Y coordinate of this event for the given pointer index that occurred between this event and the previous motion event. For touch events on the screen, this is the original location of the event on the screen, before it had been adjusted for the containing window and views. Whole numbers are pixels; the value may have a fraction for input devices that are sub-pixel precise. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0a04bb7ec12928db7e62645e7fad3a9e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalSize </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the current scaled value of the approximate size for the given pointer index that occurred between this event and the previous motion event. This represents some approximation of the area of the screen being pressed; the actual value in pixels corresponding to the touch is normalized with the device specific range of values and scaled to a value between 0 and 1. The value of size can be used to determine fat touch events. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga160a5830e791e8c42ae97f51b92233d2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalToolMajor </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the historical length of the major axis of an ellipse that describes the size of the approaching tool for the given pointer index that occurred between this event and the previous motion event. The tool area represents the estimated size of the finger or pen that is touching the device independent of its actual touch area at the point of contact. </p>
+
+</div>
+</div>
+<a class="anchor" id="gafe01aa7576a6d1bce750fb8482355849"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalToolMinor </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the historical length of the minor axis of an ellipse that describes the size of the approaching tool for the given pointer index that occurred between this event and the previous motion event. The tool area represents the estimated size of the finger or pen that is touching the device independent of its actual touch area at the point of contact. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf437f223668b97f19ebdbad4b9cf4483"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalTouchMajor </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the historical length of the major axis of an ellipse that describes the touch area at the point of contact for the given pointer index that occurred between this event and the previous motion event. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga126715d966e989652aa1ae5d38e0e898"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalTouchMinor </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the historical length of the minor axis of an ellipse that describes the touch area at the point of contact for the given pointer index that occurred between this event and the previous motion event. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga49a8ca89ff377b5ed2355e8d7220ae07"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalX </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the historical X coordinate of this event for the given pointer index that occurred between this event and the previous motion event. Whole numbers are pixels; the value may have a fraction for input devices that are sub-pixel precise. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga30fc4e5d3ce144955859f8c97b51b73d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getHistoricalY </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>history_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the historical Y coordinate of this event for the given pointer index that occurred between this event and the previous motion event. Whole numbers are pixels; the value may have a fraction for input devices that are sub-pixel precise. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0aef34c236db6d7a56a50bf590be7bcc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t AMotionEvent_getHistorySize </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the number of historical points in this event. These are movements that have occurred between this event and the previous event. This only applies to AMOTION_EVENT_ACTION_MOVE events &ndash; all other actions will have a size of 0. Historical samples are indexed from oldest to newest. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga5644f0d952e3dea57ba9f7ce51dff2bb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AMotionEvent_getMetaState </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the state of any meta / modifier keys that were in effect when the event was generated. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad28422998da15b789edcba6b8bc5d615"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getOrientation </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the current orientation of the touch area and tool area in radians clockwise from vertical for the given pointer index. An angle of 0 degrees indicates that the major axis of contact is oriented upwards, is perfectly circular or is of unknown orientation. A positive angle indicates that the major axis of contact is oriented to the right. A negative angle indicates that the major axis of contact is oriented to the left. The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians (finger pointing fully right). </p>
+
+</div>
+</div>
+<a class="anchor" id="ga612e68d104adbc6d14d87510e8066bd8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t AMotionEvent_getPointerCount </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the number of pointers of data contained in this event. Always &gt;= 1. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga599e21a79c706807243a8ee31b116138"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AMotionEvent_getPointerId </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the pointer identifier associated with a particular pointer data index in this event. The identifier tells you the actual pointer number associated with the data, accounting for individual pointers going up and down since the start of the current gesture. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga97fcaa6cd08c9d54b35711e482e06c8d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getPressure </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the current pressure of this event for the given pointer index. The pressure generally ranges from 0 (no pressure at all) to 1 (normal pressure), although values higher than 1 may be generated depending on the calibration of the input device. </p>
+
+</div>
+</div>
+<a class="anchor" id="gafe45e29ef138cc30592237ce479837f0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getRawX </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the original raw X coordinate of this event. For touch events on the screen, this is the original location of the event on the screen, before it had been adjusted for the containing window and views. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga5a09c3d742a93270861aa05f24257c23"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getRawY </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the original raw X coordinate of this event. For touch events on the screen, this is the original location of the event on the screen, before it had been adjusted for the containing window and views. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9b1f3c3df46b5269f9e74d2dd70c88a8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getSize </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the current scaled value of the approximate size for the given pointer index. This represents some approximation of the area of the screen being pressed; the actual value in pixels corresponding to the touch is normalized with the device specific range of values and scaled to a value between 0 and 1. The value of size can be used to determine fat touch events. </p>
+
+</div>
+</div>
+<a class="anchor" id="gac04099690f278a6a27191c2027b12a77"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getToolMajor </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the current length of the major axis of an ellipse that describes the size of the approaching tool for the given pointer index. The tool area represents the estimated size of the finger or pen that is touching the device independent of its actual touch area at the point of contact. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2222d459759ba4a8269647012d2718fb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getToolMinor </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the current length of the minor axis of an ellipse that describes the size of the approaching tool for the given pointer index. The tool area represents the estimated size of the finger or pen that is touching the device independent of its actual touch area at the point of contact. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2babe4e2e79952e004538f8f1878649c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AMotionEvent_getToolType </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the tool type of a pointer for the given pointer index. The tool type indicates the type of tool used to make contact such as a finger or stylus, if known. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9ac18fe19534e07d80441582f489d471"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getTouchMajor </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the current length of the major axis of an ellipse that describes the touch area at the point of contact for the given pointer index. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga65f71e257b5fcb29dcbaaf59b3fcb3a7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getTouchMinor </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the current length of the minor axis of an ellipse that describes the touch area at the point of contact for the given pointer index. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga22e255a5fa52761cd92ce78af91e9757"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getX </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the current X coordinate of this event for the given pointer index. Whole numbers are pixels; the value may have a fraction for input devices that are sub-pixel precise. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7a94ce622eb78a17737fd8bddbf86e21"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getXOffset </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the X coordinate offset. For touch events on the screen, this is the delta that was added to the raw screen coordinates to adjust for the absolute position of the containing windows and views. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga81a9be07673a01f43fd0241c7b4c254f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getXPrecision </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the precision of the X coordinates being reported. You can multiply this number with an X coordinate sample to find the actual hardware value of the X coordinate. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga113f58a37e41f2a6c3007d68418edfa6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getY </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>pointer_index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the current Y coordinate of this event for the given pointer index. Whole numbers are pixels; the value may have a fraction for input devices that are sub-pixel precise. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7f6bd2c12d912f502c245b6ced6d3704"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getYOffset </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the Y coordinate offset. For touch events on the screen, this is the delta that was added to the raw screen coordinates to adjust for the absolute position of the containing windows and views. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae311e6e28bce4be905526f9ea71278ed"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float AMotionEvent_getYPrecision </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *&#160;</td>
+          <td class="paramname"><em>motion_event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the precision of the Y coordinates being reported. You can multiply this number with a Y coordinate sample to find the actual hardware value of the Y coordinate. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/group___looper.jd b/docs/html-ndk/ndk/reference/group___looper.jd
new file mode 100644
index 0000000..9720baf
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/group___looper.jd
@@ -0,0 +1,450 @@
+page.title=Looper
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#files">Files</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Looper</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:looper_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="looper_8h.html">looper.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gadb10521a80138b777ba1bc2ca74d4af5"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a></td></tr>
+<tr class="separator:gadb10521a80138b777ba1bc2ca74d4af5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga410b184b4e48302c439e36c8ce0a7a89"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">ALooper_callbackFunc</a> )(int fd, int events, void *data)</td></tr>
+<tr class="separator:ga410b184b4e48302c439e36c8ce0a7a89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gaf9bdc3014f3d54c426b6d2df10de4960"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___looper.html#ggaf9bdc3014f3d54c426b6d2df10de4960a1fff26ab5859b0308b58a3f8d58ef1eb">ALOOPER_PREPARE_ALLOW_NON_CALLBACKS</a> = 1&lt;&lt;0
+ }</td></tr>
+<tr class="separator:gaf9bdc3014f3d54c426b6d2df10de4960"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadb49720dc49f7d4e4cf9adbf2948e409"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a55528f1b28df17cc4b6317cc0d0fde47">ALOOPER_POLL_WAKE</a> = -1, 
+<a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a64fe936780bfd9927affaf8e8cc81cc2">ALOOPER_POLL_CALLBACK</a> = -2, 
+<a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a3fe4eec66dff78a9fa8afca02e8b8443">ALOOPER_POLL_TIMEOUT</a> = -3, 
+<a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409af8ebd4022f6f5d5fea864f6999b7e6b4">ALOOPER_POLL_ERROR</a> = -4
+ }</td></tr>
+<tr class="separator:gadb49720dc49f7d4e4cf9adbf2948e409"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaae05225933a42f81e7c4a9fb286596f9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9ae3d18f8dd1faf6f34468df10667949bc">ALOOPER_EVENT_INPUT</a> = 1 &lt;&lt; 0, 
+<a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a71273fd07e009057e6e3475d10f8286d">ALOOPER_EVENT_OUTPUT</a> = 1 &lt;&lt; 1, 
+<a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a14016d8f39373b8ce061276a957960f6">ALOOPER_EVENT_ERROR</a> = 1 &lt;&lt; 2, 
+<a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a5e7fb5acdecef18b2c293f6309e5d4ab">ALOOPER_EVENT_HANGUP</a> = 1 &lt;&lt; 3, 
+<br/>
+&#160;&#160;<a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9aefe82c6ce8e02d13aceaebdec15c2aff">ALOOPER_EVENT_INVALID</a> = 1 &lt;&lt; 4
+<br/>
+ }</td></tr>
+<tr class="separator:gaae05225933a42f81e7c4a9fb286596f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga741ccd90a0eb9209c6bddf2326d89e4a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#ga741ccd90a0eb9209c6bddf2326d89e4a">ALooper_forThread</a> ()</td></tr>
+<tr class="separator:ga741ccd90a0eb9209c6bddf2326d89e4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a070b904dd957cc65af9eb5ef6dfa25"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#ga1a070b904dd957cc65af9eb5ef6dfa25">ALooper_prepare</a> (int opts)</td></tr>
+<tr class="separator:ga1a070b904dd957cc65af9eb5ef6dfa25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1ad7ac48ab01a34bfd25840c92ff07b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gae1ad7ac48ab01a34bfd25840c92ff07b">ALooper_acquire</a> (<a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper)</td></tr>
+<tr class="separator:gae1ad7ac48ab01a34bfd25840c92ff07b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab723c3c2ac2c66bc695913a194073727"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gab723c3c2ac2c66bc695913a194073727">ALooper_release</a> (<a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper)</td></tr>
+<tr class="separator:gab723c3c2ac2c66bc695913a194073727"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2a9044602b76fef7f47c7e11a801561c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">ALooper_pollOnce</a> (int timeoutMillis, int *outFd, int *outEvents, void **outData)</td></tr>
+<tr class="separator:ga2a9044602b76fef7f47c7e11a801561c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7cd0636edc4ed227aadc585360ebefa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gaa7cd0636edc4ed227aadc585360ebefa">ALooper_pollAll</a> (int timeoutMillis, int *outFd, int *outEvents, void **outData)</td></tr>
+<tr class="separator:gaa7cd0636edc4ed227aadc585360ebefa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2585652f8ae2e2444979194ebe32aaf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gab2585652f8ae2e2444979194ebe32aaf">ALooper_wake</a> (<a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper)</td></tr>
+<tr class="separator:gab2585652f8ae2e2444979194ebe32aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2668285bfadcf21ef4d371568a30be33"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#ga2668285bfadcf21ef4d371568a30be33">ALooper_addFd</a> (<a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper, int fd, int ident, int events, <a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">ALooper_callbackFunc</a> callback, void *data)</td></tr>
+<tr class="separator:ga2668285bfadcf21ef4d371568a30be33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf7d68ed05698b251489b4f6c8e54daad"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gaf7d68ed05698b251489b4f6c8e54daad">ALooper_removeFd</a> (<a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper, int fd)</td></tr>
+<tr class="separator:gaf7d68ed05698b251489b4f6c8e54daad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gadb10521a80138b777ba1bc2ca74d4af5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> <a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>ALooper</p>
+<p>A looper is the state tracking an event loop for a thread. Loopers do not define event structures or other such things; rather they are a lower-level facility to attach one or more discrete objects listening for an event. An "event" here is simply data available on a file descriptor: each attached object has an associated file descriptor, and waiting for "events" means (internally) polling on all of these file descriptors until one or more of them have data available.</p>
+<p>A thread can have only one ALooper associated with it. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga410b184b4e48302c439e36c8ce0a7a89"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int(* ALooper_callbackFunc)(int fd, int events, void *data)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>For callback-based event loops, this is the prototype of the function that is called when a file descriptor event occurs. It is given the file descriptor it is associated with, a bitmask of the poll events that were triggered (typically ALOOPER_EVENT_INPUT), and the data pointer that was originally supplied.</p>
+<p>Implementations should return 1 to continue receiving callbacks, or 0 to have this file descriptor and callback unregistered from the looper. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="gaf9bdc3014f3d54c426b6d2df10de4960"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Option for for <a class="el" href="group___looper.html#ga1a070b904dd957cc65af9eb5ef6dfa25">ALooper_prepare()</a>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaf9bdc3014f3d54c426b6d2df10de4960a1fff26ab5859b0308b58a3f8d58ef1eb"></a>ALOOPER_PREPARE_ALLOW_NON_CALLBACKS</em>&#160;</td><td class="fielddoc">
+<p>This looper will accept calls to <a class="el" href="group___looper.html#ga2668285bfadcf21ef4d371568a30be33">ALooper_addFd()</a> that do not have a callback (that is provide NULL for the callback). In this case the caller of <a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">ALooper_pollOnce()</a> or <a class="el" href="group___looper.html#gaa7cd0636edc4ed227aadc585360ebefa">ALooper_pollAll()</a> MUST check the return from these functions to discover when data is available on such fds and process it. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gadb49720dc49f7d4e4cf9adbf2948e409"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Result from <a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">ALooper_pollOnce()</a> and <a class="el" href="group___looper.html#gaa7cd0636edc4ed227aadc585360ebefa">ALooper_pollAll()</a>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggadb49720dc49f7d4e4cf9adbf2948e409a55528f1b28df17cc4b6317cc0d0fde47"></a>ALOOPER_POLL_WAKE</em>&#160;</td><td class="fielddoc">
+<p>The poll was awoken using wake() before the timeout expired and no callbacks were executed and no other file descriptors were ready. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadb49720dc49f7d4e4cf9adbf2948e409a64fe936780bfd9927affaf8e8cc81cc2"></a>ALOOPER_POLL_CALLBACK</em>&#160;</td><td class="fielddoc">
+<p>Result from <a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">ALooper_pollOnce()</a> and <a class="el" href="group___looper.html#gaa7cd0636edc4ed227aadc585360ebefa">ALooper_pollAll()</a>: One or more callbacks were executed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadb49720dc49f7d4e4cf9adbf2948e409a3fe4eec66dff78a9fa8afca02e8b8443"></a>ALOOPER_POLL_TIMEOUT</em>&#160;</td><td class="fielddoc">
+<p>Result from <a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">ALooper_pollOnce()</a> and <a class="el" href="group___looper.html#gaa7cd0636edc4ed227aadc585360ebefa">ALooper_pollAll()</a>: The timeout expired. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggadb49720dc49f7d4e4cf9adbf2948e409af8ebd4022f6f5d5fea864f6999b7e6b4"></a>ALOOPER_POLL_ERROR</em>&#160;</td><td class="fielddoc">
+<p>Result from <a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">ALooper_pollOnce()</a> and <a class="el" href="group___looper.html#gaa7cd0636edc4ed227aadc585360ebefa">ALooper_pollAll()</a>: An error occurred. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gaae05225933a42f81e7c4a9fb286596f9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Flags for file descriptor events that a looper can monitor.</p>
+<p>These flag bits can be combined to monitor multiple events at once. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaae05225933a42f81e7c4a9fb286596f9ae3d18f8dd1faf6f34468df10667949bc"></a>ALOOPER_EVENT_INPUT</em>&#160;</td><td class="fielddoc">
+<p>The file descriptor is available for read operations. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaae05225933a42f81e7c4a9fb286596f9a71273fd07e009057e6e3475d10f8286d"></a>ALOOPER_EVENT_OUTPUT</em>&#160;</td><td class="fielddoc">
+<p>The file descriptor is available for write operations. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaae05225933a42f81e7c4a9fb286596f9a14016d8f39373b8ce061276a957960f6"></a>ALOOPER_EVENT_ERROR</em>&#160;</td><td class="fielddoc">
+<p>The file descriptor has encountered an error condition.</p>
+<p>The looper always sends notifications about errors; it is not necessary to specify this event flag in the requested event set. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaae05225933a42f81e7c4a9fb286596f9a5e7fb5acdecef18b2c293f6309e5d4ab"></a>ALOOPER_EVENT_HANGUP</em>&#160;</td><td class="fielddoc">
+<p>The file descriptor was hung up. For example, indicates that the remote end of a pipe or socket was closed.</p>
+<p>The looper always sends notifications about hangups; it is not necessary to specify this event flag in the requested event set. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaae05225933a42f81e7c4a9fb286596f9aefe82c6ce8e02d13aceaebdec15c2aff"></a>ALOOPER_EVENT_INVALID</em>&#160;</td><td class="fielddoc">
+<p>The file descriptor is invalid. For example, the file descriptor was closed prematurely.</p>
+<p>The looper always sends notifications about invalid file descriptors; it is not necessary to specify this event flag in the requested event set. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gae1ad7ac48ab01a34bfd25840c92ff07b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ALooper_acquire </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *&#160;</td>
+          <td class="paramname"><em>looper</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Acquire a reference on the given ALooper object. This prevents the object from being deleted until the reference is removed. This is only needed to safely hand an ALooper from one thread to another. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2668285bfadcf21ef4d371568a30be33"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ALooper_addFd </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *&#160;</td>
+          <td class="paramname"><em>looper</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>fd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>ident</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>events</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">ALooper_callbackFunc</a>&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Adds a new file descriptor to be polled by the looper. If the same file descriptor was previously added, it is replaced.</p>
+<p>"fd" is the file descriptor to be added. "ident" is an identifier for this event, which is returned from <a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">ALooper_pollOnce()</a>. The identifier must be &gt;= 0, or ALOOPER_POLL_CALLBACK if providing a non-NULL callback. "events" are the poll events to wake up on. Typically this is ALOOPER_EVENT_INPUT. "callback" is the function to call when there is an event on the file descriptor. "data" is a private data pointer to supply to the callback.</p>
+<p>There are two main uses of this function:</p>
+<p>(1) If "callback" is non-NULL, then this function will be called when there is data on the file descriptor. It should execute any events it has pending, appropriately reading from the file descriptor. The 'ident' is ignored in this case.</p>
+<p>(2) If "callback" is NULL, the 'ident' will be returned by ALooper_pollOnce when its file descriptor has data available, requiring the caller to take care of processing it.</p>
+<p>Returns 1 if the file descriptor was added or -1 if an error occurred.</p>
+<p>This method can be called on any thread. This method may block briefly if it needs to wake the poll. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga741ccd90a0eb9209c6bddf2326d89e4a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a>* ALooper_forThread </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns the looper associated with the calling thread, or NULL if there is not one. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa7cd0636edc4ed227aadc585360ebefa"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ALooper_pollAll </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>timeoutMillis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int *&#160;</td>
+          <td class="paramname"><em>outFd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int *&#160;</td>
+          <td class="paramname"><em>outEvents</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void **&#160;</td>
+          <td class="paramname"><em>outData</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Like <a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">ALooper_pollOnce()</a>, but performs all pending callbacks until all data has been consumed or a file descriptor is available with no callback. This function will never return ALOOPER_POLL_CALLBACK. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2a9044602b76fef7f47c7e11a801561c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ALooper_pollOnce </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>timeoutMillis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int *&#160;</td>
+          <td class="paramname"><em>outFd</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int *&#160;</td>
+          <td class="paramname"><em>outEvents</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void **&#160;</td>
+          <td class="paramname"><em>outData</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Waits for events to be available, with optional timeout in milliseconds. Invokes callbacks for all file descriptors on which an event occurred.</p>
+<p>If the timeout is zero, returns immediately without blocking. If the timeout is negative, waits indefinitely until an event appears.</p>
+<p>Returns ALOOPER_POLL_WAKE if the poll was awoken using wake() before the timeout expired and no callbacks were invoked and no other file descriptors were ready.</p>
+<p>Returns ALOOPER_POLL_CALLBACK if one or more callbacks were invoked.</p>
+<p>Returns ALOOPER_POLL_TIMEOUT if there was no data before the given timeout expired.</p>
+<p>Returns ALOOPER_POLL_ERROR if an error occurred.</p>
+<p>Returns a value &gt;= 0 containing an identifier (the same identifier <code>ident</code> passed to <a class="el" href="group___looper.html#ga2668285bfadcf21ef4d371568a30be33">ALooper_addFd()</a>) if its file descriptor has data and it has no callback function (requiring the caller here to handle it). In this (and only this) case outFd, outEvents and outData will contain the poll events and data associated with the fd, otherwise they will be set to NULL.</p>
+<p>This method does not return until it has finished invoking the appropriate callbacks for all file descriptors that were signalled. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1a070b904dd957cc65af9eb5ef6dfa25"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a>* ALooper_prepare </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>opts</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Prepares a looper associated with the calling thread, and returns it. If the thread already has a looper, it is returned. Otherwise, a new one is created, associated with the thread, and returned.</p>
+<p>The opts may be ALOOPER_PREPARE_ALLOW_NON_CALLBACKS or 0. </p>
+
+</div>
+</div>
+<a class="anchor" id="gab723c3c2ac2c66bc695913a194073727"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ALooper_release </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *&#160;</td>
+          <td class="paramname"><em>looper</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Remove a reference that was previously acquired with <a class="el" href="group___looper.html#gae1ad7ac48ab01a34bfd25840c92ff07b">ALooper_acquire()</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf7d68ed05698b251489b4f6c8e54daad"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ALooper_removeFd </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *&#160;</td>
+          <td class="paramname"><em>looper</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>fd</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Removes a previously added file descriptor from the looper.</p>
+<p>When this method returns, it is safe to close the file descriptor since the looper will no longer have a reference to it. However, it is possible for the callback to already be running or for it to run one last time if the file descriptor was already signalled. Calling code is responsible for ensuring that this case is safely handled. For example, if the callback takes care of removing itself during its own execution either by returning 0 or by calling this method, then it can be guaranteed to not be invoked again at any later time unless registered anew.</p>
+<p>Returns 1 if the file descriptor was removed, 0 if none was previously registered or -1 if an error occurred.</p>
+<p>This method can be called on any thread. This method may block briefly if it needs to wake the poll. </p>
+
+</div>
+</div>
+<a class="anchor" id="gab2585652f8ae2e2444979194ebe32aaf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ALooper_wake </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *&#160;</td>
+          <td class="paramname"><em>looper</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Wakes the poll asynchronously.</p>
+<p>This method can be called on any thread. This method returns immediately. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/group___native_activity.jd b/docs/html-ndk/ndk/reference/group___native_activity.jd
new file mode 100644
index 0000000..aa8c96c
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/group___native_activity.jd
@@ -0,0 +1,739 @@
+page.title=Native Activity
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#files">Files</a> &#124;
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">Native Activity</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:native__activity_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="native__activity_8h.html">native_activity.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:native__window_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="native__window_8h.html">native_window.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:native__window__jni_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="native__window__jni_8h.html">native_window_jni.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:rect_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rect_8h.html">rect.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:window_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="window_8h.html">window.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html">ANativeActivity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html">ANativeActivityCallbacks</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_window___buffer.html">ANativeWindow_Buffer</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_rect.html">ARect</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga8abd07923f37feb1ce724d139cc2609d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_native_activity.html">ANativeActivity</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga8abd07923f37feb1ce724d139cc2609d">ANativeActivity</a></td></tr>
+<tr class="separator:ga8abd07923f37feb1ce724d139cc2609d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28dca784e5ee939427135c72c0151c38"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
+<a class="el" href="struct_a_native_activity_callbacks.html">ANativeActivityCallbacks</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga28dca784e5ee939427135c72c0151c38">ANativeActivityCallbacks</a></td></tr>
+<tr class="separator:ga28dca784e5ee939427135c72c0151c38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga569a53bcac3fcedb0189b7c412ebcb22"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga569a53bcac3fcedb0189b7c412ebcb22">ANativeActivity_createFunc</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, void *savedState, size_t savedStateSize)</td></tr>
+<tr class="separator:ga569a53bcac3fcedb0189b7c412ebcb22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga66956d540c2e3709e12156d195e64726"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a></td></tr>
+<tr class="separator:ga66956d540c2e3709e12156d195e64726"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0983ca473ce36293baf5e51a14c3357"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_native_window___buffer.html">ANativeWindow_Buffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gad0983ca473ce36293baf5e51a14c3357">ANativeWindow_Buffer</a></td></tr>
+<tr class="separator:gad0983ca473ce36293baf5e51a14c3357"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa984a498f0e146ac57c6022a323423cf"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_rect.html">ARect</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gaa984a498f0e146ac57c6022a323423cf">ARect</a></td></tr>
+<tr class="separator:gaa984a498f0e146ac57c6022a323423cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga39fca1837c5ce7715cbf571669660c13"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___native_activity.html#gga39fca1837c5ce7715cbf571669660c13a9b7250ac0e5a626a81b176462a9df7c9">ANATIVEACTIVITY_SHOW_SOFT_INPUT_IMPLICIT</a> = 0x0001, 
+<a class="el" href="group___native_activity.html#gga39fca1837c5ce7715cbf571669660c13a324062ac78fab16b40e8de1b1ae173b5">ANATIVEACTIVITY_SHOW_SOFT_INPUT_FORCED</a> = 0x0002
+ }</td></tr>
+<tr class="separator:ga39fca1837c5ce7715cbf571669660c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf8fd5f0e57d456151c951e0f3715fc4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___native_activity.html#ggaaf8fd5f0e57d456151c951e0f3715fc4a642e76508cc737bbc1df149756c2a807">ANATIVEACTIVITY_HIDE_SOFT_INPUT_IMPLICIT_ONLY</a> = 0x0001, 
+<a class="el" href="group___native_activity.html#ggaaf8fd5f0e57d456151c951e0f3715fc4a0f4cbb55fa4c29b963b7b37d13352e6f">ANATIVEACTIVITY_HIDE_SOFT_INPUT_NOT_ALWAYS</a> = 0x0002
+ }</td></tr>
+<tr class="separator:gaaf8fd5f0e57d456151c951e0f3715fc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga94798fdadfbf49a7c658ace669a1d310"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310a6a165383340acce0b32c555dd2ac2c01">WINDOW_FORMAT_RGBA_8888</a> = 1, 
+<a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310a5f83a97ccf64fc1554c220476e8aaf30">WINDOW_FORMAT_RGBX_8888</a> = 2, 
+<a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310ab26fa9c38f169263b611a8b757bb0259">WINDOW_FORMAT_RGB_565</a> = 4
+ }</td></tr>
+<tr class="separator:ga94798fdadfbf49a7c658ace669a1d310"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf715e26dfffd1f8de1c18449e2770cff"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa67363c129036872bc9dd29557e807508">AWINDOW_FLAG_ALLOW_LOCK_WHILE_SCREEN_ON</a> = 0x00000001, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa6155e77ae4e12cc56fb3f6f55f56bf6f">AWINDOW_FLAG_DIM_BEHIND</a> = 0x00000002, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa0377f46a626d411ace179c1c27d0a3f7">AWINDOW_FLAG_BLUR_BEHIND</a> = 0x00000004, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffab5f19f59dd6b2601e4d1a7ff533bc50f">AWINDOW_FLAG_NOT_FOCUSABLE</a> = 0x00000008, 
+<br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffae9f1278ffa6fe9c12c2305d4f4de1450">AWINDOW_FLAG_NOT_TOUCHABLE</a> = 0x00000010, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa5ef903c3617dd33e3c22f567abd64b09">AWINDOW_FLAG_NOT_TOUCH_MODAL</a> = 0x00000020, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa5574a513645e6e7cb4d6a9f4a043d773">AWINDOW_FLAG_TOUCHABLE_WHEN_WAKING</a> = 0x00000040, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaf6f66a498bd3bda8d51b6983eb2a99d8">AWINDOW_FLAG_KEEP_SCREEN_ON</a> = 0x00000080, 
+<br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa6978968d7e0dc1a0e12f58ad395a959a">AWINDOW_FLAG_LAYOUT_IN_SCREEN</a> = 0x00000100, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffade9722581a203ee0db25d42f4d2bd389">AWINDOW_FLAG_LAYOUT_NO_LIMITS</a> = 0x00000200, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaca1f1d91313d7c32bb7982d8a5abcd71">AWINDOW_FLAG_FULLSCREEN</a> = 0x00000400, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa4c21235db629d3937f87ffe98cd6fe5d">AWINDOW_FLAG_FORCE_NOT_FULLSCREEN</a> = 0x00000800, 
+<br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffae73488b436aaea163ba2f7051bf93d9d">AWINDOW_FLAG_DITHER</a> = 0x00001000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa8ff70709a588a05781d7cb178b526cc0">AWINDOW_FLAG_SECURE</a> = 0x00002000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa80316264eeae9681a56c1a2297bf465a">AWINDOW_FLAG_SCALED</a> = 0x00004000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaa2fe4ee2307bb814a37a043de6d7d326">AWINDOW_FLAG_IGNORE_CHEEK_PRESSES</a> = 0x00008000, 
+<br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa97b8542941bfe613bcf92357be89b563">AWINDOW_FLAG_LAYOUT_INSET_DECOR</a> = 0x00010000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa961ff4c9c0903cfb8867d961bebe1659">AWINDOW_FLAG_ALT_FOCUSABLE_IM</a> = 0x00020000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa35229f75b3309bafdd828cbbf27d05b6">AWINDOW_FLAG_WATCH_OUTSIDE_TOUCH</a> = 0x00040000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa549f08950ef1ed3a334338d08ced1c3b">AWINDOW_FLAG_SHOW_WHEN_LOCKED</a> = 0x00080000, 
+<br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa952ae6ceebe94d3f0d666454548b8824">AWINDOW_FLAG_SHOW_WALLPAPER</a> = 0x00100000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffac4deee26ac742bbd0bb4c44fda140a01">AWINDOW_FLAG_TURN_SCREEN_ON</a> = 0x00200000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa37c1077a12f1c8c6805b1da6f7bb213a">AWINDOW_FLAG_DISMISS_KEYGUARD</a> = 0x00400000
+<br/>
+ }</td></tr>
+<tr class="separator:gaf715e26dfffd1f8de1c18449e2770cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga4d872ae54a239704c06a0517e23cc0ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga4d872ae54a239704c06a0517e23cc0ad">ANativeActivity_finish</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td></tr>
+<tr class="separator:ga4d872ae54a239704c06a0517e23cc0ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec8b12decdf2b9841344e75c4c038c5a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gaec8b12decdf2b9841344e75c4c038c5a">ANativeActivity_setWindowFormat</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, int32_t format)</td></tr>
+<tr class="separator:gaec8b12decdf2b9841344e75c4c038c5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa1d091ca4a99b0ce570bab1c8c06f297"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gaa1d091ca4a99b0ce570bab1c8c06f297">ANativeActivity_setWindowFlags</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, uint32_t addFlags, uint32_t removeFlags)</td></tr>
+<tr class="separator:gaa1d091ca4a99b0ce570bab1c8c06f297"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14eaeb6190f266369023b04d8ab9dba7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga14eaeb6190f266369023b04d8ab9dba7">ANativeActivity_showSoftInput</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, uint32_t flags)</td></tr>
+<tr class="separator:ga14eaeb6190f266369023b04d8ab9dba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf673d6efea7ce517ef46ff2551b25944"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gaf673d6efea7ce517ef46ff2551b25944">ANativeActivity_hideSoftInput</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, uint32_t flags)</td></tr>
+<tr class="separator:gaf673d6efea7ce517ef46ff2551b25944"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga533876b57909243b238927344a6592db"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga533876b57909243b238927344a6592db">ANativeWindow_acquire</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ga533876b57909243b238927344a6592db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae944e98865b902bd924663785d7b0258"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gae944e98865b902bd924663785d7b0258">ANativeWindow_release</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:gae944e98865b902bd924663785d7b0258"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga186f0040c5cb405a63d93889bb9a4ff1"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga186f0040c5cb405a63d93889bb9a4ff1">ANativeWindow_getWidth</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ga186f0040c5cb405a63d93889bb9a4ff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga463ba99f6dee3edc1167a54e1ff7de15"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga463ba99f6dee3edc1167a54e1ff7de15">ANativeWindow_getHeight</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ga463ba99f6dee3edc1167a54e1ff7de15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e3a492a8300146b30d864f0ab22bb2e"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga9e3a492a8300146b30d864f0ab22bb2e">ANativeWindow_getFormat</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ga9e3a492a8300146b30d864f0ab22bb2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b0652533998d61e1a3b542485889113"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga7b0652533998d61e1a3b542485889113">ANativeWindow_setBuffersGeometry</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window, int32_t width, int32_t height, int32_t format)</td></tr>
+<tr class="separator:ga7b0652533998d61e1a3b542485889113"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0b0e3b7d442dee83e1a1b42e5b0caee6"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga0b0e3b7d442dee83e1a1b42e5b0caee6">ANativeWindow_lock</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window, <a class="el" href="struct_a_native_window___buffer.html">ANativeWindow_Buffer</a> *outBuffer, <a class="el" href="struct_a_rect.html">ARect</a> *inOutDirtyBounds)</td></tr>
+<tr class="separator:ga0b0e3b7d442dee83e1a1b42e5b0caee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4dc9b687ead9034fbc11bf2d90f203f9"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga4dc9b687ead9034fbc11bf2d90f203f9">ANativeWindow_unlockAndPost</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ga4dc9b687ead9034fbc11bf2d90f203f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga774d0a87ec496b3940fcddccbc31fd9d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga774d0a87ec496b3940fcddccbc31fd9d">ANativeWindow_fromSurface</a> (JNIEnv *env, jobject surface)</td></tr>
+<tr class="separator:ga774d0a87ec496b3940fcddccbc31fd9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:ga02791d0d490839055169f39fdc905c5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___native_activity.html#ga569a53bcac3fcedb0189b7c412ebcb22">ANativeActivity_createFunc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga02791d0d490839055169f39fdc905c5e">ANativeActivity_onCreate</a></td></tr>
+<tr class="separator:ga02791d0d490839055169f39fdc905c5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="ga8abd07923f37feb1ce724d139cc2609d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct_a_native_activity.html">ANativeActivity</a>  <a class="el" href="struct_a_native_activity.html">ANativeActivity</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>This structure defines the native side of an android.app.NativeActivity. It is created by the framework, and handed to the application's native code as it is being launched. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga569a53bcac3fcedb0189b7c412ebcb22"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void ANativeActivity_createFunc(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, void *savedState, size_t savedStateSize)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>This is the function that must be in the native code to instantiate the application's native activity. It is called with the activity instance (see above); if the code is being instantiated from a previously saved instance, the savedState will be non-NULL and point to the saved data. You must make any copy of this data you need &ndash; it will be released after you return from this function. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga28dca784e5ee939427135c72c0151c38"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct_a_native_activity_callbacks.html">ANativeActivityCallbacks</a>  <a class="el" href="struct_a_native_activity_callbacks.html">ANativeActivityCallbacks</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>These are the callbacks the framework makes into a native application. All of these callbacks happen on the main thread of the application. By default, all callbacks are NULL; set to a pointer to your own function to have it called. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga66956d540c2e3709e12156d195e64726"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> is opaque type that provides access to a native window.</p>
+<p>A pointer can be obtained using <a class="el" href="group___native_activity.html#ga774d0a87ec496b3940fcddccbc31fd9d">ANativeWindow_fromSurface()</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad0983ca473ce36293baf5e51a14c3357"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct_a_native_window___buffer.html">ANativeWindow_Buffer</a>  <a class="el" href="struct_a_native_window___buffer.html">ANativeWindow_Buffer</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> is a struct that represents a windows buffer.</p>
+<p>A pointer can be obtained using <a class="el" href="group___native_activity.html#ga0b0e3b7d442dee83e1a1b42e5b0caee6">ANativeWindow_lock()</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa984a498f0e146ac57c6022a323423cf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct_a_rect.html">ARect</a>  <a class="el" href="struct_a_rect.html">ARect</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="struct_a_rect.html">ARect</a> is a struct that represents a rectangular window area.</p>
+<p>It is used with <a class="el" href="struct_a_native_activity_callbacks.html#a61d30a43b3c77b6047afe951706f6a1e">ANativeActivityCallbacks::onContentRectChanged</a> event callback and <a class="el" href="group___native_activity.html#ga0b0e3b7d442dee83e1a1b42e5b0caee6">ANativeWindow_lock()</a> function. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="ga39fca1837c5ce7715cbf571669660c13"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Flags for ANativeActivity_showSoftInput; see the Java InputMethodManager API for documentation. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga39fca1837c5ce7715cbf571669660c13a9b7250ac0e5a626a81b176462a9df7c9"></a>ANATIVEACTIVITY_SHOW_SOFT_INPUT_IMPLICIT</em>&#160;</td><td class="fielddoc">
+<p>Implicit request to show the input window, not as the result of a direct request by the user. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga39fca1837c5ce7715cbf571669660c13a324062ac78fab16b40e8de1b1ae173b5"></a>ANATIVEACTIVITY_SHOW_SOFT_INPUT_FORCED</em>&#160;</td><td class="fielddoc">
+<p>The user has forced the input method open (such as by long-pressing menu) so it should not be closed until they explicitly do so. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gaaf8fd5f0e57d456151c951e0f3715fc4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Flags for ANativeActivity_hideSoftInput; see the Java InputMethodManager API for documentation. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaaf8fd5f0e57d456151c951e0f3715fc4a642e76508cc737bbc1df149756c2a807"></a>ANATIVEACTIVITY_HIDE_SOFT_INPUT_IMPLICIT_ONLY</em>&#160;</td><td class="fielddoc">
+<p>The soft input window should only be hidden if it was not explicitly shown by the user. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaaf8fd5f0e57d456151c951e0f3715fc4a0f4cbb55fa4c29b963b7b37d13352e6f"></a>ANATIVEACTIVITY_HIDE_SOFT_INPUT_NOT_ALWAYS</em>&#160;</td><td class="fielddoc">
+<p>The soft input window should normally be hidden, unless it was originally shown with <a class="el" href="group___native_activity.html#gga39fca1837c5ce7715cbf571669660c13a324062ac78fab16b40e8de1b1ae173b5">ANATIVEACTIVITY_SHOW_SOFT_INPUT_FORCED</a>. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="ga94798fdadfbf49a7c658ace669a1d310"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Pixel formats that a window can use. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga94798fdadfbf49a7c658ace669a1d310a6a165383340acce0b32c555dd2ac2c01"></a>WINDOW_FORMAT_RGBA_8888</em>&#160;</td><td class="fielddoc">
+<p>Red: 8 bits, Green: 8 bits, Blue: 8 bits, Alpha: 8 bits. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga94798fdadfbf49a7c658ace669a1d310a5f83a97ccf64fc1554c220476e8aaf30"></a>WINDOW_FORMAT_RGBX_8888</em>&#160;</td><td class="fielddoc">
+<p>Red: 8 bits, Green: 8 bits, Blue: 8 bits, Unused: 8 bits. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga94798fdadfbf49a7c658ace669a1d310ab26fa9c38f169263b611a8b757bb0259"></a>WINDOW_FORMAT_RGB_565</em>&#160;</td><td class="fielddoc">
+<p>Red: 5 bits, Green: 6 bits, Blue: 5 bits. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gaf715e26dfffd1f8de1c18449e2770cff"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Window flags, as per the Java API at android.view.WindowManager.LayoutParams. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa67363c129036872bc9dd29557e807508"></a>AWINDOW_FLAG_ALLOW_LOCK_WHILE_SCREEN_ON</em>&#160;</td><td class="fielddoc">
+<p>As long as this window is visible to the user, allow the lock screen to activate while the screen is on. This can be used independently, or in combination with <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaf6f66a498bd3bda8d51b6983eb2a99d8">AWINDOW_FLAG_KEEP_SCREEN_ON</a> and/or <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa549f08950ef1ed3a334338d08ced1c3b">AWINDOW_FLAG_SHOW_WHEN_LOCKED</a> </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa6155e77ae4e12cc56fb3f6f55f56bf6f"></a>AWINDOW_FLAG_DIM_BEHIND</em>&#160;</td><td class="fielddoc">
+<p>Everything behind this window will be dimmed. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa0377f46a626d411ace179c1c27d0a3f7"></a>AWINDOW_FLAG_BLUR_BEHIND</em>&#160;</td><td class="fielddoc">
+<p>Blur everything behind this window. </p>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>Blurring is no longer supported. </dd></dl>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffab5f19f59dd6b2601e4d1a7ff533bc50f"></a>AWINDOW_FLAG_NOT_FOCUSABLE</em>&#160;</td><td class="fielddoc">
+<p>This window won't ever get key input focus, so the user can not send key or other button events to it. Those will instead go to whatever focusable window is behind it. This flag will also enable <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa5ef903c3617dd33e3c22f567abd64b09">AWINDOW_FLAG_NOT_TOUCH_MODAL</a> whether or not that is explicitly set.</p>
+<p>Setting this flag also implies that the window will not need to interact with a soft input method, so it will be Z-ordered and positioned independently of any active input method (typically this means it gets Z-ordered on top of the input method, so it can use the full screen for its content and cover the input method if needed. You can use <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa961ff4c9c0903cfb8867d961bebe1659">AWINDOW_FLAG_ALT_FOCUSABLE_IM</a> to modify this behavior. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffae9f1278ffa6fe9c12c2305d4f4de1450"></a>AWINDOW_FLAG_NOT_TOUCHABLE</em>&#160;</td><td class="fielddoc">
+<p>this window can never receive touch events. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa5ef903c3617dd33e3c22f567abd64b09"></a>AWINDOW_FLAG_NOT_TOUCH_MODAL</em>&#160;</td><td class="fielddoc">
+<p>Even when this window is focusable (its <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffab5f19f59dd6b2601e4d1a7ff533bc50f">AWINDOW_FLAG_NOT_FOCUSABLE</a> is not set), allow any pointer events outside of the window to be sent to the windows behind it. Otherwise it will consume all pointer events itself, regardless of whether they are inside of the window. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa5574a513645e6e7cb4d6a9f4a043d773"></a>AWINDOW_FLAG_TOUCHABLE_WHEN_WAKING</em>&#160;</td><td class="fielddoc">
+<p>When set, if the device is asleep when the touch screen is pressed, you will receive this first touch event. Usually the first touch event is consumed by the system since the user can not see what they are pressing on.</p>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000005">Deprecated:</a></b></dt><dd>This flag has no effect. </dd></dl>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffaf6f66a498bd3bda8d51b6983eb2a99d8"></a>AWINDOW_FLAG_KEEP_SCREEN_ON</em>&#160;</td><td class="fielddoc">
+<p>As long as this window is visible to the user, keep the device's screen turned on and bright. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa6978968d7e0dc1a0e12f58ad395a959a"></a>AWINDOW_FLAG_LAYOUT_IN_SCREEN</em>&#160;</td><td class="fielddoc">
+<p>Place the window within the entire screen, ignoring decorations around the border (such as the status bar). The window must correctly position its contents to take the screen decoration into account. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffade9722581a203ee0db25d42f4d2bd389"></a>AWINDOW_FLAG_LAYOUT_NO_LIMITS</em>&#160;</td><td class="fielddoc">
+<p>allow window to extend outside of the screen. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffaca1f1d91313d7c32bb7982d8a5abcd71"></a>AWINDOW_FLAG_FULLSCREEN</em>&#160;</td><td class="fielddoc">
+<p>Hide all screen decorations (such as the status bar) while this window is displayed. This allows the window to use the entire display space for itself &ndash; the status bar will be hidden when an app window with this flag set is on the top layer. A fullscreen window will ignore a value of <a class="el" href="">AWINDOW_SOFT_INPUT_ADJUST_RESIZE</a>; the window will stay fullscreen and will not resize. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa4c21235db629d3937f87ffe98cd6fe5d"></a>AWINDOW_FLAG_FORCE_NOT_FULLSCREEN</em>&#160;</td><td class="fielddoc">
+<p>Override <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaca1f1d91313d7c32bb7982d8a5abcd71">AWINDOW_FLAG_FULLSCREEN</a> and force the screen decorations (such as the status bar) to be shown. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffae73488b436aaea163ba2f7051bf93d9d"></a>AWINDOW_FLAG_DITHER</em>&#160;</td><td class="fielddoc">
+<p>Turn on dithering when compositing this window to the screen. </p>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000006">Deprecated:</a></b></dt><dd>This flag is no longer used. </dd></dl>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa8ff70709a588a05781d7cb178b526cc0"></a>AWINDOW_FLAG_SECURE</em>&#160;</td><td class="fielddoc">
+<p>Treat the content of the window as secure, preventing it from appearing in screenshots or from being viewed on non-secure displays. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa80316264eeae9681a56c1a2297bf465a"></a>AWINDOW_FLAG_SCALED</em>&#160;</td><td class="fielddoc">
+<p>A special mode where the layout parameters are used to perform scaling of the surface when it is composited to the screen. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffaa2fe4ee2307bb814a37a043de6d7d326"></a>AWINDOW_FLAG_IGNORE_CHEEK_PRESSES</em>&#160;</td><td class="fielddoc">
+<p>Intended for windows that will often be used when the user is holding the screen against their face, it will aggressively filter the event stream to prevent unintended presses in this situation that may not be desired for a particular window, when such an event stream is detected, the application will receive a <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a3952b960f5eb8c4f55b42741e286b74e">AMOTION_EVENT_ACTION_CANCEL</a> to indicate this so applications can handle this accordingly by taking no action on the event until the finger is released. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa97b8542941bfe613bcf92357be89b563"></a>AWINDOW_FLAG_LAYOUT_INSET_DECOR</em>&#160;</td><td class="fielddoc">
+<p>A special option only for use in combination with <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa6978968d7e0dc1a0e12f58ad395a959a">AWINDOW_FLAG_LAYOUT_IN_SCREEN</a>. When requesting layout in the screen your window may appear on top of or behind screen decorations such as the status bar. By also including this flag, the window manager will report the inset rectangle needed to ensure your content is not covered by screen decorations. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa961ff4c9c0903cfb8867d961bebe1659"></a>AWINDOW_FLAG_ALT_FOCUSABLE_IM</em>&#160;</td><td class="fielddoc">
+<p>Invert the state of <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffab5f19f59dd6b2601e4d1a7ff533bc50f">AWINDOW_FLAG_NOT_FOCUSABLE</a> with respect to how this window interacts with the current method. That is, if FLAG_NOT_FOCUSABLE is set and this flag is set, then the window will behave as if it needs to interact with the input method and thus be placed behind/away from it; if <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffab5f19f59dd6b2601e4d1a7ff533bc50f">AWINDOW_FLAG_NOT_FOCUSABLE</a> is not set and this flag is set, then the window will behave as if it doesn't need to interact with the input method and can be placed to use more space and cover the input method. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa35229f75b3309bafdd828cbbf27d05b6"></a>AWINDOW_FLAG_WATCH_OUTSIDE_TOUCH</em>&#160;</td><td class="fielddoc">
+<p>If you have set <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa5ef903c3617dd33e3c22f567abd64b09">AWINDOW_FLAG_NOT_TOUCH_MODAL</a>, you can set this flag to receive a single special MotionEvent with the action <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a7c3c96b74af4c8304b8137ac6d201517">AMOTION_EVENT_ACTION_OUTSIDE</a> for touches that occur outside of your window. Note that you will not receive the full down/move/up gesture, only the location of the first down as an <a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a7c3c96b74af4c8304b8137ac6d201517">AMOTION_EVENT_ACTION_OUTSIDE</a>. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa549f08950ef1ed3a334338d08ced1c3b"></a>AWINDOW_FLAG_SHOW_WHEN_LOCKED</em>&#160;</td><td class="fielddoc">
+<p>Special flag to let windows be shown when the screen is locked. This will let application windows take precedence over key guard or any other lock screens. Can be used with <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaf6f66a498bd3bda8d51b6983eb2a99d8">AWINDOW_FLAG_KEEP_SCREEN_ON</a> to turn screen on and display windows directly before showing the key guard window. Can be used with <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa37c1077a12f1c8c6805b1da6f7bb213a">AWINDOW_FLAG_DISMISS_KEYGUARD</a> to automatically fully dismisss non-secure keyguards. This flag only applies to the top-most full-screen window. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa952ae6ceebe94d3f0d666454548b8824"></a>AWINDOW_FLAG_SHOW_WALLPAPER</em>&#160;</td><td class="fielddoc">
+<p>Ask that the system wallpaper be shown behind your window. The window surface must be translucent to be able to actually see the wallpaper behind it; this flag just ensures that the wallpaper surface will be there if this window actually has translucent regions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffac4deee26ac742bbd0bb4c44fda140a01"></a>AWINDOW_FLAG_TURN_SCREEN_ON</em>&#160;</td><td class="fielddoc">
+<p>When set as a window is being added or made visible, once the window has been shown then the system will poke the power manager's user activity (as if the user had woken up the device) to turn the screen on. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaf715e26dfffd1f8de1c18449e2770cffa37c1077a12f1c8c6805b1da6f7bb213a"></a>AWINDOW_FLAG_DISMISS_KEYGUARD</em>&#160;</td><td class="fielddoc">
+<p>When set the window will cause the keyguard to be dismissed, only if it is not a secure lock keyguard. Because such a keyguard is not needed for security, it will never re-appear if the user navigates to another window (in contrast to <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa549f08950ef1ed3a334338d08ced1c3b">AWINDOW_FLAG_SHOW_WHEN_LOCKED</a>, which will only temporarily hide both secure and non-secure keyguards but ensure they reappear when the user moves to another UI that doesn't hide them). If the keyguard is currently active and is secure (requires an unlock pattern) than the user will still need to confirm it before seeing this window, unless <a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa549f08950ef1ed3a334338d08ced1c3b">AWINDOW_FLAG_SHOW_WHEN_LOCKED</a> has also been set. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga4d872ae54a239704c06a0517e23cc0ad"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ANativeActivity_finish </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *&#160;</td>
+          <td class="paramname"><em>activity</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Finish the given activity. Its finish() method will be called, causing it to be stopped and destroyed. Note that this method can be called from <em>any</em> thread; it will send a message to the main thread of the process where the Java finish call will take place. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf673d6efea7ce517ef46ff2551b25944"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ANativeActivity_hideSoftInput </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *&#160;</td>
+          <td class="paramname"><em>activity</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>flags</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Hide the IME while in the given activity. Calls InputMethodManager.hideSoftInput() for the given activity. Note that this method can be called from <em>any</em> thread; it will send a message to the main thread of the process where the Java finish call will take place. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa1d091ca4a99b0ce570bab1c8c06f297"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ANativeActivity_setWindowFlags </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *&#160;</td>
+          <td class="paramname"><em>activity</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>addFlags</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>removeFlags</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Change the window flags of the given activity. Calls getWindow().setFlags() of the given activity. Note that this method can be called from <em>any</em> thread; it will send a message to the main thread of the process where the Java finish call will take place. See <a class="el" href="window_8h.html">window.h</a> for flag constants. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaec8b12decdf2b9841344e75c4c038c5a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ANativeActivity_setWindowFormat </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *&#160;</td>
+          <td class="paramname"><em>activity</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>format</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Change the window format of the given activity. Calls getWindow().setFormat() of the given activity. Note that this method can be called from <em>any</em> thread; it will send a message to the main thread of the process where the Java finish call will take place. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga14eaeb6190f266369023b04d8ab9dba7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ANativeActivity_showSoftInput </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *&#160;</td>
+          <td class="paramname"><em>activity</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t&#160;</td>
+          <td class="paramname"><em>flags</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Show the IME while in the given activity. Calls InputMethodManager.showSoftInput() for the given activity. Note that this method can be called from <em>any</em> thread; it will send a message to the main thread of the process where the Java finish call will take place. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga533876b57909243b238927344a6592db"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ANativeWindow_acquire </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *&#160;</td>
+          <td class="paramname"><em>window</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Acquire a reference on the given ANativeWindow object. This prevents the object from being deleted until the reference is removed. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga774d0a87ec496b3940fcddccbc31fd9d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a>* ANativeWindow_fromSurface </td>
+          <td>(</td>
+          <td class="paramtype">JNIEnv *&#160;</td>
+          <td class="paramname"><em>env</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">jobject&#160;</td>
+          <td class="paramname"><em>surface</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the ANativeWindow associated with a Java Surface object, for interacting with it through native code. This acquires a reference on the ANativeWindow that is returned; be sure to use <a class="el" href="group___native_activity.html#gae944e98865b902bd924663785d7b0258">ANativeWindow_release()</a> when done with it so that it doesn't leak. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga9e3a492a8300146b30d864f0ab22bb2e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t ANativeWindow_getFormat </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *&#160;</td>
+          <td class="paramname"><em>window</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current pixel format of the window surface. Returns a negative value on error. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga463ba99f6dee3edc1167a54e1ff7de15"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t ANativeWindow_getHeight </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *&#160;</td>
+          <td class="paramname"><em>window</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current height in pixels of the window surface. Returns a negative value on error. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga186f0040c5cb405a63d93889bb9a4ff1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t ANativeWindow_getWidth </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *&#160;</td>
+          <td class="paramname"><em>window</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return the current width in pixels of the window surface. Returns a negative value on error. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0b0e3b7d442dee83e1a1b42e5b0caee6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t ANativeWindow_lock </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *&#160;</td>
+          <td class="paramname"><em>window</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_a_native_window___buffer.html">ANativeWindow_Buffer</a> *&#160;</td>
+          <td class="paramname"><em>outBuffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_a_rect.html">ARect</a> *&#160;</td>
+          <td class="paramname"><em>inOutDirtyBounds</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Lock the window's next drawing surface for writing. inOutDirtyBounds is used as an in/out parameter, upon entering the function, it contains the dirty region, that is, the region the caller intends to redraw. When the function returns, inOutDirtyBounds is updated with the actual area the caller needs to redraw &ndash; this region is often extended by ANativeWindow_lock. </p>
+
+</div>
+</div>
+<a class="anchor" id="gae944e98865b902bd924663785d7b0258"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void ANativeWindow_release </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *&#160;</td>
+          <td class="paramname"><em>window</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Remove a reference that was previously acquired with <a class="el" href="group___native_activity.html#ga533876b57909243b238927344a6592db">ANativeWindow_acquire()</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7b0652533998d61e1a3b542485889113"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t ANativeWindow_setBuffersGeometry </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *&#160;</td>
+          <td class="paramname"><em>window</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>width</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>height</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>format</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Change the format and size of the window buffers.</p>
+<p>The width and height control the number of pixels in the buffers, not the dimensions of the window on screen. If these are different than the window's physical size, then it buffer will be scaled to match that size when compositing it to the screen.</p>
+<p>For all of these parameters, if 0 is supplied then the window's base value will come back in force.</p>
+<p>width and height must be either both zero or both non-zero. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4dc9b687ead9034fbc11bf2d90f203f9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t ANativeWindow_unlockAndPost </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *&#160;</td>
+          <td class="paramname"><em>window</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Unlock the window's drawing surface after previously locking it, posting the new buffer to the display. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="ga02791d0d490839055169f39fdc905c5e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___native_activity.html#ga569a53bcac3fcedb0189b7c412ebcb22">ANativeActivity_createFunc</a> ANativeActivity_onCreate</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The name of the function that NativeInstance looks for when launching its native code. This is the default function that is used, you can specify "android.app.func_name" string meta-data in your manifest to use a different function. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/group___sensor.jd b/docs/html-ndk/ndk/reference/group___sensor.jd
new file mode 100644
index 0000000..1ce4f03
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/group___sensor.jd
@@ -0,0 +1,933 @@
+page.title=Sensor
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#files">Files</a> &#124;
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Sensor</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:sensor_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sensor_8h.html">sensor.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_vector.html">ASensorVector</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_meta_data_event.html">AMetaDataEvent</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_uncalibrated_event.html">AUncalibratedEvent</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_heart_rate_event.html">AHeartRateEvent</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_event.html">ASensorEvent</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga5129cb9e4091fc3474e246d5f950e52b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga5129cb9e4091fc3474e246d5f950e52b">ASENSOR_STANDARD_GRAVITY</a>&#160;&#160;&#160;(9.80665f)</td></tr>
+<tr class="separator:ga5129cb9e4091fc3474e246d5f950e52b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf8b57b13c6432bc6136aac0ad3813d63"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaf8b57b13c6432bc6136aac0ad3813d63">ASENSOR_MAGNETIC_FIELD_EARTH_MAX</a>&#160;&#160;&#160;(60.0f)</td></tr>
+<tr class="separator:gaf8b57b13c6432bc6136aac0ad3813d63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4423a712e27b6d5a57d138796892886d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga4423a712e27b6d5a57d138796892886d">ASENSOR_MAGNETIC_FIELD_EARTH_MIN</a>&#160;&#160;&#160;(30.0f)</td></tr>
+<tr class="separator:ga4423a712e27b6d5a57d138796892886d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga207e807f9e18271f6a763e57232b409f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_sensor_vector.html">ASensorVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga207e807f9e18271f6a763e57232b409f">ASensorVector</a></td></tr>
+<tr class="separator:ga207e807f9e18271f6a763e57232b409f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0378daec23b2d8a70438ef7c3912475f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_meta_data_event.html">AMetaDataEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga0378daec23b2d8a70438ef7c3912475f">AMetaDataEvent</a></td></tr>
+<tr class="separator:ga0378daec23b2d8a70438ef7c3912475f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga24acc545b908dd24cadc44c5e0760b3b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_uncalibrated_event.html">AUncalibratedEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga24acc545b908dd24cadc44c5e0760b3b">AUncalibratedEvent</a></td></tr>
+<tr class="separator:ga24acc545b908dd24cadc44c5e0760b3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae85b6eac76abe74e6e53d78bb3a4858c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_heart_rate_event.html">AHeartRateEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gae85b6eac76abe74e6e53d78bb3a4858c">AHeartRateEvent</a></td></tr>
+<tr class="separator:gae85b6eac76abe74e6e53d78bb3a4858c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6bb167c45f0ef0a94d8f178d227e781f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_sensor_event.html">ASensorEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga6bb167c45f0ef0a94d8f178d227e781f">ASensorEvent</a></td></tr>
+<tr class="separator:ga6bb167c45f0ef0a94d8f178d227e781f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaef620baab9b276ab8f914ae77babc349"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a></td></tr>
+<tr class="separator:gaef620baab9b276ab8f914ae77babc349"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa9448106d6d463f4cc5dded7c914e7ae"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a></td></tr>
+<tr class="separator:gaa9448106d6d463f4cc5dded7c914e7ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93b28b7ce5e9b6d2ebc5b574cd5f4710"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a></td></tr>
+<tr class="separator:ga93b28b7ce5e9b6d2ebc5b574cd5f4710"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafec8dd682458c750a5f0f913a0f162ce"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gafec8dd682458c750a5f0f913a0f162ce">ASensorRef</a></td></tr>
+<tr class="separator:gafec8dd682458c750a5f0f913a0f162ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga26ff51817e8b320a631b3bf4ed378d58"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___sensor.html#gafec8dd682458c750a5f0f913a0f162ce">ASensorRef</a> const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">ASensorList</a></td></tr>
+<tr class="separator:ga26ff51817e8b320a631b3bf4ed378d58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga7ff5f2dff38e7639981794c43dc9167b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167bad72017f34c12971593a8cb14f4f254df">ASENSOR_TYPE_ACCELEROMETER</a> = 1, 
+<a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba3b31509a3efebafb413e78f5ec9ae0e8">ASENSOR_TYPE_MAGNETIC_FIELD</a> = 2, 
+<a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba80e9827f6c3ded009f354dc7078a2c68">ASENSOR_TYPE_GYROSCOPE</a> = 4, 
+<a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba105331b6dea6f08e0d8fe3b736f8c174">ASENSOR_TYPE_LIGHT</a> = 5, 
+<br/>
+&#160;&#160;<a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba0c6a2e526ed2e4442b3843976f906932">ASENSOR_TYPE_PROXIMITY</a> = 8
+<br/>
+ }</td></tr>
+<tr class="separator:ga7ff5f2dff38e7639981794c43dc9167b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabfcbcb5ac86a1edac4035264bc7d2b8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ae5d0475bd9491c4232a09afc81fa283d">ASENSOR_STATUS_NO_CONTACT</a> = -1, 
+<a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ae8e43df50b7b85ed54f22c40f2cd748e">ASENSOR_STATUS_UNRELIABLE</a> = 0, 
+<a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8a5f306f3d45a19573539462e4c813edc0">ASENSOR_STATUS_ACCURACY_LOW</a> = 1, 
+<a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ad7e9379a4f36a42f2659cd7aec214f2d">ASENSOR_STATUS_ACCURACY_MEDIUM</a> = 2, 
+<br/>
+&#160;&#160;<a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8a2df5fb4e8b684e6a801a4aff9f50ba13">ASENSOR_STATUS_ACCURACY_HIGH</a> = 3
+<br/>
+ }</td></tr>
+<tr class="separator:gaabfcbcb5ac86a1edac4035264bc7d2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5d76b81b0ad4c19007a781d4edb8181f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa8a64337fcb7e338d487dc3edc873df1c">AREPORTING_MODE_CONTINUOUS</a> = 0, 
+<a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa8542165ae195bf5784cdd9ba66bd2ab5">AREPORTING_MODE_ON_CHANGE</a> = 1, 
+<a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa002273a1ab874159a38a7e3f6bb6a7bb">AREPORTING_MODE_ONE_SHOT</a> = 2, 
+<a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181faa2d29656b35889c4c23318982e847ae7">AREPORTING_MODE_SPECIAL_TRIGGER</a> = 3
+ }</td></tr>
+<tr class="separator:ga5d76b81b0ad4c19007a781d4edb8181f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa438fdaf34783a89d139f0a56d2692cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaa438fdaf34783a89d139f0a56d2692cd">ASensorManager_getInstance</a> ()</td></tr>
+<tr class="separator:gaa438fdaf34783a89d139f0a56d2692cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga645be938627498ab2b60d94c562204bd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga645be938627498ab2b60d94c562204bd">ASensorManager_getSensorList</a> (<a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *manager, <a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">ASensorList</a> *list)</td></tr>
+<tr class="separator:ga645be938627498ab2b60d94c562204bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4880d87e01f5e2d4a9b8403e4047445"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaf4880d87e01f5e2d4a9b8403e4047445">ASensorManager_getDefaultSensor</a> (<a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *manager, int type)</td></tr>
+<tr class="separator:gaf4880d87e01f5e2d4a9b8403e4047445"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4313457c0e82f4afa77ef13860629633"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga4313457c0e82f4afa77ef13860629633">ASensorManager_getDefaultSensorEx</a> (<a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *manager, int type, bool wakeUp)</td></tr>
+<tr class="separator:ga4313457c0e82f4afa77ef13860629633"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac46f8b28bcc7a846dea9d841cab0a67b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gac46f8b28bcc7a846dea9d841cab0a67b">ASensorManager_createEventQueue</a> (<a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *manager, <a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper, int ident, <a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">ALooper_callbackFunc</a> callback, void *data)</td></tr>
+<tr class="separator:gac46f8b28bcc7a846dea9d841cab0a67b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf35624037785cdea1e7fe9e0a73fc5e1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaf35624037785cdea1e7fe9e0a73fc5e1">ASensorManager_destroyEventQueue</a> (<a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *manager, <a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue)</td></tr>
+<tr class="separator:gaf35624037785cdea1e7fe9e0a73fc5e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga48a8379cf9de9b09a71a00f8a3699499"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga48a8379cf9de9b09a71a00f8a3699499">ASensorEventQueue_enableSensor</a> (<a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue, <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga48a8379cf9de9b09a71a00f8a3699499"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga03852b813887ec236a34c4aef0df4b68"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga03852b813887ec236a34c4aef0df4b68">ASensorEventQueue_disableSensor</a> (<a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue, <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga03852b813887ec236a34c4aef0df4b68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa6e89b6d69dc3e07f2d7e72e81ec7937"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaa6e89b6d69dc3e07f2d7e72e81ec7937">ASensorEventQueue_setEventRate</a> (<a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue, <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor, int32_t usec)</td></tr>
+<tr class="separator:gaa6e89b6d69dc3e07f2d7e72e81ec7937"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga79c9d6264fe81d4e30800f826db72913"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga79c9d6264fe81d4e30800f826db72913">ASensorEventQueue_hasEvents</a> (<a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue)</td></tr>
+<tr class="separator:ga79c9d6264fe81d4e30800f826db72913"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3d4354fd0d3ceb5fa97c129b024a18a"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gab3d4354fd0d3ceb5fa97c129b024a18a">ASensorEventQueue_getEvents</a> (<a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue, <a class="el" href="struct_a_sensor_event.html">ASensorEvent</a> *events, size_t count)</td></tr>
+<tr class="separator:gab3d4354fd0d3ceb5fa97c129b024a18a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga52f4b22990c70df0784b9ccf23314fae"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga52f4b22990c70df0784b9ccf23314fae">ASensor_getName</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga52f4b22990c70df0784b9ccf23314fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafaf467fc71f7adba537a90f166e3320d"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gafaf467fc71f7adba537a90f166e3320d">ASensor_getVendor</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:gafaf467fc71f7adba537a90f166e3320d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93962747ab3c7d2b609f97af26fc0230"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga93962747ab3c7d2b609f97af26fc0230">ASensor_getType</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga93962747ab3c7d2b609f97af26fc0230"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3da2930dd866cf1f76da6bc39e578a46"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga3da2930dd866cf1f76da6bc39e578a46">ASensor_getResolution</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga3da2930dd866cf1f76da6bc39e578a46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacb6e021757c07344b58742611eaf68e7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gacb6e021757c07344b58742611eaf68e7">ASensor_getMinDelay</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:gacb6e021757c07344b58742611eaf68e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae9969580eda319926a677a6937c7afb1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gae9969580eda319926a677a6937c7afb1">ASensor_getFifoMaxEventCount</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:gae9969580eda319926a677a6937c7afb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec7084c6a9d4d85f87c95a70511c5f53"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaec7084c6a9d4d85f87c95a70511c5f53">ASensor_getFifoReservedEventCount</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:gaec7084c6a9d4d85f87c95a70511c5f53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabee3eb65390fc75a639c59d653af3591"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gabee3eb65390fc75a639c59d653af3591">ASensor_getStringType</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:gabee3eb65390fc75a639c59d653af3591"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga99e56b84cf421788c27998da8eab7e39"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga99e56b84cf421788c27998da8eab7e39">ASensor_getReportingMode</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga99e56b84cf421788c27998da8eab7e39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0ff4118e400bedac62be6b79e9e0f924"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga0ff4118e400bedac62be6b79e9e0f924">ASensor_isWakeUpSensor</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga0ff4118e400bedac62be6b79e9e0f924"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="gaf8b57b13c6432bc6136aac0ad3813d63"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ASENSOR_MAGNETIC_FIELD_EARTH_MAX&#160;&#160;&#160;(60.0f)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Maximum magnetic field on Earth's surface in uT </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4423a712e27b6d5a57d138796892886d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ASENSOR_MAGNETIC_FIELD_EARTH_MIN&#160;&#160;&#160;(30.0f)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Minimum magnetic field on Earth's surface in uT </p>
+
+</div>
+</div>
+<a class="anchor" id="ga5129cb9e4091fc3474e246d5f950e52b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define ASENSOR_STANDARD_GRAVITY&#160;&#160;&#160;(9.80665f)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Earth's gravity in m/s^2 </p>
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gae85b6eac76abe74e6e53d78bb3a4858c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct_a_heart_rate_event.html">AHeartRateEvent</a>  <a class="el" href="struct_a_heart_rate_event.html">AHeartRateEvent</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ga0378daec23b2d8a70438ef7c3912475f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct_a_meta_data_event.html">AMetaDataEvent</a>  <a class="el" href="struct_a_meta_data_event.html">AMetaDataEvent</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ga93b28b7ce5e9b6d2ebc5b574cd5f4710"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> is an opaque type that provides information about an hardware sensors.</p>
+<p>A <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> pointer can be obtained using <a class="el" href="group___sensor.html#gaf4880d87e01f5e2d4a9b8403e4047445">ASensorManager_getDefaultSensor()</a>, <a class="el" href="group___sensor.html#ga4313457c0e82f4afa77ef13860629633">ASensorManager_getDefaultSensorEx()</a> or from a <a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">ASensorList</a>.</p>
+<p>This file provides a set of functions to access properties of a <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a>:</p>
+<ul>
+<li><a class="el" href="group___sensor.html#ga52f4b22990c70df0784b9ccf23314fae">ASensor_getName()</a></li>
+<li><a class="el" href="group___sensor.html#gafaf467fc71f7adba537a90f166e3320d">ASensor_getVendor()</a></li>
+<li><a class="el" href="group___sensor.html#ga93962747ab3c7d2b609f97af26fc0230">ASensor_getType()</a></li>
+<li><a class="el" href="group___sensor.html#ga3da2930dd866cf1f76da6bc39e578a46">ASensor_getResolution()</a></li>
+<li><a class="el" href="group___sensor.html#gacb6e021757c07344b58742611eaf68e7">ASensor_getMinDelay()</a></li>
+<li><a class="el" href="group___sensor.html#gae9969580eda319926a677a6937c7afb1">ASensor_getFifoMaxEventCount()</a></li>
+<li><a class="el" href="group___sensor.html#gaec7084c6a9d4d85f87c95a70511c5f53">ASensor_getFifoReservedEventCount()</a></li>
+<li><a class="el" href="group___sensor.html#gabee3eb65390fc75a639c59d653af3591">ASensor_getStringType()</a></li>
+<li><a class="el" href="group___sensor.html#ga99e56b84cf421788c27998da8eab7e39">ASensor_getReportingMode()</a></li>
+<li><a class="el" href="group___sensor.html#ga0ff4118e400bedac62be6b79e9e0f924">ASensor_isWakeUpSensor()</a> </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="ga6bb167c45f0ef0a94d8f178d227e781f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct_a_sensor_event.html">ASensorEvent</a>  <a class="el" href="struct_a_sensor_event.html">ASensorEvent</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="gaa9448106d6d463f4cc5dded7c914e7ae"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> <a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> is an opaque type that provides access to <a class="el" href="struct_a_sensor_event.html">ASensorEvent</a> from hardware sensors.</p>
+<p>A new <a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> can be obtained using <a class="el" href="group___sensor.html#gac46f8b28bcc7a846dea9d841cab0a67b">ASensorManager_createEventQueue()</a>.</p>
+<p>This file provides a set of functions to enable and disable sensors, check and get events, and set event rates on a <a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a>.</p>
+<ul>
+<li><a class="el" href="group___sensor.html#ga48a8379cf9de9b09a71a00f8a3699499">ASensorEventQueue_enableSensor()</a></li>
+<li><a class="el" href="group___sensor.html#ga03852b813887ec236a34c4aef0df4b68">ASensorEventQueue_disableSensor()</a></li>
+<li><a class="el" href="group___sensor.html#ga79c9d6264fe81d4e30800f826db72913">ASensorEventQueue_hasEvents()</a></li>
+<li><a class="el" href="group___sensor.html#gab3d4354fd0d3ceb5fa97c129b024a18a">ASensorEventQueue_getEvents()</a></li>
+<li><a class="el" href="group___sensor.html#gaa6e89b6d69dc3e07f2d7e72e81ec7937">ASensorEventQueue_setEventRate()</a> </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="ga26ff51817e8b320a631b3bf4ed378d58"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="group___sensor.html#gafec8dd682458c750a5f0f913a0f162ce">ASensorRef</a> const* <a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">ASensorList</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">ASensorList</a> is an array of reference to <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a>.</p>
+<p>A <a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">ASensorList</a> can be initialized using <a class="el" href="group___sensor.html#ga645be938627498ab2b60d94c562204bd">ASensorManager_getSensorList()</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaef620baab9b276ab8f914ae77babc349"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> <a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> is an opaque type to manage sensors and events queues.</p>
+<p><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> is a singleton that can be obtained using <a class="el" href="group___sensor.html#gaa438fdaf34783a89d139f0a56d2692cd">ASensorManager_getInstance()</a>.</p>
+<p>This file provides a set of functions that uses <a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> to access and list hardware sensors, and create and destroy event queues:</p>
+<ul>
+<li><a class="el" href="group___sensor.html#ga645be938627498ab2b60d94c562204bd">ASensorManager_getSensorList()</a></li>
+<li><a class="el" href="group___sensor.html#gaf4880d87e01f5e2d4a9b8403e4047445">ASensorManager_getDefaultSensor()</a></li>
+<li><a class="el" href="group___sensor.html#ga4313457c0e82f4afa77ef13860629633">ASensorManager_getDefaultSensorEx()</a></li>
+<li><a class="el" href="group___sensor.html#gac46f8b28bcc7a846dea9d841cab0a67b">ASensorManager_createEventQueue()</a></li>
+<li><a class="el" href="group___sensor.html#gaf35624037785cdea1e7fe9e0a73fc5e1">ASensorManager_destroyEventQueue()</a> </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="gafec8dd682458c750a5f0f913a0f162ce"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const* <a class="el" href="group___sensor.html#gafec8dd682458c750a5f0f913a0f162ce">ASensorRef</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___sensor.html#gafec8dd682458c750a5f0f913a0f162ce">ASensorRef</a> is a type for constant pointers to <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a>.</p>
+<p>This is used to define entry in <a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">ASensorList</a> arrays. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga207e807f9e18271f6a763e57232b409f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct_a_sensor_vector.html">ASensorVector</a>  <a class="el" href="struct_a_sensor_vector.html">ASensorVector</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>A sensor event. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga24acc545b908dd24cadc44c5e0760b3b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="struct_a_uncalibrated_event.html">AUncalibratedEvent</a>  <a class="el" href="struct_a_uncalibrated_event.html">AUncalibratedEvent</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="ga7ff5f2dff38e7639981794c43dc9167b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Structures and functions to receive and process sensor events in native code. Sensor types. (keep in sync with hardware/sensor.h) </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga7ff5f2dff38e7639981794c43dc9167bad72017f34c12971593a8cb14f4f254df"></a>ASENSOR_TYPE_ACCELEROMETER</em>&#160;</td><td class="fielddoc">
+<p><a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167bad72017f34c12971593a8cb14f4f254df">ASENSOR_TYPE_ACCELEROMETER</a> reporting-mode: continuous</p>
+<p>All values are in SI units (m/s^2) and measure the acceleration of the device minus the force of gravity. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga7ff5f2dff38e7639981794c43dc9167ba3b31509a3efebafb413e78f5ec9ae0e8"></a>ASENSOR_TYPE_MAGNETIC_FIELD</em>&#160;</td><td class="fielddoc">
+<p><a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba3b31509a3efebafb413e78f5ec9ae0e8">ASENSOR_TYPE_MAGNETIC_FIELD</a> reporting-mode: continuous</p>
+<p>All values are in micro-Tesla (uT) and measure the geomagnetic field in the X, Y and Z axis. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga7ff5f2dff38e7639981794c43dc9167ba80e9827f6c3ded009f354dc7078a2c68"></a>ASENSOR_TYPE_GYROSCOPE</em>&#160;</td><td class="fielddoc">
+<p><a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba80e9827f6c3ded009f354dc7078a2c68">ASENSOR_TYPE_GYROSCOPE</a> reporting-mode: continuous</p>
+<p>All values are in radians/second and measure the rate of rotation around the X, Y and Z axis. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga7ff5f2dff38e7639981794c43dc9167ba105331b6dea6f08e0d8fe3b736f8c174"></a>ASENSOR_TYPE_LIGHT</em>&#160;</td><td class="fielddoc">
+<p><a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba105331b6dea6f08e0d8fe3b736f8c174">ASENSOR_TYPE_LIGHT</a> reporting-mode: on-change</p>
+<p>The light sensor value is returned in SI lux units. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga7ff5f2dff38e7639981794c43dc9167ba0c6a2e526ed2e4442b3843976f906932"></a>ASENSOR_TYPE_PROXIMITY</em>&#160;</td><td class="fielddoc">
+<p><a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba0c6a2e526ed2e4442b3843976f906932">ASENSOR_TYPE_PROXIMITY</a> reporting-mode: on-change</p>
+<p>The proximity sensor which turns the screen off and back on during calls is the wake-up proximity sensor. Implement wake-up proximity sensor before implementing a non wake-up proximity sensor. For the wake-up proximity sensor set the flag SENSOR_FLAG_WAKE_UP. The value corresponds to the distance to the nearest object in centimeters. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gaabfcbcb5ac86a1edac4035264bc7d2b8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Sensor accuracy measure. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaabfcbcb5ac86a1edac4035264bc7d2b8ae5d0475bd9491c4232a09afc81fa283d"></a>ASENSOR_STATUS_NO_CONTACT</em>&#160;</td><td class="fielddoc">
+<p>no contact </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaabfcbcb5ac86a1edac4035264bc7d2b8ae8e43df50b7b85ed54f22c40f2cd748e"></a>ASENSOR_STATUS_UNRELIABLE</em>&#160;</td><td class="fielddoc">
+<p>unreliable </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaabfcbcb5ac86a1edac4035264bc7d2b8a5f306f3d45a19573539462e4c813edc0"></a>ASENSOR_STATUS_ACCURACY_LOW</em>&#160;</td><td class="fielddoc">
+<p>low accuracy </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaabfcbcb5ac86a1edac4035264bc7d2b8ad7e9379a4f36a42f2659cd7aec214f2d"></a>ASENSOR_STATUS_ACCURACY_MEDIUM</em>&#160;</td><td class="fielddoc">
+<p>medium accuracy </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggaabfcbcb5ac86a1edac4035264bc7d2b8a2df5fb4e8b684e6a801a4aff9f50ba13"></a>ASENSOR_STATUS_ACCURACY_HIGH</em>&#160;</td><td class="fielddoc">
+<p>high accuracy </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="ga5d76b81b0ad4c19007a781d4edb8181f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Sensor Reporting Modes. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga5d76b81b0ad4c19007a781d4edb8181fa8a64337fcb7e338d487dc3edc873df1c"></a>AREPORTING_MODE_CONTINUOUS</em>&#160;</td><td class="fielddoc">
+<p>continuous reporting </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga5d76b81b0ad4c19007a781d4edb8181fa8542165ae195bf5784cdd9ba66bd2ab5"></a>AREPORTING_MODE_ON_CHANGE</em>&#160;</td><td class="fielddoc">
+<p>reporting on change </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga5d76b81b0ad4c19007a781d4edb8181fa002273a1ab874159a38a7e3f6bb6a7bb"></a>AREPORTING_MODE_ONE_SHOT</em>&#160;</td><td class="fielddoc">
+<p>on shot reporting </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gga5d76b81b0ad4c19007a781d4edb8181faa2d29656b35889c4c23318982e847ae7"></a>AREPORTING_MODE_SPECIAL_TRIGGER</em>&#160;</td><td class="fielddoc">
+<p>special trigger reporting </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gae9969580eda319926a677a6937c7afb1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ASensor_getFifoMaxEventCount </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns the maximum size of batches for this sensor. Batches will often be smaller, as the hardware fifo might be used for other sensors. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaec7084c6a9d4d85f87c95a70511c5f53"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ASensor_getFifoReservedEventCount </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns the hardware batch fifo size reserved to this sensor. </p>
+
+</div>
+</div>
+<a class="anchor" id="gacb6e021757c07344b58742611eaf68e7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ASensor_getMinDelay </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns the minimum delay allowed between events in microseconds. A value of zero means that this sensor doesn't report events at a constant rate, but rather only when a new data is available. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga52f4b22990c70df0784b9ccf23314fae"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* ASensor_getName </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns this sensor's name (non localized) </p>
+
+</div>
+</div>
+<a class="anchor" id="ga99e56b84cf421788c27998da8eab7e39"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ASensor_getReportingMode </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns the reporting mode for this sensor. One of AREPORTING_MODE_* constants. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga3da2930dd866cf1f76da6bc39e578a46"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float ASensor_getResolution </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns this sensors's resolution </p>
+
+</div>
+</div>
+<a class="anchor" id="gabee3eb65390fc75a639c59d653af3591"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* ASensor_getStringType </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns this sensor's string type. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga93962747ab3c7d2b609f97af26fc0230"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ASensor_getType </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Return this sensor's type </p>
+
+</div>
+</div>
+<a class="anchor" id="gafaf467fc71f7adba537a90f166e3320d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* ASensor_getVendor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns this sensor's vendor's name (non localized) </p>
+
+</div>
+</div>
+<a class="anchor" id="ga0ff4118e400bedac62be6b79e9e0f924"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool ASensor_isWakeUpSensor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns true if this is a wake up sensor, false otherwise. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga03852b813887ec236a34c4aef0df4b68"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ASensorEventQueue_disableSensor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Disable the selected sensor. Returns a negative error code on failure. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga48a8379cf9de9b09a71a00f8a3699499"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ASensorEventQueue_enableSensor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Enable the selected sensor. Returns a negative error code on failure. </p>
+
+</div>
+</div>
+<a class="anchor" id="gab3d4354fd0d3ceb5fa97c129b024a18a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t ASensorEventQueue_getEvents </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="struct_a_sensor_event.html">ASensorEvent</a> *&#160;</td>
+          <td class="paramname"><em>events</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns the next available events from the queue. Returns a negative value if no events are available or an error has occurred, otherwise the number of events returned.</p>
+<p>Examples: <a class="el" href="struct_a_sensor_event.html">ASensorEvent</a> event; ssize_t numEvent = ASensorEventQueue_getEvents(queue, &amp;event, 1);</p>
+<p><a class="el" href="struct_a_sensor_event.html">ASensorEvent</a> eventBuffer[8]; ssize_t numEvent = ASensorEventQueue_getEvents(queue, eventBuffer, 8); </p>
+
+</div>
+</div>
+<a class="anchor" id="ga79c9d6264fe81d4e30800f826db72913"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ASensorEventQueue_hasEvents </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns true if there are one or more events available in the sensor queue. Returns 1 if the queue has events; 0 if it does not have events; and a negative value if there is an error. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa6e89b6d69dc3e07f2d7e72e81ec7937"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ASensorEventQueue_setEventRate </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td>
+          <td class="paramname"><em>sensor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int32_t&#160;</td>
+          <td class="paramname"><em>usec</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Sets the delivery rate of events in microseconds for the given sensor. Note that this is a hint only, generally event will arrive at a higher rate. It is an error to set a rate inferior to the value returned by <a class="el" href="group___sensor.html#gacb6e021757c07344b58742611eaf68e7">ASensor_getMinDelay()</a>. Returns a negative error code on failure. </p>
+
+</div>
+</div>
+<a class="anchor" id="gac46f8b28bcc7a846dea9d841cab0a67b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a>* ASensorManager_createEventQueue </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *&#160;</td>
+          <td class="paramname"><em>manager</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *&#160;</td>
+          <td class="paramname"><em>looper</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>ident</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">ALooper_callbackFunc</a>&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Creates a new sensor event queue and associate it with a looper.</p>
+<p>"ident" is a identifier for the events that will be returned when calling <a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">ALooper_pollOnce()</a>. The identifier must be &gt;= 0, or ALOOPER_POLL_CALLBACK if providing a non-NULL callback. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf35624037785cdea1e7fe9e0a73fc5e1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ASensorManager_destroyEventQueue </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *&#160;</td>
+          <td class="paramname"><em>manager</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *&#160;</td>
+          <td class="paramname"><em>queue</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Destroys the event queue and free all resources associated to it. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf4880d87e01f5e2d4a9b8403e4047445"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const* ASensorManager_getDefaultSensor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *&#160;</td>
+          <td class="paramname"><em>manager</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>type</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns the default sensor for the given type, or NULL if no sensor of that type exists. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4313457c0e82f4afa77ef13860629633"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const* ASensorManager_getDefaultSensorEx </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *&#160;</td>
+          <td class="paramname"><em>manager</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>type</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>wakeUp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns the default sensor with the given type and wakeUp properties or NULL if no sensor of this type and wakeUp properties exists. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa438fdaf34783a89d139f0a56d2692cd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a>* ASensorManager_getInstance </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get a reference to the sensor manager. ASensorManager is a singleton.</p>
+<p>Example: </p>
+<pre class="fragment">ASensorManager* sensorManager = ASensorManager_getInstance();</pre> 
+</div>
+</div>
+<a class="anchor" id="ga645be938627498ab2b60d94c562204bd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int ASensorManager_getSensorList </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *&#160;</td>
+          <td class="paramname"><em>manager</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">ASensorList</a> *&#160;</td>
+          <td class="paramname"><em>list</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Returns the list of available sensors. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/group___storage.jd b/docs/html-ndk/ndk/reference/group___storage.jd
new file mode 100644
index 0000000..674bc48
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/group___storage.jd
@@ -0,0 +1,458 @@
+page.title=Storage
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#files">Files</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Storage</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:obb_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obb_8h.html">obb.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:storage__manager_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="storage__manager_8h.html">storage_manager.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaa5037fe4c0d785a50fc62ac2de9844c3"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a></td></tr>
+<tr class="separator:gaa5037fe4c0d785a50fc62ac2de9844c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga419f40803228bca62e32beb911ab28e2"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a></td></tr>
+<tr class="separator:ga419f40803228bca62e32beb911ab28e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf077d06586fa4c0212baa2fe458b9617"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#gaf077d06586fa4c0212baa2fe458b9617">AStorageManager_obbCallbackFunc</a> )(const char *filename, const int32_t state, void *data)</td></tr>
+<tr class="separator:gaf077d06586fa4c0212baa2fe458b9617"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gae4d5251432e1a9e6803c0240cc492e18"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___storage.html#ggae4d5251432e1a9e6803c0240cc492e18a33e2ae83b4c25d33a4335dccf1de1c3a">AOBBINFO_OVERLAY</a> = 0x0001
+ }</td></tr>
+<tr class="separator:gae4d5251432e1a9e6803c0240cc492e18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae8a3b6a5d0d3244ed73924ab2421a0d0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a2a9c420e6008c108a7198fd861c042d5">AOBB_STATE_MOUNTED</a> = 1, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a6710bb5b68cfc115eedcde2aafd8a667">AOBB_STATE_UNMOUNTED</a> = 2, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a50642881107d6673aace1494a5d6fce2">AOBB_STATE_ERROR_INTERNAL</a> = 20, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a324da2b8fea5875339d442d1f2d0b45b">AOBB_STATE_ERROR_COULD_NOT_MOUNT</a> = 21, 
+<br/>
+&#160;&#160;<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a1f2b51b53fc57b57a9967f6ce0c88dbe">AOBB_STATE_ERROR_COULD_NOT_UNMOUNT</a> = 22, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a3ce8539aa8b531c9de1d16041322d7a8">AOBB_STATE_ERROR_NOT_MOUNTED</a> = 23, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a8b074af151167a965a550b9829fafb37">AOBB_STATE_ERROR_ALREADY_MOUNTED</a> = 24, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a2467a4b6a634680e12c288a7790ff66c">AOBB_STATE_ERROR_PERMISSION_DENIED</a> = 25
+<br/>
+ }</td></tr>
+<tr class="separator:gae8a3b6a5d0d3244ed73924ab2421a0d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7beb4f82e3bf9a4b8197917f92ac4d5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga7beb4f82e3bf9a4b8197917f92ac4d5e">AObbScanner_getObbInfo</a> (const char *filename)</td></tr>
+<tr class="separator:ga7beb4f82e3bf9a4b8197917f92ac4d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec5a4428008f545e829486099298031a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#gaec5a4428008f545e829486099298031a">AObbInfo_delete</a> (<a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *obbInfo)</td></tr>
+<tr class="separator:gaec5a4428008f545e829486099298031a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1ec7eee61541fa5a9b578801a35b9cf3"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga1ec7eee61541fa5a9b578801a35b9cf3">AObbInfo_getPackageName</a> (<a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *obbInfo)</td></tr>
+<tr class="separator:ga1ec7eee61541fa5a9b578801a35b9cf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd8471c6d866cffe4a32f3b5997c782c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#gacd8471c6d866cffe4a32f3b5997c782c">AObbInfo_getVersion</a> (<a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *obbInfo)</td></tr>
+<tr class="separator:gacd8471c6d866cffe4a32f3b5997c782c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga68d916570c756da9fd0d9096358300eb"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga68d916570c756da9fd0d9096358300eb">AObbInfo_getFlags</a> (<a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *obbInfo)</td></tr>
+<tr class="separator:ga68d916570c756da9fd0d9096358300eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1c21ed9e0848fcfc03547c95eeb48877"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga1c21ed9e0848fcfc03547c95eeb48877">AStorageManager_new</a> ()</td></tr>
+<tr class="separator:ga1c21ed9e0848fcfc03547c95eeb48877"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga184c06dd9cec0f21db138167d6b331ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga184c06dd9cec0f21db138167d6b331ed">AStorageManager_delete</a> (<a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *mgr)</td></tr>
+<tr class="separator:ga184c06dd9cec0f21db138167d6b331ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61bebaf43e57b4b7f57e7a24a62e9e3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga61bebaf43e57b4b7f57e7a24a62e9e3d">AStorageManager_mountObb</a> (<a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *mgr, const char *filename, const char *key, <a class="el" href="group___storage.html#gaf077d06586fa4c0212baa2fe458b9617">AStorageManager_obbCallbackFunc</a> cb, void *data)</td></tr>
+<tr class="separator:ga61bebaf43e57b4b7f57e7a24a62e9e3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4c32c8d2c780016fa36097d833b57809"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga4c32c8d2c780016fa36097d833b57809">AStorageManager_unmountObb</a> (<a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *mgr, const char *filename, const int force, <a class="el" href="group___storage.html#gaf077d06586fa4c0212baa2fe458b9617">AStorageManager_obbCallbackFunc</a> cb, void *data)</td></tr>
+<tr class="separator:ga4c32c8d2c780016fa36097d833b57809"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7572f2c650fc16cce1b0ab94e913a1ba"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga7572f2c650fc16cce1b0ab94e913a1ba">AStorageManager_isObbMounted</a> (<a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *mgr, const char *filename)</td></tr>
+<tr class="separator:ga7572f2c650fc16cce1b0ab94e913a1ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5c90305d627e0c768da37cb3e9f08c4"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#gad5c90305d627e0c768da37cb3e9f08c4">AStorageManager_getMountedObbPath</a> (<a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *mgr, const char *filename)</td></tr>
+<tr class="separator:gad5c90305d627e0c768da37cb3e9f08c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="gaa5037fe4c0d785a50fc62ac2de9844c3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> <a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> is an opaque type representing information for obb storage. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga419f40803228bca62e32beb911ab28e2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> <a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p><a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> manages application OBB storage, a pointer can be obtained with <a class="el" href="group___storage.html#ga1c21ed9e0848fcfc03547c95eeb48877">AStorageManager_new()</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaf077d06586fa4c0212baa2fe458b9617"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void(* AStorageManager_obbCallbackFunc)(const char *filename, const int32_t state, void *data)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Callback function for asynchronous calls made on OBB files.</p>
+<p>"state" is one of the following constants:</p>
+<ul>
+<li><a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a2a9c420e6008c108a7198fd861c042d5">AOBB_STATE_MOUNTED</a></li>
+<li><a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a6710bb5b68cfc115eedcde2aafd8a667">AOBB_STATE_UNMOUNTED</a></li>
+<li><a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a50642881107d6673aace1494a5d6fce2">AOBB_STATE_ERROR_INTERNAL</a></li>
+<li><a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a324da2b8fea5875339d442d1f2d0b45b">AOBB_STATE_ERROR_COULD_NOT_MOUNT</a></li>
+<li><a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a1f2b51b53fc57b57a9967f6ce0c88dbe">AOBB_STATE_ERROR_COULD_NOT_UNMOUNT</a></li>
+<li><a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a3ce8539aa8b531c9de1d16041322d7a8">AOBB_STATE_ERROR_NOT_MOUNTED</a></li>
+<li><a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a8b074af151167a965a550b9829fafb37">AOBB_STATE_ERROR_ALREADY_MOUNTED</a></li>
+<li><a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a2467a4b6a634680e12c288a7790ff66c">AOBB_STATE_ERROR_PERMISSION_DENIED</a> </li>
+</ul>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="gae4d5251432e1a9e6803c0240cc492e18"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Flag for an obb file, returned by <a class="el" href="group___storage.html#ga68d916570c756da9fd0d9096358300eb">AObbInfo_getFlags()</a>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggae4d5251432e1a9e6803c0240cc492e18a33e2ae83b4c25d33a4335dccf1de1c3a"></a>AOBBINFO_OVERLAY</em>&#160;</td><td class="fielddoc">
+<p>overlay </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="gae8a3b6a5d0d3244ed73924ab2421a0d0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">anonymous enum</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The different states of a OBB storage passed to <a class="el" href="group___storage.html#gaf077d06586fa4c0212baa2fe458b9617">AStorageManager_obbCallbackFunc()</a>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggae8a3b6a5d0d3244ed73924ab2421a0d0a2a9c420e6008c108a7198fd861c042d5"></a>AOBB_STATE_MOUNTED</em>&#160;</td><td class="fielddoc">
+<p>The OBB container is now mounted and ready for use. Can be returned as the status for callbacks made during asynchronous OBB actions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggae8a3b6a5d0d3244ed73924ab2421a0d0a6710bb5b68cfc115eedcde2aafd8a667"></a>AOBB_STATE_UNMOUNTED</em>&#160;</td><td class="fielddoc">
+<p>The OBB container is now unmounted and not usable. Can be returned as the status for callbacks made during asynchronous OBB actions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggae8a3b6a5d0d3244ed73924ab2421a0d0a50642881107d6673aace1494a5d6fce2"></a>AOBB_STATE_ERROR_INTERNAL</em>&#160;</td><td class="fielddoc">
+<p>There was an internal system error encountered while trying to mount the OBB. Can be returned as the status for callbacks made during asynchronous OBB actions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggae8a3b6a5d0d3244ed73924ab2421a0d0a324da2b8fea5875339d442d1f2d0b45b"></a>AOBB_STATE_ERROR_COULD_NOT_MOUNT</em>&#160;</td><td class="fielddoc">
+<p>The OBB could not be mounted by the system. Can be returned as the status for callbacks made during asynchronous OBB actions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggae8a3b6a5d0d3244ed73924ab2421a0d0a1f2b51b53fc57b57a9967f6ce0c88dbe"></a>AOBB_STATE_ERROR_COULD_NOT_UNMOUNT</em>&#160;</td><td class="fielddoc">
+<p>The OBB could not be unmounted. This most likely indicates that a file is in use on the OBB. Can be returned as the status for callbacks made during asynchronous OBB actions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggae8a3b6a5d0d3244ed73924ab2421a0d0a3ce8539aa8b531c9de1d16041322d7a8"></a>AOBB_STATE_ERROR_NOT_MOUNTED</em>&#160;</td><td class="fielddoc">
+<p>A call was made to unmount the OBB when it was not mounted. Can be returned as the status for callbacks made during asynchronous OBB actions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggae8a3b6a5d0d3244ed73924ab2421a0d0a8b074af151167a965a550b9829fafb37"></a>AOBB_STATE_ERROR_ALREADY_MOUNTED</em>&#160;</td><td class="fielddoc">
+<p>The OBB has already been mounted. Can be returned as the status for callbacks made during asynchronous OBB actions. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ggae8a3b6a5d0d3244ed73924ab2421a0d0a2467a4b6a634680e12c288a7790ff66c"></a>AOBB_STATE_ERROR_PERMISSION_DENIED</em>&#160;</td><td class="fielddoc">
+<p>The current application does not have permission to use this OBB. This could be because the OBB indicates it's owned by a different package. Can be returned as the status for callbacks made during asynchronous OBB actions. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gaec5a4428008f545e829486099298031a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AObbInfo_delete </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *&#160;</td>
+          <td class="paramname"><em>obbInfo</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Destroy the AObbInfo object. You must call this when finished with the object. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga68d916570c756da9fd0d9096358300eb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AObbInfo_getFlags </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *&#160;</td>
+          <td class="paramname"><em>obbInfo</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the flags of an OBB file. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1ec7eee61541fa5a9b578801a35b9cf3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* AObbInfo_getPackageName </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *&#160;</td>
+          <td class="paramname"><em>obbInfo</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the package name for the OBB. </p>
+
+</div>
+</div>
+<a class="anchor" id="gacd8471c6d866cffe4a32f3b5997c782c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t AObbInfo_getVersion </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *&#160;</td>
+          <td class="paramname"><em>obbInfo</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the version of an OBB file. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7beb4f82e3bf9a4b8197917f92ac4d5e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a>* AObbScanner_getObbInfo </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>filename</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Scan an OBB and get information about it. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga184c06dd9cec0f21db138167d6b331ed"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AStorageManager_delete </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *&#160;</td>
+          <td class="paramname"><em>mgr</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Release AStorageManager instance. </p>
+
+</div>
+</div>
+<a class="anchor" id="gad5c90305d627e0c768da37cb3e9f08c4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* AStorageManager_getMountedObbPath </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *&#160;</td>
+          <td class="paramname"><em>mgr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>filename</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Get the mounted path for an OBB. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga7572f2c650fc16cce1b0ab94e913a1ba"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int AStorageManager_isObbMounted </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *&#160;</td>
+          <td class="paramname"><em>mgr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>filename</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Check whether an OBB is mounted. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga61bebaf43e57b4b7f57e7a24a62e9e3d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AStorageManager_mountObb </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *&#160;</td>
+          <td class="paramname"><em>mgr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>filename</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___storage.html#gaf077d06586fa4c0212baa2fe458b9617">AStorageManager_obbCallbackFunc</a>&#160;</td>
+          <td class="paramname"><em>cb</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Attempts to mount an OBB file. This is an asynchronous operation. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1c21ed9e0848fcfc03547c95eeb48877"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a>* AStorageManager_new </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Obtains a new instance of AStorageManager. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga4c32c8d2c780016fa36097d833b57809"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void AStorageManager_unmountObb </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *&#160;</td>
+          <td class="paramname"><em>mgr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>filename</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const int&#160;</td>
+          <td class="paramname"><em>force</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="group___storage.html#gaf077d06586fa4c0212baa2fe458b9617">AStorageManager_obbCallbackFunc</a>&#160;</td>
+          <td class="paramname"><em>cb</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Attempts to unmount an OBB file. This is an asynchronous operation. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/input_8h.jd b/docs/html-ndk/ndk/reference/input_8h.jd
new file mode 100644
index 0000000..b614f91
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/input_8h.jd
@@ -0,0 +1,382 @@
+page.title=input.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">input.h File Reference<div class="ingroups"><a class="el" href="group___input.html">Input</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br/>
+<code>#include &lt;sys/types.h&gt;</code><br/>
+<code>#include &lt;<a class="el" href="keycodes_8h.html">android/keycodes.h</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="looper_8h.html">android/looper.h</a>&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:gaeb170c0fbeeed1d999160566f09f169e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaeb170c0fbeeed1d999160566f09f169e">AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT</a>&#160;&#160;&#160;8</td></tr>
+<tr class="separator:gaeb170c0fbeeed1d999160566f09f169e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gac35dbbc035371e799d8badabc981e8fa"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a></td></tr>
+<tr class="separator:gac35dbbc035371e799d8badabc981e8fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga21d8182651f4b61ae558560023e8339c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a></td></tr>
+<tr class="separator:ga21d8182651f4b61ae558560023e8339c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gabc6126af1d45847bc59afa0aa3216b04"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04a9506627d5377c67dbc7fc58804b2cdfd">AKEY_STATE_UNKNOWN</a> = -1, 
+<a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04afa14022f587487c24d401c87e71c8e28">AKEY_STATE_UP</a> = 0, 
+<a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04a286ec0a7aff5903a982be0cd6785b62c">AKEY_STATE_DOWN</a> = 1, 
+<a class="el" href="group___input.html#ggabc6126af1d45847bc59afa0aa3216b04ad09fd9fe458ca6c66ead9b9a75c56192">AKEY_STATE_VIRTUAL</a> = 2
+ }</td></tr>
+<tr class="separator:gabc6126af1d45847bc59afa0aa3216b04"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadc29c2ff13d900c2f185ee95427fb06c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cae0a3cb26517b3f876beb37594494526d">AMETA_NONE</a> = 0, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caba44b1077427e4da1d202e0c8f772881">AMETA_ALT_ON</a> = 0x02, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca256c74b768ecee57e3218e81ae6945df">AMETA_ALT_LEFT_ON</a> = 0x10, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca985db074c0f44749ca86b5cc0454056a">AMETA_ALT_RIGHT_ON</a> = 0x20, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caa3d5f49c3a55b653a94c798a2c93b197">AMETA_SHIFT_ON</a> = 0x01, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06caa01fa027cdd8951530437bcbe04c3ed7">AMETA_SHIFT_LEFT_ON</a> = 0x40, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cac52930581c339216218a6f50c5b57aa1">AMETA_SHIFT_RIGHT_ON</a> = 0x80, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca8af1e90950a728baca807a83e50b22ea">AMETA_SYM_ON</a> = 0x04, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca545b31b72b0454c22c170ff534ddfdf1">AMETA_FUNCTION_ON</a> = 0x08, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cabe927318a2a11a46be3e9d78dbd81ef5">AMETA_CTRL_ON</a> = 0x1000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca752c837afd5ff0fcf75ddee7b6808be6">AMETA_CTRL_LEFT_ON</a> = 0x2000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca0ab007e367ae136b873b3e6636747419">AMETA_CTRL_RIGHT_ON</a> = 0x4000, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca9c04e7c2ad1f0f41af60402188a29c4a">AMETA_META_ON</a> = 0x10000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca6f923de8f2cd72e3ad86149c0747906f">AMETA_META_LEFT_ON</a> = 0x20000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafdf56d1259ae16c97161c443d7949bdf">AMETA_META_RIGHT_ON</a> = 0x40000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafc467c98d509b0de28b298801a0c3e37">AMETA_CAPS_LOCK_ON</a> = 0x100000, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06ca15d234534a6870add5594f02b7333dc6">AMETA_NUM_LOCK_ON</a> = 0x200000, 
+<a class="el" href="group___input.html#ggadc29c2ff13d900c2f185ee95427fb06cafe8dacdc6566f655a3eab73ea4a9af5a">AMETA_SCROLL_LOCK_ON</a> = 0x400000
+<br/>
+ }</td></tr>
+<tr class="separator:gadc29c2ff13d900c2f185ee95427fb06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61dadd085c1777f559549e05962b2c9e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___input.html#gga61dadd085c1777f559549e05962b2c9ea696f0d7635f7a24c17d3f1e4ccdd44ba">AINPUT_EVENT_TYPE_KEY</a> = 1, 
+<a class="el" href="group___input.html#gga61dadd085c1777f559549e05962b2c9ea2182dfda2cceb5425dcc2823b9b6b56a">AINPUT_EVENT_TYPE_MOTION</a> = 2
+ }</td></tr>
+<tr class="separator:ga61dadd085c1777f559549e05962b2c9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga726ca809ffd3d67ab4b8476646f26635"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635a123c3bd18fd93b53d8aedbe7597f7b49">AKEY_EVENT_ACTION_DOWN</a> = 0, 
+<a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635abf18b7c5384c5de8657a0650f8da57c3">AKEY_EVENT_ACTION_UP</a> = 1, 
+<a class="el" href="group___input.html#gga726ca809ffd3d67ab4b8476646f26635a08e2d927e155478ee66ec46ebd845ab0">AKEY_EVENT_ACTION_MULTIPLE</a> = 2
+ }</td></tr>
+<tr class="separator:ga726ca809ffd3d67ab4b8476646f26635"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0411cd49bb5b71852cecd93bcbf0ca2d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da6473a1afc0cc39e029c2a217bc57cdba">AKEY_EVENT_FLAG_WOKE_HERE</a> = 0x1, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da7dbb272c7b28be9c084df3446a629f32">AKEY_EVENT_FLAG_SOFT_KEYBOARD</a> = 0x2, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dadc0a063ca412b0ea08474df422bf9b41">AKEY_EVENT_FLAG_KEEP_TOUCH_MODE</a> = 0x4, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dae1e7ec188b2404fadd94cfba89afd5d6">AKEY_EVENT_FLAG_FROM_SYSTEM</a> = 0x8, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dab9dbcf990d1e4405e32f847fdea52013">AKEY_EVENT_FLAG_EDITOR_ACTION</a> = 0x10, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da3198fad5ab75df614bb41f0f602a9e55">AKEY_EVENT_FLAG_CANCELED</a> = 0x20, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2dad4b5eba5b14e4076c69bc7185f2804f8">AKEY_EVENT_FLAG_VIRTUAL_HARD_KEY</a> = 0x40, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da39f9f7bdf2e256db0e2a8a5dfbfb7185">AKEY_EVENT_FLAG_LONG_PRESS</a> = 0x80, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2daf09856f03f2fffee9a82cb8e508efb7a">AKEY_EVENT_FLAG_CANCELED_LONG_PRESS</a> = 0x100, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da91e70ab527f27a1779f4550d457f1689">AKEY_EVENT_FLAG_TRACKING</a> = 0x200, 
+<a class="el" href="group___input.html#gga0411cd49bb5b71852cecd93bcbf0ca2da14f574126d2544863fa8042ddd0f48c0">AKEY_EVENT_FLAG_FALLBACK</a> = 0x400
+<br/>
+ }</td></tr>
+<tr class="separator:ga0411cd49bb5b71852cecd93bcbf0ca2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabed82baf7f470b522273a3e37c24c600"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600abf84a22c84d4b7228102b80f3af92a4f">AMOTION_EVENT_ACTION_MASK</a> = 0xff, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a51384339fbb57c0087f7f50c45d9cff3">AMOTION_EVENT_ACTION_POINTER_INDEX_MASK</a> = 0xff00, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a225e61c48ba334abc1b5811db02edcf1">AMOTION_EVENT_ACTION_DOWN</a> = 0, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a43798b2b7a6de4616d150b2438b8419e">AMOTION_EVENT_ACTION_UP</a> = 1, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a41c56c4e772953fce60c93bc671639a3">AMOTION_EVENT_ACTION_MOVE</a> = 2, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a3952b960f5eb8c4f55b42741e286b74e">AMOTION_EVENT_ACTION_CANCEL</a> = 3, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a7c3c96b74af4c8304b8137ac6d201517">AMOTION_EVENT_ACTION_OUTSIDE</a> = 4, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a1618c641fd3f49fa7483f298d05b3cd2">AMOTION_EVENT_ACTION_POINTER_DOWN</a> = 5, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600af2ef56aa7220eeb2073b9b028737bc1e">AMOTION_EVENT_ACTION_POINTER_UP</a> = 6, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a84bc9fb3c01ff7ca9ee452a510e7de60">AMOTION_EVENT_ACTION_HOVER_MOVE</a> = 7, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a45ba62b1e6fab4e84d5782d7c35ced04">AMOTION_EVENT_ACTION_SCROLL</a> = 8, 
+<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600a247b2c60ad92f3130ad43c907986ffb3">AMOTION_EVENT_ACTION_HOVER_ENTER</a> = 9, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabed82baf7f470b522273a3e37c24c600ac00b1eacfbea779863abf3fcf02134aa">AMOTION_EVENT_ACTION_HOVER_EXIT</a> = 10
+<br/>
+ }</td></tr>
+<tr class="separator:gabed82baf7f470b522273a3e37c24c600"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab04a0655cd1e3bcac5e8f48c18df1a57"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___input.html#ggab04a0655cd1e3bcac5e8f48c18df1a57a200623e1e4eee7797cad30917d289d7a">AMOTION_EVENT_FLAG_WINDOW_IS_OBSCURED</a> = 0x1
+ }</td></tr>
+<tr class="separator:gab04a0655cd1e3bcac5e8f48c18df1a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga385c44f6fb256e5716a2302a5b940388"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a37dd7496968e6defbecc3c8d6ab2734d">AMOTION_EVENT_EDGE_FLAG_NONE</a> = 0, 
+<a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a915e1ade9b600d11a3c70a17a88de757">AMOTION_EVENT_EDGE_FLAG_TOP</a> = 0x01, 
+<a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388ad8b662839787e1c7dd2616f32c02aaeb">AMOTION_EVENT_EDGE_FLAG_BOTTOM</a> = 0x02, 
+<a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388afb70c13f16daade25ba8132a5ea3cf52">AMOTION_EVENT_EDGE_FLAG_LEFT</a> = 0x04, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga385c44f6fb256e5716a2302a5b940388a7d45674e03f1876a43d4810508905078">AMOTION_EVENT_EDGE_FLAG_RIGHT</a> = 0x08
+<br/>
+ }</td></tr>
+<tr class="separator:ga385c44f6fb256e5716a2302a5b940388"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabc5c98fcc1211af2b80116dd6e0a035d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5f4b5b009634039a1f361048a5fc6064">AMOTION_EVENT_AXIS_X</a> = 0, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da64f7de8558265bd8179d206eb33eff6c">AMOTION_EVENT_AXIS_Y</a> = 1, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da3b4fd0f17cfdeb6a055babecd2b0ded8">AMOTION_EVENT_AXIS_PRESSURE</a> = 2, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da4baba3ccaec881089a864ba6deaf8bd6">AMOTION_EVENT_AXIS_SIZE</a> = 3, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da792b9e01044a2e43e7f80e5559db20c2">AMOTION_EVENT_AXIS_TOUCH_MAJOR</a> = 4, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa8b24b0f01f24898a36e5751c8eca63c">AMOTION_EVENT_AXIS_TOUCH_MINOR</a> = 5, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa273d64c392f86ae789fd5e24661ba0a">AMOTION_EVENT_AXIS_TOOL_MAJOR</a> = 6, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadebd200b37ffaf36b94e7e478c559142">AMOTION_EVENT_AXIS_TOOL_MINOR</a> = 7, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da114f2b3fc233ccf7a4470787c31457d2">AMOTION_EVENT_AXIS_ORIENTATION</a> = 8, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dad11be04b4b81715cad905ee9fa348e99">AMOTION_EVENT_AXIS_VSCROLL</a> = 9, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da92955e6b0f3f82af66a505c854e9edff">AMOTION_EVENT_AXIS_HSCROLL</a> = 10, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5a689e572da9bc5feafcb6c011368305">AMOTION_EVENT_AXIS_Z</a> = 11, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da689b612864177d6b57d4181442e3e38e">AMOTION_EVENT_AXIS_RX</a> = 12, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daa20188da209300e1f80f6f5bd4058e13">AMOTION_EVENT_AXIS_RY</a> = 13, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da381948b3321afd390ad164345eb9206b">AMOTION_EVENT_AXIS_RZ</a> = 14, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da04245c76cb9b32dcba920661f11ac9da">AMOTION_EVENT_AXIS_HAT_X</a> = 15, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da98c323321d908db459e7cf86a7e8a482">AMOTION_EVENT_AXIS_HAT_Y</a> = 16, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae4c65c3b1bd2946ff9e18c6041cdb591">AMOTION_EVENT_AXIS_LTRIGGER</a> = 17, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da116e80c6be166290ca481fefa5de38c1">AMOTION_EVENT_AXIS_RTRIGGER</a> = 18, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da6d1f5d64e607104964eb43d8fae07a4f">AMOTION_EVENT_AXIS_THROTTLE</a> = 19, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da318a0782f895949407fc192fc4280257">AMOTION_EVENT_AXIS_RUDDER</a> = 20, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab0ae83ebd74e672bb35378b92a440b1d">AMOTION_EVENT_AXIS_WHEEL</a> = 21, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab0223f235a6044815918af2abafcbf16">AMOTION_EVENT_AXIS_GAS</a> = 22, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae3a99764f3681dd9e094852bb2489ece">AMOTION_EVENT_AXIS_BRAKE</a> = 23, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae800909411a1e83173b0eef7aa458d0e">AMOTION_EVENT_AXIS_DISTANCE</a> = 24, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dafca0a235f69c4b38bfc95e7a7b8d9ab1">AMOTION_EVENT_AXIS_TILT</a> = 25, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadcc18afd3a7069412617df34db5a27bc">AMOTION_EVENT_AXIS_GENERIC_1</a> = 32, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dac4addf06abfa6c76f0578ddde049aad5">AMOTION_EVENT_AXIS_GENERIC_2</a> = 33, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dac7df57ef5082e10be83f66d7477bce9c">AMOTION_EVENT_AXIS_GENERIC_3</a> = 34, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da321873d126b7d545665096694cb7d9d9">AMOTION_EVENT_AXIS_GENERIC_4</a> = 35, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da9b47cef7060197e1b0302a8a718c3085">AMOTION_EVENT_AXIS_GENERIC_5</a> = 36, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daad7e47a1b5fb66864b6d988374f50a84">AMOTION_EVENT_AXIS_GENERIC_6</a> = 37, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da222c06f51a60e59504b635dbf89a025b">AMOTION_EVENT_AXIS_GENERIC_7</a> = 38, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dab59a8a373a913e40b146ed762976d6fe">AMOTION_EVENT_AXIS_GENERIC_8</a> = 39, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da721fa0fbca8b22f1ecc8d3870f4e7443">AMOTION_EVENT_AXIS_GENERIC_9</a> = 40, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da29ba08f4ddc658e0127ee5bc08d185f2">AMOTION_EVENT_AXIS_GENERIC_10</a> = 41, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dafc64a4b307f62bb12b645918aa7edb57">AMOTION_EVENT_AXIS_GENERIC_11</a> = 42, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dae5d32b3e9cec4936ae1e074f320c3063">AMOTION_EVENT_AXIS_GENERIC_12</a> = 43, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da5f19f5bc52e5eaec5ebd4f07aad12180">AMOTION_EVENT_AXIS_GENERIC_13</a> = 44, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035dadb866d826ecf25161d7c7f86166e149b">AMOTION_EVENT_AXIS_GENERIC_14</a> = 45, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035da7e86befc8502b8df687284f3c40b2eca">AMOTION_EVENT_AXIS_GENERIC_15</a> = 46, 
+<a class="el" href="group___input.html#ggabc5c98fcc1211af2b80116dd6e0a035daaaa011ba929b18c6da71153638f92336">AMOTION_EVENT_AXIS_GENERIC_16</a> = 47
+<br/>
+ }</td></tr>
+<tr class="separator:gabc5c98fcc1211af2b80116dd6e0a035d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac36f475ca5b446f4fde4c9b90bec77c8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8ab388f65477b9dd4c51e6367111168d65">AMOTION_EVENT_BUTTON_PRIMARY</a> = 1 &lt;&lt; 0, 
+<a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a08118700ecb4e147528a0e725afc9451">AMOTION_EVENT_BUTTON_SECONDARY</a> = 1 &lt;&lt; 1, 
+<a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8ae6e2af1e7065e035e8a10a595827180f">AMOTION_EVENT_BUTTON_TERTIARY</a> = 1 &lt;&lt; 2, 
+<a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a1841d075a2992ff7fbefa3fd50189b86">AMOTION_EVENT_BUTTON_BACK</a> = 1 &lt;&lt; 3, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggac36f475ca5b446f4fde4c9b90bec77c8a4105edf43f7748c52c859cc5aa7dc438">AMOTION_EVENT_BUTTON_FORWARD</a> = 1 &lt;&lt; 4
+<br/>
+ }</td></tr>
+<tr class="separator:gac36f475ca5b446f4fde4c9b90bec77c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga05589fbab0657f08285ebdfe93f5ec9e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9ea7e1ea0c955ebbac1349866e8995e0208">AMOTION_EVENT_TOOL_TYPE_UNKNOWN</a> = 0, 
+<a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eafd789262defb8a268fa80d26b0c30bcc">AMOTION_EVENT_TOOL_TYPE_FINGER</a> = 1, 
+<a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eaf05dc95a74e560c89cec1f3100185fc7">AMOTION_EVENT_TOOL_TYPE_STYLUS</a> = 2, 
+<a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9ea7be0c750d7d6719e7c948914400ae0de">AMOTION_EVENT_TOOL_TYPE_MOUSE</a> = 3, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga05589fbab0657f08285ebdfe93f5ec9eaf9932f65b5b6b5800fb5873a60dbf0cb">AMOTION_EVENT_TOOL_TYPE_ERASER</a> = 4
+<br/>
+ }</td></tr>
+<tr class="separator:ga05589fbab0657f08285ebdfe93f5ec9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga16af7b253440dadd46a80a4b9fddba4d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4daae438f475d03ea60fd9fb356abd7fa01">AINPUT_SOURCE_CLASS_MASK</a> = 0x000000ff, 
+<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4dafd6d5e71f09f6452acf017559481444c">AINPUT_SOURCE_CLASS_NONE</a> = 0x00000000, 
+<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4dacf1bf3d7b3c6e59f907bdffc9b33370e">AINPUT_SOURCE_CLASS_BUTTON</a> = 0x00000001, 
+<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da7495274e98fb30dee3dfd903b878cf47">AINPUT_SOURCE_CLASS_POINTER</a> = 0x00000002, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da078a18d85d078412721c336a879bcc1a">AINPUT_SOURCE_CLASS_NAVIGATION</a> = 0x00000004, 
+<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4da682f6982bb55ee809f6acd2deb550167">AINPUT_SOURCE_CLASS_POSITION</a> = 0x00000008, 
+<a class="el" href="group___input.html#gga16af7b253440dadd46a80a4b9fddba4daaaeffb6442807dd96ec62e9d8a696b57">AINPUT_SOURCE_CLASS_JOYSTICK</a> = 0x00000010
+<br/>
+ }</td></tr>
+<tr class="separator:ga16af7b253440dadd46a80a4b9fddba4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba01db17f4a2bfbc3db60dc172972a25"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ae9348bc04cdaa88b5b010f77a4945454">AINPUT_SOURCE_UNKNOWN</a> = 0x00000000, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a9860918666dd8c0b9d00a8da7af51e6d">AINPUT_SOURCE_KEYBOARD</a> = 0x00000100 | AINPUT_SOURCE_CLASS_BUTTON, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ad0fbfeff9f8d57104bff14c70ce5e3ef">AINPUT_SOURCE_DPAD</a> = 0x00000200 | AINPUT_SOURCE_CLASS_BUTTON, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a6417cb50ecd6ade48c708268434a49d3">AINPUT_SOURCE_GAMEPAD</a> = 0x00000400 | AINPUT_SOURCE_CLASS_BUTTON, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a55ea411f927aed8964fa72fec0da444f">AINPUT_SOURCE_TOUCHSCREEN</a> = 0x00001000 | AINPUT_SOURCE_CLASS_POINTER, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ae71d3dcbd004bccb6e00fde47097cd86">AINPUT_SOURCE_MOUSE</a> = 0x00002000 | AINPUT_SOURCE_CLASS_POINTER, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a86d4983c71432b27634ba41a64bffdf9">AINPUT_SOURCE_STYLUS</a> = 0x00004000 | AINPUT_SOURCE_CLASS_POINTER, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a7e49d9153c86f60f626d7f797f4e78b6">AINPUT_SOURCE_TRACKBALL</a> = 0x00010000 | AINPUT_SOURCE_CLASS_NAVIGATION, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a7e0715d4b544653ab11893434172a2ef">AINPUT_SOURCE_TOUCHPAD</a> = 0x00100000 | AINPUT_SOURCE_CLASS_POSITION, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25a3712c4e4fb8ad7f6ae6e40d48e5c6ee7">AINPUT_SOURCE_TOUCH_NAVIGATION</a> = 0x00200000 | AINPUT_SOURCE_CLASS_NONE, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25afb28f10dc074e7f7435f5904c513edb5">AINPUT_SOURCE_JOYSTICK</a> = 0x01000000 | AINPUT_SOURCE_CLASS_JOYSTICK, 
+<a class="el" href="group___input.html#ggaba01db17f4a2bfbc3db60dc172972a25ab04317e7dd273ff5c87038df67d9796e">AINPUT_SOURCE_ANY</a> = 0xffffff00
+<br/>
+ }</td></tr>
+<tr class="separator:gaba01db17f4a2bfbc3db60dc172972a25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf105ae5beaca1dee30ae54530691fce"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fcea32cb7ce34cdce7095962f0766cc6c3ac">AINPUT_KEYBOARD_TYPE_NONE</a> = 0, 
+<a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fceaf0226d750ea830eb557ae68bd4a1c82a">AINPUT_KEYBOARD_TYPE_NON_ALPHABETIC</a> = 1, 
+<a class="el" href="group___input.html#ggaaf105ae5beaca1dee30ae54530691fceaba1f5ab6bc79749ba96a5d2a3af0e574">AINPUT_KEYBOARD_TYPE_ALPHABETIC</a> = 2
+ }</td></tr>
+<tr class="separator:gaaf105ae5beaca1dee30ae54530691fce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga80155586fa275b28773c9b203f52caba"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa0e5816bc48cdb33f2b488a109596ffe1">AINPUT_MOTION_RANGE_X</a> = AMOTION_EVENT_AXIS_X, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaab48108c9450ea1b7cd021be7d8cbc332">AINPUT_MOTION_RANGE_Y</a> = AMOTION_EVENT_AXIS_Y, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa79aca706b12b28d0ab14762902fed31a">AINPUT_MOTION_RANGE_PRESSURE</a> = AMOTION_EVENT_AXIS_PRESSURE, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa46f3a6cf859fb161cd29398d8448c688">AINPUT_MOTION_RANGE_SIZE</a> = AMOTION_EVENT_AXIS_SIZE, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa7ead43624c96e165fd8a25e77148aa67">AINPUT_MOTION_RANGE_TOUCH_MAJOR</a> = AMOTION_EVENT_AXIS_TOUCH_MAJOR, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa301181a0f20681135c15010b39bb575d">AINPUT_MOTION_RANGE_TOUCH_MINOR</a> = AMOTION_EVENT_AXIS_TOUCH_MINOR, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaaa860f54aa9e5a269dba6a54bbcf3c27c">AINPUT_MOTION_RANGE_TOOL_MAJOR</a> = AMOTION_EVENT_AXIS_TOOL_MAJOR, 
+<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaa19226f6cf713c1b4d0973a163daf6cf1">AINPUT_MOTION_RANGE_TOOL_MINOR</a> = AMOTION_EVENT_AXIS_TOOL_MINOR, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga80155586fa275b28773c9b203f52cabaaf9be9c04a41b610d994a3d1d7e90d06d">AINPUT_MOTION_RANGE_ORIENTATION</a> = AMOTION_EVENT_AXIS_ORIENTATION
+<br/>
+ }</td></tr>
+<tr class="separator:ga80155586fa275b28773c9b203f52caba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga8292ae06aa8120c52d7380d228600b9c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga8292ae06aa8120c52d7380d228600b9c">AInputEvent_getType</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *event)</td></tr>
+<tr class="separator:ga8292ae06aa8120c52d7380d228600b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9dd3fd81e51dbfde19ab861541242aa1"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga9dd3fd81e51dbfde19ab861541242aa1">AInputEvent_getDeviceId</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *event)</td></tr>
+<tr class="separator:ga9dd3fd81e51dbfde19ab861541242aa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac90d4b497669dbc709ec9650db4e49be"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gac90d4b497669dbc709ec9650db4e49be">AInputEvent_getSource</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *event)</td></tr>
+<tr class="separator:gac90d4b497669dbc709ec9650db4e49be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga36ec0b59f98f86a7ca263ba91279896d"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga36ec0b59f98f86a7ca263ba91279896d">AKeyEvent_getAction</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:ga36ec0b59f98f86a7ca263ba91279896d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2a18e98efe0c4ccb6f39bb13c555010e"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga2a18e98efe0c4ccb6f39bb13c555010e">AKeyEvent_getFlags</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:ga2a18e98efe0c4ccb6f39bb13c555010e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6b01ecd60018a5445f4917a861ca9466"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga6b01ecd60018a5445f4917a861ca9466">AKeyEvent_getKeyCode</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:ga6b01ecd60018a5445f4917a861ca9466"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a0a846b7a195aeb290dfcd2250137d9"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga4a0a846b7a195aeb290dfcd2250137d9">AKeyEvent_getScanCode</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:ga4a0a846b7a195aeb290dfcd2250137d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabdda62b40b22727af2fb41740bf4787b"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gabdda62b40b22727af2fb41740bf4787b">AKeyEvent_getMetaState</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:gabdda62b40b22727af2fb41740bf4787b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5358fe3ebbd4b5b2f88a4ad2eba6f885"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga5358fe3ebbd4b5b2f88a4ad2eba6f885">AKeyEvent_getRepeatCount</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:ga5358fe3ebbd4b5b2f88a4ad2eba6f885"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf475b6f0860bdfca4ceea7bc46eab1a9"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaf475b6f0860bdfca4ceea7bc46eab1a9">AKeyEvent_getDownTime</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:gaf475b6f0860bdfca4ceea7bc46eab1a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae3eac7d68195d1767c947ca267842696"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gae3eac7d68195d1767c947ca267842696">AKeyEvent_getEventTime</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *key_event)</td></tr>
+<tr class="separator:gae3eac7d68195d1767c947ca267842696"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga73ea2093cc2343675ac43dd08bef4247"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga73ea2093cc2343675ac43dd08bef4247">AMotionEvent_getAction</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga73ea2093cc2343675ac43dd08bef4247"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2891d19197c070207098fa48adeb35af"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga2891d19197c070207098fa48adeb35af">AMotionEvent_getFlags</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga2891d19197c070207098fa48adeb35af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5644f0d952e3dea57ba9f7ce51dff2bb"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga5644f0d952e3dea57ba9f7ce51dff2bb">AMotionEvent_getMetaState</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga5644f0d952e3dea57ba9f7ce51dff2bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1aa7ebb749416491b6f0c55ae87ddf49"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga1aa7ebb749416491b6f0c55ae87ddf49">AMotionEvent_getButtonState</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga1aa7ebb749416491b6f0c55ae87ddf49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad7e1f0caa4c27194d4a8756a18432299"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gad7e1f0caa4c27194d4a8756a18432299">AMotionEvent_getEdgeFlags</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:gad7e1f0caa4c27194d4a8756a18432299"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad44be7697e68891688cd7bcfaffec209"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gad44be7697e68891688cd7bcfaffec209">AMotionEvent_getDownTime</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:gad44be7697e68891688cd7bcfaffec209"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7e13fbf3cff0700b0b620284ebdd3a33"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga7e13fbf3cff0700b0b620284ebdd3a33">AMotionEvent_getEventTime</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga7e13fbf3cff0700b0b620284ebdd3a33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7a94ce622eb78a17737fd8bddbf86e21"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga7a94ce622eb78a17737fd8bddbf86e21">AMotionEvent_getXOffset</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga7a94ce622eb78a17737fd8bddbf86e21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7f6bd2c12d912f502c245b6ced6d3704"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga7f6bd2c12d912f502c245b6ced6d3704">AMotionEvent_getYOffset</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga7f6bd2c12d912f502c245b6ced6d3704"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga81a9be07673a01f43fd0241c7b4c254f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga81a9be07673a01f43fd0241c7b4c254f">AMotionEvent_getXPrecision</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga81a9be07673a01f43fd0241c7b4c254f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae311e6e28bce4be905526f9ea71278ed"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gae311e6e28bce4be905526f9ea71278ed">AMotionEvent_getYPrecision</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:gae311e6e28bce4be905526f9ea71278ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga612e68d104adbc6d14d87510e8066bd8"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga612e68d104adbc6d14d87510e8066bd8">AMotionEvent_getPointerCount</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga612e68d104adbc6d14d87510e8066bd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga599e21a79c706807243a8ee31b116138"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga599e21a79c706807243a8ee31b116138">AMotionEvent_getPointerId</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga599e21a79c706807243a8ee31b116138"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2babe4e2e79952e004538f8f1878649c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga2babe4e2e79952e004538f8f1878649c">AMotionEvent_getToolType</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga2babe4e2e79952e004538f8f1878649c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe45e29ef138cc30592237ce479837f0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gafe45e29ef138cc30592237ce479837f0">AMotionEvent_getRawX</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:gafe45e29ef138cc30592237ce479837f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5a09c3d742a93270861aa05f24257c23"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga5a09c3d742a93270861aa05f24257c23">AMotionEvent_getRawY</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga5a09c3d742a93270861aa05f24257c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22e255a5fa52761cd92ce78af91e9757"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga22e255a5fa52761cd92ce78af91e9757">AMotionEvent_getX</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga22e255a5fa52761cd92ce78af91e9757"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga113f58a37e41f2a6c3007d68418edfa6"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga113f58a37e41f2a6c3007d68418edfa6">AMotionEvent_getY</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga113f58a37e41f2a6c3007d68418edfa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga97fcaa6cd08c9d54b35711e482e06c8d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga97fcaa6cd08c9d54b35711e482e06c8d">AMotionEvent_getPressure</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga97fcaa6cd08c9d54b35711e482e06c8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9b1f3c3df46b5269f9e74d2dd70c88a8"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga9b1f3c3df46b5269f9e74d2dd70c88a8">AMotionEvent_getSize</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga9b1f3c3df46b5269f9e74d2dd70c88a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9ac18fe19534e07d80441582f489d471"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga9ac18fe19534e07d80441582f489d471">AMotionEvent_getTouchMajor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga9ac18fe19534e07d80441582f489d471"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga65f71e257b5fcb29dcbaaf59b3fcb3a7"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga65f71e257b5fcb29dcbaaf59b3fcb3a7">AMotionEvent_getTouchMinor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga65f71e257b5fcb29dcbaaf59b3fcb3a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac04099690f278a6a27191c2027b12a77"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gac04099690f278a6a27191c2027b12a77">AMotionEvent_getToolMajor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:gac04099690f278a6a27191c2027b12a77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2222d459759ba4a8269647012d2718fb"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga2222d459759ba4a8269647012d2718fb">AMotionEvent_getToolMinor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:ga2222d459759ba4a8269647012d2718fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad28422998da15b789edcba6b8bc5d615"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gad28422998da15b789edcba6b8bc5d615">AMotionEvent_getOrientation</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index)</td></tr>
+<tr class="separator:gad28422998da15b789edcba6b8bc5d615"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9d364cdcebf85237f599b25861f38c21"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga9d364cdcebf85237f599b25861f38c21">AMotionEvent_getAxisValue</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, int32_t axis, size_t pointer_index)</td></tr>
+<tr class="separator:ga9d364cdcebf85237f599b25861f38c21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0aef34c236db6d7a56a50bf590be7bcc"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga0aef34c236db6d7a56a50bf590be7bcc">AMotionEvent_getHistorySize</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event)</td></tr>
+<tr class="separator:ga0aef34c236db6d7a56a50bf590be7bcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga523f1a760754206965b42b08d62f9346"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga523f1a760754206965b42b08d62f9346">AMotionEvent_getHistoricalEventTime</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t history_index)</td></tr>
+<tr class="separator:ga523f1a760754206965b42b08d62f9346"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5d36c2e7420001c86ae2aa1168fe6f83"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga5d36c2e7420001c86ae2aa1168fe6f83">AMotionEvent_getHistoricalRawX</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga5d36c2e7420001c86ae2aa1168fe6f83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6deb0e7690a93aa53e5872c2691b69fe"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga6deb0e7690a93aa53e5872c2691b69fe">AMotionEvent_getHistoricalRawY</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga6deb0e7690a93aa53e5872c2691b69fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga49a8ca89ff377b5ed2355e8d7220ae07"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga49a8ca89ff377b5ed2355e8d7220ae07">AMotionEvent_getHistoricalX</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga49a8ca89ff377b5ed2355e8d7220ae07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga30fc4e5d3ce144955859f8c97b51b73d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga30fc4e5d3ce144955859f8c97b51b73d">AMotionEvent_getHistoricalY</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga30fc4e5d3ce144955859f8c97b51b73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa8e9352ee5b043b3e1b6e2062d491010"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaa8e9352ee5b043b3e1b6e2062d491010">AMotionEvent_getHistoricalPressure</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:gaa8e9352ee5b043b3e1b6e2062d491010"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0a04bb7ec12928db7e62645e7fad3a9e"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga0a04bb7ec12928db7e62645e7fad3a9e">AMotionEvent_getHistoricalSize</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga0a04bb7ec12928db7e62645e7fad3a9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf437f223668b97f19ebdbad4b9cf4483"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaf437f223668b97f19ebdbad4b9cf4483">AMotionEvent_getHistoricalTouchMajor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:gaf437f223668b97f19ebdbad4b9cf4483"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga126715d966e989652aa1ae5d38e0e898"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga126715d966e989652aa1ae5d38e0e898">AMotionEvent_getHistoricalTouchMinor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga126715d966e989652aa1ae5d38e0e898"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga160a5830e791e8c42ae97f51b92233d2"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga160a5830e791e8c42ae97f51b92233d2">AMotionEvent_getHistoricalToolMajor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga160a5830e791e8c42ae97f51b92233d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafe01aa7576a6d1bce750fb8482355849"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gafe01aa7576a6d1bce750fb8482355849">AMotionEvent_getHistoricalToolMinor</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:gafe01aa7576a6d1bce750fb8482355849"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaab9cb8fa670175ecc73c75eed4e5cd3f"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaab9cb8fa670175ecc73c75eed4e5cd3f">AMotionEvent_getHistoricalOrientation</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:gaab9cb8fa670175ecc73c75eed4e5cd3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7ca740e1324f3cdb934252dce0c982d0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga7ca740e1324f3cdb934252dce0c982d0">AMotionEvent_getHistoricalAxisValue</a> (const <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *motion_event, int32_t axis, size_t pointer_index, size_t history_index)</td></tr>
+<tr class="separator:ga7ca740e1324f3cdb934252dce0c982d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga900711156bfb58d1a4b158da7874930f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga900711156bfb58d1a4b158da7874930f">AInputQueue_attachLooper</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue, <a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper, int ident, <a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">ALooper_callbackFunc</a> callback, void *data)</td></tr>
+<tr class="separator:ga900711156bfb58d1a4b158da7874930f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeebe9f83392ac79b31ca40a6fd4dbeff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gaeebe9f83392ac79b31ca40a6fd4dbeff">AInputQueue_detachLooper</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue)</td></tr>
+<tr class="separator:gaeebe9f83392ac79b31ca40a6fd4dbeff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2b72ad6ab5ef656e8c41163aa7871c96"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga2b72ad6ab5ef656e8c41163aa7871c96">AInputQueue_hasEvents</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue)</td></tr>
+<tr class="separator:ga2b72ad6ab5ef656e8c41163aa7871c96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga88de12e2b39787ba7d3e4ce2ea46a48c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga88de12e2b39787ba7d3e4ce2ea46a48c">AInputQueue_getEvent</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue, <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> **outEvent)</td></tr>
+<tr class="separator:ga88de12e2b39787ba7d3e4ce2ea46a48c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadecd32e6c7aefa4a508b355550d3eaa9"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#gadecd32e6c7aefa4a508b355550d3eaa9">AInputQueue_preDispatchEvent</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue, <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *event)</td></tr>
+<tr class="separator:gadecd32e6c7aefa4a508b355550d3eaa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga17e87e0f35d47d729eac31a0dfb1ac33"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___input.html#ga17e87e0f35d47d729eac31a0dfb1ac33">AInputQueue_finishEvent</a> (<a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue, <a class="el" href="group___input.html#gac35dbbc035371e799d8badabc981e8fa">AInputEvent</a> *event, int handled)</td></tr>
+<tr class="separator:ga17e87e0f35d47d729eac31a0dfb1ac33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/keycodes_8h.jd b/docs/html-ndk/ndk/reference/keycodes_8h.jd
new file mode 100644
index 0000000..b739820
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/keycodes_8h.jd
@@ -0,0 +1,358 @@
+page.title=keycodes.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">keycodes.h File Reference<div class="ingroups"><a class="el" href="group___input.html">Input</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;sys/types.h&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga6b7b47dd702d9e331586d485013fd1ea"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa593f8ae18990d627785719284a12a6f">AKEYCODE_UNKNOWN</a> = 0, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2dc78d3a93876b77402d2a7f02e4b899">AKEYCODE_SOFT_LEFT</a> = 1, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8cadfbfcaaa83fef168de13639adfcae">AKEYCODE_SOFT_RIGHT</a> = 2, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa526c2411b7476b7ae579f57a0378b2dd">AKEYCODE_HOME</a> = 3, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaeb71c74bf556ba72e9c8f8dcbe5453d0">AKEYCODE_BACK</a> = 4, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8b5720ebdd3576c2b536ec9228273d8f">AKEYCODE_CALL</a> = 5, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaff971957ae3a4e272b21987854e18d9b">AKEYCODE_ENDCALL</a> = 6, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa23f585ea17aeceaad2111c51ab289e79">AKEYCODE_0</a> = 7, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabcac88b54f8d764bc4573ecc5b9571b0">AKEYCODE_1</a> = 8, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2079c6fb75141968b60ed79fe895d6db">AKEYCODE_2</a> = 9, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa40ccc018c0637e4d938e66b789054551">AKEYCODE_3</a> = 10, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c2d141c3906bd97cfec91443356f7b">AKEYCODE_4</a> = 11, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0ca99d2be4a3723ba3406944ad623f6e">AKEYCODE_5</a> = 12, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa72bc6560e24d08ff8f3116dac9179079">AKEYCODE_6</a> = 13, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa27070499acdb6c527a285b3840ec7bff">AKEYCODE_7</a> = 14, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa93543b23683b33724ecf77ac5a8c19ab">AKEYCODE_8</a> = 15, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa31cd4d7c4e59cf7b057b6c248cff516d">AKEYCODE_9</a> = 16, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1461fbf54e3dcba96e5d6d0638c18305">AKEYCODE_STAR</a> = 17, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf448758c44899e41b67f76dfe3be51e9">AKEYCODE_POUND</a> = 18, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf2fd3133a88f3b6725834032bd74bd9e">AKEYCODE_DPAD_UP</a> = 19, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa84b721b13aae56c9f1d3c22b3d81627a">AKEYCODE_DPAD_DOWN</a> = 20, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa668dfb3ed79a37c2c07838c161c1b344">AKEYCODE_DPAD_LEFT</a> = 21, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac6f9d81b6239696a1836695bbfc6a975">AKEYCODE_DPAD_RIGHT</a> = 22, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5e9c93273fd39148f54167133aa5b9ae">AKEYCODE_DPAD_CENTER</a> = 23, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5b81e325d9efd633eef7535a5b538882">AKEYCODE_VOLUME_UP</a> = 24, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a882dae17080d3b5f3329e79db60c66">AKEYCODE_VOLUME_DOWN</a> = 25, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabecfbcb9b6f5e85fdfdfa98fbc3326e6">AKEYCODE_POWER</a> = 26, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8670880765756933d3d1a10186d39e26">AKEYCODE_CAMERA</a> = 27, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa95bd8c25adeaa570108c7403f08a2901">AKEYCODE_CLEAR</a> = 28, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa424a091c62d40f5d65908c9730ae9014">AKEYCODE_A</a> = 29, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa65d3bf8d6a8a6c2f7c1b08394f313758">AKEYCODE_B</a> = 30, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaeed584f454e508ce931bcb33d37adb04">AKEYCODE_C</a> = 31, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7e4cb3ef66209a2779be2c8239b57b51">AKEYCODE_D</a> = 32, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae218af7ceb207227bb10f0525e68a8d0">AKEYCODE_E</a> = 33, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa455f71ecfe59af0fbd901ac0d0a8d53a">AKEYCODE_F</a> = 34, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa165067e10464019411f768bba9e533d9">AKEYCODE_G</a> = 35, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad89a91a1500cb162f22962781ebfd9dc">AKEYCODE_H</a> = 36, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4d44b5e4a19580540d8d77bf5755d74b">AKEYCODE_I</a> = 37, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa70c259612ccec117d70afaef947a6a7a">AKEYCODE_J</a> = 38, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5ce56cf50d3632c275c524bd78d0d932">AKEYCODE_K</a> = 39, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab61c534fd0f4e56c4ba13861a2f5982b">AKEYCODE_L</a> = 40, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa43b19e5e5234ce90c8e7ef67dd0cabd1">AKEYCODE_M</a> = 41, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6c0b26804c89560a9e87c45f7f9fed36">AKEYCODE_N</a> = 42, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa249667bc4a59d99be1914535877329fb">AKEYCODE_O</a> = 43, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac68ef56b78bd0c8626cc68bb6cb9156f">AKEYCODE_P</a> = 44, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa932cf6ea8d87e6d6d97af658dd0fa206">AKEYCODE_Q</a> = 45, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaba25ac2c15a8edbbbff16a9fe6e74532">AKEYCODE_R</a> = 46, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae1ed25c28a8fce578cddb17ca6888ff6">AKEYCODE_S</a> = 47, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2feac8b458ef8eb9c0a0dd73766927c2">AKEYCODE_T</a> = 48, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac1a220314f986aae45d7fe3b35501595">AKEYCODE_U</a> = 49, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4043bc48fa55cce7825176052d6e199a">AKEYCODE_V</a> = 50, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0c80e98547c3daa01f3d9e7f4f00425">AKEYCODE_W</a> = 51, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaec585cebac89004faffbdc28dc6d81c5">AKEYCODE_X</a> = 52, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa06fc277ef25acdd89d64c18eed0daa9b">AKEYCODE_Y</a> = 53, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7439a09f219a0addc13c758ef7508cce">AKEYCODE_Z</a> = 54, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0ca0bfbdc67b2c6f76e8fcaaf782c227">AKEYCODE_COMMA</a> = 55, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9dd68c8ecebd4e274e8c357dcdfe8a04">AKEYCODE_PERIOD</a> = 56, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3dec175158abe8679bedd98ed1bc3e1a">AKEYCODE_ALT_LEFT</a> = 57, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacd9b6b0846c6999f5df47d29e58ac95d">AKEYCODE_ALT_RIGHT</a> = 58, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafb9875645596928cec46368e74499dc4">AKEYCODE_SHIFT_LEFT</a> = 59, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf9eab1348ae1e8f18ad5bf3c77df4212">AKEYCODE_SHIFT_RIGHT</a> = 60, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1b1bfda850b2acd0b60e8456e2bfa958">AKEYCODE_TAB</a> = 61, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa10389300ac5d70f8d9733564b3cab4e7">AKEYCODE_SPACE</a> = 62, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6c1c6752d5db5e02da51d8937e5e3c6f">AKEYCODE_SYM</a> = 63, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaded9ec81ae6dab451665317723b94083">AKEYCODE_EXPLORER</a> = 64, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaade96efe470f428bb5c4eaea6ffc3681c">AKEYCODE_ENVELOPE</a> = 65, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac784a7bbbfbdab05fab6c6a1f29c98ff">AKEYCODE_ENTER</a> = 66, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacd013221b457d98975dc47e49817e28a">AKEYCODE_DEL</a> = 67, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa929561086ae7b519fa962597bc85f171">AKEYCODE_GRAVE</a> = 68, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaca10bd34ad0abecfecace908b8cb92ca">AKEYCODE_MINUS</a> = 69, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0a197df7ec719c95ddcd6836e76c8498">AKEYCODE_EQUALS</a> = 70, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabdeda0d373aa37ef2ded5ffdfc008708">AKEYCODE_LEFT_BRACKET</a> = 71, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa084dfa52626040a08d374f8aec066e6a">AKEYCODE_RIGHT_BRACKET</a> = 72, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaac90eb064382e3c482ae86abb7b3f701">AKEYCODE_BACKSLASH</a> = 73, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac0a2920161f4f2d97b0b060614b23391">AKEYCODE_SEMICOLON</a> = 74, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab5518a8502914ea5f87ef5d29b32b1b1">AKEYCODE_APOSTROPHE</a> = 75, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa54c047be3811d637a33d9b3e39d16e1a">AKEYCODE_SLASH</a> = 76, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7284f79a266ede479b79726082642e16">AKEYCODE_AT</a> = 77, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe6e880f65bebbdd5246a4164c4ab37a">AKEYCODE_NUM</a> = 78, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0d3d29515a4815fe8d6d8d3291507a33">AKEYCODE_HEADSETHOOK</a> = 79, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa23be9506f92f6efe14d47306a39a2187">AKEYCODE_FOCUS</a> = 80, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7f72d867b311e0845aef732dcc66495">AKEYCODE_PLUS</a> = 81, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa707b85e89923b0f760be795972a87d76">AKEYCODE_MENU</a> = 82, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6115506352a5828532fc6a0b91683331">AKEYCODE_NOTIFICATION</a> = 83, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac644fd307fd0ef0d3ed3d2e074c1a4b7">AKEYCODE_SEARCH</a> = 84, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa42f8fe71e8d45b5a83d83d80c3da40e1">AKEYCODE_MEDIA_PLAY_PAUSE</a> = 85, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac4faa33993d80db1326073ea15a38e7d">AKEYCODE_MEDIA_STOP</a> = 86, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf5a6c3fc963e8163852b9a23e3a198b3">AKEYCODE_MEDIA_NEXT</a> = 87, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa81432c31b00d47f768c29163eb276acb">AKEYCODE_MEDIA_PREVIOUS</a> = 88, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaecd53183b84c23a2ca65670a23674319">AKEYCODE_MEDIA_REWIND</a> = 89, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa69e648024402af688d490a2041f15bca">AKEYCODE_MEDIA_FAST_FORWARD</a> = 90, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f6675d38f50e3556a8531839fd83f02">AKEYCODE_MUTE</a> = 91, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4fd0d4ea5b6898f4a40011b97a739a04">AKEYCODE_PAGE_UP</a> = 92, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0b7fe1c18f53e6328657858a88826393">AKEYCODE_PAGE_DOWN</a> = 93, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacdc7c004da1594fa156de87befef5f41">AKEYCODE_PICTSYMBOLS</a> = 94, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad6a1f88b2cc3b6ff8f1724eb01473ec3">AKEYCODE_SWITCH_CHARSET</a> = 95, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaef2d2ec912aaa9e7215aeab79f7fb086">AKEYCODE_BUTTON_A</a> = 96, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa721765c8f0bbcdb68af06817dbec8e53">AKEYCODE_BUTTON_B</a> = 97, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad622ad5df40d2fdf806abb2adda73b3d">AKEYCODE_BUTTON_C</a> = 98, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa21174962f95e32cd0345ce657d03ebc7">AKEYCODE_BUTTON_X</a> = 99, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6654a8b2c700f7783433c86fcdae7919">AKEYCODE_BUTTON_Y</a> = 100, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa06156b68e6de951b44fc662e1b16041f">AKEYCODE_BUTTON_Z</a> = 101, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa32e159826404c7d76c2a433c24de82a2">AKEYCODE_BUTTON_L1</a> = 102, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7c614b3966583b0ad027e45f594ede46">AKEYCODE_BUTTON_R1</a> = 103, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa36a38421637cfa5ebfd8a0296650cdf4">AKEYCODE_BUTTON_L2</a> = 104, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa46d487e9fe31855b7b46739bad58fe3e">AKEYCODE_BUTTON_R2</a> = 105, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68c5d8dcd8fe708ada8f4a4e17feb638">AKEYCODE_BUTTON_THUMBL</a> = 106, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9759d817172d268ced1748909a5f5fbe">AKEYCODE_BUTTON_THUMBR</a> = 107, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf3c818d106f4ec793a43749c4c26a8a4">AKEYCODE_BUTTON_START</a> = 108, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa598289bc85f647c237729126ea392a43">AKEYCODE_BUTTON_SELECT</a> = 109, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa19839eebec939407d901a33b75cf2594">AKEYCODE_BUTTON_MODE</a> = 110, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac52177e5508edacb8e9c6d3a25db4fb6">AKEYCODE_ESCAPE</a> = 111, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9516bc190d37fea27e07ddab0c607b51">AKEYCODE_FORWARD_DEL</a> = 112, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaaca9d0df6cc18492209eb287e659aeb1">AKEYCODE_CTRL_LEFT</a> = 113, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa99b317cf2f1eb6b06d0226e05223e60c">AKEYCODE_CTRL_RIGHT</a> = 114, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab9dcb68b35c85d380846c85f323868f1">AKEYCODE_CAPS_LOCK</a> = 115, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa78ff5c8316235635f76e3c3179e9a7fc">AKEYCODE_SCROLL_LOCK</a> = 116, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaaadfb2d920bbe422c096120d39811c58">AKEYCODE_META_LEFT</a> = 117, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68038455e2b0846db51f9957e0df9cb8">AKEYCODE_META_RIGHT</a> = 118, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1764b777aa56605f4029d3c71fe70722">AKEYCODE_FUNCTION</a> = 119, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14e22c69bcd47ffb4445ee18a4332d84">AKEYCODE_SYSRQ</a> = 120, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa047501f9cf9bce00e6048d8759ea3a23">AKEYCODE_BREAK</a> = 121, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7544f3de2fb5f78bec62af94a32fdc58">AKEYCODE_MOVE_HOME</a> = 122, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5605f49f5271430f5f150efb3cd0398a">AKEYCODE_MOVE_END</a> = 123, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa62f663d11e91af750a51ddd060b08644">AKEYCODE_INSERT</a> = 124, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafbf0a16c7746e5dee2fd3adbd50da88a">AKEYCODE_FORWARD</a> = 125, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa615cf6202b0ae0ed550f42f6c64b36a1">AKEYCODE_MEDIA_PLAY</a> = 126, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f4e0178c2028b3042b0a5948e38e4e4">AKEYCODE_MEDIA_PAUSE</a> = 127, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6788c6e1443140b0ec4d004d8293e998">AKEYCODE_MEDIA_CLOSE</a> = 128, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa317bffd44306b021c401d3a26b82a7f6">AKEYCODE_MEDIA_EJECT</a> = 129, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17e1eae0b245176aaa024a53411441f9">AKEYCODE_MEDIA_RECORD</a> = 130, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3b84f2c503a9e839f3d36e10e3307fcf">AKEYCODE_F1</a> = 131, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1360f7ec66aa6421e240dae637262e84">AKEYCODE_F2</a> = 132, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a4ce6105e12a3a9071cae2f40515085">AKEYCODE_F3</a> = 133, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa882050e4d0f917470a5b91fbf6ae9ebf">AKEYCODE_F4</a> = 134, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab01807c72b46620bb50fcb6abe24d937">AKEYCODE_F5</a> = 135, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa04a12e81ed80bb42ef5c63cedf0dc60">AKEYCODE_F6</a> = 136, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9583b8e4b0d994b7e3a193b67cf6020c">AKEYCODE_F7</a> = 137, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa55ca54d42d8df70de2ce9031db1344c8">AKEYCODE_F8</a> = 138, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0c8225c0ef98da730933ae914077dbc9">AKEYCODE_F9</a> = 139, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa60660b13acab39282d0558cdcc93474">AKEYCODE_F10</a> = 140, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa64cc7b1d8e53d90ff57c39d0b5a4dd22">AKEYCODE_F11</a> = 141, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa491000231e0ba221b6916b1d9d2c9fb7">AKEYCODE_F12</a> = 142, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad5e349eadd3255c6ad4982dc40ed23ef">AKEYCODE_NUM_LOCK</a> = 143, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa343df35e6a0ad0599e19b8ef7174909b">AKEYCODE_NUMPAD_0</a> = 144, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5c0ec8e42917fa9ac53977db3e6aeb17">AKEYCODE_NUMPAD_1</a> = 145, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4dfd17c2209908e1ec890e10a3211f89">AKEYCODE_NUMPAD_2</a> = 146, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa1efe1886a4b472b999215c0e81f7386">AKEYCODE_NUMPAD_3</a> = 147, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1fdd16681c1441b934f679b94fd0e4f8">AKEYCODE_NUMPAD_4</a> = 148, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf5916003e7c737a8cc06e52d2ee76c3b">AKEYCODE_NUMPAD_5</a> = 149, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa13b83389e0f5de129227af4b8d3f035d">AKEYCODE_NUMPAD_6</a> = 150, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaed9468951ef2887c07c8095c2e7d4c93">AKEYCODE_NUMPAD_7</a> = 151, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5f0a300566235720eb93fee9f2196642">AKEYCODE_NUMPAD_8</a> = 152, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad0c490e3965df546e2d5a83edf423d95">AKEYCODE_NUMPAD_9</a> = 153, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaac108b744e8f93af69158d146425236c">AKEYCODE_NUMPAD_DIVIDE</a> = 154, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa47ce00b838e7ee0a34066dc2595ac735">AKEYCODE_NUMPAD_MULTIPLY</a> = 155, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa2bee314dbbea0a349eb301d10256bbe">AKEYCODE_NUMPAD_SUBTRACT</a> = 156, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa9d2fefa9a3f6037f48b247e66dd28c35">AKEYCODE_NUMPAD_ADD</a> = 157, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6aab6b5914e120b43b3a1a8269e9cee1">AKEYCODE_NUMPAD_DOT</a> = 158, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa900e3bb0bc4ff70ba786f18ff4db0bd1">AKEYCODE_NUMPAD_COMMA</a> = 159, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa79432be5f7a44e99ddc3721fd9fd212e">AKEYCODE_NUMPAD_ENTER</a> = 160, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c1007a59641499ee5e1508e747c5ed">AKEYCODE_NUMPAD_EQUALS</a> = 161, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacc903e9eb495cf6cef7c6bc825f82f54">AKEYCODE_NUMPAD_LEFT_PAREN</a> = 162, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7662e0f2a099239dc69f6a27c7daabf9">AKEYCODE_NUMPAD_RIGHT_PAREN</a> = 163, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa174a5c7c39753235109696e82870c575">AKEYCODE_VOLUME_MUTE</a> = 164, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17e76263257a5dc654a413c9dc2fd649">AKEYCODE_INFO</a> = 165, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa056914fd17ae539dca44f43745d8e05c">AKEYCODE_CHANNEL_UP</a> = 166, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa18f1808c6a819e787c9a9941f78b910f">AKEYCODE_CHANNEL_DOWN</a> = 167, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacfce9bb78ef8106dce4868f81cca4fb4">AKEYCODE_ZOOM_IN</a> = 168, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacf035f5234c3df4589f35a50e99e0535">AKEYCODE_ZOOM_OUT</a> = 169, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0776ffae512b4848e53fce762a3a5017">AKEYCODE_TV</a> = 170, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe7531c40ff4a31614ff6fd61802ebe8">AKEYCODE_WINDOW</a> = 171, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf33a5fa1f163245360aeed89d64b0233">AKEYCODE_GUIDE</a> = 172, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacf2f03b925a02ba6de9fd98737546a60">AKEYCODE_DVR</a> = 173, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa03ce46d177e020690aa9d26a0fa850ae">AKEYCODE_BOOKMARK</a> = 174, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa81ba8d5343362b841b8a62b8679ff994">AKEYCODE_CAPTIONS</a> = 175, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa2bbd457230c3028df6b91d5bdda9159">AKEYCODE_SETTINGS</a> = 176, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafda3b0ea1b158831fc443bf4911a3930">AKEYCODE_TV_POWER</a> = 177, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa1750b29e396bd1fd237ed4aadacc8f5">AKEYCODE_TV_INPUT</a> = 178, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab28aea3a51b11c9f227ce8cd5ff55a3d">AKEYCODE_STB_POWER</a> = 179, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa988b0372359b2bca7390878fdba9e1b5">AKEYCODE_STB_INPUT</a> = 180, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa479d36f9814bd00c8986a252664b938b">AKEYCODE_AVR_POWER</a> = 181, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa57d42dbd8ea4219f76fb116f234e6504">AKEYCODE_AVR_INPUT</a> = 182, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa2d9e3e82e69955f649b586f4518e074c">AKEYCODE_PROG_RED</a> = 183, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaad50c1e2136e47843a8dabca929f8ead1">AKEYCODE_PROG_GREEN</a> = 184, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafa813640412bd41a181f0ec3a33dddc4">AKEYCODE_PROG_YELLOW</a> = 185, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5e82219fdb937fee5a22426c607dd4e0">AKEYCODE_PROG_BLUE</a> = 186, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa53a59a262d6d523bdc2bd30a1e427bad">AKEYCODE_APP_SWITCH</a> = 187, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa28c72c33ab93d83539d0790b7e48336a">AKEYCODE_BUTTON_1</a> = 188, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab8089673fea303c7a299eefd2c327cc3">AKEYCODE_BUTTON_2</a> = 189, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa706a5ff492c80b4653e6fe0dcd278ca1">AKEYCODE_BUTTON_3</a> = 190, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa73c425a063bf6976e1ff8ae9f3cfcbe6">AKEYCODE_BUTTON_4</a> = 191, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa47149f963528ec7abe55066abfb7caf5">AKEYCODE_BUTTON_5</a> = 192, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa55057c8cda53a4c539d02ab1a93ca58b">AKEYCODE_BUTTON_6</a> = 193, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac09e0c0cbbf6449bf106e4199600db35">AKEYCODE_BUTTON_7</a> = 194, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaee64b3e0f30ed09e3c9f01b6c8877c3f">AKEYCODE_BUTTON_8</a> = 195, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaac8e54092c8be5dc0e114ec35f40e00dc">AKEYCODE_BUTTON_9</a> = 196, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7e6f8621909f3461032c33f9c8acaa7">AKEYCODE_BUTTON_10</a> = 197, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab413971c698b6e25d3955667c0142ac1">AKEYCODE_BUTTON_11</a> = 198, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafe4ee1e5446dd12bbb579b412048e79e">AKEYCODE_BUTTON_12</a> = 199, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaabde2ed26594b89d5769eef9f0d1fe6f">AKEYCODE_BUTTON_13</a> = 200, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa1f08dfd2c30ddedf1d2983680e89041b">AKEYCODE_BUTTON_14</a> = 201, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d8d0fb1a610fdb4e53f0fb675b7d7d0">AKEYCODE_BUTTON_15</a> = 202, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa224370cba99bda2db6a1c82fd2f7fa39">AKEYCODE_BUTTON_16</a> = 203, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7b8e87b47c17c5f1e97fcb56faaa26ff">AKEYCODE_LANGUAGE_SWITCH</a> = 204, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa380279768c5c50d92bef2a88394f967f">AKEYCODE_MANNER_MODE</a> = 205, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa68d314a5ec06701205cd0097c5c7145c">AKEYCODE_3D_MODE</a> = 206, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0aa2cfca11b7cabf82341a9dbec83f10">AKEYCODE_CONTACTS</a> = 207, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa114be17d1853c77a7406c024d9e4f076">AKEYCODE_CALENDAR</a> = 208, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14508751d70a0404b194d4b6df83ec72">AKEYCODE_MUSIC</a> = 209, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa293523c40bb9f1d793cd0b984f636573">AKEYCODE_CALCULATOR</a> = 210, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf782be8df9a8ca5dc86c9bfeabac6f22">AKEYCODE_ZENKAKU_HANKAKU</a> = 211, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaadd69273b99eb0b848d98b2d6b3ad3234">AKEYCODE_EISU</a> = 212, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7321e5c6b3cbab142bd16957653b2ac7">AKEYCODE_MUHENKAN</a> = 213, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab0686dd37c57d833d1158b7f1d85ee02">AKEYCODE_HENKAN</a> = 214, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3be7db22b3c8aa046a46631e44863c28">AKEYCODE_KATAKANA_HIRAGANA</a> = 215, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5ee19d21912056b902e283efa2d9d14b">AKEYCODE_YEN</a> = 216, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaae8b0af04dac5ea56fd55e577fd9e6be4">AKEYCODE_RO</a> = 217, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa62d090ae5c95a04dacdff79817dad531">AKEYCODE_KANA</a> = 218, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d3f036adb654c7752890a283ecbf838">AKEYCODE_ASSIST</a> = 219, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7cf1bf3528b6d8a0e86998287fe00650">AKEYCODE_BRIGHTNESS_DOWN</a> = 220, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa0af6ec416c09d160e364466faa955c36">AKEYCODE_BRIGHTNESS_UP</a> = 221, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3cdb53cdf8c576e272502da06daa52e1">AKEYCODE_MEDIA_AUDIO_TRACK</a> = 222, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaafc077e5a6b447ea060c144f6e65bd207">AKEYCODE_SLEEP</a> = 223, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa903c5152d26b3011ae521afa06759429">AKEYCODE_WAKEUP</a> = 224, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0ecddd3dce52cf60c96c5d430b1f553">AKEYCODE_PAIRING</a> = 225, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf3ddf83cb2f701911b03c3a738e2e73a">AKEYCODE_MEDIA_TOP_MENU</a> = 226, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaa22858c3c30d596ad60f355f75df86e1">AKEYCODE_11</a> = 227, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa781c31195e55b2dcbdd772560dc61aa5">AKEYCODE_12</a> = 228, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa187963dd6f74b96f132f23e01dea35e9">AKEYCODE_LAST_CHANNEL</a> = 229, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa954c2251b2cb53f47637802cb66baf06">AKEYCODE_TV_DATA_SERVICE</a> = 230, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa95898663b7f74c93d0b860a43528c744">AKEYCODE_VOICE_ASSIST</a> = 231, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa93dd3fd752701af5a5491e01cc15db72">AKEYCODE_TV_RADIO_SERVICE</a> = 232, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa7d3d7b89756df37f01d6d0f13beff1db">AKEYCODE_TV_TELETEXT</a> = 233, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa630a08e07a3b4c6bcac9a1a72d176055">AKEYCODE_TV_NUMBER_ENTRY</a> = 234, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa14f2b6fe8550832ef9e3f9aa53164073">AKEYCODE_TV_TERRESTRIAL_ANALOG</a> = 235, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaacad8c149251a78760a5fe4931b9cdf16">AKEYCODE_TV_TERRESTRIAL_DIGITAL</a> = 236, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa3707d4396417535a611e4548afe33936">AKEYCODE_TV_SATELLITE</a> = 237, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8c52e7d06525c0ee5d943d63a0fa8ea5">AKEYCODE_TV_SATELLITE_BS</a> = 238, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4eea1809a9ff679ed7773332d728c6b0">AKEYCODE_TV_SATELLITE_CS</a> = 239, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa17c0e68066b86610ff168c6367af36eb">AKEYCODE_TV_SATELLITE_SERVICE</a> = 240, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaec5e46a5afc57953d1772e086307aa42">AKEYCODE_TV_NETWORK</a> = 241, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaabe33a80d6d3bf889af25cbd77fdb89f9">AKEYCODE_TV_ANTENNA_CABLE</a> = 242, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a50de965f50ab3aa42772aac0808445">AKEYCODE_TV_INPUT_HDMI_1</a> = 243, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab7ec65c008471d771bf879ec012f5c7f">AKEYCODE_TV_INPUT_HDMI_2</a> = 244, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa6a0f267a2696d15bf16127121b1f1c7f">AKEYCODE_TV_INPUT_HDMI_3</a> = 245, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4437c1d8d2d33058cfa71ec7b2771ec5">AKEYCODE_TV_INPUT_HDMI_4</a> = 246, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5c3097f14c6582958ba1d14d70115ccd">AKEYCODE_TV_INPUT_COMPOSITE_1</a> = 247, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaada13cbb9d619bc610678ad66325647b9">AKEYCODE_TV_INPUT_COMPOSITE_2</a> = 248, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa156e2dba81e7c73624ccf8c2ef8833ae">AKEYCODE_TV_INPUT_COMPONENT_1</a> = 249, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8db9b6ee1457267abea03430781bb0ec">AKEYCODE_TV_INPUT_COMPONENT_2</a> = 250, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa149b2c8a4817075c0a41e0adf11c8e85">AKEYCODE_TV_INPUT_VGA_1</a> = 251, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa419f0adac43cad104cd6cf83dc5f13f6">AKEYCODE_TV_AUDIO_DESCRIPTION</a> = 252, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaccc5900ca5dd399d5ce11dd8ca324678">AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP</a> = 253, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa5fca6a9ec1ce246bf3c53d859ac9f5eb">AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN</a> = 254, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa8e79045045293070c8eb9e408f1335b4">AKEYCODE_TV_ZOOM_MODE</a> = 255, 
+<br/>
+&#160;&#160;<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaa4c18feeafff3c41081073c025ee017b8">AKEYCODE_TV_CONTENTS_MENU</a> = 256, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaadde70071f6a432f367079efa6e1a6fe">AKEYCODE_TV_MEDIA_CONTEXT_MENU</a> = 257, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaaf0293c2a63e4d955080334bef6640840">AKEYCODE_TV_TIMER_PROGRAMMING</a> = 258, 
+<a class="el" href="group___input.html#gga6b7b47dd702d9e331586d485013fd1eaab062b403701292c9e2db96a1f88cc6d9">AKEYCODE_HELP</a> = 259
+<br/>
+ }</td></tr>
+<tr class="separator:ga6b7b47dd702d9e331586d485013fd1ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/looper_8h.jd b/docs/html-ndk/ndk/reference/looper_8h.jd
new file mode 100644
index 0000000..cb4dbdd
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/looper_8h.jd
@@ -0,0 +1,78 @@
+page.title=looper.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">looper.h File Reference<div class="ingroups"><a class="el" href="group___looper.html">Looper</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gadb10521a80138b777ba1bc2ca74d4af5"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a></td></tr>
+<tr class="separator:gadb10521a80138b777ba1bc2ca74d4af5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga410b184b4e48302c439e36c8ce0a7a89"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">ALooper_callbackFunc</a> )(int fd, int events, void *data)</td></tr>
+<tr class="separator:ga410b184b4e48302c439e36c8ce0a7a89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gaf9bdc3014f3d54c426b6d2df10de4960"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___looper.html#ggaf9bdc3014f3d54c426b6d2df10de4960a1fff26ab5859b0308b58a3f8d58ef1eb">ALOOPER_PREPARE_ALLOW_NON_CALLBACKS</a> = 1&lt;&lt;0
+ }</td></tr>
+<tr class="separator:gaf9bdc3014f3d54c426b6d2df10de4960"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadb49720dc49f7d4e4cf9adbf2948e409"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a55528f1b28df17cc4b6317cc0d0fde47">ALOOPER_POLL_WAKE</a> = -1, 
+<a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a64fe936780bfd9927affaf8e8cc81cc2">ALOOPER_POLL_CALLBACK</a> = -2, 
+<a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409a3fe4eec66dff78a9fa8afca02e8b8443">ALOOPER_POLL_TIMEOUT</a> = -3, 
+<a class="el" href="group___looper.html#ggadb49720dc49f7d4e4cf9adbf2948e409af8ebd4022f6f5d5fea864f6999b7e6b4">ALOOPER_POLL_ERROR</a> = -4
+ }</td></tr>
+<tr class="separator:gadb49720dc49f7d4e4cf9adbf2948e409"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaae05225933a42f81e7c4a9fb286596f9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9ae3d18f8dd1faf6f34468df10667949bc">ALOOPER_EVENT_INPUT</a> = 1 &lt;&lt; 0, 
+<a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a71273fd07e009057e6e3475d10f8286d">ALOOPER_EVENT_OUTPUT</a> = 1 &lt;&lt; 1, 
+<a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a14016d8f39373b8ce061276a957960f6">ALOOPER_EVENT_ERROR</a> = 1 &lt;&lt; 2, 
+<a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9a5e7fb5acdecef18b2c293f6309e5d4ab">ALOOPER_EVENT_HANGUP</a> = 1 &lt;&lt; 3, 
+<br/>
+&#160;&#160;<a class="el" href="group___looper.html#ggaae05225933a42f81e7c4a9fb286596f9aefe82c6ce8e02d13aceaebdec15c2aff">ALOOPER_EVENT_INVALID</a> = 1 &lt;&lt; 4
+<br/>
+ }</td></tr>
+<tr class="separator:gaae05225933a42f81e7c4a9fb286596f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga741ccd90a0eb9209c6bddf2326d89e4a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#ga741ccd90a0eb9209c6bddf2326d89e4a">ALooper_forThread</a> ()</td></tr>
+<tr class="separator:ga741ccd90a0eb9209c6bddf2326d89e4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1a070b904dd957cc65af9eb5ef6dfa25"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#ga1a070b904dd957cc65af9eb5ef6dfa25">ALooper_prepare</a> (int opts)</td></tr>
+<tr class="separator:ga1a070b904dd957cc65af9eb5ef6dfa25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae1ad7ac48ab01a34bfd25840c92ff07b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gae1ad7ac48ab01a34bfd25840c92ff07b">ALooper_acquire</a> (<a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper)</td></tr>
+<tr class="separator:gae1ad7ac48ab01a34bfd25840c92ff07b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab723c3c2ac2c66bc695913a194073727"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gab723c3c2ac2c66bc695913a194073727">ALooper_release</a> (<a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper)</td></tr>
+<tr class="separator:gab723c3c2ac2c66bc695913a194073727"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2a9044602b76fef7f47c7e11a801561c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#ga2a9044602b76fef7f47c7e11a801561c">ALooper_pollOnce</a> (int timeoutMillis, int *outFd, int *outEvents, void **outData)</td></tr>
+<tr class="separator:ga2a9044602b76fef7f47c7e11a801561c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa7cd0636edc4ed227aadc585360ebefa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gaa7cd0636edc4ed227aadc585360ebefa">ALooper_pollAll</a> (int timeoutMillis, int *outFd, int *outEvents, void **outData)</td></tr>
+<tr class="separator:gaa7cd0636edc4ed227aadc585360ebefa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab2585652f8ae2e2444979194ebe32aaf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gab2585652f8ae2e2444979194ebe32aaf">ALooper_wake</a> (<a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper)</td></tr>
+<tr class="separator:gab2585652f8ae2e2444979194ebe32aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2668285bfadcf21ef4d371568a30be33"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#ga2668285bfadcf21ef4d371568a30be33">ALooper_addFd</a> (<a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper, int fd, int ident, int events, <a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">ALooper_callbackFunc</a> callback, void *data)</td></tr>
+<tr class="separator:ga2668285bfadcf21ef4d371568a30be33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf7d68ed05698b251489b4f6c8e54daad"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___looper.html#gaf7d68ed05698b251489b4f6c8e54daad">ALooper_removeFd</a> (<a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper, int fd)</td></tr>
+<tr class="separator:gaf7d68ed05698b251489b4f6c8e54daad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/modules.jd b/docs/html-ndk/ndk/reference/modules.jd
new file mode 100644
index 0000000..cebd7af
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/modules.jd
@@ -0,0 +1,31 @@
+page.title=Modules
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Modules</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all modules:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___asset.html" target="_self">Asset</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___bitmap.html" target="_self">Bitmap</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___configuration.html" target="_self">Configuration</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___input.html" target="_self">Input</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___looper.html" target="_self">Looper</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___native_activity.html" target="_self">Native Activity</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group___storage.html" target="_self">Storage</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group___sensor.html" target="_self">Sensor</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/native__activity_8h.jd b/docs/html-ndk/ndk/reference/native__activity_8h.jd
new file mode 100644
index 0000000..b88d821
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/native__activity_8h.jd
@@ -0,0 +1,82 @@
+page.title=native_activity.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">native_activity.h File Reference<div class="ingroups"><a class="el" href="group___native_activity.html">Native Activity</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br/>
+<code>#include &lt;sys/types.h&gt;</code><br/>
+<code>#include &lt;jni.h&gt;</code><br/>
+<code>#include &lt;<a class="el" href="asset__manager_8h.html">android/asset_manager.h</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="input_8h.html">android/input.h</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="native__window_8h.html">android/native_window.h</a>&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html">ANativeActivity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html">ANativeActivityCallbacks</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga8abd07923f37feb1ce724d139cc2609d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_native_activity.html">ANativeActivity</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga8abd07923f37feb1ce724d139cc2609d">ANativeActivity</a></td></tr>
+<tr class="separator:ga8abd07923f37feb1ce724d139cc2609d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga28dca784e5ee939427135c72c0151c38"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
+<a class="el" href="struct_a_native_activity_callbacks.html">ANativeActivityCallbacks</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga28dca784e5ee939427135c72c0151c38">ANativeActivityCallbacks</a></td></tr>
+<tr class="separator:ga28dca784e5ee939427135c72c0151c38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga569a53bcac3fcedb0189b7c412ebcb22"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga569a53bcac3fcedb0189b7c412ebcb22">ANativeActivity_createFunc</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, void *savedState, size_t savedStateSize)</td></tr>
+<tr class="separator:ga569a53bcac3fcedb0189b7c412ebcb22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga39fca1837c5ce7715cbf571669660c13"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___native_activity.html#gga39fca1837c5ce7715cbf571669660c13a9b7250ac0e5a626a81b176462a9df7c9">ANATIVEACTIVITY_SHOW_SOFT_INPUT_IMPLICIT</a> = 0x0001, 
+<a class="el" href="group___native_activity.html#gga39fca1837c5ce7715cbf571669660c13a324062ac78fab16b40e8de1b1ae173b5">ANATIVEACTIVITY_SHOW_SOFT_INPUT_FORCED</a> = 0x0002
+ }</td></tr>
+<tr class="separator:ga39fca1837c5ce7715cbf571669660c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaf8fd5f0e57d456151c951e0f3715fc4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___native_activity.html#ggaaf8fd5f0e57d456151c951e0f3715fc4a642e76508cc737bbc1df149756c2a807">ANATIVEACTIVITY_HIDE_SOFT_INPUT_IMPLICIT_ONLY</a> = 0x0001, 
+<a class="el" href="group___native_activity.html#ggaaf8fd5f0e57d456151c951e0f3715fc4a0f4cbb55fa4c29b963b7b37d13352e6f">ANATIVEACTIVITY_HIDE_SOFT_INPUT_NOT_ALWAYS</a> = 0x0002
+ }</td></tr>
+<tr class="separator:gaaf8fd5f0e57d456151c951e0f3715fc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga4d872ae54a239704c06a0517e23cc0ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga4d872ae54a239704c06a0517e23cc0ad">ANativeActivity_finish</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td></tr>
+<tr class="separator:ga4d872ae54a239704c06a0517e23cc0ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec8b12decdf2b9841344e75c4c038c5a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gaec8b12decdf2b9841344e75c4c038c5a">ANativeActivity_setWindowFormat</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, int32_t format)</td></tr>
+<tr class="separator:gaec8b12decdf2b9841344e75c4c038c5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa1d091ca4a99b0ce570bab1c8c06f297"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gaa1d091ca4a99b0ce570bab1c8c06f297">ANativeActivity_setWindowFlags</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, uint32_t addFlags, uint32_t removeFlags)</td></tr>
+<tr class="separator:gaa1d091ca4a99b0ce570bab1c8c06f297"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga14eaeb6190f266369023b04d8ab9dba7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga14eaeb6190f266369023b04d8ab9dba7">ANativeActivity_showSoftInput</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, uint32_t flags)</td></tr>
+<tr class="separator:ga14eaeb6190f266369023b04d8ab9dba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf673d6efea7ce517ef46ff2551b25944"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gaf673d6efea7ce517ef46ff2551b25944">ANativeActivity_hideSoftInput</a> (<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, uint32_t flags)</td></tr>
+<tr class="separator:gaf673d6efea7ce517ef46ff2551b25944"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:ga02791d0d490839055169f39fdc905c5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___native_activity.html#ga569a53bcac3fcedb0189b7c412ebcb22">ANativeActivity_createFunc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga02791d0d490839055169f39fdc905c5e">ANativeActivity_onCreate</a></td></tr>
+<tr class="separator:ga02791d0d490839055169f39fdc905c5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/native__window_8h.jd b/docs/html-ndk/ndk/reference/native__window_8h.jd
new file mode 100644
index 0000000..a194a23
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/native__window_8h.jd
@@ -0,0 +1,69 @@
+page.title=native_window.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">native_window.h File Reference<div class="ingroups"><a class="el" href="group___native_activity.html">Native Activity</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="rect_8h.html">android/rect.h</a>&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_window___buffer.html">ANativeWindow_Buffer</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga66956d540c2e3709e12156d195e64726"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a></td></tr>
+<tr class="separator:ga66956d540c2e3709e12156d195e64726"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0983ca473ce36293baf5e51a14c3357"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_native_window___buffer.html">ANativeWindow_Buffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gad0983ca473ce36293baf5e51a14c3357">ANativeWindow_Buffer</a></td></tr>
+<tr class="separator:gad0983ca473ce36293baf5e51a14c3357"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga94798fdadfbf49a7c658ace669a1d310"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310a6a165383340acce0b32c555dd2ac2c01">WINDOW_FORMAT_RGBA_8888</a> = 1, 
+<a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310a5f83a97ccf64fc1554c220476e8aaf30">WINDOW_FORMAT_RGBX_8888</a> = 2, 
+<a class="el" href="group___native_activity.html#gga94798fdadfbf49a7c658ace669a1d310ab26fa9c38f169263b611a8b757bb0259">WINDOW_FORMAT_RGB_565</a> = 4
+ }</td></tr>
+<tr class="separator:ga94798fdadfbf49a7c658ace669a1d310"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga533876b57909243b238927344a6592db"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga533876b57909243b238927344a6592db">ANativeWindow_acquire</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ga533876b57909243b238927344a6592db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae944e98865b902bd924663785d7b0258"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gae944e98865b902bd924663785d7b0258">ANativeWindow_release</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:gae944e98865b902bd924663785d7b0258"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga186f0040c5cb405a63d93889bb9a4ff1"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga186f0040c5cb405a63d93889bb9a4ff1">ANativeWindow_getWidth</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ga186f0040c5cb405a63d93889bb9a4ff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga463ba99f6dee3edc1167a54e1ff7de15"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga463ba99f6dee3edc1167a54e1ff7de15">ANativeWindow_getHeight</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ga463ba99f6dee3edc1167a54e1ff7de15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e3a492a8300146b30d864f0ab22bb2e"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga9e3a492a8300146b30d864f0ab22bb2e">ANativeWindow_getFormat</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ga9e3a492a8300146b30d864f0ab22bb2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7b0652533998d61e1a3b542485889113"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga7b0652533998d61e1a3b542485889113">ANativeWindow_setBuffersGeometry</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window, int32_t width, int32_t height, int32_t format)</td></tr>
+<tr class="separator:ga7b0652533998d61e1a3b542485889113"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0b0e3b7d442dee83e1a1b42e5b0caee6"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga0b0e3b7d442dee83e1a1b42e5b0caee6">ANativeWindow_lock</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window, <a class="el" href="struct_a_native_window___buffer.html">ANativeWindow_Buffer</a> *outBuffer, <a class="el" href="struct_a_rect.html">ARect</a> *inOutDirtyBounds)</td></tr>
+<tr class="separator:ga0b0e3b7d442dee83e1a1b42e5b0caee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4dc9b687ead9034fbc11bf2d90f203f9"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga4dc9b687ead9034fbc11bf2d90f203f9">ANativeWindow_unlockAndPost</a> (<a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ga4dc9b687ead9034fbc11bf2d90f203f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/native__window__jni_8h.jd b/docs/html-ndk/ndk/reference/native__window__jni_8h.jd
new file mode 100644
index 0000000..e937fdf54
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/native__window__jni_8h.jd
@@ -0,0 +1,33 @@
+page.title=native_window_jni.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">native_window_jni.h File Reference<div class="ingroups"><a class="el" href="group___native_activity.html">Native Activity</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="native__window_8h.html">android/native_window.h</a>&gt;</code><br/>
+<code>#include &lt;jni.h&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga774d0a87ec496b3940fcddccbc31fd9d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#ga774d0a87ec496b3940fcddccbc31fd9d">ANativeWindow_fromSurface</a> (JNIEnv *env, jobject surface)</td></tr>
+<tr class="separator:ga774d0a87ec496b3940fcddccbc31fd9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/nav_f.png b/docs/html-ndk/ndk/reference/nav_f.png
new file mode 100644
index 0000000..5ceae87
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/nav_f.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/nav_g.png b/docs/html-ndk/ndk/reference/nav_g.png
new file mode 100644
index 0000000..2093a23
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/nav_g.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/nav_h.png b/docs/html-ndk/ndk/reference/nav_h.png
new file mode 100644
index 0000000..e619809c
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/nav_h.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/obb_8h.jd b/docs/html-ndk/ndk/reference/obb_8h.jd
new file mode 100644
index 0000000..53ed28e
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/obb_8h.jd
@@ -0,0 +1,53 @@
+page.title=obb.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">obb.h File Reference<div class="ingroups"><a class="el" href="group___storage.html">Storage</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;sys/types.h&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaa5037fe4c0d785a50fc62ac2de9844c3"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a></td></tr>
+<tr class="separator:gaa5037fe4c0d785a50fc62ac2de9844c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gae4d5251432e1a9e6803c0240cc492e18"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___storage.html#ggae4d5251432e1a9e6803c0240cc492e18a33e2ae83b4c25d33a4335dccf1de1c3a">AOBBINFO_OVERLAY</a> = 0x0001
+ }</td></tr>
+<tr class="separator:gae4d5251432e1a9e6803c0240cc492e18"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga7beb4f82e3bf9a4b8197917f92ac4d5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga7beb4f82e3bf9a4b8197917f92ac4d5e">AObbScanner_getObbInfo</a> (const char *filename)</td></tr>
+<tr class="separator:ga7beb4f82e3bf9a4b8197917f92ac4d5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec5a4428008f545e829486099298031a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#gaec5a4428008f545e829486099298031a">AObbInfo_delete</a> (<a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *obbInfo)</td></tr>
+<tr class="separator:gaec5a4428008f545e829486099298031a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1ec7eee61541fa5a9b578801a35b9cf3"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga1ec7eee61541fa5a9b578801a35b9cf3">AObbInfo_getPackageName</a> (<a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *obbInfo)</td></tr>
+<tr class="separator:ga1ec7eee61541fa5a9b578801a35b9cf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacd8471c6d866cffe4a32f3b5997c782c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#gacd8471c6d866cffe4a32f3b5997c782c">AObbInfo_getVersion</a> (<a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *obbInfo)</td></tr>
+<tr class="separator:gacd8471c6d866cffe4a32f3b5997c782c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga68d916570c756da9fd0d9096358300eb"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga68d916570c756da9fd0d9096358300eb">AObbInfo_getFlags</a> (<a class="el" href="group___storage.html#gaa5037fe4c0d785a50fc62ac2de9844c3">AObbInfo</a> *obbInfo)</td></tr>
+<tr class="separator:ga68d916570c756da9fd0d9096358300eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/open.png b/docs/html-ndk/ndk/reference/open.png
new file mode 100644
index 0000000..7e740cc
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/open.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/pages.jd b/docs/html-ndk/ndk/reference/pages.jd
new file mode 100644
index 0000000..16fc5b0
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/pages.jd
@@ -0,0 +1,24 @@
+page.title=Related Pages
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Related Pages</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="deprecated.html" target="_self">Deprecated List</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/rect_8h.jd b/docs/html-ndk/ndk/reference/rect_8h.jd
new file mode 100644
index 0000000..d115ea9
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/rect_8h.jd
@@ -0,0 +1,38 @@
+page.title=rect.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">rect.h File Reference<div class="ingroups"><a class="el" href="group___native_activity.html">Native Activity</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_rect.html">ARect</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:gaa984a498f0e146ac57c6022a323423cf"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_rect.html">ARect</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___native_activity.html#gaa984a498f0e146ac57c6022a323423cf">ARect</a></td></tr>
+<tr class="separator:gaa984a498f0e146ac57c6022a323423cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/sensor_8h.jd b/docs/html-ndk/ndk/reference/sensor_8h.jd
new file mode 100644
index 0000000..d762797
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/sensor_8h.jd
@@ -0,0 +1,151 @@
+page.title=sensor.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">sensor.h File Reference<div class="ingroups"><a class="el" href="group___sensor.html">Sensor</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;sys/types.h&gt;</code><br/>
+<code>#include &lt;<a class="el" href="looper_8h.html">android/looper.h</a>&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_vector.html">ASensorVector</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_meta_data_event.html">AMetaDataEvent</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_uncalibrated_event.html">AUncalibratedEvent</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_heart_rate_event.html">AHeartRateEvent</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_event.html">ASensorEvent</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga5129cb9e4091fc3474e246d5f950e52b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga5129cb9e4091fc3474e246d5f950e52b">ASENSOR_STANDARD_GRAVITY</a>&#160;&#160;&#160;(9.80665f)</td></tr>
+<tr class="separator:ga5129cb9e4091fc3474e246d5f950e52b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf8b57b13c6432bc6136aac0ad3813d63"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaf8b57b13c6432bc6136aac0ad3813d63">ASENSOR_MAGNETIC_FIELD_EARTH_MAX</a>&#160;&#160;&#160;(60.0f)</td></tr>
+<tr class="separator:gaf8b57b13c6432bc6136aac0ad3813d63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4423a712e27b6d5a57d138796892886d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga4423a712e27b6d5a57d138796892886d">ASENSOR_MAGNETIC_FIELD_EARTH_MIN</a>&#160;&#160;&#160;(30.0f)</td></tr>
+<tr class="separator:ga4423a712e27b6d5a57d138796892886d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga207e807f9e18271f6a763e57232b409f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_sensor_vector.html">ASensorVector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga207e807f9e18271f6a763e57232b409f">ASensorVector</a></td></tr>
+<tr class="separator:ga207e807f9e18271f6a763e57232b409f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0378daec23b2d8a70438ef7c3912475f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_meta_data_event.html">AMetaDataEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga0378daec23b2d8a70438ef7c3912475f">AMetaDataEvent</a></td></tr>
+<tr class="separator:ga0378daec23b2d8a70438ef7c3912475f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga24acc545b908dd24cadc44c5e0760b3b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_uncalibrated_event.html">AUncalibratedEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga24acc545b908dd24cadc44c5e0760b3b">AUncalibratedEvent</a></td></tr>
+<tr class="separator:ga24acc545b908dd24cadc44c5e0760b3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae85b6eac76abe74e6e53d78bb3a4858c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_heart_rate_event.html">AHeartRateEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gae85b6eac76abe74e6e53d78bb3a4858c">AHeartRateEvent</a></td></tr>
+<tr class="separator:gae85b6eac76abe74e6e53d78bb3a4858c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6bb167c45f0ef0a94d8f178d227e781f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_a_sensor_event.html">ASensorEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga6bb167c45f0ef0a94d8f178d227e781f">ASensorEvent</a></td></tr>
+<tr class="separator:ga6bb167c45f0ef0a94d8f178d227e781f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaef620baab9b276ab8f914ae77babc349"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a></td></tr>
+<tr class="separator:gaef620baab9b276ab8f914ae77babc349"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa9448106d6d463f4cc5dded7c914e7ae"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a></td></tr>
+<tr class="separator:gaa9448106d6d463f4cc5dded7c914e7ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93b28b7ce5e9b6d2ebc5b574cd5f4710"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a></td></tr>
+<tr class="separator:ga93b28b7ce5e9b6d2ebc5b574cd5f4710"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafec8dd682458c750a5f0f913a0f162ce"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gafec8dd682458c750a5f0f913a0f162ce">ASensorRef</a></td></tr>
+<tr class="separator:gafec8dd682458c750a5f0f913a0f162ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga26ff51817e8b320a631b3bf4ed378d58"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group___sensor.html#gafec8dd682458c750a5f0f913a0f162ce">ASensorRef</a> const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">ASensorList</a></td></tr>
+<tr class="separator:ga26ff51817e8b320a631b3bf4ed378d58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga7ff5f2dff38e7639981794c43dc9167b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167bad72017f34c12971593a8cb14f4f254df">ASENSOR_TYPE_ACCELEROMETER</a> = 1, 
+<a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba3b31509a3efebafb413e78f5ec9ae0e8">ASENSOR_TYPE_MAGNETIC_FIELD</a> = 2, 
+<a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba80e9827f6c3ded009f354dc7078a2c68">ASENSOR_TYPE_GYROSCOPE</a> = 4, 
+<a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba105331b6dea6f08e0d8fe3b736f8c174">ASENSOR_TYPE_LIGHT</a> = 5, 
+<br/>
+&#160;&#160;<a class="el" href="group___sensor.html#gga7ff5f2dff38e7639981794c43dc9167ba0c6a2e526ed2e4442b3843976f906932">ASENSOR_TYPE_PROXIMITY</a> = 8
+<br/>
+ }</td></tr>
+<tr class="separator:ga7ff5f2dff38e7639981794c43dc9167b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabfcbcb5ac86a1edac4035264bc7d2b8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ae5d0475bd9491c4232a09afc81fa283d">ASENSOR_STATUS_NO_CONTACT</a> = -1, 
+<a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ae8e43df50b7b85ed54f22c40f2cd748e">ASENSOR_STATUS_UNRELIABLE</a> = 0, 
+<a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8a5f306f3d45a19573539462e4c813edc0">ASENSOR_STATUS_ACCURACY_LOW</a> = 1, 
+<a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ad7e9379a4f36a42f2659cd7aec214f2d">ASENSOR_STATUS_ACCURACY_MEDIUM</a> = 2, 
+<br/>
+&#160;&#160;<a class="el" href="group___sensor.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8a2df5fb4e8b684e6a801a4aff9f50ba13">ASENSOR_STATUS_ACCURACY_HIGH</a> = 3
+<br/>
+ }</td></tr>
+<tr class="separator:gaabfcbcb5ac86a1edac4035264bc7d2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5d76b81b0ad4c19007a781d4edb8181f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa8a64337fcb7e338d487dc3edc873df1c">AREPORTING_MODE_CONTINUOUS</a> = 0, 
+<a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa8542165ae195bf5784cdd9ba66bd2ab5">AREPORTING_MODE_ON_CHANGE</a> = 1, 
+<a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181fa002273a1ab874159a38a7e3f6bb6a7bb">AREPORTING_MODE_ONE_SHOT</a> = 2, 
+<a class="el" href="group___sensor.html#gga5d76b81b0ad4c19007a781d4edb8181faa2d29656b35889c4c23318982e847ae7">AREPORTING_MODE_SPECIAL_TRIGGER</a> = 3
+ }</td></tr>
+<tr class="separator:ga5d76b81b0ad4c19007a781d4edb8181f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa438fdaf34783a89d139f0a56d2692cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaa438fdaf34783a89d139f0a56d2692cd">ASensorManager_getInstance</a> ()</td></tr>
+<tr class="separator:gaa438fdaf34783a89d139f0a56d2692cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga645be938627498ab2b60d94c562204bd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga645be938627498ab2b60d94c562204bd">ASensorManager_getSensorList</a> (<a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *manager, <a class="el" href="group___sensor.html#ga26ff51817e8b320a631b3bf4ed378d58">ASensorList</a> *list)</td></tr>
+<tr class="separator:ga645be938627498ab2b60d94c562204bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf4880d87e01f5e2d4a9b8403e4047445"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaf4880d87e01f5e2d4a9b8403e4047445">ASensorManager_getDefaultSensor</a> (<a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *manager, int type)</td></tr>
+<tr class="separator:gaf4880d87e01f5e2d4a9b8403e4047445"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4313457c0e82f4afa77ef13860629633"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga4313457c0e82f4afa77ef13860629633">ASensorManager_getDefaultSensorEx</a> (<a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *manager, int type, bool wakeUp)</td></tr>
+<tr class="separator:ga4313457c0e82f4afa77ef13860629633"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac46f8b28bcc7a846dea9d841cab0a67b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gac46f8b28bcc7a846dea9d841cab0a67b">ASensorManager_createEventQueue</a> (<a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *manager, <a class="el" href="group___looper.html#gadb10521a80138b777ba1bc2ca74d4af5">ALooper</a> *looper, int ident, <a class="el" href="group___looper.html#ga410b184b4e48302c439e36c8ce0a7a89">ALooper_callbackFunc</a> callback, void *data)</td></tr>
+<tr class="separator:gac46f8b28bcc7a846dea9d841cab0a67b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf35624037785cdea1e7fe9e0a73fc5e1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaf35624037785cdea1e7fe9e0a73fc5e1">ASensorManager_destroyEventQueue</a> (<a class="el" href="group___sensor.html#gaef620baab9b276ab8f914ae77babc349">ASensorManager</a> *manager, <a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue)</td></tr>
+<tr class="separator:gaf35624037785cdea1e7fe9e0a73fc5e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga48a8379cf9de9b09a71a00f8a3699499"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga48a8379cf9de9b09a71a00f8a3699499">ASensorEventQueue_enableSensor</a> (<a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue, <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga48a8379cf9de9b09a71a00f8a3699499"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga03852b813887ec236a34c4aef0df4b68"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga03852b813887ec236a34c4aef0df4b68">ASensorEventQueue_disableSensor</a> (<a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue, <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga03852b813887ec236a34c4aef0df4b68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa6e89b6d69dc3e07f2d7e72e81ec7937"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaa6e89b6d69dc3e07f2d7e72e81ec7937">ASensorEventQueue_setEventRate</a> (<a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue, <a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor, int32_t usec)</td></tr>
+<tr class="separator:gaa6e89b6d69dc3e07f2d7e72e81ec7937"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga79c9d6264fe81d4e30800f826db72913"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga79c9d6264fe81d4e30800f826db72913">ASensorEventQueue_hasEvents</a> (<a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue)</td></tr>
+<tr class="separator:ga79c9d6264fe81d4e30800f826db72913"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab3d4354fd0d3ceb5fa97c129b024a18a"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gab3d4354fd0d3ceb5fa97c129b024a18a">ASensorEventQueue_getEvents</a> (<a class="el" href="group___sensor.html#gaa9448106d6d463f4cc5dded7c914e7ae">ASensorEventQueue</a> *queue, <a class="el" href="struct_a_sensor_event.html">ASensorEvent</a> *events, size_t count)</td></tr>
+<tr class="separator:gab3d4354fd0d3ceb5fa97c129b024a18a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga52f4b22990c70df0784b9ccf23314fae"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga52f4b22990c70df0784b9ccf23314fae">ASensor_getName</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga52f4b22990c70df0784b9ccf23314fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafaf467fc71f7adba537a90f166e3320d"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gafaf467fc71f7adba537a90f166e3320d">ASensor_getVendor</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:gafaf467fc71f7adba537a90f166e3320d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga93962747ab3c7d2b609f97af26fc0230"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga93962747ab3c7d2b609f97af26fc0230">ASensor_getType</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga93962747ab3c7d2b609f97af26fc0230"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3da2930dd866cf1f76da6bc39e578a46"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga3da2930dd866cf1f76da6bc39e578a46">ASensor_getResolution</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga3da2930dd866cf1f76da6bc39e578a46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacb6e021757c07344b58742611eaf68e7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gacb6e021757c07344b58742611eaf68e7">ASensor_getMinDelay</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:gacb6e021757c07344b58742611eaf68e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae9969580eda319926a677a6937c7afb1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gae9969580eda319926a677a6937c7afb1">ASensor_getFifoMaxEventCount</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:gae9969580eda319926a677a6937c7afb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec7084c6a9d4d85f87c95a70511c5f53"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gaec7084c6a9d4d85f87c95a70511c5f53">ASensor_getFifoReservedEventCount</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:gaec7084c6a9d4d85f87c95a70511c5f53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabee3eb65390fc75a639c59d653af3591"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#gabee3eb65390fc75a639c59d653af3591">ASensor_getStringType</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:gabee3eb65390fc75a639c59d653af3591"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga99e56b84cf421788c27998da8eab7e39"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga99e56b84cf421788c27998da8eab7e39">ASensor_getReportingMode</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga99e56b84cf421788c27998da8eab7e39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0ff4118e400bedac62be6b79e9e0f924"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___sensor.html#ga0ff4118e400bedac62be6b79e9e0f924">ASensor_isWakeUpSensor</a> (<a class="el" href="group___sensor.html#ga93b28b7ce5e9b6d2ebc5b574cd5f4710">ASensor</a> const *sensor)</td></tr>
+<tr class="separator:ga0ff4118e400bedac62be6b79e9e0f924"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/storage__manager_8h.jd b/docs/html-ndk/ndk/reference/storage__manager_8h.jd
new file mode 100644
index 0000000..00d04e8
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/storage__manager_8h.jd
@@ -0,0 +1,67 @@
+page.title=storage_manager.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">storage_manager.h File Reference<div class="ingroups"><a class="el" href="group___storage.html">Storage</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:ga419f40803228bca62e32beb911ab28e2"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a></td></tr>
+<tr class="separator:ga419f40803228bca62e32beb911ab28e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf077d06586fa4c0212baa2fe458b9617"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#gaf077d06586fa4c0212baa2fe458b9617">AStorageManager_obbCallbackFunc</a> )(const char *filename, const int32_t state, void *data)</td></tr>
+<tr class="separator:gaf077d06586fa4c0212baa2fe458b9617"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gae8a3b6a5d0d3244ed73924ab2421a0d0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a2a9c420e6008c108a7198fd861c042d5">AOBB_STATE_MOUNTED</a> = 1, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a6710bb5b68cfc115eedcde2aafd8a667">AOBB_STATE_UNMOUNTED</a> = 2, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a50642881107d6673aace1494a5d6fce2">AOBB_STATE_ERROR_INTERNAL</a> = 20, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a324da2b8fea5875339d442d1f2d0b45b">AOBB_STATE_ERROR_COULD_NOT_MOUNT</a> = 21, 
+<br/>
+&#160;&#160;<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a1f2b51b53fc57b57a9967f6ce0c88dbe">AOBB_STATE_ERROR_COULD_NOT_UNMOUNT</a> = 22, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a3ce8539aa8b531c9de1d16041322d7a8">AOBB_STATE_ERROR_NOT_MOUNTED</a> = 23, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a8b074af151167a965a550b9829fafb37">AOBB_STATE_ERROR_ALREADY_MOUNTED</a> = 24, 
+<a class="el" href="group___storage.html#ggae8a3b6a5d0d3244ed73924ab2421a0d0a2467a4b6a634680e12c288a7790ff66c">AOBB_STATE_ERROR_PERMISSION_DENIED</a> = 25
+<br/>
+ }</td></tr>
+<tr class="separator:gae8a3b6a5d0d3244ed73924ab2421a0d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga1c21ed9e0848fcfc03547c95eeb48877"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga1c21ed9e0848fcfc03547c95eeb48877">AStorageManager_new</a> ()</td></tr>
+<tr class="separator:ga1c21ed9e0848fcfc03547c95eeb48877"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga184c06dd9cec0f21db138167d6b331ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga184c06dd9cec0f21db138167d6b331ed">AStorageManager_delete</a> (<a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *mgr)</td></tr>
+<tr class="separator:ga184c06dd9cec0f21db138167d6b331ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61bebaf43e57b4b7f57e7a24a62e9e3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga61bebaf43e57b4b7f57e7a24a62e9e3d">AStorageManager_mountObb</a> (<a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *mgr, const char *filename, const char *key, <a class="el" href="group___storage.html#gaf077d06586fa4c0212baa2fe458b9617">AStorageManager_obbCallbackFunc</a> cb, void *data)</td></tr>
+<tr class="separator:ga61bebaf43e57b4b7f57e7a24a62e9e3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4c32c8d2c780016fa36097d833b57809"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga4c32c8d2c780016fa36097d833b57809">AStorageManager_unmountObb</a> (<a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *mgr, const char *filename, const int force, <a class="el" href="group___storage.html#gaf077d06586fa4c0212baa2fe458b9617">AStorageManager_obbCallbackFunc</a> cb, void *data)</td></tr>
+<tr class="separator:ga4c32c8d2c780016fa36097d833b57809"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7572f2c650fc16cce1b0ab94e913a1ba"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#ga7572f2c650fc16cce1b0ab94e913a1ba">AStorageManager_isObbMounted</a> (<a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *mgr, const char *filename)</td></tr>
+<tr class="separator:ga7572f2c650fc16cce1b0ab94e913a1ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5c90305d627e0c768da37cb3e9f08c4"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___storage.html#gad5c90305d627e0c768da37cb3e9f08c4">AStorageManager_getMountedObbPath</a> (<a class="el" href="group___storage.html#ga419f40803228bca62e32beb911ab28e2">AStorageManager</a> *mgr, const char *filename)</td></tr>
+<tr class="separator:gad5c90305d627e0c768da37cb3e9f08c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/struct_a_heart_rate_event.jd b/docs/html-ndk/ndk/reference/struct_a_heart_rate_event.jd
new file mode 100644
index 0000000..d15c06b
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/struct_a_heart_rate_event.jd
@@ -0,0 +1,59 @@
+page.title=AHeartRateEvent Struct Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">AHeartRateEvent Struct Reference<div class="ingroups"><a class="el" href="group___sensor.html">Sensor</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;sensor.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ab0560092cbaa233e74bb0d543a85965d"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_heart_rate_event.html#ab0560092cbaa233e74bb0d543a85965d">bpm</a></td></tr>
+<tr class="separator:ab0560092cbaa233e74bb0d543a85965d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a555c2084e8436de01dc76a23590e8824"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_heart_rate_event.html#a555c2084e8436de01dc76a23590e8824">status</a></td></tr>
+<tr class="separator:a555c2084e8436de01dc76a23590e8824"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="ab0560092cbaa233e74bb0d543a85965d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float bpm</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a555c2084e8436de01dc76a23590e8824"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int8_t status</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="sensor_8h.html">sensor.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/struct_a_meta_data_event.jd b/docs/html-ndk/ndk/reference/struct_a_meta_data_event.jd
new file mode 100644
index 0000000..1c0ca05
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/struct_a_meta_data_event.jd
@@ -0,0 +1,59 @@
+page.title=AMetaDataEvent Struct Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">AMetaDataEvent Struct Reference<div class="ingroups"><a class="el" href="group___sensor.html">Sensor</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;sensor.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a397e31e246d23c1be3fa82ca4af8b930"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_meta_data_event.html#a397e31e246d23c1be3fa82ca4af8b930">what</a></td></tr>
+<tr class="separator:a397e31e246d23c1be3fa82ca4af8b930"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a470f19badf179fe205462c060e5175b4"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_meta_data_event.html#a470f19badf179fe205462c060e5175b4">sensor</a></td></tr>
+<tr class="separator:a470f19badf179fe205462c060e5175b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a470f19badf179fe205462c060e5175b4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t sensor</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a397e31e246d23c1be3fa82ca4af8b930"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t what</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="sensor_8h.html">sensor.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/struct_a_native_activity.jd b/docs/html-ndk/ndk/reference/struct_a_native_activity.jd
new file mode 100644
index 0000000..ee4fdca
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/struct_a_native_activity.jd
@@ -0,0 +1,185 @@
+page.title=ANativeActivity Struct Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">ANativeActivity Struct Reference<div class="ingroups"><a class="el" href="group___native_activity.html">Native Activity</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;native_activity.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:af96995a13e77baf0d71c37d20c79ad51"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="struct_a_native_activity_callbacks.html">ANativeActivityCallbacks</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html#af96995a13e77baf0d71c37d20c79ad51">callbacks</a></td></tr>
+<tr class="separator:af96995a13e77baf0d71c37d20c79ad51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e163c28566d4563eafeabd7dcab7eeb"><td class="memItemLeft" align="right" valign="top">JavaVM *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html#a5e163c28566d4563eafeabd7dcab7eeb">vm</a></td></tr>
+<tr class="separator:a5e163c28566d4563eafeabd7dcab7eeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae6f0d0cd46e56b7e299b489cb60dd27e"><td class="memItemLeft" align="right" valign="top">JNIEnv *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html#ae6f0d0cd46e56b7e299b489cb60dd27e">env</a></td></tr>
+<tr class="separator:ae6f0d0cd46e56b7e299b489cb60dd27e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab10b01c3c23c4ddb9d2ddadd71b03c94"><td class="memItemLeft" align="right" valign="top">jobject&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html#ab10b01c3c23c4ddb9d2ddadd71b03c94">clazz</a></td></tr>
+<tr class="separator:ab10b01c3c23c4ddb9d2ddadd71b03c94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa52947cdd1476b95e858d83c0f5b0220"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html#aa52947cdd1476b95e858d83c0f5b0220">internalDataPath</a></td></tr>
+<tr class="separator:aa52947cdd1476b95e858d83c0f5b0220"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a61553b2f660ea8b57fcc2b495e109f"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html#a2a61553b2f660ea8b57fcc2b495e109f">externalDataPath</a></td></tr>
+<tr class="separator:a2a61553b2f660ea8b57fcc2b495e109f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40b4b64be7ecfac23751618313eb610d"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html#a40b4b64be7ecfac23751618313eb610d">sdkVersion</a></td></tr>
+<tr class="separator:a40b4b64be7ecfac23751618313eb610d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1b90392cd257d16fd66a85bac1b08cd"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html#ae1b90392cd257d16fd66a85bac1b08cd">instance</a></td></tr>
+<tr class="separator:ae1b90392cd257d16fd66a85bac1b08cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f76f065768b8f896ce47a3089fb438d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html#a0f76f065768b8f896ce47a3089fb438d">assetManager</a></td></tr>
+<tr class="separator:a0f76f065768b8f896ce47a3089fb438d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0aff284eb9ab311d81f20955258798cf"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity.html#a0aff284eb9ab311d81f20955258798cf">obbPath</a></td></tr>
+<tr class="separator:a0aff284eb9ab311d81f20955258798cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>This structure defines the native side of an android.app.NativeActivity. It is created by the framework, and handed to the application's native code as it is being launched. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a0f76f065768b8f896ce47a3089fb438d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="group___asset.html#ga90c459935e76acf809b9ec90d1872771">AAssetManager</a>* assetManager</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Pointer to the Asset Manager instance for the application. The application uses this to access binary assets bundled inside its own .apk file. </p>
+
+</div>
+</div>
+<a class="anchor" id="af96995a13e77baf0d71c37d20c79ad51"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">struct <a class="el" href="struct_a_native_activity_callbacks.html">ANativeActivityCallbacks</a>* callbacks</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Pointer to the callback function table of the native application. You can set the functions here to your own callbacks. The callbacks pointer itself here should not be changed; it is allocated and managed for you by the framework. </p>
+
+</div>
+</div>
+<a class="anchor" id="ab10b01c3c23c4ddb9d2ddadd71b03c94"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">jobject clazz</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The NativeActivity object handle.</p>
+<p>IMPORTANT NOTE: This member is mis-named. It should really be named 'activity' instead of 'clazz', since it's a reference to the NativeActivity instance created by the system for you.</p>
+<p>We unfortunately cannot change this without breaking NDK source-compatibility. </p>
+
+</div>
+</div>
+<a class="anchor" id="ae6f0d0cd46e56b7e299b489cb60dd27e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">JNIEnv* env</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>JNI context for the main thread of the app. Note that this field can ONLY be used from the main thread of the process; that is, the thread that calls into the <a class="el" href="struct_a_native_activity_callbacks.html">ANativeActivityCallbacks</a>. </p>
+
+</div>
+</div>
+<a class="anchor" id="a2a61553b2f660ea8b57fcc2b495e109f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* externalDataPath</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Path to this application's external (removable/mountable) data directory. </p>
+
+</div>
+</div>
+<a class="anchor" id="ae1b90392cd257d16fd66a85bac1b08cd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* instance</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>This is the native instance of the application. It is not used by the framework, but can be set by the application to its own instance state. </p>
+
+</div>
+</div>
+<a class="anchor" id="aa52947cdd1476b95e858d83c0f5b0220"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* internalDataPath</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Path to this application's internal data directory. </p>
+
+</div>
+</div>
+<a class="anchor" id="a0aff284eb9ab311d81f20955258798cf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* obbPath</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Available starting with Honeycomb: path to the directory containing the application's OBB files (if any). If the app doesn't have any OBB files, this directory may not exist. </p>
+
+</div>
+</div>
+<a class="anchor" id="a40b4b64be7ecfac23751618313eb610d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t sdkVersion</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The platform's SDK version code. </p>
+
+</div>
+</div>
+<a class="anchor" id="a5e163c28566d4563eafeabd7dcab7eeb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">JavaVM* vm</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The global handle on the process's Java VM. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="native__activity_8h.html">native_activity.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/struct_a_native_activity_callbacks.jd b/docs/html-ndk/ndk/reference/struct_a_native_activity_callbacks.jd
new file mode 100644
index 0000000..dce9d95
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/struct_a_native_activity_callbacks.jd
@@ -0,0 +1,273 @@
+page.title=ANativeActivityCallbacks Struct Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">ANativeActivityCallbacks Struct Reference<div class="ingroups"><a class="el" href="group___native_activity.html">Native Activity</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;native_activity.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:acda344fd29c2018640a85a585317d92c"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#acda344fd29c2018640a85a585317d92c">onStart</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td></tr>
+<tr class="separator:acda344fd29c2018640a85a585317d92c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac2c85491a68e6dece3d82782c1254e73"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#ac2c85491a68e6dece3d82782c1254e73">onResume</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td></tr>
+<tr class="separator:ac2c85491a68e6dece3d82782c1254e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16a270d24a484a376e28bc6c48fc22a1"><td class="memItemLeft" align="right" valign="top">void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#a16a270d24a484a376e28bc6c48fc22a1">onSaveInstanceState</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, size_t *outSize)</td></tr>
+<tr class="separator:a16a270d24a484a376e28bc6c48fc22a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee8a4dcff234b94d0bf0bc85efea42c2"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#aee8a4dcff234b94d0bf0bc85efea42c2">onPause</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td></tr>
+<tr class="separator:aee8a4dcff234b94d0bf0bc85efea42c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adefa99d16d11d21bb8a83ba426047605"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#adefa99d16d11d21bb8a83ba426047605">onStop</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td></tr>
+<tr class="separator:adefa99d16d11d21bb8a83ba426047605"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45598ebed3d15847b4f97acb9e15076e"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#a45598ebed3d15847b4f97acb9e15076e">onDestroy</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td></tr>
+<tr class="separator:a45598ebed3d15847b4f97acb9e15076e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a620ef54556eac0b2b28d7e6d0644ee4a"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#a620ef54556eac0b2b28d7e6d0644ee4a">onWindowFocusChanged</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, int hasFocus)</td></tr>
+<tr class="separator:a620ef54556eac0b2b28d7e6d0644ee4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac997f07e53ba58179a2133e86e5cbd31"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#ac997f07e53ba58179a2133e86e5cbd31">onNativeWindowCreated</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ac997f07e53ba58179a2133e86e5cbd31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7bd120b8816508561126308f699f116"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#ab7bd120b8816508561126308f699f116">onNativeWindowResized</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:ab7bd120b8816508561126308f699f116"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3cad4792af363b9a40599d09afeab56c"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#a3cad4792af363b9a40599d09afeab56c">onNativeWindowRedrawNeeded</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:a3cad4792af363b9a40599d09afeab56c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a150442c0611e8ce24a32a7c805e7c9db"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#a150442c0611e8ce24a32a7c805e7c9db">onNativeWindowDestroyed</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td></tr>
+<tr class="separator:a150442c0611e8ce24a32a7c805e7c9db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17b41ec9bb8b0b9e42d1e269a62a4d59"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#a17b41ec9bb8b0b9e42d1e269a62a4d59">onInputQueueCreated</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue)</td></tr>
+<tr class="separator:a17b41ec9bb8b0b9e42d1e269a62a4d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82675193f867bc64180016923b0bb129"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#a82675193f867bc64180016923b0bb129">onInputQueueDestroyed</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue)</td></tr>
+<tr class="separator:a82675193f867bc64180016923b0bb129"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61d30a43b3c77b6047afe951706f6a1e"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#a61d30a43b3c77b6047afe951706f6a1e">onContentRectChanged</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, const <a class="el" href="struct_a_rect.html">ARect</a> *rect)</td></tr>
+<tr class="separator:a61d30a43b3c77b6047afe951706f6a1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2926b45334319089e4e25fbc86d74c3f"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#a2926b45334319089e4e25fbc86d74c3f">onConfigurationChanged</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td></tr>
+<tr class="separator:a2926b45334319089e4e25fbc86d74c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac61f647cbd971321c692a74a1136f67"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_activity_callbacks.html#aac61f647cbd971321c692a74a1136f67">onLowMemory</a> )(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td></tr>
+<tr class="separator:aac61f647cbd971321c692a74a1136f67"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>These are the callbacks the framework makes into a native application. All of these callbacks happen on the main thread of the application. By default, all callbacks are NULL; set to a pointer to your own function to have it called. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a2926b45334319089e4e25fbc86d74c3f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onConfigurationChanged)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The current device AConfiguration has changed. The new configuration can be retrieved from assetManager. </p>
+
+</div>
+</div>
+<a class="anchor" id="a61d30a43b3c77b6047afe951706f6a1e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onContentRectChanged)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, const <a class="el" href="struct_a_rect.html">ARect</a> *rect)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The rectangle in the window in which content should be placed has changed. </p>
+
+</div>
+</div>
+<a class="anchor" id="a45598ebed3d15847b4f97acb9e15076e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onDestroy)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>NativeActivity is being destroyed. See Java documentation for Activity.onDestroy() for more information. </p>
+
+</div>
+</div>
+<a class="anchor" id="a17b41ec9bb8b0b9e42d1e269a62a4d59"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onInputQueueCreated)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The input queue for this native activity's window has been created. You can use the given input queue to start retrieving input events. </p>
+
+</div>
+</div>
+<a class="anchor" id="a82675193f867bc64180016923b0bb129"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onInputQueueDestroyed)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___input.html#ga21d8182651f4b61ae558560023e8339c">AInputQueue</a> *queue)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The input queue for this native activity's window is being destroyed. You should no longer try to reference this object upon returning from this function. </p>
+
+</div>
+</div>
+<a class="anchor" id="aac61f647cbd971321c692a74a1136f67"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onLowMemory)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The system is running low on memory. Use this callback to release resources you do not need, to help the system avoid killing more important processes. </p>
+
+</div>
+</div>
+<a class="anchor" id="ac997f07e53ba58179a2133e86e5cbd31"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onNativeWindowCreated)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The drawing window for this native activity has been created. You can use the given native window object to start drawing. </p>
+
+</div>
+</div>
+<a class="anchor" id="a150442c0611e8ce24a32a7c805e7c9db"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onNativeWindowDestroyed)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The drawing window for this native activity is going to be destroyed. You MUST ensure that you do not touch the window object after returning from this function: in the common case of drawing to the window from another thread, that means the implementation of this callback must properly synchronize with the other thread to stop its drawing before returning from here. </p>
+
+</div>
+</div>
+<a class="anchor" id="a3cad4792af363b9a40599d09afeab56c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onNativeWindowRedrawNeeded)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The drawing window for this native activity needs to be redrawn. To avoid transient artifacts during screen changes (such resizing after rotation), applications should not return from this function until they have finished drawing their window in its current state. </p>
+
+</div>
+</div>
+<a class="anchor" id="ab7bd120b8816508561126308f699f116"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onNativeWindowResized)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, <a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> *window)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The drawing window for this native activity has been resized. You should retrieve the new size from the window and ensure that your rendering in it now matches. </p>
+
+</div>
+</div>
+<a class="anchor" id="aee8a4dcff234b94d0bf0bc85efea42c2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onPause)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>NativeActivity has paused. See Java documentation for Activity.onPause() for more information. </p>
+
+</div>
+</div>
+<a class="anchor" id="ac2c85491a68e6dece3d82782c1254e73"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onResume)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>NativeActivity has resumed. See Java documentation for Activity.onResume() for more information. </p>
+
+</div>
+</div>
+<a class="anchor" id="a16a270d24a484a376e28bc6c48fc22a1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void*(* onSaveInstanceState)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, size_t *outSize)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Framework is asking NativeActivity to save its current instance state. See Java documentation for Activity.onSaveInstanceState() for more information. The returned pointer needs to be created with malloc(); the framework will call free() on it for you. You also must fill in outSize with the number of bytes in the allocation. Note that the saved state will be persisted, so it can not contain any active entities (pointers to memory, file descriptors, etc). </p>
+
+</div>
+</div>
+<a class="anchor" id="acda344fd29c2018640a85a585317d92c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onStart)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>NativeActivity has started. See Java documentation for Activity.onStart() for more information. </p>
+
+</div>
+</div>
+<a class="anchor" id="adefa99d16d11d21bb8a83ba426047605"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onStop)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>NativeActivity has stopped. See Java documentation for Activity.onStop() for more information. </p>
+
+</div>
+</div>
+<a class="anchor" id="a620ef54556eac0b2b28d7e6d0644ee4a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void(* onWindowFocusChanged)(<a class="el" href="struct_a_native_activity.html">ANativeActivity</a> *activity, int hasFocus)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Focus has changed in this NativeActivity's window. This is often used, for example, to pause a game when it loses input focus. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="native__activity_8h.html">native_activity.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/struct_a_native_window___buffer.jd b/docs/html-ndk/ndk/reference/struct_a_native_window___buffer.jd
new file mode 100644
index 0000000..f5a8650
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/struct_a_native_window___buffer.jd
@@ -0,0 +1,118 @@
+page.title=ANativeWindow_Buffer Struct Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">ANativeWindow_Buffer Struct Reference<div class="ingroups"><a class="el" href="group___native_activity.html">Native Activity</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;native_window.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a395d15e7c2b09961c1bfd1da6179b64c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_window___buffer.html#a395d15e7c2b09961c1bfd1da6179b64c">width</a></td></tr>
+<tr class="separator:a395d15e7c2b09961c1bfd1da6179b64c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d8006e753a3e76ff637a4e092bbed71"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_window___buffer.html#a5d8006e753a3e76ff637a4e092bbed71">height</a></td></tr>
+<tr class="separator:a5d8006e753a3e76ff637a4e092bbed71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4438e3445d33be6d33b2c0dbe9c2e0d7"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_window___buffer.html#a4438e3445d33be6d33b2c0dbe9c2e0d7">stride</a></td></tr>
+<tr class="separator:a4438e3445d33be6d33b2c0dbe9c2e0d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49d503b84d084937e3ceeda9f0b4659e"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_window___buffer.html#a49d503b84d084937e3ceeda9f0b4659e">format</a></td></tr>
+<tr class="separator:a49d503b84d084937e3ceeda9f0b4659e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a089d8e968fac54a9e45f059b8b78cf9b"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_window___buffer.html#a089d8e968fac54a9e45f059b8b78cf9b">bits</a></td></tr>
+<tr class="separator:a089d8e968fac54a9e45f059b8b78cf9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60cc5aad4013157e2e7434d6de450656"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_native_window___buffer.html#a60cc5aad4013157e2e7434d6de450656">reserved</a> [6]</td></tr>
+<tr class="separator:a60cc5aad4013157e2e7434d6de450656"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="group___native_activity.html#ga66956d540c2e3709e12156d195e64726">ANativeWindow</a> is a struct that represents a windows buffer.</p>
+<p>A pointer can be obtained using <a class="el" href="group___native_activity.html#ga0b0e3b7d442dee83e1a1b42e5b0caee6">ANativeWindow_lock()</a>. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a089d8e968fac54a9e45f059b8b78cf9b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* bits</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a49d503b84d084937e3ceeda9f0b4659e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t format</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5d8006e753a3e76ff637a4e092bbed71"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t height</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a60cc5aad4013157e2e7434d6de450656"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t reserved[6]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4438e3445d33be6d33b2c0dbe9c2e0d7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t stride</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a395d15e7c2b09961c1bfd1da6179b64c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t width</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="native__window_8h.html">native_window.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/struct_a_rect.jd b/docs/html-ndk/ndk/reference/struct_a_rect.jd
new file mode 100644
index 0000000..96a597f
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/struct_a_rect.jd
@@ -0,0 +1,94 @@
+page.title=ARect Struct Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">ARect Struct Reference<div class="ingroups"><a class="el" href="group___native_activity.html">Native Activity</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;rect.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a9ee4ce87784b0ebeaadce132ce7d421f"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_rect.html#a9ee4ce87784b0ebeaadce132ce7d421f">left</a></td></tr>
+<tr class="separator:a9ee4ce87784b0ebeaadce132ce7d421f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad07137116129d873220209ea65f9d3d4"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_rect.html#ad07137116129d873220209ea65f9d3d4">top</a></td></tr>
+<tr class="separator:ad07137116129d873220209ea65f9d3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3d3a4d6bf8bc6c866fa737e11590cc4e"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_rect.html#a3d3a4d6bf8bc6c866fa737e11590cc4e">right</a></td></tr>
+<tr class="separator:a3d3a4d6bf8bc6c866fa737e11590cc4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4479860c72ca8e96ac4fb1cc149dd71b"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_rect.html#a4479860c72ca8e96ac4fb1cc149dd71b">bottom</a></td></tr>
+<tr class="separator:a4479860c72ca8e96ac4fb1cc149dd71b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="struct_a_rect.html">ARect</a> is a struct that represents a rectangular window area.</p>
+<p>It is used with <a class="el" href="struct_a_native_activity_callbacks.html#a61d30a43b3c77b6047afe951706f6a1e">ANativeActivityCallbacks::onContentRectChanged</a> event callback and <a class="el" href="group___native_activity.html#ga0b0e3b7d442dee83e1a1b42e5b0caee6">ANativeWindow_lock()</a> function. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a4479860c72ca8e96ac4fb1cc149dd71b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t bottom</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>bottom position </p>
+
+</div>
+</div>
+<a class="anchor" id="a9ee4ce87784b0ebeaadce132ce7d421f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t left</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>left position </p>
+
+</div>
+</div>
+<a class="anchor" id="a3d3a4d6bf8bc6c866fa737e11590cc4e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t right</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>left position </p>
+
+</div>
+</div>
+<a class="anchor" id="ad07137116129d873220209ea65f9d3d4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t top</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>top position </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="rect_8h.html">rect.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/struct_a_sensor_event.jd b/docs/html-ndk/ndk/reference/struct_a_sensor_event.jd
new file mode 100644
index 0000000..9e71233c
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/struct_a_sensor_event.jd
@@ -0,0 +1,372 @@
+page.title=ASensorEvent Struct Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">ASensorEvent Struct Reference<div class="ingroups"><a class="el" href="group___sensor.html">Sensor</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;sensor.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a67fae7dd1de9edce3656ed214d20377f"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_event.html#a67fae7dd1de9edce3656ed214d20377f">version</a></td></tr>
+<tr class="separator:a67fae7dd1de9edce3656ed214d20377f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a470f19badf179fe205462c060e5175b4"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_event.html#a470f19badf179fe205462c060e5175b4">sensor</a></td></tr>
+<tr class="separator:a470f19badf179fe205462c060e5175b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a449e574ed6911881dc55507cb5635c2c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_event.html#a449e574ed6911881dc55507cb5635c2c">type</a></td></tr>
+<tr class="separator:a449e574ed6911881dc55507cb5635c2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b1869501b35bf41f2ff54de072b6c2c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_event.html#a3b1869501b35bf41f2ff54de072b6c2c">reserved0</a></td></tr>
+<tr class="separator:a3b1869501b35bf41f2ff54de072b6c2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a591d341723df9496cda98e225b25b4"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_event.html#a8a591d341723df9496cda98e225b25b4">timestamp</a></td></tr>
+<tr class="separator:a8a591d341723df9496cda98e225b25b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a4f7ed8edd7821e9e0932df3a29792d"><td class="memItemLeft" >union {</td></tr>
+<tr class="memitem:af302fa16ee998a27548f088d0d9bb64f"><td class="memItemLeft" >&#160;&#160;&#160;union {</td></tr>
+<tr class="memitem:a31244897a6c7f657a9aec807dd1e09ae"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#a31244897a6c7f657a9aec807dd1e09ae">data</a> [16]</td></tr>
+<tr class="separator:a31244897a6c7f657a9aec807dd1e09ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebf12879fa9b61c671584994ddad9610"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;<a class="el" href="struct_a_sensor_vector.html">ASensorVector</a>&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#aebf12879fa9b61c671584994ddad9610">vector</a></td></tr>
+<tr class="separator:aebf12879fa9b61c671584994ddad9610"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab1f50881089166ff5f3d46f7bfcf09c"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;<a class="el" href="struct_a_sensor_vector.html">ASensorVector</a>&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#aab1f50881089166ff5f3d46f7bfcf09c">acceleration</a></td></tr>
+<tr class="separator:aab1f50881089166ff5f3d46f7bfcf09c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a776bc8e3beff52764ef2d6d423563d64"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;<a class="el" href="struct_a_sensor_vector.html">ASensorVector</a>&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#a776bc8e3beff52764ef2d6d423563d64">magnetic</a></td></tr>
+<tr class="separator:a776bc8e3beff52764ef2d6d423563d64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc1d28cfbce795d6ea954ebe725241f5"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#afc1d28cfbce795d6ea954ebe725241f5">temperature</a></td></tr>
+<tr class="separator:afc1d28cfbce795d6ea954ebe725241f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06f14a9abd47b91465f895d5259cdc1b"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#a06f14a9abd47b91465f895d5259cdc1b">distance</a></td></tr>
+<tr class="separator:a06f14a9abd47b91465f895d5259cdc1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf8b2537020ae0b7450785724d77a3e0"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#aaf8b2537020ae0b7450785724d77a3e0">light</a></td></tr>
+<tr class="separator:aaf8b2537020ae0b7450785724d77a3e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac870e1249bab4a2a68cc4126761d24ef"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#ac870e1249bab4a2a68cc4126761d24ef">pressure</a></td></tr>
+<tr class="separator:ac870e1249bab4a2a68cc4126761d24ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad60830bc80efb7e8a11d6fb25518f55b"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#ad60830bc80efb7e8a11d6fb25518f55b">relative_humidity</a></td></tr>
+<tr class="separator:ad60830bc80efb7e8a11d6fb25518f55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e35158edcd83e4651d7083ebdb41bae"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;<a class="el" href="struct_a_uncalibrated_event.html">AUncalibratedEvent</a>&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#a4e35158edcd83e4651d7083ebdb41bae">uncalibrated_gyro</a></td></tr>
+<tr class="separator:a4e35158edcd83e4651d7083ebdb41bae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c746f01a48fbdefaad12c35be0dd715"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;<a class="el" href="struct_a_uncalibrated_event.html">AUncalibratedEvent</a>&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#a3c746f01a48fbdefaad12c35be0dd715">uncalibrated_magnetic</a></td></tr>
+<tr class="separator:a3c746f01a48fbdefaad12c35be0dd715"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40a6e69697a42e0f0ad04a09d7f113d3"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;<a class="el" href="struct_a_meta_data_event.html">AMetaDataEvent</a>&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#a40a6e69697a42e0f0ad04a09d7f113d3">meta_data</a></td></tr>
+<tr class="separator:a40a6e69697a42e0f0ad04a09d7f113d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2325abb12f65d7cbceec766e6db506d8"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;<a class="el" href="struct_a_heart_rate_event.html">AHeartRateEvent</a>&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#a2325abb12f65d7cbceec766e6db506d8">heart_rate</a></td></tr>
+<tr class="separator:a2325abb12f65d7cbceec766e6db506d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af302fa16ee998a27548f088d0d9bb64f"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:af302fa16ee998a27548f088d0d9bb64f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89806d4445310e62ed4b68c9e2698b27"><td class="memItemLeft" >&#160;&#160;&#160;union {</td></tr>
+<tr class="memitem:a1bc800e1b28e4acd0ee4e971619a598f"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;uint64_t&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#a1bc800e1b28e4acd0ee4e971619a598f">data</a> [8]</td></tr>
+<tr class="separator:a1bc800e1b28e4acd0ee4e971619a598f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e54280490afc977b11157e387841145"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;uint64_t&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#a2e54280490afc977b11157e387841145">step_counter</a></td></tr>
+<tr class="separator:a2e54280490afc977b11157e387841145"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a89806d4445310e62ed4b68c9e2698b27"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;&#160;&#160;<a class="el" href="struct_a_sensor_event.html#a89806d4445310e62ed4b68c9e2698b27">u64</a></td></tr>
+<tr class="separator:a89806d4445310e62ed4b68c9e2698b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a4f7ed8edd7821e9e0932df3a29792d"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:a5a4f7ed8edd7821e9e0932df3a29792d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a773b39d480759f67926cb18ae2219281"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_event.html#a773b39d480759f67926cb18ae2219281">flags</a></td></tr>
+<tr class="separator:a773b39d480759f67926cb18ae2219281"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3c2ed5a26d302c47f7b3f2dd0bbf7f94"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_event.html#a3c2ed5a26d302c47f7b3f2dd0bbf7f94">reserved1</a> [3]</td></tr>
+<tr class="separator:a3c2ed5a26d302c47f7b3f2dd0bbf7f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a5a4f7ed8edd7821e9e0932df3a29792d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">union { ... } </td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aab1f50881089166ff5f3d46f7bfcf09c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct_a_sensor_vector.html">ASensorVector</a> acceleration</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a31244897a6c7f657a9aec807dd1e09ae"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float data[16]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1bc800e1b28e4acd0ee4e971619a598f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint64_t data[8]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a06f14a9abd47b91465f895d5259cdc1b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float distance</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a773b39d480759f67926cb18ae2219281"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t flags</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2325abb12f65d7cbceec766e6db506d8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct_a_heart_rate_event.html">AHeartRateEvent</a> heart_rate</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaf8b2537020ae0b7450785724d77a3e0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float light</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a776bc8e3beff52764ef2d6d423563d64"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct_a_sensor_vector.html">ASensorVector</a> magnetic</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a40a6e69697a42e0f0ad04a09d7f113d3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct_a_meta_data_event.html">AMetaDataEvent</a> meta_data</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac870e1249bab4a2a68cc4126761d24ef"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float pressure</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad60830bc80efb7e8a11d6fb25518f55b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float relative_humidity</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3b1869501b35bf41f2ff54de072b6c2c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t reserved0</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3c2ed5a26d302c47f7b3f2dd0bbf7f94"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t reserved1[3]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a470f19badf179fe205462c060e5175b4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t sensor</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2e54280490afc977b11157e387841145"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint64_t step_counter</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afc1d28cfbce795d6ea954ebe725241f5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float temperature</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8a591d341723df9496cda98e225b25b4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int64_t timestamp</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a449e574ed6911881dc55507cb5635c2c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t type</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a89806d4445310e62ed4b68c9e2698b27"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">union { ... }   u64</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4e35158edcd83e4651d7083ebdb41bae"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct_a_uncalibrated_event.html">AUncalibratedEvent</a> uncalibrated_gyro</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3c746f01a48fbdefaad12c35be0dd715"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct_a_uncalibrated_event.html">AUncalibratedEvent</a> uncalibrated_magnetic</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aebf12879fa9b61c671584994ddad9610"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct_a_sensor_vector.html">ASensorVector</a> vector</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a67fae7dd1de9edce3656ed214d20377f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t version</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="sensor_8h.html">sensor.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/struct_a_sensor_vector.jd b/docs/html-ndk/ndk/reference/struct_a_sensor_vector.jd
new file mode 100644
index 0000000..39c76ab
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/struct_a_sensor_vector.jd
@@ -0,0 +1,180 @@
+page.title=ASensorVector Struct Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">ASensorVector Struct Reference<div class="ingroups"><a class="el" href="group___sensor.html">Sensor</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;sensor.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a1c2115c78d0380b0ecfbf9e94adcf821"><td class="memItemLeft" >union {</td></tr>
+<tr class="memitem:a9a1a1a00f1e45435cc3001b553000a21"><td class="memItemLeft" >&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_vector.html#a9a1a1a00f1e45435cc3001b553000a21">v</a> [3]</td></tr>
+<tr class="separator:a9a1a1a00f1e45435cc3001b553000a21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada5f2f99413a51a46caa8ef7f44c7a88"><td class="memItemLeft" >&#160;&#160;&#160;struct {</td></tr>
+<tr class="memitem:ad0da36b2558901e21e7a30f6c227a45e"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_vector.html#ad0da36b2558901e21e7a30f6c227a45e">x</a></td></tr>
+<tr class="separator:ad0da36b2558901e21e7a30f6c227a45e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4f0d3eebc3c443f9be81bf48561a217"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_vector.html#aa4f0d3eebc3c443f9be81bf48561a217">y</a></td></tr>
+<tr class="separator:aa4f0d3eebc3c443f9be81bf48561a217"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af73583b1e980b0aa03f9884812e9fd4d"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_vector.html#af73583b1e980b0aa03f9884812e9fd4d">z</a></td></tr>
+<tr class="separator:af73583b1e980b0aa03f9884812e9fd4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada5f2f99413a51a46caa8ef7f44c7a88"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:ada5f2f99413a51a46caa8ef7f44c7a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa217775a0b49338072ee12500155bdbf"><td class="memItemLeft" >&#160;&#160;&#160;struct {</td></tr>
+<tr class="memitem:a01b03ebfa7d0a95760e743f611fecbc5"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_vector.html#a01b03ebfa7d0a95760e743f611fecbc5">azimuth</a></td></tr>
+<tr class="separator:a01b03ebfa7d0a95760e743f611fecbc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a282e7d4378d4a18a805b8980295ac86c"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_vector.html#a282e7d4378d4a18a805b8980295ac86c">pitch</a></td></tr>
+<tr class="separator:a282e7d4378d4a18a805b8980295ac86c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26fd84d522945b6038221d9e38c7cc39"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_sensor_vector.html#a26fd84d522945b6038221d9e38c7cc39">roll</a></td></tr>
+<tr class="separator:a26fd84d522945b6038221d9e38c7cc39"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa217775a0b49338072ee12500155bdbf"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:aa217775a0b49338072ee12500155bdbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1c2115c78d0380b0ecfbf9e94adcf821"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:a1c2115c78d0380b0ecfbf9e94adcf821"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a555c2084e8436de01dc76a23590e8824"><td class="memItemLeft" align="right" valign="top">int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_vector.html#a555c2084e8436de01dc76a23590e8824">status</a></td></tr>
+<tr class="separator:a555c2084e8436de01dc76a23590e8824"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72aca6ea6d8153b28ea8f139b932ec3e"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_a_sensor_vector.html#a72aca6ea6d8153b28ea8f139b932ec3e">reserved</a> [3]</td></tr>
+<tr class="separator:a72aca6ea6d8153b28ea8f139b932ec3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A sensor event. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a1c2115c78d0380b0ecfbf9e94adcf821"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">union { ... } </td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a01b03ebfa7d0a95760e743f611fecbc5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float azimuth</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a282e7d4378d4a18a805b8980295ac86c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float pitch</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a72aca6ea6d8153b28ea8f139b932ec3e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint8_t reserved[3]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a26fd84d522945b6038221d9e38c7cc39"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float roll</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a555c2084e8436de01dc76a23590e8824"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int8_t status</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9a1a1a00f1e45435cc3001b553000a21"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float v[3]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad0da36b2558901e21e7a30f6c227a45e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float x</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa4f0d3eebc3c443f9be81bf48561a217"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float y</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af73583b1e980b0aa03f9884812e9fd4d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float z</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="sensor_8h.html">sensor.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/struct_a_uncalibrated_event.jd b/docs/html-ndk/ndk/reference/struct_a_uncalibrated_event.jd
new file mode 100644
index 0000000..b4e11da
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/struct_a_uncalibrated_event.jd
@@ -0,0 +1,179 @@
+page.title=AUncalibratedEvent Struct Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">AUncalibratedEvent Struct Reference<div class="ingroups"><a class="el" href="group___sensor.html">Sensor</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;sensor.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a7b163a0b99971787ece3a65e6000fdf2"><td class="memItemLeft" >union {</td></tr>
+<tr class="memitem:a9c22454e765672782b7198d57a92f5fd"><td class="memItemLeft" >&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_uncalibrated_event.html#a9c22454e765672782b7198d57a92f5fd">uncalib</a> [3]</td></tr>
+<tr class="separator:a9c22454e765672782b7198d57a92f5fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b528c70566cf887c975d6c5a9cdcbb1"><td class="memItemLeft" >&#160;&#160;&#160;struct {</td></tr>
+<tr class="memitem:ac8b7f8daea042eaa2b86f0bf2160c44a"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_uncalibrated_event.html#ac8b7f8daea042eaa2b86f0bf2160c44a">x_uncalib</a></td></tr>
+<tr class="separator:ac8b7f8daea042eaa2b86f0bf2160c44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43437dd77e26c6b89ab1c91aeb63fd64"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_uncalibrated_event.html#a43437dd77e26c6b89ab1c91aeb63fd64">y_uncalib</a></td></tr>
+<tr class="separator:a43437dd77e26c6b89ab1c91aeb63fd64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae677be5f98570cc5a1fd7fddcd8a6841"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_uncalibrated_event.html#ae677be5f98570cc5a1fd7fddcd8a6841">z_uncalib</a></td></tr>
+<tr class="separator:ae677be5f98570cc5a1fd7fddcd8a6841"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b528c70566cf887c975d6c5a9cdcbb1"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:a8b528c70566cf887c975d6c5a9cdcbb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b163a0b99971787ece3a65e6000fdf2"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:a7b163a0b99971787ece3a65e6000fdf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac376d6a49d888be08124578ee9b9fc15"><td class="memItemLeft" >union {</td></tr>
+<tr class="memitem:a52bd7f09c4decadcfbc0347fda4163d6"><td class="memItemLeft" >&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_uncalibrated_event.html#a52bd7f09c4decadcfbc0347fda4163d6">bias</a> [3]</td></tr>
+<tr class="separator:a52bd7f09c4decadcfbc0347fda4163d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4710797e0d0109a279359bfb8d4e2327"><td class="memItemLeft" >&#160;&#160;&#160;struct {</td></tr>
+<tr class="memitem:a56c4ea73587a9ea20595cca9bcfe9593"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_uncalibrated_event.html#a56c4ea73587a9ea20595cca9bcfe9593">x_bias</a></td></tr>
+<tr class="separator:a56c4ea73587a9ea20595cca9bcfe9593"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a130457eaa905b467bc43fedb02cbb16a"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_uncalibrated_event.html#a130457eaa905b467bc43fedb02cbb16a">y_bias</a></td></tr>
+<tr class="separator:a130457eaa905b467bc43fedb02cbb16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e265324293107afbfa9e587941a4036"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;float&#160;&#160;&#160;<a class="el" href="struct_a_uncalibrated_event.html#a6e265324293107afbfa9e587941a4036">z_bias</a></td></tr>
+<tr class="separator:a6e265324293107afbfa9e587941a4036"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4710797e0d0109a279359bfb8d4e2327"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:a4710797e0d0109a279359bfb8d4e2327"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac376d6a49d888be08124578ee9b9fc15"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:ac376d6a49d888be08124578ee9b9fc15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a7b163a0b99971787ece3a65e6000fdf2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">union { ... } </td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac376d6a49d888be08124578ee9b9fc15"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">union { ... } </td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a52bd7f09c4decadcfbc0347fda4163d6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float bias[3]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9c22454e765672782b7198d57a92f5fd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float uncalib[3]</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a56c4ea73587a9ea20595cca9bcfe9593"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float x_bias</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac8b7f8daea042eaa2b86f0bf2160c44a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float x_uncalib</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a130457eaa905b467bc43fedb02cbb16a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float y_bias</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a43437dd77e26c6b89ab1c91aeb63fd64"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float y_uncalib</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6e265324293107afbfa9e587941a4036"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float z_bias</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae677be5f98570cc5a1fd7fddcd8a6841"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">float z_uncalib</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="sensor_8h.html">sensor.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/struct_android_bitmap_info.jd b/docs/html-ndk/ndk/reference/struct_android_bitmap_info.jd
new file mode 100644
index 0000000..1399838
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/struct_android_bitmap_info.jd
@@ -0,0 +1,108 @@
+page.title=AndroidBitmapInfo Struct Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">AndroidBitmapInfo Struct Reference<div class="ingroups"><a class="el" href="group___bitmap.html">Bitmap</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;bitmap.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a325272ddd9a962f05deb905101d25cbd"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_android_bitmap_info.html#a325272ddd9a962f05deb905101d25cbd">width</a></td></tr>
+<tr class="separator:a325272ddd9a962f05deb905101d25cbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ad4f820ce4e75cda0686fcaad5168be"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_android_bitmap_info.html#a6ad4f820ce4e75cda0686fcaad5168be">height</a></td></tr>
+<tr class="separator:a6ad4f820ce4e75cda0686fcaad5168be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a981556a4e63b7b6d9f94975c7a8930ab"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_android_bitmap_info.html#a981556a4e63b7b6d9f94975c7a8930ab">stride</a></td></tr>
+<tr class="separator:a981556a4e63b7b6d9f94975c7a8930ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49d503b84d084937e3ceeda9f0b4659e"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_android_bitmap_info.html#a49d503b84d084937e3ceeda9f0b4659e">format</a></td></tr>
+<tr class="separator:a49d503b84d084937e3ceeda9f0b4659e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a773b39d480759f67926cb18ae2219281"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_android_bitmap_info.html#a773b39d480759f67926cb18ae2219281">flags</a></td></tr>
+<tr class="separator:a773b39d480759f67926cb18ae2219281"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Bitmap info, see <a class="el" href="group___bitmap.html#ga80292ee39d8a675928e38849742b54bf">AndroidBitmap_getInfo()</a>. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a773b39d480759f67926cb18ae2219281"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t flags</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Unused. </p>
+
+</div>
+</div>
+<a class="anchor" id="a49d503b84d084937e3ceeda9f0b4659e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int32_t format</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The bitmap pixel format. See <a class="el" href="group___bitmap.html#gaea286a2d4c61ae2abb02b51500499f13">AndroidBitmapFormat</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="a6ad4f820ce4e75cda0686fcaad5168be"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t height</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The bitmap height in pixels. </p>
+
+</div>
+</div>
+<a class="anchor" id="a981556a4e63b7b6d9f94975c7a8930ab"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t stride</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The number of byte per row. </p>
+
+</div>
+</div>
+<a class="anchor" id="a325272ddd9a962f05deb905101d25cbd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uint32_t width</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>The bitmap width in pixels. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li><a class="el" href="bitmap_8h.html">bitmap.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html-ndk/ndk/reference/sync_off.png b/docs/html-ndk/ndk/reference/sync_off.png
new file mode 100644
index 0000000..b856624
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/sync_off.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/sync_on.png b/docs/html-ndk/ndk/reference/sync_on.png
new file mode 100644
index 0000000..e5044af
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/sync_on.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/tab_a.png b/docs/html-ndk/ndk/reference/tab_a.png
new file mode 100644
index 0000000..170a784
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/tab_a.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/tab_b.png b/docs/html-ndk/ndk/reference/tab_b.png
new file mode 100644
index 0000000..7774499
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/tab_b.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/tab_h.png b/docs/html-ndk/ndk/reference/tab_h.png
new file mode 100644
index 0000000..e1dddef
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/tab_h.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/tab_s.png b/docs/html-ndk/ndk/reference/tab_s.png
new file mode 100644
index 0000000..3dc07b0
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/tab_s.png
Binary files differ
diff --git a/docs/html-ndk/ndk/reference/tabs.css b/docs/html-ndk/ndk/reference/tabs.css
new file mode 100644
index 0000000..71145bb
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/tabs.css
@@ -0,0 +1,60 @@
+.tabs, .tabs2, .tabs3 {
+    background-image: url('tab_b.png');
+    width: 100%;
+    z-index: 101;
+    font-size: 13px;
+    font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+.tabs2 {
+    font-size: 10px;
+}
+.tabs3 {
+    font-size: 9px;
+}
+
+.tablist {
+    margin: 0;
+    padding: 0;
+    display: table;
+}
+
+.tablist li {
+    float: left;
+    display: table-cell;
+    background-image: url('tab_b.png');
+    line-height: 36px;
+    list-style: none;
+}
+
+.tablist a {
+    display: block;
+    padding: 0 20px;
+    font-weight: bold;
+    background-image:url('tab_s.png');
+    background-repeat:no-repeat;
+    background-position:right;
+    color: #434343;
+    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+    text-decoration: none;
+    outline: none;
+}
+
+.tabs3 .tablist a {
+    padding: 0 10px;
+}
+
+.tablist a:hover {
+    background-image: url('tab_h.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+    text-decoration: none;
+}
+
+.tablist li.current a {
+    background-image: url('tab_a.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
diff --git a/docs/html-ndk/ndk/reference/window_8h.jd b/docs/html-ndk/ndk/reference/window_8h.jd
new file mode 100644
index 0000000..42e98d9
--- /dev/null
+++ b/docs/html-ndk/ndk/reference/window_8h.jd
@@ -0,0 +1,61 @@
+page.title=window.h File Reference
+page.customHeadTag=<link rel="stylesheet" type="text/css" href="doxygen-dac.css">
+@jd:body
+<!-- Generated by Doxygen 1.8.6 -->
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_035c76f7235f5f563d38e3ab90cb9716.html">android</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">window.h File Reference<div class="ingroups"><a class="el" href="group___native_activity.html">Native Activity</a></div></div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gaf715e26dfffd1f8de1c18449e2770cff"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa67363c129036872bc9dd29557e807508">AWINDOW_FLAG_ALLOW_LOCK_WHILE_SCREEN_ON</a> = 0x00000001, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa6155e77ae4e12cc56fb3f6f55f56bf6f">AWINDOW_FLAG_DIM_BEHIND</a> = 0x00000002, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa0377f46a626d411ace179c1c27d0a3f7">AWINDOW_FLAG_BLUR_BEHIND</a> = 0x00000004, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffab5f19f59dd6b2601e4d1a7ff533bc50f">AWINDOW_FLAG_NOT_FOCUSABLE</a> = 0x00000008, 
+<br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffae9f1278ffa6fe9c12c2305d4f4de1450">AWINDOW_FLAG_NOT_TOUCHABLE</a> = 0x00000010, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa5ef903c3617dd33e3c22f567abd64b09">AWINDOW_FLAG_NOT_TOUCH_MODAL</a> = 0x00000020, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa5574a513645e6e7cb4d6a9f4a043d773">AWINDOW_FLAG_TOUCHABLE_WHEN_WAKING</a> = 0x00000040, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaf6f66a498bd3bda8d51b6983eb2a99d8">AWINDOW_FLAG_KEEP_SCREEN_ON</a> = 0x00000080, 
+<br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa6978968d7e0dc1a0e12f58ad395a959a">AWINDOW_FLAG_LAYOUT_IN_SCREEN</a> = 0x00000100, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffade9722581a203ee0db25d42f4d2bd389">AWINDOW_FLAG_LAYOUT_NO_LIMITS</a> = 0x00000200, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaca1f1d91313d7c32bb7982d8a5abcd71">AWINDOW_FLAG_FULLSCREEN</a> = 0x00000400, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa4c21235db629d3937f87ffe98cd6fe5d">AWINDOW_FLAG_FORCE_NOT_FULLSCREEN</a> = 0x00000800, 
+<br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffae73488b436aaea163ba2f7051bf93d9d">AWINDOW_FLAG_DITHER</a> = 0x00001000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa8ff70709a588a05781d7cb178b526cc0">AWINDOW_FLAG_SECURE</a> = 0x00002000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa80316264eeae9681a56c1a2297bf465a">AWINDOW_FLAG_SCALED</a> = 0x00004000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffaa2fe4ee2307bb814a37a043de6d7d326">AWINDOW_FLAG_IGNORE_CHEEK_PRESSES</a> = 0x00008000, 
+<br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa97b8542941bfe613bcf92357be89b563">AWINDOW_FLAG_LAYOUT_INSET_DECOR</a> = 0x00010000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa961ff4c9c0903cfb8867d961bebe1659">AWINDOW_FLAG_ALT_FOCUSABLE_IM</a> = 0x00020000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa35229f75b3309bafdd828cbbf27d05b6">AWINDOW_FLAG_WATCH_OUTSIDE_TOUCH</a> = 0x00040000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa549f08950ef1ed3a334338d08ced1c3b">AWINDOW_FLAG_SHOW_WHEN_LOCKED</a> = 0x00080000, 
+<br/>
+&#160;&#160;<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa952ae6ceebe94d3f0d666454548b8824">AWINDOW_FLAG_SHOW_WALLPAPER</a> = 0x00100000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffac4deee26ac742bbd0bb4c44fda140a01">AWINDOW_FLAG_TURN_SCREEN_ON</a> = 0x00200000, 
+<a class="el" href="group___native_activity.html#ggaf715e26dfffd1f8de1c18449e2770cffa37c1077a12f1c8c6805b1da6f7bb213a">AWINDOW_FLAG_DISMISS_KEYGUARD</a> = 0x00400000
+<br/>
+ }</td></tr>
+<tr class="separator:gaf715e26dfffd1f8de1c18449e2770cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu May 21 2015 01:26:49 for NDK API by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.6
+</small></address>
+</body>
+</html>
diff --git a/docs/html/about/versions/android-4.3.jd b/docs/html/about/versions/android-4.3.jd
index e18c285..2496854 100644
--- a/docs/html/about/versions/android-4.3.jd
+++ b/docs/html/about/versions/android-4.3.jd
@@ -1029,7 +1029,7 @@
 android.app.Instrumentation#getUiAutomation Instrumentation.getUiAutomation()}. In order
 for this to work, you must supply the {@code -w} option with the {@code instrument} command
 when running your {@link android.test.InstrumentationTestCase} from <a
-href="{@docRoot}tools/help/adb.html#am">{@code adb shell}</a>.</p>
+href="{@docRoot}tools/help/shell.html#am">{@code adb shell}</a>.</p>
 
 <p>With the {@link android.app.UiAutomation} instance, you can execute arbitrary events to test
 your app by calling {@link android.app.UiAutomation#executeAndWaitForEvent
diff --git a/docs/html/guide/components/intents-common.jd b/docs/html/guide/components/intents-common.jd
index 964f075..dbc14fa 100644
--- a/docs/html/guide/components/intents-common.jd
+++ b/docs/html/guide/components/intents-common.jd
@@ -2236,7 +2236,7 @@
 
 
 <p>For more information, see
-<a href="{@docRoot}tools/help/adb.html#am">Using activity manager (am)</a>.</p>
+<a href="{@docRoot}tools/help/shell.html#am">ADB Shell Commands</a>.</p>
 
 
 
diff --git a/docs/html/guide/topics/media/exoplayer.jd b/docs/html/guide/topics/media/exoplayer.jd
index 1e8601f..ad35523 100644
--- a/docs/html/guide/topics/media/exoplayer.jd
+++ b/docs/html/guide/topics/media/exoplayer.jd
@@ -2,511 +2,28 @@
 page.tags="audio","video","adaptive","streaming","DASH","smoothstreaming"
 @jd:body
 
-<div id="qv-wrapper">
-  <div id="qv">
-    <h2>In this document</h2>
-    <ol>
-      <li><a href="#overview">Overview</a></li>
-      <li><a href="#trackrenderer">TrackRenderer</a></li>
-      <li><a href="#samplesource">SampleSource</a>
-        <ol>
-          <li><a href="#mediaextractor">Providing media using MediaExtractor</a></li>
-          <li><a href="#adaptive-playback">Providing media for adaptive playback</a>
-            <ol>
-              <li><a href="#format-selection">Format selection for adaptive playback</a></li>
-            </ol>
-          </li>
-        </ol>
-      <li><a href="#events">Player Events</a>
-        <ol>
-          <li><a href="#high-events">High level events</a></li>
-          <li><a href="#low-events">Low level events</a></li>
-        </ol>
-      </li>
-      <li><a href="#sending-messages">Sending messages to components</a></li>
-      <li><a href="#customizing">Customizing ExoPlayer</a>
-        <ol>
-          <li><a href="#custom-guidelines">Custom component guidelines</a></li>
-        </ol>
-      </li>
-      <li><a href="#drm">Digital Rights Management</a></li>
-    </ol>
-    <h2>Key Classes</h2>
-    <ol>
-      <li>{@link android.media.MediaCodec}</li>
-      <li>{@link android.media.MediaExtractor}</li>
-      <li>{@link android.media.AudioTrack}</li>
-    </ol>
-    <h2>Related Samples</h2>
-    <ol>
-      <li><a class="external-link" href="https://github.com/google/ExoPlayer">
-        ExoPlayer Project</a></li>
-      <li><a class="external-link" href="http://google.github.io/ExoPlayer/doc/reference/packages.html">
-        Class Reference</a></li>
-    </ol>
-  </div>
-</div>
-
-
 <p>Playing videos and music is a popular activity on Android devices. The Android framework
   provides {@link android.media.MediaPlayer} as a quick solution for playing media with minimal
   code, and the {@link android.media.MediaCodec} and {@link android.media.MediaExtractor} classes
   are provided for building custom media players. The open source project, ExoPlayer, is a
   solution between these two options, providing a pre-built player that you can extend.</p>
 
-<p>ExoPlayer supports features not currently provided by
-  {@link android.media.MediaPlayer}, including Dynamic adaptive streaming
-  over HTTP (DASH), SmoothStreaming, and persistent caching. ExoPlayer can be extended
-  to handle additional media formats, and because you include it as part of your app code,
-  you can update it along with your app.</p>
-
-<p>This guide describes how to use ExoPlayer for playing Android supported media formats, as well as
-  DASH and SmoothStreaming playback. This guide also discusses ExoPlayer events, messages, DRM
-  support and guidelines for customizing the player.</p>
+<p>ExoPlayer supports features not currently provided by {@link android.media.MediaPlayer},
+  including Dynamic adaptive streaming over HTTP (DASH), SmoothStreaming and Common Encryption. It's
+  designed to be easy to customize and extend, allowing many components to be replaced with custom
+  implementations. Because ExoPlayer is a library that you include in your application, it can be
+  easily updated along with your app.</p>
 
 <p class="note">
   <strong>Note:</strong> ExoPlayer is an open source project that is not part of the Android
-  framework and is distributed separately from the Android SDK. The project contains a library and
-  a demo app that shows both simple and more advanced use of ExoPlayer:</p>
+  framework and is distributed separately from the Android SDK. Visit the links below to find out
+  more.
 
 <ul>
-    <li><a class="external-link" href="https://github.com/google/ExoPlayer/tree/master/library">
-      ExoPlayer Library</a> &mdash; This part of the project contains the core library classes.</li>
-    <li><a class="external-link" href="https://github.com/google/ExoPlayer/tree/master/demo">
-      Demo App</a> &mdash; This part of the project demonstrates usage of ExoPlayer,
-      including the ability to select between multiple audio tracks, a background audio mode,
-      event logging and DRM protected playback. </li>
+    <li><a class="external-link" href="http://google.github.io/ExoPlayer/">
+      ExoPlayer</a> &mdash; The project homepage.</li>
+    <li><a class="external-link" href="http://google.github.io/ExoPlayer/guide.html">
+      Developer guide</a> &mdash; Provides a wealth of information to help you get started.</li>
+    <li><a class="external-link" href="https://github.com/google/ExoPlayer">
+      GitHub project</a> &mdash; Contains the source code, as well as a demo app.</li>
 </ul>
-
-
-<h2 id="overview">Overview</h2>
-
-<p>ExoPlayer is a media player built on top of the {@link android.media.MediaExtractor} and
-  {@link android.media.MediaCodec} APIs released in Android 4.1 (API level 16). At the core of this
-  library is the {@code ExoPlayer} class. This class maintains the player’s global state, but makes few
-  assumptions about the nature of the media being played, such as how the media data is obtained,
-  how it is buffered or its format. You inject this functionality through ExoPlayer’s {@code
-  prepare()} method in the form of {@code TrackRenderer} objects.</p>
-
-<p>ExoPlayer provides default {@code TrackRenderer} implementations for audio and
-  video, which make use of the {@link android.media.MediaCodec} and {@link android.media.AudioTrack}
-  classes in the Android framework. Both renderers require a {@code SampleSource} object, from which
-  they obtain individual media samples for playback. Figure 1 shows the high level object model for
-  an ExoPlayer implementation configured to play audio and video using these components.</p>
-
-<img src="{@docRoot}images/exoplayer/object-model.png" alt="" id="figure1" />
-<p class="img-caption">
-  <strong>Figure 1.</strong> High level object model for an ExoPlayer configured to play audio
-  and video using {@code TrackRenderer} objects
-</p>
-
-
-<h2 id="trackrenderer">TrackRenderer</h2>
-
-<p>A {@code TrackRenderer} processes a component of media for playback, such as
-  video, audio or text. The ExoPlayer class invokes methods on its {@code TrackRenderer} instances from a
-  single playback thread, and by doing so causes each media component to be rendered as the global
-  playback position is advanced. The ExoPlayer library provides {@code MediaCodecVideoTrackRenderer} as
-  the default implementations rendering video and {@code MediaCodecAudioTrackRenderer} for audio.
-  Both implementations make use of {@link android.media.MediaCodec} to decode individual media
-  samples. They can handle all audio and video formats supported by a given Android device
-  (see <a href="http://developer.android.com/guide/appendix/media-formats.html">Supported Media
-  Formats</a> for details). The ExoPlayer library also provides an implementation for rendering
-  text called {@code TextTrackRenderer}.
-</p>
-
-<p>The code example below outlines the main steps required to instantiate an ExoPlayer to play video
-  and audio using the standard {@code TrackRenderer} implementations.</p>
-
-<pre>
-// 1. Instantiate the player.
-player = ExoPlayer.Factory.newInstance(RENDERER_COUNT);
-// 2. Construct renderers.
-MediaCodecVideoTrackRenderer videoRenderer = …
-MediaCodecAudioTrackRenderer audioRenderer = ...
-// 3. Inject the renderers through prepare.
-player.prepare(videoRenderer, audioRenderer);
-// 4. Pass the surface to the video renderer.
-player.sendMessage(videoRenderer, MediaCodecVideoTrackRenderer.MSG_SET_SURFACE,
-        surface);
-// 5. Start playback.
-player.setPlayWhenReady(true);
-...
-player.release(); // Don’t forget to release when done!
-</pre>
-
-<p>For a complete example, see {@code PlayerActivity} and {@code DemoPlayer} in the ExoPlayer demo
-  app. Between them these classes correctly manage an ExoPlayer instance with respect to both the
-  {@link android.app.Activity} and {@link android.view.Surface} lifecycles.
-</p>
-
-
-<h2 id="samplesource">SampleSource</h2>
-
-<p>A standard {@code TrackRenderer} implementation requires a {@code SampleSource} to
-  be provided in its constructor. A {@code SampleSource} object provides format information and
-  media samples to be rendered. The ExoPlayer library provides {@code FrameworkSampleSource} and
-  {@code ChunkSampleSource}. The {@code FrameworkSampleSource} class uses {@link
-  android.media.MediaExtractor} to request, buffer and extract the media samples. The {@code
-  ChunkSampleSource} class provides adaptive playback using DASH or SmoothStreaming, and
-  implements networking, buffering and media extraction within the ExoPlayer library.</p>
-
-
-<h3 id="mediaextractor">Providing media using MediaExtractor</h3>
-
-<p>
-  In order to render media formats supported by the Android framework, the {@code
-  FrameworkSampleSource} class uses {@link android.media.MediaExtractor} for networking,
-  buffering and sample extraction functionality. By doing so, it supports any media container format
-  supported by the version of Android where it is running. For more information about media formats
-  supported by Android, see <a href="{@docRoot}guide/appendix/media-formats.html">Supported
-  Media Formats</a>.
-</p>
-
-<p>The diagram in Figure 2 shows the object model for an ExoPlayer implementation using
-  {@code FrameworkSampleSource}.</p>
-
-<img src="{@docRoot}images/exoplayer/frameworksamplesource.png" alt="" id="figure2" />
-<p class="img-caption">
-  <strong>Figure 2.</strong> Object model for an implementation of ExoPlayer that renders
-  media formats supported by Android using {@code FrameworkSampleSource}
-</p>
-
-<p>The following code example outlines how the video and audio renderers are constructed to
-  load the video from a specified URI.</p>
-
-<pre>
-FrameworkSampleSource sampleSource = new FrameworkSampleSource(
-        activity, uri, null, 2);
-MediaCodecVideoTrackRenderer videoRenderer = new MediaCodecVideoTrackRenderer(
-        sampleSource, null, true, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT, 0,
-        mainHandler, playerActivity, 50);
-MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(
-        sampleSource, null, true);
-</pre>
-
-<p>The ExoPlayer demo app provides a complete implementation of this code in
-  {@code DefaultRendererBuilder}. The {@code PlayerActivity} class uses it to play one
-  of the videos available in the demo app. Note that in the example, video and audio
-  are muxed, meaning they are streamed together from a single URI. The {@code FrameworkSampleSource}
-  instance provides video samples to the {@code videoRenderer} object and audio samples to the
-  {@code audioRenderer} object as they are extracted from the media container format. It is also
-  possible to play demuxed media, where video and audio are streamed separately from different URIs.
-  This functionality can be achieved by having two {@code FrameworkSampleSource} instances instead
-  of one.</p>
-
-
-<h3 id="adaptive-playback">Providing media for adaptive playback</h3>
-
-<p>ExoPlayer supports adaptive streaming, which allows the quality of the
-  media data to be adjusted during playback based on the network conditions. DASH
-  and SmoothStreaming are examples of adaptive streaming technologies. Both these approaches
-  load media in small chunks (typically 2 to 10 seconds in duration). Whenever a chunk of media
-  is requested, the client selects from a number of possible formats. For example, a client may
-  select a high quality format if network conditions are good, or a low quality format if network
-  conditions are bad. In both techniques, video and audio are streamed separately.</p>
-
-<p>ExoPlayer supports adaptive playback through use of the {@code ChunkSampleSource} class,
-  which loads chunks of media data from which individual samples can be extracted. Each {@code
-  ChunkSampleSource} requires a {@code ChunkSource} object to be injected through its constructor,
-  which is responsible for providing media chunks from which to load and read samples. The {@code
-  DashChunkSource} class provides DASH playback using the FMP4 and WebM container formats. The
-  {@code SmoothStreamingChunkSource} class provides SmoothStreaming playback using the FMP4
-  container format.</p>
-
-<p>All of the standard {@code ChunkSource} implementations require a {@code FormatEvaluator} and
-  a {@code DataSource} to be injected through their constructors. The {@code FormatEvaluator}
-  objects select from the available formats before each chunk is loaded. The {@code DataSource}
-  objects are responsible for actually loading the data. Finally, the {@code ChunkSampleSources}
-  require a {@code LoadControl} object that controls the chunk buffering policy.</p>
-
-<p>The object model of an ExoPlayer configured for a DASH adaptive playback is shown in the
-  diagram below. This example uses an {@code HttpDataSource} object to stream the media over the
-  network. The video quality is varied at runtime using the adaptive implementation of {@code
-  FormatEvaluator}, while audio is played at a fixed quality level.</p>
-
-<img src="{@docRoot}images/exoplayer/adaptive-streaming.png" alt="" id="figure3" />
-<p class="img-caption">
-  <strong>Figure 3.</strong> Object model for a DASH adaptive playback using ExoPlayer
-</p>
-
-<p>The following code example outlines how the video and audio renderers are constructed.</p>
-
-<pre>
-Handler mainHandler = playerActivity.getMainHandler();
-LoadControl loadControl = new DefaultLoadControl(
-        new BufferPool(BUFFER_SEGMENT_SIZE));
-BandwidthMeter bandwidthMeter = new BandwidthMeter();
-
-// Build the video renderer.
-DataSource videoDataSource = new HttpDataSource(userAgent,
-        HttpDataSource.REJECT_PAYWALL_TYPES, bandwidthMeter);
-ChunkSource videoChunkSource = new DashChunkSource(videoDataSource,
-        new AdaptiveEvaluator(bandwidthMeter), videoRepresentations);
-ChunkSampleSource videoSampleSource = new ChunkSampleSource(videoChunkSource,
-        loadControl, VIDEO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, true);
-MediaCodecVideoTrackRenderer videoRenderer = new MediaCodecVideoTrackRenderer(
-        videoSampleSource, null, true, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT,
-        0, mainHandler, playerActivity, 50);
-
-// Build the audio renderer.
-DataSource audioDataSource = new HttpDataSource(userAgent,
-        HttpDataSource.REJECT_PAYWALL_TYPES, bandwidthMeter);
-ChunkSource audioChunkSource = new DashChunkSource(audioDataSource,
-        new FormatEvaluator.FixedEvaluator(), audioRepresentation);
-SampleSource audioSampleSource = new ChunkSampleSource(audioChunkSource,
-        loadControl, AUDIO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, true);
-MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(
-        audioSampleSource, null, true);
-</pre>
-
-<p>In this code, {@code videoRepresentations} and {@code audioRepresentation} are {@code
-  Representation} objects, each of which describes one of the available media streams. In the DASH
-  model, these streams are parsed from a media presentation description (MPD) file. The ExoPlayer
-  library provides a {@code MediaPresentationDescriptionParser} class to obtain {@code
-  Representation} objects from MPD files.</p>
-
-<p class="note">
-  <strong>Note:</strong> Building Representation objects from MPD files is not required. You can
-  build Representation objects from other data sources if necessary.
-</p>
-
-<p>The ExoPlayer demo app provides complete implementation of this code in
-  {@code DashRendererBuilder}. The {@code PlayerActivity} class uses this builder to
-  construct renderers for playing DASH sample videos in the demo app. For an
-  equivalent SmoothStreaming example, see the {@code SmoothStreamingRendererBuilder} class in the
-  demo app.</p>
-
-
-<h4 id="format-selection">Format selection for adaptive playback</h4>
-
-<p>For DASH and SmoothStreaming playback, consider both static format selection at the
-  start of playback and dynamic format selection during playback. Static format selection should be
-  used to filter out formats that should not be used throughout the playback, for example formats
-  with resolutions higher than the maximum supported by the playback device. Dynamic selection varies
-  the selected format during playback, typically to adapt video quality in response to changes in
-  network conditions.</p>
-
-<h5 id="static-selection">Static format selection</h5>
-
-<p>When preparing a player, you should consider filtering out some of the available formats if
-  they are not useable for playback. Static format selection allows you to filter out
-  formats that cannot be used on a particular device or are not compatible with your player.
-  For audio playback, this often means picking a single format to play and discarding the others.</p>
-
-<p>For video playback, filtering formats can be more complicated. Apps should first
-  eliminate any streams that whose resolution is too high to be played by the device. For H.264,
-  which is normally used for DASH and SmoothStreaming playback, ExoPlayer’s {@code MediaCodecUtil}
-  class provides a {@code maxH264DecodableFrameSize()} method that can be used to determine what
-  resolution streams the device is able to handle, as shown in the following code example:</p>
-
-<pre>
-int maxDecodableFrameSize = MediaCodecUtil.maxH264DecodableFrameSize();
-Format format = representation.format;
-if (format.width * format.height &lt;= maxDecodableFrameSize) {
-  // The device can play this stream.
-  videoRepresentations.add(representation);
-} else {
-  // The device isn't capable of playing this stream.
-}
-</pre>
-
-<p>This approach is used to filter {@code Representations} in the {@code DashRendererBuilder}
-  class of the ExoPlayer demo app, and similarly to filter track indices in {@code
-  SmoothStreamingRendererBuilder}.</p>
-
-<p>In addition to eliminating unsupported formats, it should be noted that the ability to
-  seamlessly switch between H.264 streams of different resolution is an optional decoder feature
-  available in Android 4.3 (API level 16) and higher, and so is not supported by all devices. The
-  availability of an adaptive H.264 decoder can be queried using {@code MediaCodecUtil}, as shown in
-  the following code example:</p>
-
-<pre>
-boolean isAdaptive = MediaCodecUtil.getDecoderInfo(MimeTypes.VIDEO_H264).adaptive;
-</pre>
-
-<p>The {@code MediaCodecVideoTrackRenderer} class is still able to handle resolution changes on
-  devices that do not have adaptive decoders, however the switch is not seamless. Typically, the
-  switch creates a small discontinuity in visual output lasting around 50-100ms. For devices that
-  do not provide an adaptive decoder, app developers may choose to adapt between formats at
-  a single fixed resolution so as to avoid discontinuities. The ExoPlayer demo app
-  implementation does not pick a fixed resolution.</p>
-
-
-<h5 id="dynamic-selection">Dynamic format selection</h5>
-
-<p>During playback, you can use a {@code FormatEvaluator} to dynamically select from the
-  available video formats. The ExoPlayer library provides a {@code FormatEvaluator.Adaptive}
-  implementation for dynamically selecting between video formats based on the current network
-  conditions.</p>
-
-<p>This class provides a simple, general purpose reference implementation, however you are
-  encouraged to write your own {@code FormatEvaluator} implementation to best suit your particular
-  needs.</p>
-
-
-<h2 id="events">Player Events</h2>
-
-<p>During playback, your app can listen for events generated by the ExoPlayer that indicate the
-  overall state of the player. These events are useful as triggers for updating the app user
-  interface such as playback controls. Many ExoPlayer components also report their own component
-  specific low level events, which can be useful for performance monitoring.</p>
-
-
-<h3 id="high-events">High level events</h3>
-
-<p>ExoPlayer allows instances of {@code ExoPlayer.Listener} to be added and removed using its
-  {@code addListener()} and {@code removeListener()} methods. Registered listeners are notified of
-  changes in playback state, as well as when errors occur that cause playback to fail. For more
-  information about the valid playback states and the possible transitions between them, see the
-  ExoPlayer source code.</p>
-
-<p>Developers who implement custom playback controls should register a listener and use it to
-  update their controls as the player’s state changes. An app should also show an
-  appropriate error to the user if playback fails.</p>
-
-<h3 id="low-events">Low level events</h3>
-
-<p>In addition to high level listeners, many of the individual components provided by the
-  ExoPlayer library allow their own event listeners. For example, {@code
-  MediaCodecVideoTrackRenderer} has constructors that take a {@code
-  MediaCodecVideoTrackRenderer.EventListener}. In the ExoPlayer demo app, {@code DemoPlayer}
-  acts as the listener to multiple individual components, forwarding events to {@code PlayerActivity}.
-  This approach allows {@code PlayerActivity} to adjust the dimensions of the target surface
-  to have the correct height and width ratio for the video being played:</p>
-
-<pre>
-&#64;Override
-public void onVideoSizeChanged(int width, int height, float pixelWidthAspectRatio) {
-  surfaceView.setVideoWidthHeightRatio(
-          height == 0 ? 1 : (width * pixelWidthAspectRatio) / height);
-}
-</pre>
-
-<p>The {@code RendererBuilder} classes in the ExoPlayer demo app inject the {@code DemoPlayer} as
-  the listener to each component, for example in the {@code DashRendererBuilder} class:</p>
-
-<pre>
-MediaCodecVideoTrackRenderer videoRenderer = new MediaCodecVideoTrackRenderer(
-        sampleSource, null, true, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT, 5000,
-        null, <strong>player.getMainHandler(), player</strong>, 50);
-</pre>
-
-<p>Note that you must pass a {@link android.os.Handler} object to the renderer, which determines
-  the thread on which the listener’s methods are invoked. In most cases, you should use a
-  {@link android.os.Handler} associated with the app’s main thread, as is the case in this example.
-  </p>
-
-<p>Listening to individual components can be useful for adjusting UI based on player events, as
-  in the example above. Listening to component events can also be helpful for logging performance
-  metrics. For example, {@code MediaCodecVideoTrackRenderer} notifies its listener of dropped video
-  frames. A developer may wish to log such metrics to track playback performance in their
-  app.</p>
-
-<p>Many components also notify their listeners when errors occur. Such errors may or may not
-  cause playback to fail. If an error does not cause playback to fail, it may still result in
-  degraded performance, and so you may wish to log all errors in order to track playback
-  performance. Note that an ExoPlayer instance always notifies its high level listeners of errors that
-  cause playback to fail, in addition to the listener of the individual component from which the error
-  originated. Hence, you should display error messages to users only from high level listeners.
-  Within individual component listeners, you should use error notifications only for informational
-  purposes.</p>
-
-
-<h2 id="sending-messages">Sending messages to components</h2>
-
-<p>Some ExoPlayer components allow changes in configuration during playback. By convention, you make
-  these changes by passing asynchronous messages through the ExoPlayer to the component.
-  This approach ensures both thread safety and that the configuration change is
-  executed in order with any other operations being performed on the player.</p>
-
-<p>The most common use of messaging is passing a target surface to
-  {@code MediaCodecVideoTrackRenderer}:</p>
-
-<pre>
-player.sendMessage(videoRenderer, MediaCodecVideoTrackRenderer.MSG_SET_SURFACE,
-        surface);
-</pre>
-
-<p>Note that if the surface needs to be cleared because
-  {@link android.view.SurfaceHolder.Callback#surfaceDestroyed
-  SurfaceHolder.Callback.surfaceDestroyed()} has been invoked, then you must send this
-  message using the blocking variant of {@code sendMessage()}:</p>
-<p>
-
-<pre>
-player.blockingSendMessage(videoRenderer,
-        MediaCodecVideoTrackRenderer.MSG_SET_SURFACE, null);
-</pre>
-
-<p>You must use a blocking message because the contract of {@link
-  android.view.SurfaceHolder.Callback#surfaceDestroyed surfaceDestroyed()} requires that the
-  app does not attempt to access the surface after the method returns.</p>
-
-
-<h2 id="customizing">Customizing ExoPlayer</h2>
-
-<p>One of the main benefits of ExoPlayer over {@link android.media.MediaPlayer} is the ability to
-  customize and extend the player to better suit the developer’s use case. The ExoPlayer library
-  is designed specifically with this in mind, defining a number of abstract base classes and
-  interfaces that make it possible for app developers to easily replace the default implementations
-  provided by the library. Here are some use cases for building custom components:</p>
-
-<ul>
-  <li><strong>{@code TrackRenderer}</strong> - You may want to implement a custom
-    {@code TrackRenderer} to handle media types other than audio and video. The {@code
-    TextTrackRenderer} class within the ExoPlayer library is an example of how to implement a
-    custom renderer. You could use the approach it demonstrates to render custom
-    overlays or annotations. Implementing this kind of functionality as a {@code TrackRenderer}
-    makes it easy to keep the overlays or annotations in sync with the other media being played.</li>
-  <li><strong>{@code SampleSource}</strong> - If you need to support a container format not
-    already handled by {@link android.media.MediaExtractor} or ExoPlayer, consider implementing a
-    custom {@code SampleSource} class.</li>
-  <li><strong>{@code FormatEvaluator}</strong> - The ExoPlayer library provides {@code
-    FormatEvaluator.Adaptive} as a simple reference implementation that switches between different
-    quality video formats based on the available bandwidth. App developers are encouraged to
-    develop their own adaptive {@code FormatEvaluator} implementations, which can be designed to
-    suit their use specific needs.</li>
-  <li><strong>{@code DataSource}</strong> - ExoPlayer’s upstream package already contains a
-    number of {@code DataSource} implementations for different use cases, such as writing and
-    reading to and from a persistent media cache. You may want to implement you own
-    {@code DataSource} class to load data in another way, such as a custom
-    protocol or HTTP stack for data input.</li>
-</ul>
-
-
-<h3 id="custom-guidelines">Custom component guidelines</h3>
-
-<p>If a custom component needs to report events back to the app, we recommend that you
-  do so using the same model as existing ExoPlayer components, where an event listener is passed
-  together with a {@link android.os.Handler} to the constructor of the component.</p>
-
-<p>We recommended that custom components use the same model as existing ExoPlayer components to
-  allow reconfiguration by the app during playback, as described in
-  <a href="#sending-messages">Sending messages to components</a>.
-  To do this, you should implement a {@code ExoPlayerComponent} and receive
-  configuration changes in its {@code handleMessage()} method. Your app should pass
-  configuration changes by calling ExoPlayer’s {@code sendMessage()} and {@code
-  blockingSendMessage()} methods.</p>
-
-
-<h2 id="drm">Digital Rights Management</h2>
-
-<p>On Android 4.3 (API level 18) and higher, ExoPlayer supports Digital Rights Managment (DRM)
-  protected playback. In order to play DRM protected content with ExoPlayer, your app must
-  inject a {@code DrmSessionManager} into the {@code MediaCodecVideoTrackRenderer} and {@code
-  MediaCodecAudioTrackRenderer} constructors. A {@code DrmSessionManager} object is responsible for
-  providing the {@code MediaCrypto} object required for decryption, as well as ensuring that the
-  required decryption keys are available to the underlying DRM module being used.</p>
-
-<p>The ExoPlayer library provides a default implementation of {@code DrmSessionManager}, called
-  {@code StreamingDrmSessionManager}, which uses {@link android.media.MediaDrm}. The session
-  manager supports any DRM scheme for which a modular DRM component exists on the device. All
-  Android devices are required to support Widevine modular DRM (with L3 security, although many
-  devices also support L1). Some devices may support additional schemes such as PlayReady.</p>
-
-<p>The {@code StreamingDrmSessionManager} class requires a {@code MediaDrmCallback} to be
-  injected into its constructor, which is responsible for actually making provisioning and key
-  requests. You should implement this interface to make network requests to your license
-  server and obtain the required keys. The {@code WidevineTestMediaDrmCallback} class in the
-  ExoPlayer demo app sends requests to a Widevine test server.</p>
diff --git a/docs/html/guide/topics/renderscript/compute.jd b/docs/html/guide/topics/renderscript/compute.jd
index 2e7ce56..eef8cda 100644
--- a/docs/html/guide/topics/renderscript/compute.jd
+++ b/docs/html/guide/topics/renderscript/compute.jd
@@ -185,50 +185,101 @@
 <p>You can check and update the installed version of these tools in the
   <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK Manager</a>.</p>
 
-<p class="note">
-  <strong>Note:</strong> Use of Support Library RenderScript APIs is not currently supported with
-  Android Studio or Gradle-based builds.
-</p>
 
-<p>To use the Support Library RenderScript APIs in Eclipse:</p>
+<p>To use the Support Library RenderScript APIs:</p>
 
 <ol>
   <li>Make sure you have the required Android SDK version and Build Tools version installed.</li>
-  <li>Open the {@code project.properties} file in the root folder of your application project.</li>
-  <li>Add the following lines to the file:
+  <li> Update the settings for the Android build process to include the RenderScript settings:
+
+    <p><strong>For Android Studio or Gradle-based builds</strong></p>
+    <ul>
+      <li>Open the {@code build.gradle} file in the app folder of your application module. </li>
+      <li>Add the following RenderScript settings to the file:
+
+<pre>
+android {
+    compileSdkVersion 19
+    buildToolsVersion "19.0.3"
+
+    defaultConfig {
+        minSdkVersion 8
+        targetSdkVersion 16
+<strong>
+        renderscriptTargetApi 18
+        renderscriptSupportModeEnabled true
+</strong>
+    }
+}
+</pre>
+
+
+    <p>The settings listed above control specific behavior in the Android build process:</p>
+
+    <ul>
+      <li>{@code renderscriptTargetApi} - Specifies the bytecode version to be generated. We
+      recommend you set this value to the highest available API level and set
+      {@code renderscriptSupportModeEnabled}
+      to {@code true}. Valid values for this setting are any integer value
+      from 11 to the most recently released API level. If your minimum SDK version specified in your
+      application manifest is set to a different value, that value is ignored and the target value
+      in the build file is used to set the minimum SDK version.</li>
+      <li>{@code renderscriptSupportModeEnabled} - Specifies that the generated bytecode should fall
+      back to a compatible version if the device it is running on does not support the target
+      version.
+      </li>
+      <li>{@code buildToolsVersion} - The version of the Android SDK build tools to use. This value
+      should be set to {@code 18.1.0} or higher. If this option is not specified, the highest
+      installed build tools version is used. You should always set this value to ensure the
+      consistency of builds across development machines with different configurations.</li>
+    </ul>
+
+    </li>
+
+    <p><strong>For Eclipse</strong></p>
+    <ul>
+      <li>Open the {@code project.properties} file in the root folder of your application project.</li>
+      <li>Add the following lines to the file:
+
 <pre>
 renderscript.target=18
 renderscript.support.mode=true
 sdk.buildtools=18.1.0
 </pre>
-  </li>
+
+      <p>The settings listed above control specific behavior in the Android build process:</p>
+
+      <ul>
+        <li>{@code renderscript.target} - Specifies the bytecode version to be generated. We
+        recommend you set this value to the highest available API level and set
+        {@code renderscript.support.mode} to {@code true}. Valid values for this setting are any
+        integer value from 11 to the most recently released API level. If your minimum SDK version
+        specified in your application manifest is set to a higher value, this value is ignored and
+        the target value is set to the minimum SDK version.</li>
+        <li>{@code renderscript.support.mode} - Specifies that the generated bytecode should fall
+        back to a compatible version if the device it is running on does not support the target version.
+        </li>
+        <li>{@code sdk.buildtools} - The version of the Android SDK build tools to use. This value
+        should be set to {@code 18.1.0} or higher. If this option is not specified, the highest
+        installed build tools version is used. You should always set this value to ensure the
+        consistency of builds across development machines with different configurations.</li>
+      </ul>
+     </li>
+
+    </ul>
+
+  </ul>
+
   <li>In your application classes that use RenderScript, add an import for the Support Library
     classes:
+
 <pre>
 import android.support.v8.renderscript.*;
 </pre>
+
   </li>
-</ol>
 
-<p>The {@code project.properties} settings listed above control specific behavior in the Android
-  build process:</p>
-
-<ul>
-  <li>{@code renderscript.target} - Specifies the bytecode version to be generated. We
-    recommend you set this value the highest available API level and set {@code
-    renderscript.support.mode} to {@code true}. Valid values for this setting are any integer value
-    from 11 to the most recently released API level. If your minimum SDK version specified in your
-    application manifest is set to a higher value, this value is ignored and the target value is set
-    to the minimum SDK version.</li>
-  <li>{@code renderscript.support.mode} - Specifies that the generated bytecode should fall
-    back to a compatible version if the device it is running on does not support the target version.
-    </li>
-  <li>{@code sdk.buildtools} - The version of the Android SDK build tools to use. This value
-    should be set to {@code 18.1.0} or higher. If this option is not specified, the highest
-    installed build tools version is used. You should always set this value to ensure the
-    consistency of builds across development machines with different configurations.</li>
-</ul>
-
+ </0l>
 
 <h2 id="using-rs-from-java">Using RenderScript from Java Code</h2>
 
diff --git a/docs/html/images/tools/performance/allocation-tracker/gettingstarted_image01.png b/docs/html/images/tools/performance/allocation-tracker/gettingstarted_image01.png
new file mode 100644
index 0000000..d4a1ea5
--- /dev/null
+++ b/docs/html/images/tools/performance/allocation-tracker/gettingstarted_image01.png
Binary files differ
diff --git a/docs/html/images/tools/performance/allocation-tracker/gettingstarted_image02.png b/docs/html/images/tools/performance/allocation-tracker/gettingstarted_image02.png
new file mode 100644
index 0000000..f8f0d8c
--- /dev/null
+++ b/docs/html/images/tools/performance/allocation-tracker/gettingstarted_image02.png
Binary files differ
diff --git a/docs/html/images/tools/performance/allocation-tracker/gettingstarted_image03.png b/docs/html/images/tools/performance/allocation-tracker/gettingstarted_image03.png
new file mode 100644
index 0000000..fc59b54
--- /dev/null
+++ b/docs/html/images/tools/performance/allocation-tracker/gettingstarted_image03.png
Binary files differ
diff --git a/docs/html/images/tools/performance/allocation_tracker.png b/docs/html/images/tools/performance/allocation_tracker.png
new file mode 100755
index 0000000..cbae4cd
--- /dev/null
+++ b/docs/html/images/tools/performance/allocation_tracker.png
Binary files differ
diff --git a/docs/html/images/tools/performance/battery_historian.png b/docs/html/images/tools/performance/battery_historian.png
new file mode 100755
index 0000000..d1d58ac
--- /dev/null
+++ b/docs/html/images/tools/performance/battery_historian.png
Binary files differ
diff --git a/docs/html/images/tools/performance/batterystats-battery-historian/gettingstarted_image01.png b/docs/html/images/tools/performance/batterystats-battery-historian/gettingstarted_image01.png
new file mode 100644
index 0000000..8f12698
--- /dev/null
+++ b/docs/html/images/tools/performance/batterystats-battery-historian/gettingstarted_image01.png
Binary files differ
diff --git a/docs/html/images/tools/performance/batterystats-battery-historian/gettingstarted_image02.png b/docs/html/images/tools/performance/batterystats-battery-historian/gettingstarted_image02.png
new file mode 100644
index 0000000..e8a0a87
--- /dev/null
+++ b/docs/html/images/tools/performance/batterystats-battery-historian/gettingstarted_image02.png
Binary files differ
diff --git a/docs/html/images/tools/performance/batterystats-battery-historian/gettingstarted_image03.png b/docs/html/images/tools/performance/batterystats-battery-historian/gettingstarted_image03.png
new file mode 100644
index 0000000..8914d3b
--- /dev/null
+++ b/docs/html/images/tools/performance/batterystats-battery-historian/gettingstarted_image03.png
Binary files differ
diff --git a/docs/html/images/tools/performance/compare_AllocationTracker.png b/docs/html/images/tools/performance/compare_AllocationTracker.png
new file mode 100755
index 0000000..bec9931
--- /dev/null
+++ b/docs/html/images/tools/performance/compare_AllocationTracker.png
Binary files differ
diff --git a/docs/html/images/tools/performance/compare_HeapViewer.png b/docs/html/images/tools/performance/compare_HeapViewer.png
new file mode 100755
index 0000000..2cc4bce
--- /dev/null
+++ b/docs/html/images/tools/performance/compare_HeapViewer.png
Binary files differ
diff --git a/docs/html/images/tools/performance/compare_MemoryMonitor.png b/docs/html/images/tools/performance/compare_MemoryMonitor.png
new file mode 100755
index 0000000..5a728fd
--- /dev/null
+++ b/docs/html/images/tools/performance/compare_MemoryMonitor.png
Binary files differ
diff --git a/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image01.png b/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image01.png
new file mode 100644
index 0000000..a398f35
--- /dev/null
+++ b/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image01.png
Binary files differ
diff --git a/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image02.png b/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image02.png
new file mode 100644
index 0000000..9a7ccb3
--- /dev/null
+++ b/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image02.png
Binary files differ
diff --git a/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image03.png b/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image03.png
new file mode 100644
index 0000000..acdff2c
--- /dev/null
+++ b/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image03.png
Binary files differ
diff --git a/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image04.png b/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image04.png
new file mode 100644
index 0000000..8219ec8
--- /dev/null
+++ b/docs/html/images/tools/performance/debug-gpu-overdraw/gettingstarted_image04.png
Binary files differ
diff --git a/docs/html/images/tools/performance/gpu_profiling.png b/docs/html/images/tools/performance/gpu_profiling.png
new file mode 100755
index 0000000..c86fb14
--- /dev/null
+++ b/docs/html/images/tools/performance/gpu_profiling.png
Binary files differ
diff --git a/docs/html/images/tools/performance/heap-viewer/gettingstarted_image01.png b/docs/html/images/tools/performance/heap-viewer/gettingstarted_image01.png
new file mode 100644
index 0000000..eef493c
--- /dev/null
+++ b/docs/html/images/tools/performance/heap-viewer/gettingstarted_image01.png
Binary files differ
diff --git a/docs/html/images/tools/performance/heap-viewer/gettingstarted_image02.png b/docs/html/images/tools/performance/heap-viewer/gettingstarted_image02.png
new file mode 100644
index 0000000..7540640
--- /dev/null
+++ b/docs/html/images/tools/performance/heap-viewer/gettingstarted_image02.png
Binary files differ
diff --git a/docs/html/images/tools/performance/heap-viewer/gettingstarted_image03.png b/docs/html/images/tools/performance/heap-viewer/gettingstarted_image03.png
new file mode 100644
index 0000000..42e8ba3
--- /dev/null
+++ b/docs/html/images/tools/performance/heap-viewer/gettingstarted_image03.png
Binary files differ
diff --git a/docs/html/images/tools/performance/heap-viewer/gettingstarted_image04.png b/docs/html/images/tools/performance/heap-viewer/gettingstarted_image04.png
new file mode 100644
index 0000000..36d1164
--- /dev/null
+++ b/docs/html/images/tools/performance/heap-viewer/gettingstarted_image04.png
Binary files differ
diff --git a/docs/html/images/tools/performance/heap-viewer/gettingstarted_image05.png b/docs/html/images/tools/performance/heap-viewer/gettingstarted_image05.png
new file mode 100644
index 0000000..b74d37b
--- /dev/null
+++ b/docs/html/images/tools/performance/heap-viewer/gettingstarted_image05.png
Binary files differ
diff --git a/docs/html/images/tools/performance/heap_viewer.png b/docs/html/images/tools/performance/heap_viewer.png
new file mode 100755
index 0000000..d9028d0
--- /dev/null
+++ b/docs/html/images/tools/performance/heap_viewer.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image001.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image001.png
new file mode 100644
index 0000000..eef493c
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image001.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image002.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image002.png
new file mode 100644
index 0000000..00e8edf
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image002.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image003.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image003.png
new file mode 100644
index 0000000..c0f9c78
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image003.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image004.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image004.png
new file mode 100644
index 0000000..bc555b8
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image004.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image005.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image005.png
new file mode 100644
index 0000000..209f71b
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image005.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image006.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image006.png
new file mode 100644
index 0000000..57d3256
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image006.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image007.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image007.png
new file mode 100644
index 0000000..dd12e07
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image007.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image008.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image008.png
new file mode 100644
index 0000000..74302b2
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image008.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image009.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image009.png
new file mode 100644
index 0000000..1b93961
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image009.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image010.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image010.png
new file mode 100644
index 0000000..1fe198b
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image010.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image011.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image011.png
new file mode 100644
index 0000000..a9a0a3e
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image011.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image012.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image012.png
new file mode 100644
index 0000000..9308cd1
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image012.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image013.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image013.png
new file mode 100644
index 0000000..80e1ba1
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image013.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image014.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image014.png
new file mode 100644
index 0000000..326c5a0
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image014.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image015.png b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image015.png
new file mode 100644
index 0000000..e9824a4
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy-viewer/gettingstarted_image015.png
Binary files differ
diff --git a/docs/html/images/tools/performance/hierarchy_viewer.png b/docs/html/images/tools/performance/hierarchy_viewer.png
new file mode 100755
index 0000000..064efea
--- /dev/null
+++ b/docs/html/images/tools/performance/hierarchy_viewer.png
Binary files differ
diff --git a/docs/html/images/tools/performance/import_image001.png b/docs/html/images/tools/performance/import_image001.png
new file mode 100755
index 0000000..872c55b
--- /dev/null
+++ b/docs/html/images/tools/performance/import_image001.png
Binary files differ
diff --git a/docs/html/images/tools/performance/import_image002.png b/docs/html/images/tools/performance/import_image002.png
new file mode 100755
index 0000000..114f90b
--- /dev/null
+++ b/docs/html/images/tools/performance/import_image002.png
Binary files differ
diff --git a/docs/html/images/tools/performance/import_image003.png b/docs/html/images/tools/performance/import_image003.png
new file mode 100755
index 0000000..1e47d7b
--- /dev/null
+++ b/docs/html/images/tools/performance/import_image003.png
Binary files differ
diff --git a/docs/html/images/tools/performance/import_image004.png b/docs/html/images/tools/performance/import_image004.png
new file mode 100755
index 0000000..6c5b801
--- /dev/null
+++ b/docs/html/images/tools/performance/import_image004.png
Binary files differ
diff --git a/docs/html/images/tools/performance/import_image005.png b/docs/html/images/tools/performance/import_image005.png
new file mode 100755
index 0000000..35080c5
--- /dev/null
+++ b/docs/html/images/tools/performance/import_image005.png
Binary files differ
diff --git a/docs/html/images/tools/performance/import_image006.png b/docs/html/images/tools/performance/import_image006.png
new file mode 100755
index 0000000..08b9e61
--- /dev/null
+++ b/docs/html/images/tools/performance/import_image006.png
Binary files differ
diff --git a/docs/html/images/tools/performance/import_image007.png b/docs/html/images/tools/performance/import_image007.png
new file mode 100755
index 0000000..d2ec83b
--- /dev/null
+++ b/docs/html/images/tools/performance/import_image007.png
Binary files differ
diff --git a/docs/html/images/tools/performance/import_image008.png b/docs/html/images/tools/performance/import_image008.png
new file mode 100755
index 0000000..efde7df
--- /dev/null
+++ b/docs/html/images/tools/performance/import_image008.png
Binary files differ
diff --git a/docs/html/images/tools/performance/import_image009.png b/docs/html/images/tools/performance/import_image009.png
new file mode 100755
index 0000000..f9e6109
--- /dev/null
+++ b/docs/html/images/tools/performance/import_image009.png
Binary files differ
diff --git a/docs/html/images/tools/performance/import_image010.png b/docs/html/images/tools/performance/import_image010.png
new file mode 100755
index 0000000..165edea
--- /dev/null
+++ b/docs/html/images/tools/performance/import_image010.png
Binary files differ
diff --git a/docs/html/images/tools/performance/import_image011.png b/docs/html/images/tools/performance/import_image011.png
new file mode 100755
index 0000000..f475ebc
--- /dev/null
+++ b/docs/html/images/tools/performance/import_image011.png
Binary files differ
diff --git a/docs/html/images/tools/performance/memory-monitor/gettingstarted_image001.png b/docs/html/images/tools/performance/memory-monitor/gettingstarted_image001.png
new file mode 100644
index 0000000..c6fe045
--- /dev/null
+++ b/docs/html/images/tools/performance/memory-monitor/gettingstarted_image001.png
Binary files differ
diff --git a/docs/html/images/tools/performance/memory-monitor/gettingstarted_image002.png b/docs/html/images/tools/performance/memory-monitor/gettingstarted_image002.png
new file mode 100644
index 0000000..f46b6f1
--- /dev/null
+++ b/docs/html/images/tools/performance/memory-monitor/gettingstarted_image002.png
Binary files differ
diff --git a/docs/html/images/tools/performance/memory-monitor/gettingstarted_image003.png b/docs/html/images/tools/performance/memory-monitor/gettingstarted_image003.png
new file mode 100644
index 0000000..72291cd
--- /dev/null
+++ b/docs/html/images/tools/performance/memory-monitor/gettingstarted_image003.png
Binary files differ
diff --git a/docs/html/images/tools/performance/memory-monitor/gettingstarted_image004.png b/docs/html/images/tools/performance/memory-monitor/gettingstarted_image004.png
new file mode 100644
index 0000000..d343879
--- /dev/null
+++ b/docs/html/images/tools/performance/memory-monitor/gettingstarted_image004.png
Binary files differ
diff --git a/docs/html/images/tools/performance/memory-monitor/gettingstarted_image005.png b/docs/html/images/tools/performance/memory-monitor/gettingstarted_image005.png
new file mode 100644
index 0000000..f7d9784
--- /dev/null
+++ b/docs/html/images/tools/performance/memory-monitor/gettingstarted_image005.png
Binary files differ
diff --git a/docs/html/images/tools/performance/memory_monitor.png b/docs/html/images/tools/performance/memory_monitor.png
new file mode 100755
index 0000000..c761141
--- /dev/null
+++ b/docs/html/images/tools/performance/memory_monitor.png
Binary files differ
diff --git a/docs/html/images/tools/performance/overdraw.png b/docs/html/images/tools/performance/overdraw.png
new file mode 100755
index 0000000..ff402d0
--- /dev/null
+++ b/docs/html/images/tools/performance/overdraw.png
Binary files differ
diff --git a/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image001.png b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image001.png
new file mode 100644
index 0000000..d59cf12
--- /dev/null
+++ b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image001.png
Binary files differ
diff --git a/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image002.png b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image002.png
new file mode 100644
index 0000000..5f974ef
--- /dev/null
+++ b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image002.png
Binary files differ
diff --git a/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image003.png b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image003.png
new file mode 100644
index 0000000..788c18d
--- /dev/null
+++ b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image003.png
Binary files differ
diff --git a/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image004.png b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image004.png
new file mode 100644
index 0000000..ab0616e
--- /dev/null
+++ b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image004.png
Binary files differ
diff --git a/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image005.png b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image005.png
new file mode 100644
index 0000000..6411bf6
--- /dev/null
+++ b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image005.png
Binary files differ
diff --git a/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image006.png b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image006.png
new file mode 100644
index 0000000..6376a1a
--- /dev/null
+++ b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image006.png
Binary files differ
diff --git a/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image007.png b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image007.png
new file mode 100644
index 0000000..586a8d8
--- /dev/null
+++ b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image007.png
Binary files differ
diff --git a/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image008.png b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image008.png
new file mode 100644
index 0000000..47ff045
--- /dev/null
+++ b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image008.png
Binary files differ
diff --git a/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image009.png b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image009.png
new file mode 100644
index 0000000..c448162
--- /dev/null
+++ b/docs/html/images/tools/performance/profile-gpu-rendering/gettingstarted_image009.png
Binary files differ
diff --git a/docs/html/images/tools/performance/systrace.png b/docs/html/images/tools/performance/systrace.png
new file mode 100755
index 0000000..567a8a7
--- /dev/null
+++ b/docs/html/images/tools/performance/systrace.png
Binary files differ
diff --git a/docs/html/images/tools/performance/systrace/gettingstarted_image001.png b/docs/html/images/tools/performance/systrace/gettingstarted_image001.png
new file mode 100644
index 0000000..e31f531
--- /dev/null
+++ b/docs/html/images/tools/performance/systrace/gettingstarted_image001.png
Binary files differ
diff --git a/docs/html/images/tools/performance/systrace/gettingstarted_image002.png b/docs/html/images/tools/performance/systrace/gettingstarted_image002.png
new file mode 100644
index 0000000..01c69f5
--- /dev/null
+++ b/docs/html/images/tools/performance/systrace/gettingstarted_image002.png
Binary files differ
diff --git a/docs/html/images/tools/performance/systrace/gettingstarted_image003.png b/docs/html/images/tools/performance/systrace/gettingstarted_image003.png
new file mode 100644
index 0000000..bf34f3f
--- /dev/null
+++ b/docs/html/images/tools/performance/systrace/gettingstarted_image003.png
Binary files differ
diff --git a/docs/html/images/tools/performance/systrace/gettingstarted_image004.png b/docs/html/images/tools/performance/systrace/gettingstarted_image004.png
new file mode 100644
index 0000000..2a5286f
--- /dev/null
+++ b/docs/html/images/tools/performance/systrace/gettingstarted_image004.png
Binary files differ
diff --git a/docs/html/images/tools/performance/systrace/gettingstarted_image005.png b/docs/html/images/tools/performance/systrace/gettingstarted_image005.png
new file mode 100644
index 0000000..7f41398
--- /dev/null
+++ b/docs/html/images/tools/performance/systrace/gettingstarted_image005.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview.png b/docs/html/images/tools/performance/traceview.png
new file mode 100755
index 0000000..16e6bdd
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview/gettingstarted_image001.png b/docs/html/images/tools/performance/traceview/gettingstarted_image001.png
new file mode 100644
index 0000000..eef493c
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview/gettingstarted_image001.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview/gettingstarted_image002.png b/docs/html/images/tools/performance/traceview/gettingstarted_image002.png
new file mode 100644
index 0000000..a334319
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview/gettingstarted_image002.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview/gettingstarted_image003.png b/docs/html/images/tools/performance/traceview/gettingstarted_image003.png
new file mode 100644
index 0000000..57f3ab4
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview/gettingstarted_image003.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview/gettingstarted_image004.png b/docs/html/images/tools/performance/traceview/gettingstarted_image004.png
new file mode 100644
index 0000000..b32b9ad
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview/gettingstarted_image004.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview/gettingstarted_image005.png b/docs/html/images/tools/performance/traceview/gettingstarted_image005.png
new file mode 100644
index 0000000..a893dde
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview/gettingstarted_image005.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview/gettingstarted_image006.png b/docs/html/images/tools/performance/traceview/gettingstarted_image006.png
new file mode 100644
index 0000000..9ffee43
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview/gettingstarted_image006.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview/gettingstarted_image007.png b/docs/html/images/tools/performance/traceview/gettingstarted_image007.png
new file mode 100644
index 0000000..3b04ba3
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview/gettingstarted_image007.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview/gettingstarted_image008.png b/docs/html/images/tools/performance/traceview/gettingstarted_image008.png
new file mode 100644
index 0000000..054cd90
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview/gettingstarted_image008.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview/gettingstarted_image009.png b/docs/html/images/tools/performance/traceview/gettingstarted_image009.png
new file mode 100644
index 0000000..7b95cf3e
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview/gettingstarted_image009.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview/gettingstarted_image010.png b/docs/html/images/tools/performance/traceview/gettingstarted_image010.png
new file mode 100644
index 0000000..871d4bc
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview/gettingstarted_image010.png
Binary files differ
diff --git a/docs/html/images/tools/performance/traceview/gettingstarted_image011.png b/docs/html/images/tools/performance/traceview/gettingstarted_image011.png
new file mode 100644
index 0000000..6e39a19
--- /dev/null
+++ b/docs/html/images/tools/performance/traceview/gettingstarted_image011.png
Binary files differ
diff --git a/docs/html/images/tools/studio-add-icon.png b/docs/html/images/tools/studio-add-icon.png
new file mode 100644
index 0000000..3ff49f6
--- /dev/null
+++ b/docs/html/images/tools/studio-add-icon.png
Binary files differ
diff --git a/docs/html/images/tools/studio-debug-settings-icon.png b/docs/html/images/tools/studio-debug-settings-icon.png
new file mode 100644
index 0000000..ee9c7a1
--- /dev/null
+++ b/docs/html/images/tools/studio-debug-settings-icon.png
Binary files differ
diff --git a/docs/html/images/tools/studio-inspections-config.png b/docs/html/images/tools/studio-inspections-config.png
index e41afa1..15a5a5b 100644
--- a/docs/html/images/tools/studio-inspections-config.png
+++ b/docs/html/images/tools/studio-inspections-config.png
Binary files differ
diff --git a/docs/html/images/tools/studio-memory-monitor.png b/docs/html/images/tools/studio-memory-monitor.png
index 796daf0..58147b7 100644
--- a/docs/html/images/tools/studio-memory-monitor.png
+++ b/docs/html/images/tools/studio-memory-monitor.png
Binary files differ
diff --git a/docs/html/images/tools/studio-memory-monitor2x.png b/docs/html/images/tools/studio-memory-monitor2x.png
new file mode 100644
index 0000000..7c3d6c4
--- /dev/null
+++ b/docs/html/images/tools/studio-memory-monitor2x.png
Binary files differ
diff --git a/docs/html/jd_collections.js b/docs/html/jd_collections.js
index e2d0eb9..acbd138 100644
--- a/docs/html/jd_collections.js
+++ b/docs/html/jd_collections.js
@@ -1281,5 +1281,38 @@
       "training/enterprise/work-policy-ctrl.html",
       "samples/BasicManagedProfile/index.html"
     ]
+  },
+  "tools/performance/rendering": {
+    "title": "",
+    "resources": [
+       "tools/performance/debug-gpu-overdraw/index.html",
+       "tools/performance/profile-gpu-rendering/index.html",
+       "tools/performance/hierarchy-viewer/setup.html",
+       "tools/performance/hierarchy-viewer/index.html",
+       "tools/performance/hierarchy-viewer/profiling.html"
+    ]
+  },
+  "tools/performance/memory": {
+    "title": "",
+    "resources": [
+       "tools/performance/memory-monitor/index.html",
+       "tools/performance/heap-viewer/index.html",
+       "tools/performance/allocation-tracker/index.html",
+       "tools/performance/comparison.html"
+    ]
+  },
+  "tools/performance/cpu": {
+    "title": "",
+    "resources": [
+       "tools/performance/traceview/index.html",
+       "tools/performance/systrace/index.html"
+    ]
+  },
+  "tools/performance/battery": {
+    "title": "",
+    "resources": [
+       "tools/performance/batterystats-battery-historian/index.html",
+       "tools/performance/batterystats-battery-historian/charts.html"
+    ]
   }
 }
diff --git a/docs/html/sdk/index.jd b/docs/html/sdk/index.jd
index 9c63438..5a03197 100644
--- a/docs/html/sdk/index.jd
+++ b/docs/html/sdk/index.jd
@@ -4,45 +4,47 @@
 header.hide=1
 page.metaDescription=Download the official Android IDE and developer tools to build apps for Android phones, tablets, wearables, TVs, and more.
 
-studio.version=1.1.0
+studio.version=1.2.0.12
 
-studio.linux_bundle_download=android-studio-ide-135.1740770-linux.zip
-studio.linux_bundle_bytes=259336386
-studio.linux_bundle_checksum=e8d166559c50a484f83ebfec6731cc0e3f259208
+studio.linux_bundle_download=android-studio-ide-141.1890965-linux.zip
+studio.linux_bundle_bytes=259139652 
+studio.linux_bundle_checksum=72149f65911ca18d8f0d360e6b7a1e2dc57e9935
 
-studio.mac_bundle_download=android-studio-ide-135.1740770-mac.dmg
-studio.mac_bundle_bytes=261303345
-studio.mac_bundle_checksum=f9745d0fec1eefd498f6160a2d6a1b5247d4cda3
+studio.mac_bundle_download=android-studio-ide-141.1890965-mac.dmg
+studio.mac_bundle_bytes=260877150
+studio.mac_bundle_checksum=06fe5a2d9ab6c99bf42fb2014e519a073fc7e90d
 
-studio.win_bundle_exe_download=android-studio-bundle-135.1740770-windows.exe
-studio.win_bundle_exe_bytes=856233768
-studio.win_bundle_exe_checksum=7484b9989d2914e1de30995fbaa97a271a514b3f
+studio.win_bundle_download=android-studio-ide-141.1890965-windows.zip
+studio.win_bundle_bytes=261548058
+studio.win_bundle_checksum=29416e54ad074881a1e668e61e3d0c2316108dbe
 
-studio.win_notools_exe_download=android-studio-ide-135.1740770-windows.exe
-studio.win_notools_exe_bytes=242135128
-studio.win_notools_exe_checksum=5ea77661cd2300cea09e8e34f4a2219a0813911f
 
-studio.win_bundle_download=android-studio-ide-135.1740770-windows.zip
-studio.win_bundle_bytes=261667054
-studio.win_bundle_checksum=e903f17cc6a57c7e3d460c4555386e3e65c6b4eb
+studio.win_bundle_exe_download=android-studio-bundle-141.1890965-windows.exe
+studio.win_bundle_exe_bytes=928285584
+studio.win_bundle_exe_checksum=47be67749409f0d710c05b9a8f22d9191c47a9d0
+
+studio.win_notools_exe_download=android-studio-ide-141.1890965-windows.exe
+studio.win_notools_exe_bytes=243621072
+studio.win_notools_exe_checksum=760d45212bea42f52adb1cbeab2390156d49c74d
 
 
 
-sdk.linux_download=android-sdk_r24.1.2-linux.tgz
-sdk.linux_bytes=168121693
-sdk.linux_checksum=68980e4a26cca0182abb1032abffbb72a1240c51
 
-sdk.mac_download=android-sdk_r24.1.2-macosx.zip
-sdk.mac_bytes=89151287
-sdk.mac_checksum=00e43ff1557e8cba7da53e4f64f3a34498048256
+sdk.linux_download=android-sdk_r24.2-linux.tgz
+sdk.linux_bytes=168119905
+sdk.linux_checksum=1a29f9827ef395a96db629209b0e38d5e2dd8089
 
-sdk.win_download=android-sdk_r24.1.2-windows.zip
-sdk.win_bytes=159778618
-sdk.win_checksum=704f6c874373b98e061fe2e7eb34f9fcb907a341
+sdk.mac_download=android-sdk_r24.2-macosx.zip
+sdk.mac_bytes=88949635
+sdk.mac_checksum=256c9bf642f56242d963c090d147de7402733451
 
-sdk.win_installer=installer_r24.1.2-windows.exe
-sdk.win_installer_bytes=111364285
-sdk.win_installer_checksum=e0ec864efa0e7449db2d7ed069c03b1f4d36f0cd
+sdk.win_download=android-sdk_r24.2-windows.zip
+sdk.win_bytes=155944165
+sdk.win_checksum=2611ed9a6080f4838f1d4e55172801714a8a169b
+
+sdk.win_installer=installer_r24.2-windows.exe
+sdk.win_installer_bytes=107849819
+sdk.win_installer_checksum=e764ea93aa72766737f9be3b9fb3e42d879ab599
 
 
 
@@ -426,8 +428,7 @@
 
 <p style="margin:0">
 For more details about features available in Android Studio,
-read the guide to <a href="{@docRoot}tools/studio/index.html"
-  >Android Studio Basics</a>.</p>
+read the overview at <a href="{@docRoot}tools/studio/index.html">Android Studio</a>.</p>
 </div>
 
 
diff --git a/docs/html/sdk/installing/migrate.jd b/docs/html/sdk/installing/migrate.jd
index 3c04cb4..345e89a 100644
--- a/docs/html/sdk/installing/migrate.jd
+++ b/docs/html/sdk/installing/migrate.jd
@@ -24,17 +24,31 @@
 <p>To migrate existing Android projects, simply import them using Android Studio:</p>
 
 <ol>
-  <li>In Android Studio, close any projects currently open. You should see the
-  <strong>Welcome to Android Studio</strong> window.</li>
-  <li>Click <strong>Import Non-Android Studio project</strong>.</li>
-  <li>Locate the project you exported from Eclipse, expand it, select the
-  <strong>build.gradle</strong> file and click <strong>OK</strong>.</li>
-  <li>In the following dialog, leave <strong>Use gradle wrapper</strong> selected and click
-  <strong>OK</strong>. (You do not need to specify the Gradle home.)</li>
+  <li>In Android Studio, from the main menu or the <strong>Welcome to Android Studio</strong> page,
+  choose <strong>File &gt; Import Project</strong>.</li>
+  <li> Select the Eclipse root project directory</strong> and click <strong>OK</strong>.
+  <p class="note"><strong>Note:</strong> The Eclipse root directory must contain the
+  <code>AndroidManifest.xml</code> file. Also, the root directory must contain either the
+  <code>.project</code> and <strong>.classpath</strong> files from Eclipse or the
+  <code>res/</code> and <code>src/</code> directories.</p>
+  </li>
+  <li>Follow the steps in the import wizard. </li>
 </ol>
 
-<p>Android Studio properly updates the project structure and creates the appropriate
-Gradle build file.</p>
+<p>Android Studio imports the current dependencies, downloads libraries, and
+creates an Android Studio project with the imported Eclipse project as the main module. Android
+Studio also creates the required Gradle build files. </p>
+
+<p>The import process replaces any JAR files and libraries with Gradle dependencies, and replaces
+source libraries and binary libraries with Maven dependencies, so you no longer need to maintain
+these files manually.</p>
+
+ <p class="note"><strong>Note:</strong> If there are references to Eclipse workspace library files,
+ comment them out in the <code>project.properties</code> or <code>.classpath</code> files
+ that you imported from the Eclipse project. You can then add these files in the
+ <code>build.gradle</code> file. See
+ <a href="{@docRoot}tools/building/configuring-gradle.html">Configuring Gradle Builds</a>. </p>
+
 
 <p>For more help getting started with Android Studio and the IntelliJ user experience,
 <a href="{@docRoot}tools/studio/index.html">learn more about Android Studio</a> and
diff --git a/docs/html/sdk/installing/studio-tips.jd b/docs/html/sdk/installing/studio-tips.jd
index 69c188c..a40050f 100644
--- a/docs/html/sdk/installing/studio-tips.jd
+++ b/docs/html/sdk/installing/studio-tips.jd
@@ -36,8 +36,8 @@
 <h3>Smart Rendering</h3>
 <p>With smart rendering, Android Studio displays links for quick fixes to rendering errors.
 For example, if you add a button to the layout without specifying the <em>width</em> and
-<em>height</em> atttributes, Android Studio displays the rendering message <em>Automatically
-add all missing attributs</em>. Clicking the message adds the missing attributes to the layout.</p>
+<em>height</em> attributes, Android Studio displays the rendering message <em>Automatically
+add all missing attributes</em>. Clicking the message adds the missing attributes to the layout.</p>
 
 
 <h3> Bitmap rendering in the debugger</h3>
@@ -82,7 +82,50 @@
 with a layout hierarchy and a list of properties for each view in the layout.</p>
 
 
-<h2 id="intellij">Working with IntelliJ</h3>
+<h3>Annotations</h3>
+<p>Android Studio provides coding assistance for using annotations from the
+{@link android.support.annotation Support-Annotations} library, part of the
+Support Repository.
+
+Adding a dependency for this library enables you to decorate your code with annotations to help
+catch bugs, such as null pointer exceptions and resource type conflicts. You can also create
+enumerated annotations to, for example, check that a passed parameter value matches a value from
+a defined set of constants. For more information, see
+<a href="{@docRoot}tools/debugging/annotations.html#annotations">Improving Code Inspection with
+Annotations</a>.
+</p>
+
+
+<h3>Java class decompiling</h3>
+<p>Android Studio allows you to look at what’s inside Java libraries when you don’t have access
+to the source code. </p>
+
+<p>The decompiler is built into Android Studio for easy access. To use this feature, right-click
+a class, method, or field from a library for which you do not have source file access and select
+<strong>decompile</strong>.</p> The decompiled source code appears. </p>
+
+<p>To adjust the Java decompiler settings, select
+<strong>File > Settings > Other Settings > Java Decompiler</strong>. </p>
+
+
+<h3>Debugging and performance enhancements</h3>
+<p>Android Studio offers debugging and performance enhancements such as:</p>
+<ul>
+  <li>Auto detect an expanded set of code styles. To modify the current code style, choose
+   <strong>File &gt; Settings &gt; Code Styles</strong>.  </li>
+  <li>Support for high density (Retina) displays on Windows and Linux.  </li>
+  <li>Scratch files for quick prototyping without creating any project files.
+   <p>Choose <strong>Tools &gt; New Scratch File</strong> to open a scratch file to quickly
+   build and run code prototypes. Together with Android Studio coding assistance, scratch
+   files allow you to quickly run and debug code updates with the support of all file operations.
+   By embedding code created with scripting languages, you can run your code from within the
+   scratch file.</p> 
+  </li>
+</ul>
+
+
+
+<h2 id="intellij">Working with IntelliJ-based Coding Practices</h3>
 
 <p>This section list just a few of the code editing
 practices you should consider using when creating Android Studio apps. </p>
@@ -114,23 +157,17 @@
 you can set a scope to identify all code related to a specific action bar.   </p>
 
 
-<h3>External annotations</h3>
-<p>Specify annotations within the code or from an external annotation file. The Android Studio
-IDE keeps track of the restrictions and validates compliance, for example setting the data type
-of a string as not null.</p>
-
-
 <h3>Injecting languages</h3>
 <p>With language injection, the Android Studio IDE allows you to work with islands of different
 languages embedded in the source code. This extends the syntax, error highlighting and coding
 assistance to the embedded language. This can be especially useful for checking regular expression
-values inline, and validating XML and SQL statments.</p>
+values inline, and validating XML and SQL statements.</p>
 
 
 <h3>Code folding</h3>
 <p>This allows you to selectively hide and display sections of the code for readability. For
 example, resource expressions or code for a nested class can be folded or hidden in to one line
-to make the outer class structure easier to read. The inner clas can be later expanded for
+to make the outer class structure easier to read. The inner class can be later expanded for
 updates. </p>
 
 
@@ -140,6 +177,7 @@
 reference.  Pressing {@code F1} with the preview image or icon selected displays resource asset
 details, such as the <em>dp</em> settings.   </p>
 
+
 <h3>Quick F1 documentation</h3>
 <p>You can now inspect theme attributes using <strong>View > Quick Documentation</strong>
 (<strong>F1</strong>),
diff --git a/docs/html/tools/building/building-cmdline.jd b/docs/html/tools/building/building-cmdline.jd
index ec00b50..33798a5 100644
--- a/docs/html/tools/building/building-cmdline.jd
+++ b/docs/html/tools/building/building-cmdline.jd
@@ -34,9 +34,9 @@
     </div>
   </div>
 
-  <p>By default, there are two build types to build your application using the gradle.build settings:
+  <p>By default, there are two build types to build your application using the Gradle build settings:
   one for debugging your application &mdash; <em>debug</em> &mdash; and one for building your
-  final package for release &mdash; <em>release mode</em>. Regardless of which way you build type
+  final package for release &mdash; <em>release mode</em>. Regardless of which build type
   your modules use, the app must be signed before it can install on an emulator or device&mdash;with
   a debug key when building in debug mode and with your own private key when building in release mode.</p>
 
@@ -48,23 +48,24 @@
   development device. You cannot distribute an application that is signed with a debug key.
   When you build using the release build type, the .apk file is <em>unsigned</em>, so you
   must manually sign it with your own private key, using Keytool and Jarsigner settings in the
-  module's gradle.build file.</p>
+  module's <code>build.gradle</code> file.</p>
 
   <p>It's important that you read and understand <a href=
   "{@docRoot}tools/publishing/app-signing.html">Signing Your Applications</a>, particularly once
   you're ready to release your application and share it with end-users. That document describes the
-  procedure for generating a private key and then using it to sign your .apk file. If you're just
+  procedure for generating a private key and then using it to sign your APK file. If you're just
   getting started, however, you can quickly run your applications on an emulator or your own
   development device by building in debug mode.</p>
 
   <p>If you don't have <a href="http://www.gradle.org/">Gradle</a>, you can obtain it from the <a href="http://gradle.org/">Gradle
-  home page</a>. Install it and make sure it is in your executable PATH. Before calling Ant, you
+  home page</a>. Install it and make sure it is in your executable PATH. Before calling Gradle, you
   need to declare the JAVA_HOME environment variable to specify the path to where the JDK is
   installed.</p>
 
-  <p class="note"><strong>Note:</strong> When installing JDK on Windows, the default is to install
-  in the "Program Files" directory. This location will cause <code>ant</code> to fail, because of
-  the space. To fix the problem, you can specify the JAVA_HOME variable like this:
+  <p class="note"><strong>Note:</strong> When using <code>ant</code> and installing JDK on Windows,
+  the default is to install in the "Program Files" directory. This location will cause
+  <code>ant</code> to fail, because of the space. To fix the problem, you can specify the JAVA_HOME
+  variable like this:
   <pre>set JAVA_HOME=c:\Progra~1\Java\&lt;jdkdir&gt;</pre>
 
   <p>The easiest solution, however, is to install JDK in a non-space directory, for example:</p>
diff --git a/docs/html/tools/building/multidex.jd b/docs/html/tools/building/multidex.jd
index 49cde8c..e441a7c63 100644
--- a/docs/html/tools/building/multidex.jd
+++ b/docs/html/tools/building/multidex.jd
@@ -415,30 +415,40 @@
 <h2 id="testing">Testing Multidex Apps</h2>
 
 <p>
-  Testing apps that use multidex configuration require some additional steps and configuration.
-  Since the location of code for classes is not within a single DEX file, instrumentation tests do
-  not run properly unless configured for multidex.
+  When using instrumentation tests with multidex apps, additional configuration is required to
+  enable the test instrumentation. Because the location of code for classes in multidex apps is not
+  within a single DEX file, instrumentation tests do not run properly unless configured for
+  multidex.
 </p>
 
 <p>
-  When testing a multidex app with instrumentation tests, use
+  To test a multidex app with instrumentation tests, configure the
   <a href="{@docRoot}reference/com/android/test/runner/MultiDexTestRunner.html">
   MultiDexTestRunner</a> from the multidex testing support library. The following sample
-  {@code build.gradle} file, demonstrates how to configure your build to use this test runner:
+  {@code build.gradle} file demonstrates how to configure your build to use this test runner:
 </p>
 
 <pre>
 android {
   defaultConfig {
       ...
-      testInstrumentationRunner "android.support.multidex.MultiDexTestRunner"
+      testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
   }
 }
+</pre>
 
+<p class="note">
+  <strong>Note:</strong> With Android Plugin for Gradle versions lower than 1.1, you need to add
+  the following dependency for <code>multidex-instrumentation</code>:
+<pre>
 dependencies {
-    androidTestCompile 'com.android.support:multidex-instrumentation:1.0.0'
+    androidTestCompile('com.android.support:multidex-instrumentation:1.0.1') {
+         exclude group: 'com.android.support', module: 'multidex'
+    }       
 }
 </pre>
+</p>
+
 
 <p>
   You may use the instrumentation test runner class directly or extend it to fit your testing
@@ -455,4 +465,4 @@
 
 <p class="note">
   <strong>Note:</strong> Use of multidex for creating a test APK is not currently supported.
-</p>
\ No newline at end of file
+</p>
diff --git a/docs/html/tools/debugging/annotations.jd b/docs/html/tools/debugging/annotations.jd
new file mode 100644
index 0000000..fe9f9cc
--- /dev/null
+++ b/docs/html/tools/debugging/annotations.jd
@@ -0,0 +1,241 @@
+page.title=Improving Code Inspection with Annotations
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+    <h2>In this document</h2>
+    <ol>
+      <li><a href="#adding-nullness">Adding Nullness Annotations</a></li>
+      <li><a href="#res-annotations">Adding Resource Annotation</a></li>
+      <li><a href="#enum-annotations">Creating Enumerated Annotations</a></li>
+    </ol>
+
+  <h2>See also</h2>
+  <ol>
+     <li><a href="{@docRoot}tools/help/lint.html">lint (reference)</a></li>
+     <li><a href="{@docRoot}tools/debugging/improving-w-lint.html">Improving Your Code with lint</a></li>
+     <li><a href="{@docRoot}tools/studio/index.html#annotations">Annotations in Android Studio</a></li>
+  </ol>
+
+</div>
+</div>
+
+<p>Using code inspections tools such as <a href="{@docRoot}tools/help/lint.html">lint</a> can help
+you find problems and improve your code, but inspection tools can only infer so much. Android
+resource ids, for example, use an {@code int} to identify strings, graphics, colors and other
+resource types, so inspection tools cannot tell when you have specified a string resource where
+you should have specified a color. This situation means that your app may render incorrectly or
+fail to run at all, even if you use code inspection. </p>
+
+<p>Annotations allow you to provide hints to code inspections tools like {@code lint}, to help
+detect these, more subtle code problems. They are added as metadata tags that you attach to
+variables, parameters, and return values to inspect method return values, passed parameters, and
+local variables and fields. When used with code inspections tools, annotations can help you detect
+problems, such as null pointer exceptions and resource type
+conflicts. </p>
+
+<p>For more information on enabling <a href="{@docRoot}tools/help/lint.html">lint</a> inspections
+and running <a href="{@docRoot}tools/help/lint.html">lint</a>,
+see <a href="{@docRoot}tools/debugging/improving-w-lint.html">Improving Your Code with lint</a>.</p>
+
+<p>Android supports a variety of annotations for insertion in the methods, parameters, and return
+values in your code, for example:</p>
+
+<dl>
+    <dt>{@link android.support.annotation.Nullable @Nullable}</dt>
+    <dd>Can be null.</dd>
+
+    <dt>{@link android.support.annotation.NonNull @NonNull}</dt>
+    <dd>Cannot be null.</dd>
+
+    <dt>{@link android.support.annotation.StringRes @StringRes}</dt>
+    <dd>References a <a href="{@docRoot}reference/android/R.string.html"><code>R.string</code></a>
+    resource.</dd>
+
+    <dt>{@link android.support.annotation.DrawableRes @DrawableRes}</dt>
+    <dd>References a
+    <a href="{@docRoot}guide/topics/resources/drawable-resource.html"><code>Drawable</code></a>
+    resource. </dd>
+
+    <dt>{@link android.support.annotation.ColorRes @ColorRes}</dt>
+    <dd>References a <a href="{@docRoot}reference/android/graphics/Color.html"><code>Color</code></a>
+    resource. </dd>
+
+    <dt>{@link android.support.annotation.InterpolatorRes @InterpolatorRes}</dt>
+    <dd>References a
+    <a href="{@docRoot}reference/android/view/animation/Interpolator.html"><code>Interpolator</code></a>
+    resource. </dd>
+
+    <dt>{@link android.support.annotation.AnyRes @AnyRes}</dt>
+    <dd>References any type of <a href="{@docRoot}reference/android/R.html"><code>R.</code></a>
+    resource. </dd>
+  </dl>
+
+<p>For a complete list of the supported annotations, either examine the contents of the
+{@link android.support.annotation Support-Annotations} library or use the
+auto-complete feature to display the available options for the <code>import
+android.support.annotation.</code> statement. The
+<a href="{@docRoot}tools/help/sdk-manager.html"> SDK Manager</a> packages the
+{@link android.support.annotation Support-Annotations} library in the Android Support Repository
+for use with Android Studio and in the Android
+<a href="{@docRoot}tools/support-library/index.html">Support Library</a> for use with other Android
+development tools.</p>
+
+
+<p>To add annotations to your code, first add a dependency to the
+{@link android.support.annotation Support-Annotations} library. In Android Studio,
+add the dependency to your <code>build.gradle</code> file. </p>
+
+<pre>
+dependencies {
+    compile 'com.android.support:support-annotations:22.0.0'
+}
+</pre>
+
+
+<p>The {@link android.support.annotation Support-Annotations} library is decorated with the
+supported annotations so using this library's methods and resources automatically checks the code
+for potential problems.</p>
+
+<p>If you include annotations in a library and use the
+<a href="{@docRoot}tools/building/plugin-for-gradle.html"><code>Android Plugin for Gradle</code></a>
+to build an Android ARchive (AAR) artifact of that library, the annotations are included as part
+of the artifact in XML format in the <code>annotations.zip</code> file. </p>
+
+<p>To start a code inspection from Android Studio, which includes validating annotations and
+automatic <a href="{@docRoot}tools/help/lint.html">lint</a> checking, select
+<strong>Analyze > Inspect Code</strong> from the menu options. Android Studio displays conflict
+messages throughout the code to indication annotation conflicts and suggest possible
+resolutions.</p>
+
+
+<h2 id="adding-nullness">Adding Nullness Annotations</h2>
+<p>Add {@link android.support.annotation.Nullable @Nullable} and
+{@link android.support.annotation.NonNull @NonNull} annotations to check
+the nullness of a given variable, parameter, or return value. For example, if a local variable
+that contains a null value is passed as a parameter to a method with the
+{@link android.support.annotation.NonNull @NonNull} annotation
+attached to that parameter, building the code generates a warning indicating a non-null conflict. </p>
+
+<p>This example attaches the {@link android.support.annotation.NonNull @NonNull} annotation to
+the <code>context</code> and <code>attrs</code> parameters to check that the passed parameter
+values are not null. </p>
+
+<pre>
+import android.support.annotation.NonNull;
+...
+
+    /** Add support for inflating the &lt;fragment&gt; tag. */
+    &#64;NonNull
+    &#64;Override
+    public View onCreateView(String name, &#64;NonNull Context context,
+      &#64;NonNull AttributeSet attrs) {
+      ...
+      }
+...
+</pre>
+
+<p class="note"><strong>Note:</strong> Android Studio supports running a nullability analysis to
+automatically infer and insert nullness annotations in your code. For more information about
+inferring nullability in Android Studio, see
+<a href="{@docRoot}tools/studio/index.html#annotations">Annotations in Android Studio</a>. </p>
+
+
+<h2 id="res-annotations">Adding Resource Annotations</h2>
+<p>Add {@link android.support.annotation.StringRes @StringRes} annotations to check that
+a resource parameter contains a
+<a href="{@docRoot}reference/android/R.string.html"><code>R.string</code></a>
+reference. During code inspection, the annotation generates a warning if a <code>R.string</code>
+reference is not passed in the parameter.</p>
+
+<p>Validating resource types can be useful as Android references to
+<a href="{@docRoot}guide/topics/resources/drawable-resource.html"><code>Drawables</code></a> and
+<a href="{@docRoot}reference/android/R.string.html"><code>R.string</code></a> resources are both
+passed as integers. Code that expects a parameter to reference a <code>Drawable</code> can be passed
+the expected reference type of int, but actually reference a <code>R.string</code></a> resource. </p>
+
+<p>This example attaches the {@link android.support.annotation.StringRes @StringRes}
+annotation to the <code>resId</code> parameter to validate that it is really a string resource.  </p>
+
+<pre>
+import android.support.annotation.StringRes;
+...
+    public abstract void setTitle(&#64;StringRes int resId);
+    ...
+</pre>
+
+
+<p>Annotations for the other resource types, such as
+{@link android.support.annotation.DrawableRes @DrawableRes},
+{@link android.support.annotation.ColorRes @ColorRes}, and
+{@link android.support.annotation.InterpolatorRes @InterpolatorRes} can be added using
+the same annotation format and run during the code inspection.  </p>
+
+
+<h2 id="enum-annotations">Creating Enumerated Annotations</h2>
+<p>Use the {@link android.support.annotation.IntDef @IntDef} and
+{@link android.support.annotation.StringDef @StringDef} annotations
+so you can create enumerated annotations of integer and string sets to validate other types of code
+references, such as passing references to a set of constants. </p>
+
+<p>The following example illustrates the steps to create an enumerated annotation that ensures
+a value passed as a method parameter references one of the defined constants.</p>
+
+<pre>
+import android.support.annotation.IntDef;
+...
+public abstract class ActionBar {
+    ...
+    //Define the list of accepted constants
+    &#64;IntDef({NAVIGATION_MODE_STANDARD, NAVIGATION_MODE_LIST, NAVIGATION_MODE_TABS})
+
+    //Tell the compiler not to store annotation data in the <code>.class</code> file
+    &#64;Retention(RetentionPolicy.SOURCE)
+
+    //Declare the <code>NavigationMode</code> annotation
+    public &#64;interface NavigationMode {}
+
+    //Declare the constants
+    public static final int NAVIGATION_MODE_STANDARD = 0;
+    public static final int NAVIGATION_MODE_LIST = 1;
+    public static final int NAVIGATION_MODE_TABS = 2;
+
+    //Decorate the target methods with the annotation
+    &#64;NavigationMode
+    public abstract int getNavigationMode();
+
+    //Attach the annotation
+    public abstract void setNavigationMode(&#64;NavigationMode int mode);
+
+</pre>
+
+<p>When you build this code, a warning is generated if the <code>mode</code> parameter does
+not reference one of the defined constants (<code>NAVIGATION_MODE_STANDARD</code>,
+<code>NAVIGATION_MODE_LIST</code>, or <code>NAVIGATION_MODE_TABS</code>).</p>
+
+<p>You can also define an annotation with a <code>flag</code> to check if a parameter
+or return value references a valid pattern. This example creates the
+<code>DisplayOptions</code> annotation with a list of valid <code>DISPLAY_</code> constants. </p>
+
+<pre>
+import android.support.annotation.IntDef;
+...
+
+&#64;IntDef(flag=true, value={
+        DISPLAY_USE_LOGO,
+        DISPLAY_SHOW_HOME,
+        DISPLAY_HOME_AS_UP,
+        DISPLAY_SHOW_TITLE,
+        DISPLAY_SHOW_CUSTOM
+})
+&#64;Retention(RetentionPolicy.SOURCE)
+public &#64;interface DisplayOptions {}
+
+...
+</pre>
+
+<p>When you build code with an annotation flag, a warning is generated if the decorated parameter
+or return value does not reference a valid pattern.</p>
+
+
diff --git a/docs/html/tools/debugging/improving-w-lint.jd b/docs/html/tools/debugging/improving-w-lint.jd
index ff94b7f..8f74f46 100644
--- a/docs/html/tools/debugging/improving-w-lint.jd
+++ b/docs/html/tools/debugging/improving-w-lint.jd
@@ -22,6 +22,7 @@
       <h2>See Also</h2>
           <ol>
               <li><a href="{@docRoot}tools/help/lint.html">lint (reference)</a></li>
+              <li><a href="{@docRoot}tools/degugging/annotations.html">Using Android Annotations</a></li>
           </ol>
     </div>
 </div>
diff --git a/docs/html/tools/devices/index.jd b/docs/html/tools/devices/index.jd
index 1ea4c47..6263c8b 100644
--- a/docs/html/tools/devices/index.jd
+++ b/docs/html/tools/devices/index.jd
@@ -5,16 +5,16 @@
  <p>An Android Virtual Device (AVD) is an emulator configuration that lets you model an actual
   device by defining hardware and software options to be emulated by the Android Emulator.</p>
 
-  <p>The easiest way to create an AVD is to use the graphical <a href= 
-  "{@docRoot}tools/devices/managing-avds.html">AVD Manager</a>, which you launch
-  from Eclipse by clicking <strong>Window &gt; AVD Manager</strong>. You can also start the AVD
-Manager from the command line by calling the <code>android</code> tool with the <code>avd</code>
-options, from the <strong>&lt;sdk>/tools/</strong> directory.</p>
+  <p>The easiest way to create an AVD is to use the graphical
+  <a href="{@docRoot}tools/devices/managing-avds.html">AVD Manager</a>, which you launch
+  from Android Studio by clicking <strong>Tools &gt; Android &gt; AVD Manager</strong>. You can
+  also start the AVD Manager from the command line by calling the <code>android</code> tool with
+ the <code>avd</code> options, from the <strong>&lt;sdk>/tools/</strong> directory.</p>
 
   <p>You can also create AVDs on the command line by passing the <code>android</code> tool options.
-  For more information on how to create AVDs in this manner, see <a href= 
-  "{@docRoot}tools/devices/managing-avds-cmdline.html">Managing Virtual
-  Devices from the Command Line</a>.</p>
+  For more information on how to create AVDs in this manner, see
+  <a href="{@docRoot}tools/devices/managing-avds-cmdline.html">Managing Virtual Devices from the
+  Command Line</a>.</p>
 
   <p>An AVD consists of:</p>
 
diff --git a/docs/html/tools/devices/managing-avds-cmdline.jd b/docs/html/tools/devices/managing-avds-cmdline.jd
index ba353c1..c16b1f8 100644
--- a/docs/html/tools/devices/managing-avds-cmdline.jd
+++ b/docs/html/tools/devices/managing-avds-cmdline.jd
@@ -84,8 +84,8 @@
 
 <h2 id="AVDCmdLine">Creating AVDs</h2>
 
-<p>In addition to creating AVDs with the 
-<a href="{@docRoot}tools/devices/managing-avds-cmdline.html">AVD Manager user interface</a>,
+<p>In addition to creating AVDs with the
+<a href="{@docRoot}tools/help/avd-manager.html">AVD Manager user interface</a>,
 you can also create them by passing in command line arguments to the <code>android</code> tool.
 </p>
 
diff --git a/docs/html/tools/help/adb.jd b/docs/html/tools/help/adb.jd
index 41c6686..641d463 100644
--- a/docs/html/tools/help/adb.jd
+++ b/docs/html/tools/help/adb.jd
@@ -16,18 +16,7 @@
   <li><a href="#move">Installing an Application</a></li>
   <li><a href="#forwardports">Forwarding Ports</a></li>
   <li><a href="#copyfiles">Copying Files to or from an Emulator/Device Instance</a></li>
-  <li><a href="#shellcommands">Issuing Shell Commands</a>
-    <ol>
-      <li><a href="#am">Using activity manager (am)</a></li>
-      <li><a href="#pm">Using package manager (pm)</a></li>
-      <li><a href="#sqlite">Examining sqlite3 databases from a remote shell</a></li>
-      <li><a href="#screenrecord">Recording a device screen</a></li>
-      <li><a href="#monkey">UI/Application Exerciser Monkey</a></li>
-      <li><a href="#othershellcommands">Other shell commands</a></li>
-    </ol>
-  </li>
-  <li><a href="#logcat">Enabling logcat logging</a></li>
-  <li><a href="#stopping">Stopping the adb server</a></li>
+  <li><a href="#stopping">Stopping the adb Server</a></li>
   <li><a href="#wireless">Wireless usage</a></li>
 </ol>
 
@@ -279,7 +268,7 @@
 <td rowspan="2">Shell</td>
 <td><code>shell</code></td>
 <td>Starts a remote shell in the target emulator/device instance.</td>
-<td rowspan="2">See <a href="#shellcommands">Issuing Shell Commands</a> for more information. </td>
+<td rowspan="2">See <a href="{@docRoot}tools/help/shell.html#shellcommands">ADB Shell Commands</a> for more information. </td>
 </tr>
 
 <tr>
@@ -412,950 +401,10 @@
 
 
 
+<h2 id="stopping">Stopping the adb Server</h2>
 
-
-
-
-
-<h2 id="shellcommands">Issuing Shell Commands</h2>
-
-<p>Adb provides a Unix shell that you can use to run a variety of commands on an emulator
-or connected device. The command binaries are stored in the file system of the emulator or device,
-at <code>/system/bin/...</code>
-
-<p>Two of the most common command tools are <a href="#am">activity manager</a> ({@code am}) and
-<a href="#pm">package manager</a> ({@code pm}).</p>
-
-<p>You can use the <code>shell</code> command to issue commands, with or without entering
-the adb remote shell on the emulator/device. To issue a single command without entering a
-remote shell, use the <code>shell</code> command like this: </p>
-
-  <pre class="no-pretty-print">adb [-d|-e|-s &lt;serialNumber&gt;] shell &lt;shell_command&gt;</pre>
-
-<p>Or enter a remote shell on an emulator/device like this:</p>
-
-  <pre class="no-pretty-print">adb [-d|-e|-s &lt;serialNumber&gt;] shell</pre>
-
-<p>When you are ready to exit the remote shell, press CTRL+D or type
-<code>exit</code>. </p>
-
-
-
-
-
-<h3 id="am">Using activity manager (am)</h3>
-
-<p>Within an adb shell, you can issue commands with the activity manager ({@code am}) tool to
-perform various system actions, such as start an activity, force-stop a process,
-broadcast an intent, modify the device screen properties, and more. While in a shell,
-the syntax is:</p>
-<pre class="no-pretty-print">
-am &lt;command>
-</pre>
-
-<p>You can also issue an activity manager command directly from adb
-without entering a remote shell. For example:</p>
-<pre class="no-pretty-print">
-adb shell am start -a android.intent.action.VIEW
-</pre>
-
-
-<p class="table-caption"><strong>Table 2.</strong> Available activity manager commands</p>
-<table>
-<tr>
-  <th>Command</th>
-  <th>Description</th>
-</tr>
-
-<tr>
-<td><code>
-start [options] &lt;INTENT>
-</code></td>
-<td>Start an {@link android.app.Activity} specified by {@code &lt;INTENT>}. <p>See the
-<a href="#IntentSpec">Specification for &lt;INTENT> arguments</a>.
-<p>Options are:
-<ul>
-    <li>{@code -D}: Enable debugging.
-    <li>{@code -W}: Wait for launch to complete.
-    <li>{@code --start-profiler &lt;FILE>}: Start profiler and send results to {@code &lt;FILE>}.
-    <li>{@code -P &lt;FILE>}: Like <code>--start-profiler</code>,
-        but profiling stops when the app goes idle.
-    <li>{@code -R}: Repeat the activity launch {@code &lt;COUNT>} times.  Prior to each repeat,
-        the top activity will be finished.
-    <li>{@code -S}: Force stop the target app before starting the activity.
-    <li>{@code --opengl-trace}: Enable tracing of OpenGL functions.
-    <li>{@code --user &lt;USER_ID> | current}: Specify which user to run as; if not
-        specified, then run as the current user.
-</ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-startservice [options] &lt;INTENT>
-</code></td>
-<td>Start the {@link android.app.Service} specified by {@code &lt;INTENT>}. <p>See the
-<a href="#IntentSpec">Specification for &lt;INTENT> arguments</a>.
-<p>Options are:
-<ul>
-    <li>{@code --user &lt;USER_ID> | current}: Specify which user to run as; if not
-        specified, then run as the current user.
-</ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-force-stop &lt;PACKAGE>
-</code></td>
-<td>Force stop everything associated with {@code &lt;PACKAGE>} (the app's package name).
-</td>
-</tr>
-
-<tr>
-<td><code>
-kill  [options] &lt;PACKAGE>
-</code></td>
-<td> Kill all processes associated with {@code &lt;PACKAGE>}
-  (the app's package name).  This command kills only
-  processes that are safe to kill and that will not impact the user
-  experience.
-  <p>Options are:
-  <ul>
-      <li>{@code --user &lt;USER_ID> | all | current}: Specify user whose processes to kill;
-        all users if not specified.
-  </ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-kill-all
-</code></td>
-<td>Kill all background processes.
-</td>
-</tr>
-
-<tr>
-<td><code>
-broadcast [options] &lt;INTENT>
-</code></td>
-<td>Issue a broadcast intent. <p>See the
-<a href="#IntentSpec">Specification for &lt;INTENT> arguments</a>.
-<p>Options are:
-<ul>
-    <li>{@code [--user &lt;USER_ID> | all | current]}: Specify which user to send to; if not
-        specified then send to all users.
-</ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-instrument [options] &lt;COMPONENT>
-</code></td>
-<td>Start monitoring with an {@link android.app.Instrumentation} instance.
-  Typically the target {@code &lt;COMPONENT>}
-  is the form {@code &lt;TEST_PACKAGE>/&lt;RUNNER_CLASS>}.  <p>Options are:
-<ul>
-    <li>{@code -r}: Print raw results (otherwise decode
-        {@code &lt;REPORT_KEY_STREAMRESULT>}).  Use with
-        {@code [-e perf true]} to generate raw output for performance measurements.
-
-    <li>{@code -e &lt;NAME> &lt;VALUE>}: Set argument {@code &lt;NAME>} to {@code &lt;VALUE>}.
-        For test runners a common form is {@code
-        -e &lt;testrunner_flag> &lt;value>[,&lt;value>...]}.
-
-    <li>{@code -p &lt;FILE>}: Write profiling data to {@code &lt;FILE>}.
-
-    <li>{@code -w}: Wait for instrumentation to finish before returning.  Required for
-        test runners.
-
-    <li>{@code --no-window-animation}: Turn off window animations while running.
-    <li>{@code --user &lt;USER_ID> | current}: Specify which user instrumentation runs in;
-        current user if not specified.
-</ul>
-
-</td>
-</tr>
-
-<tr>
-<td><code>
-profile start &lt;PROCESS> &lt;FILE>
-</code></td>
-<td>Start profiler on {@code &lt;PROCESS>}, write results to {@code &lt;FILE>}.
-</td>
-</tr>
-
-<tr>
-<td><code>
-profile stop &lt;PROCESS>
-</code></td>
-<td>Stop profiler on {@code &lt;PROCESS>}.
-</td>
-</tr>
-
-<tr>
-<td style="white-space:nowrap"><code>
-dumpheap [options] &lt;PROCESS> &lt;FILE>
-</code></td>
-<td>Dump the heap of {@code &lt;PROCESS>}, write to {@code &lt;FILE>}. <p>Options are:
-<ul>
-    <li>{@code --user [&lt;USER_ID>|current]}: When supplying a process name,
-        specify user of process to dump; uses current user if not specified.
-    <li>{@code -n}: Dump native heap instead of managed heap.
-</ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-set-debug-app [options] &lt;PACKAGE>
-</code></td>
-<td>Set application {@code &lt;PACKAGE>} to debug.  <p>Options are:
-<ul>
-    <li>{@code -w}: Wait for debugger when application starts.
-    <li>{@code --persistent}: Retain this value.
-</ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-clear-debug-app
-</code></td>
-<td>Clear the package previous set for debugging with {@code set-debug-app}.
-</td>
-</tr>
-
-<tr>
-<td><code>
-monitor [options]
-</code></td>
-<td>Start monitoring for crashes or ANRs.  <p>Options are:
-<ul>
-    <li>{@code --gdb}: Start gdbserv on the given port at crash/ANR.
-</ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-screen-compat [on|off] &lt;PACKAGE>
-</code></td>
-<td>Control <a href="{@docRoot}guide/practices/screen-compat-mode.html">screen
-compatibility</a> mode of {@code &lt;PACKAGE>}.</p>
-</td>
-</tr>
-
-<tr>
-<td><code>
-display-size [reset|&lt;WxH>]
-</code></td>
-<td>Override emulator/device display size.
-This command is helpful for testing your app across different screen sizes by mimicking a small
-screen resolution using a device with a large screen, and vice versa.
-<p>Example:<br><code>am display-size 1280x800</code>
-</td>
-</tr>
-
-<tr>
-<td><code>
-display-density &lt;dpi>
-</code></td>
-<td>Override emulator/device display density.
-This command is helpful for testing your app across different screen densities on high-density
-screen environment using a low density screen, and vice versa.
-<p>Example:<br><code>am display-density 480</code>
-</td>
-</tr>
-
-<tr>
-<td><code>
-to-uri &lt;INTENT>
-</code></td>
-<td>Print the given intent specification as a URI. <p>See the
-<a href="#IntentSpec">Specification for &lt;INTENT> arguments</a>.
-</td>
-</tr>
-
-<tr>
-<td><code>
-to-intent-uri &lt;INTENT>
-</code></td>
-<td>Print the given intent specification as an {@code intent:} URI. <p>See the
-<a href="#IntentSpec">Specification for &lt;INTENT> arguments</a>.
-</td>
-</tr>
-</table>
-
-
-
-
-
-<h4 id="IntentSpec">
-  <a href="" class="expandable" onclick="toggleExpandable(this,'.intents');
-return false">Specification for &lt;INTENT> arguments</a></h4>
-
-<div class="intents" style="display:none">
-
-<p>For activity manager commands that take a {@code &lt;INTENT>} argument, you can
-specify the intent with the following options:</p>
-
-<dl>
-  <dt>{@code -a &lt;ACTION>}</dt>
-      <dd>Specify the intent action, such as "android.intent.action.VIEW".
-      You can declare this only once.
-
-  <dt>{@code -d &lt;DATA_URI>}</dt>
-      <dd>Specify the intent data URI, such as "content://contacts/people/1".
-      You can declare this only once.
-
-  <dt>{@code -t &lt;MIME_TYPE>}</dt>
-      <dd>Specify the intent MIME type, such as "image/png".
-      You can declare this only once.
-
-  <dt>{@code -c &lt;CATEGORY>}</dt>
-      <dd>Specify an intent category, such as "android.intent.category.APP_CONTACTS".
-
-  <dt>{@code -n &lt;COMPONENT>}</dt>
-      <dd>Specify the component name with package name prefix to create an explicit intent, such
-      as "com.example.app/.ExampleActivity".
-
-  <dt>{@code -f &lt;FLAGS>}</dt>
-      <dd>Add flags to the intent, as supported by {@link
-        android.content.Intent#setFlags setFlags()}.
-
-  <dt>{@code --esn &lt;EXTRA_KEY>}</dt>
-      <dd>Add a null extra. This option is not supported for URI intents.
-
-  <dt>{@code -e|--es &lt;EXTRA_KEY> &lt;EXTRA_STRING_VALUE>}</dt>
-      <dd>Add string data as a key-value pair.
-
-  <dt>{@code --ez &lt;EXTRA_KEY> &lt;EXTRA_BOOLEAN_VALUE>}</dt>
-      <dd>Add boolean data as a key-value pair.
-
-  <dt>{@code --ei &lt;EXTRA_KEY> &lt;EXTRA_INT_VALUE>}</dt>
-      <dd>Add integer data as a key-value pair.
-
-  <dt>{@code --el &lt;EXTRA_KEY> &lt;EXTRA_LONG_VALUE>}</dt>
-      <dd>Add long data as a key-value pair.
-
-  <dt>{@code --ef &lt;EXTRA_KEY> &lt;EXTRA_FLOAT_VALUE>}</dt>
-      <dd>Add float data as a key-value pair.
-
-  <dt>{@code --eu &lt;EXTRA_KEY> &lt;EXTRA_URI_VALUE>}</dt>
-      <dd>Add URI data as a key-value pair.
-
-  <dt>{@code --ecn &lt;EXTRA_KEY> &lt;EXTRA_COMPONENT_NAME_VALUE>}</dt>
-      <dd>Add a component name, which is converted and passed as
-      a {@link android.content.ComponentName} object.
-
-  <dt>{@code --eia &lt;EXTRA_KEY> &lt;EXTRA_INT_VALUE>[,&lt;EXTRA_INT_VALUE...]}</dt>
-      <dd>Add an array of integers.
-
-  <dt>{@code --ela &lt;EXTRA_KEY> &lt;EXTRA_LONG_VALUE>[,&lt;EXTRA_LONG_VALUE...]}</dt>
-      <dd>Add an array of longs.
-
-  <dt>{@code --efa &lt;EXTRA_KEY> &lt;EXTRA_FLOAT_VALUE>[,&lt;EXTRA_FLOAT_VALUE...]}</dt>
-      <dd>Add an array of floats.
-
-  <dt>{@code --grant-read-uri-permission}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION}.
-
-  <dt>{@code --grant-write-uri-permission}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_GRANT_WRITE_URI_PERMISSION}.
-
-  <dt>{@code --debug-log-resolution}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_DEBUG_LOG_RESOLUTION}.
-
-  <dt>{@code --exclude-stopped-packages}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_EXCLUDE_STOPPED_PACKAGES}.
-
-  <dt>{@code --include-stopped-packages}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_INCLUDE_STOPPED_PACKAGES}.
-
-  <dt>{@code --activity-brought-to-front}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_BROUGHT_TO_FRONT}.
-
-  <dt>{@code --activity-clear-top}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP}.
-
-  <dt>{@code --activity-clear-when-task-reset}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET}.
-
-  <dt>{@code --activity-exclude-from-recents}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS}.
-
-  <dt>{@code --activity-launched-from-history}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY}.
-
-  <dt>{@code --activity-multiple-task}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_MULTIPLE_TASK}.
-
-  <dt>{@code --activity-no-animation}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_ANIMATION}.
-
-  <dt>{@code --activity-no-history}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_HISTORY}.
-
-  <dt>{@code --activity-no-user-action}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_USER_ACTION}.
-
-  <dt>{@code --activity-previous-is-top}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_PREVIOUS_IS_TOP}.
-
-  <dt>{@code --activity-reorder-to-front}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_REORDER_TO_FRONT}.
-
-  <dt>{@code --activity-reset-task-if-needed}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_RESET_TASK_IF_NEEDED}.
-
-  <dt>{@code --activity-single-top}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_SINGLE_TOP}.
-
-  <dt>{@code --activity-clear-task}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TASK}.
-
-  <dt>{@code --activity-task-on-home}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_TASK_ON_HOME}.
-
-  <dt>{@code --receiver-registered-only}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_RECEIVER_REGISTERED_ONLY}.
-
-  <dt>{@code --receiver-replace-pending}</dt>
-      <dd>Include the flag {@link android.content.Intent#FLAG_RECEIVER_REPLACE_PENDING}.
-
-  <dt>{@code --selector}</dt>
-      <dd>Requires the use of {@code -d} and {@code -t} options to set the intent data and type.
-
-  <dt>{@code &lt;URI> &lt;COMPONENT> &lt;PACKAGE>}</dt>
-      <dd>You can directly specify a URI, package name, and component name when not qualified
-      by one of the above options. When an argument is unqualified, the tool assumes the argument
-      is a URI if it contains a ":" (colon); it assumes the argument is a component name if it
-      contains a "/" (forward-slash); otherwise it assumes the argument is a package name.
-
-</dl>
-</div><!-- end 'intents' -->
-<script>
-  $(window).hashchange( function(){
-    if ((location.hash == "#IntentSpec") && !($("#IntentSpec a").hasClass("expanded"))) {
-      $("#IntentSpec a").click();
-    }
-  });
-</script>
-
-
-
-<h3 id="pm">Using package manager (pm)</h3>
-
-<p>Within an adb shell, you can issue commands with the package manager ({@code pm}) tool to
-perform actions and queries on application packages installed on the device. While in a shell,
-the syntax is:</p>
-<pre class="no-pretty-print">
-pm &lt;command>
-</pre>
-
-<p>You can also issue a package manager command directly from adb
-without entering a remote shell. For example:</p>
-<pre class="no-pretty-print">
-adb shell pm uninstall com.example.MyApp
-</pre>
-
-<p class="table-caption"><strong>Table 3.</strong> Available package manager commands.</p>
-<table>
-<tr>
-  <th>Command</th>
-  <th>Description</th>
-</tr>
-
-<tr>
-<td><code>
-list packages [options] &lt;FILTER>
-</code></td>
-<td>Prints all packages, optionally only
-  those whose package name contains the text in {@code &lt;FILTER>}.  <p>Options:
-<ul>
-    <li>{@code -f}: See their associated file.
-    <li>{@code -d}: Filter to only show disabled packages.
-    <li>{@code -e}: Filter to only show enabled packages.
-    <li>{@code -s}: Filter to only show system packages.
-    <li>{@code -3}: Filter to only show third party packages.
-    <li>{@code -i}: See the installer for the packages.
-    <li>{@code -u}: Also include uninstalled packages.
-    <li>{@code --user &lt;USER_ID>}: The user space to query.
-</ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-list permission-groups
-</code></td>
-<td>Prints all known permission groups.
-</td>
-</tr>
-
-<tr>
-<td><code>
-list permissions [options] &lt;GROUP>
-</code></td>
-<td>Prints all known permissions, optionally only
-  those in {@code &lt;GROUP>}.  <p>Options:
-<ul>
-    <li>{@code -g}: Organize by group.
-    <li>{@code -f}: Print all information.
-    <li>{@code -s}: Short summary.
-    <li>{@code -d}: Only list dangerous permissions.
-    <li>{@code -u}: List only the permissions users will see.
-</ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-list instrumentation
-</code></td>
-<td>List all test packages.  <p>Options:
-  <ul>
-    <li>{@code -f}: List the APK file for the test package.
-    <li>{@code &lt;TARGET_PACKAGE>}: List test packages for only this app.
-  </ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-list features
-</code></td>
-<td>Prints all features of the system.
-</td>
-</tr>
-
-<tr>
-<td><code>
-list libraries
-</code></td>
-<td>Prints all the libraries supported by the current device.
-</td>
-</tr>
-
-<tr>
-<td><code>
-list users
-</code></td>
-<td>Prints all users on the system.
-</td>
-</tr>
-
-<tr>
-<td><code>
-path &lt;PACKAGE>
-</code></td>
-<td>Print the path to the APK of the given {@code &lt;PACKAGE>}.
-</td>
-</tr>
-
-<tr>
-<td><code>
-install [options]  &lt;PATH>
-</code></td>
-<td>Installs a package (specified by {@code &lt;PATH>}) to the system.  <p>Options:
-  <ul>
-    <li>{@code -r}: Reinstall an exisiting app, keeping its data.
-    <li>{@code -t}: Allow test APKs to be installed.
-    <li>{@code -i &lt;INSTALLER_PACKAGE_NAME>}: Specify the installer package name.
-    <li>{@code -s}: Install package on the shared mass storage (such as sdcard).
-    <li>{@code -f}: Install package on the internal system memory.
-    <li>{@code -d}: Allow version code downgrade.
-  </ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-uninstall [options] &lt;PACKAGE>
-</code></td>
-<td>Removes a package from the system. <p>Options:
-  <ul>
-    <li>{@code -k}: Keep the data and cache directories around after package removal.
-  </ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-clear &lt;PACKAGE>
-</code></td>
-<td>Deletes all data associated with a package.
-</td>
-</tr>
-
-<tr>
-<td><code>
-enable &lt;PACKAGE_OR_COMPONENT>
-</code></td>
-<td>Enable the given package or component (written as "package/class").
-</td>
-</tr>
-
-<tr>
-<td><code>
-disable &lt;PACKAGE_OR_COMPONENT>
-</code></td>
-<td>Disable the given package or component (written as "package/class").
-</td>
-</tr>
-
-<tr>
-<td style="white-space:nowrap"><code>
-disable-user [options] &lt;PACKAGE_OR_COMPONENT>
-</code></td>
-<td><p>Options:
-  <ul>
-    <li>{@code --user &lt;USER_ID>}: The user to disable.
-  </ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-grant &lt;PACKAGE_PERMISSION>
-</code></td>
-<td>Grant permissions
-  to applications.  Only optional permissions the application has
-  declared can be granted.
-</td>
-</tr>
-
-<tr>
-<td><code>
-revoke &lt;PACKAGE_PERMISSION>
-</code></td>
-<td>Revoke permissions
-  to applications.  Only optional permissions the application has
-  declared can be revoked.
-</td>
-</tr>
-
-<tr>
-<td><code>
-set-install-location &lt;LOCATION>
-</code></td>
-<td>Changes the default install location. Location values:
-<ul>
-    <li>{@code 0}: Auto&mdash;Let system decide the best location.
-    <li>{@code 1}: Internal&mdash;install on internal device storage.
-    <li>{@code 2}: External&mdash;install on external media.
-</ul>
-<p class="note"><strong>Note:</strong> This is only intended for debugging; using this can cause
-  applications to break and other undesireable behavior.</p>
-</td>
-</tr>
-
-<tr>
-<td><code>
-get-install-location
-</code></td>
-<td>Returns the current install location. Return values:
-<ul>
-  <li>{@code 0 [auto]}: Lets system decide the best location
-  <li>{@code 1 [internal]}: Installs on internal device storage
-  <li>{@code 2 [external]}: Installs on external media
-</ul>
-</td>
-</tr>
-
-<tr>
-<td><code>
-set-permission-enforced &lt;PERMISSION> [true|false]
-</code></td>
-<td>Specifies whether the given permission should be enforced.
-</td>
-</tr>
-
-<tr>
-<td><code>
-trim-caches &lt;DESIRED_FREE_SPACE>
-</code></td>
-<td>Trim cache files to reach the given free space.
-</td>
-</tr>
-
-<tr>
-<td><code>
-create-user &lt;USER_NAME>
-</code></td>
-<td>Create a new user with the given {@code &lt;USER_NAME>},
-  printing the new user identifier of the user.
-</td>
-</tr>
-
-<tr>
-<td><code>
-remove-user &lt;USER_ID>
-</code></td>
-<td>Remove the user with the given {@code &lt;USER_IDENTIFIER>},
-  deleting all data associated with that user
-</td>
-</tr>
-
-<tr>
-<td><code>
-get-max-users
-</code></td>
-<td>Prints the maximum number of users supported by the device.
-</td>
-</tr>
-
-</table>
-
-
-
-
-
-
-
-<h3 id="sqlite">Examining sqlite3 databases from a remote shell</h3>
-
-<p>From an adb remote shell, you can use the
-<a href="http://www.sqlite.org/sqlite.html">sqlite3</a> command-line program to
-manage SQLite databases created by Android applications. The
-<code>sqlite3</code> tool includes many useful commands, such as
-<code>.dump</code> to print out the contents of a table and
-<code>.schema</code> to print the SQL CREATE statement for an existing table.
-The tool also gives you the ability to execute SQLite commands on the fly.</p>
-
-<p>To use <code>sqlite3</code>, enter a remote shell on the emulator instance, as described above,
-then invoke the tool using the <code>sqlite3</code> command. Optionally, when invoking
-<code>sqlite3</code> you can specify the full path to the database you want to explore.
-Emulator/device instances store SQLite3 databases in the folder
-<code><span chatdir="1"><span chatindex="259474B4B070F261">/data/data/<em>&lt;package_name&gt;</em>/databases</span></span>/</code>. </p>
-
-<p>Here's an example: </p>
-
-<pre class="no-pretty-print">adb -s emulator-5554 shell
-# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
-SQLite version 3.3.12
-Enter &quot;.help&quot; for instructions
-<em>.... enter commands, then quit...</em>
-sqlite&gt; .exit </pre>
-
-<p>Once you've invoked <code>sqlite3</code>, you can issue <code>sqlite3</code> commands in the
-shell. To exit and return to the adb remote shell, use <code>exit</code> or <code>CTRL+D</code>.
-
-
-
-
-<h3 id="screenrecord">Recording a device screen</h3>
-
-<p>The {@code screenrecord} command is a shell utility for recording the display of devices
-  running Android 4.4 (API level 19) and higher. The utility records screen activity to an MPEG-4
-  file, which you can then download and use as part of a video presentation. This utility is useful
-  for developers who want to create promotional or training videos without using a separate
-  recording device.</p>
-
-<p>To use the {@code screenrecord} from the command line, type the following:
-
-<pre>
-$ adb shell screenrecord /sdcard/demo.mp4
-</pre>
-
-<p>Stop the screen recording by pressing Ctrl-C, otherwise the recording stops automatically
-at three minutes or the time limit set by {@code --time-limit}.</p>
-
-<p>Here's an example recording session, using the adb shell to record the video and the
-{@code pull} command to download the file from the device:<p>
-
-<pre>
-$ adb shell
-shell@ $ screenrecord --verbose /sdcard/demo.mp4
-(press Ctrl-C to stop)
-shell@ $ exit
-$ adb pull /sdcard/demo.mp4
-</pre>
-
-<p>The {@code screenrecord} utility can record at any supported resolution and bit rate you
-  request, while retaining the aspect ratio of the device display. The utility records at the native
-  display resolution and orientation by default, with a maximum length of three minutes.</p>
-
-<p>There are some known limitations of the {@code screenrecord} utility that you should be aware
-  of when using it:</p>
-
-<ul>
-  <li>Some devices may not be able to record at their native display resolution.
-    If you encounter problems with screen recording, try using a lower screen resolution.</li>
-  <li>Rotation of the screen during recording is not supported. If the screen does rotate during
-    recording, some of the screen is cut off in the recording.</li>
-  <li>Audio is not recorded with the video file.</li>
-</ul>
-
-
-<p class="table-caption"><strong>Table 4.</strong> {@code screenrecord} options</p>
-
-<table>
-  <tr>
-    <th>Options</th>
-    <th>Description</th>
-  </tr>
-
-  <tr>
-    <td><code>--help</code>
-    </td>
-    <td>Displays a usage summary.</td>
-  </tr>
-
-  <tr>
-    <td style="white-space:nowrap">
-      <code>--size &lt;WIDTHxHEIGHT&gt;</code>
-    </td>
-    <td>Sets the video size, for example: {@code 1280x720}. The default value is the device's main
-      display resolution (if supported), 1280x720 if not. For best results, use a size supported
-      by your device's Advanced Video Coding (AVC) encoder.</td>
-  </tr>
-
-  <tr>
-    <td><code>--bit-rate &lt;RATE&gt;</code></td>
-    <td>Sets the video bit rate for the video, in megabits per second. The default value is 4Mbps.
-      You can increase the bit rate to improve video quality or lower it for smaller movie
-      files. The following example sets the recording bit rate to 6Mbps:
-      <pre>screenrecord --bit-rate 6000000 &#47;sdcard&#47;demo.mp4</pre>
-      </td>
-  </tr>
-
-  <tr>
-    <td><code>--time-limit &lt;TIME&gt;</code></td>
-    <td>Sets the maximum recording time, in seconds. The default and maximum value is 180
-      (3 minutes).</td>
-  </tr>
-
-  <tr>
-    <td><code>--rotate</code></td>
-    <td>Rotates the output 90 degrees. This feature is experimental.</td>
-  </tr>
-
-  <tr>
-    <td><code>--verbose</code></td>
-    <td>Displays log information on command line screen. If you do not set this option,
-      the utility does not display any information while running.</td>
-  </tr>
-
-</table>
-
-
-
-
-<h3 id="monkey">UI/Application Exerciser Monkey</h3>
-
-<p>The Monkey is a program that runs on your emulator or device and generates pseudo-random
-streams of user events such as clicks, touches, or gestures, as well as a number of system-level
-events.  You can use the Monkey to stress-test applications that you are developing,
-in a random yet repeatable manner.</p>
-
-<p>The simplest way to use the monkey is with the following command, which launches your
-application and sends 500 pseudo-random events to it.</p>
-
-<pre class="no-pretty-print">adb shell monkey -v -p your.package.name 500</pre>
-
-<p>For more information about command options for Monkey, see the complete
-<a href="{@docRoot}tools/help/monkey.html" title="monkey">UI/Application Exerciser Monkey</a> documentation page.</p>
-
-
-
-
-
-<h3 id="othershellcommands">Other shell commands</h3>
-
-<p>For a list of all the available shell programs, use the following command:</p>
-
-<pre class="no-pretty-print">adb shell ls /system/bin</pre>
-
-<p>Help is available for most of the commands. </p>
-
-<p>Table 5 lists some of the more common adb shell commands.</p>
-
-<p class="table-caption"><strong>Table 5.</strong> Some other adb shell commands</p>
-<table>
-<tr>
-  <th>Shell Command</th>
-  <th>Description</th>
-  <th>Comments</th>
-</tr>
-
-<tr>
-<td><code>dumpsys</code></td>
-<td>Dumps system data to the screen.</td>
-<td rowspan=4">The <a href="{@docRoot}tools/debugging/ddms.html">Dalvik Debug Monitor Server</a>
-(DDMS) tool offers integrated debug environment that you may find easier to use.</td>
-</tr>
-
-<tr>
-<td><code>dumpstate</code></td>
-<td>Dumps state to a file.</td>
-</tr>
-
-<tr>
-<td><code>logcat&nbsp;[option]...&nbsp;[filter-spec]...</code></td>
-<td>Enables system and app logging and prints output to the screen. </td>
-</tr>
-
-<tr>
-<td><code>dmesg</code></td>
-<td>Prints kernel debugging messages to the screen. </td>
-</tr>
-
-<tr>
-<td><code>start</code></td>
-<td>Starts (restarts) an emulator/device instance.</td>
-<td>&nbsp;</td>
-</tr>
-
-<tr>
-<td><code>stop</code></td>
-<td>Stops execution of an emulator/device instance.</td>
-<td>&nbsp;</td>
-</tr>
-
-</table>
-
-
-
-
-
-
-
-<a name="stdout"></a>
-<a name="usinglogcat"></a>
-<a name="outputformat"></a>
-<a name="filteringoutput"></a>
-<a name="stdout"></a>
-<a name="logcatoptions"></a>
-
-<h2 id="logcat">Enabling logcat logging</h2>
-
-<p>The Android logging system provides a mechanism for collecting and viewing system debug output. Logs from various applications and portions of the system are collected in a series of circular buffers, which then can be viewed and filtered by the <code>logcat</code> command.</p>
-
-<p>You can use the <code>logcat</code> command to view and follow the contents of the system's log buffers. The general usage is:</p>
-
-<pre class="no-pretty-print">[adb] logcat [option] ... [filter-spec] ...</pre>
-
-<p>You can use the <code>logcat</code> command from your development computer  or from a remote adb shell in an emulator/device instance. To view log output in your development computer, you use</p>
-
-<pre class="no-pretty-print">adb logcat</pre>
-
-<p>and from a remote adb shell you use</p>
-
-<pre class="no-pretty-print">logcat</pre>
-
-<p>See <a href="{@docRoot}tools/debugging/debugging-log.html">Reading and Writing Logs</a> for complete information about logcat commend options and filter specifications.</p>
-
-
-
-
-
-<h2 id="stopping">Stopping the adb server</h2>
-
-<p>In some cases, you might need to terminate the adb server process and then restart it. For example, if adb does not respond to a command, you can terminate the server and restart it and that may resolve the problem. </p>
+<p>In some cases, you might need to terminate the adb server process and then restart it
+to resolve the problem (e.g., if adb does not respond to a command).</p>
 
 <p>To stop the adb server, use the <code>kill-server</code> command.
 You can then restart the server by issuing any other adb command. </p>
@@ -1457,4 +506,4 @@
 and then start over from the beginning.
 </li>
 
-</ol>
+</ol>
\ No newline at end of file
diff --git a/docs/html/tools/help/index.jd b/docs/html/tools/help/index.jd
index 4c97d0c..f90d029 100644
--- a/docs/html/tools/help/index.jd
+++ b/docs/html/tools/help/index.jd
@@ -68,7 +68,10 @@
   <dt><a href="{@docRoot}tools/help/adb.html">adb</a></dt>
     <dd>Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with
         an emulator instance or connected Android-powered device. It also provides access to the
-        device shell for advanced command-line operations.</dd>
+        device shell.</dd>
+
+  <dt><a href="{@docRoot}tools/help/shell.html">ADB Shell Commands</a></dt>
+    <dd>Learn the commands available for advanced command-line operations.</dd>
 
   <dt><a href="{@docRoot}tools/debugging/ddms.html">Dalvik Debug Monitor
 Server (ddms)</a></dt>
@@ -109,11 +112,9 @@
 
   <dt><a href="{@docRoot}tools/help/jobb.html">JOBB</a></dt>
     <dd>Allows you to build encrypted and unencrypted
-    <a href="{@docRoot}{@docRoot}google/play/expansion-files.html">APK expansion files</a> in Opaque
+    <a href="{@docRoot}google/play/expansion-files.html">APK expansion files</a> in Opaque
     Binary Blob (OBB) format.</dd>
 
-<a href="{@docRoot}{@docRoot}google/play/expansion-files.html">APK expansion files</a>
-
   <dt><a href="{@docRoot}tools/help/proguard.html">ProGuard</a></dt>
     <dd>Shrinks, optimizes, and obfuscates your code by removing unused code and renaming
 classes, fields, and methods with semantically obscure names.</dd>
diff --git a/docs/html/tools/help/shell.jd b/docs/html/tools/help/shell.jd
new file mode 100644
index 0000000..417c871
--- /dev/null
+++ b/docs/html/tools/help/shell.jd
@@ -0,0 +1,898 @@
+page.title=ADB Shell Commands
+parent.title=Tools
+parent.link=index.html
+page.tags=shell,adb,am,pm,screenrecord,screencap
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+  <h2>In this document</h2>
+<ol>
+  <li><a href="#shellcommands">Issuing Shell Commands</a>
+  <li><a href="#am">Using activity manager (am)</a></li>
+  <li><a href="#pm">Using package manager (pm)</a></li>
+  <li><a href="#screencap">Taking a device screenshot</a></li>
+  <li><a href="#screenrecord">Recording a device screen</a></li>
+  <li><a href="#othershellcommands">Other shell commands</a></li>
+  </li>
+</ol>
+
+</div>
+</div>
+
+<p>The <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge</a> (adb) provides a Unix shell
+that you can use to run a variety of commands on an emulator or connected device. The command
+binaries are stored in the file system of the emulator or device, at <code>/system/bin/...</code>
+</p>
+
+<h2 id="shellcommands">Issuing Shell Commands</h2>
+
+<p>You can use the <code>shell</code> command to issue commands, with or without entering
+the adb remote shell on the emulator/device. To issue a single command without entering a
+remote shell, use the <code>shell</code> command like this: </p>
+
+  <pre class="no-pretty-print">adb [-d|-e|-s &lt;serialNumber&gt;] shell &lt;shell_command&gt;</pre>
+
+<p>Or enter a remote shell on an emulator/device like this:</p>
+
+  <pre class="no-pretty-print">adb [-d|-e|-s &lt;serialNumber&gt;] shell</pre>
+
+<p>When you are ready to exit the remote shell, press CTRL+D or type
+<code>exit</code>. </p>
+
+
+
+
+
+<h2 id="am">Using activity manager (am)</h2>
+
+<p>Within an adb shell, you can issue commands with the activity manager ({@code am}) tool to
+perform various system actions, such as start an activity, force-stop a process,
+broadcast an intent, modify the device screen properties, and more. While in a shell,
+the syntax is:</p>
+<pre class="no-pretty-print">
+am &lt;command>
+</pre>
+
+<p>You can also issue an activity manager command directly from adb
+without entering a remote shell. For example:</p>
+<pre class="no-pretty-print">
+adb shell am start -a android.intent.action.VIEW
+</pre>
+
+
+<p class="table-caption"><strong>Table 2.</strong> Available activity manager commands</p>
+<table>
+<tr>
+  <th>Command</th>
+  <th>Description</th>
+</tr>
+
+<tr>
+<td><code>
+start [options] &lt;INTENT>
+</code></td>
+<td>Start an {@link android.app.Activity} specified by {@code &lt;INTENT>}. <p>See the
+<a href="#IntentSpec">Specification for &lt;INTENT> arguments</a>.
+<p>Options are:
+<ul>
+    <li>{@code -D}: Enable debugging.
+    <li>{@code -W}: Wait for launch to complete.
+    <li>{@code --start-profiler &lt;FILE>}: Start profiler and send results to {@code &lt;FILE>}.
+    <li>{@code -P &lt;FILE>}: Like <code>--start-profiler</code>,
+        but profiling stops when the app goes idle.
+    <li>{@code -R}: Repeat the activity launch {@code &lt;COUNT>} times.  Prior to each repeat,
+        the top activity will be finished.
+    <li>{@code -S}: Force stop the target app before starting the activity.
+    <li>{@code --opengl-trace}: Enable tracing of OpenGL functions.
+    <li>{@code --user &lt;USER_ID> | current}: Specify which user to run as; if not
+        specified, then run as the current user.
+</ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+startservice [options] &lt;INTENT>
+</code></td>
+<td>Start the {@link android.app.Service} specified by {@code &lt;INTENT>}. <p>See the
+<a href="#IntentSpec">Specification for &lt;INTENT> arguments</a>.
+<p>Options are:
+<ul>
+    <li>{@code --user &lt;USER_ID> | current}: Specify which user to run as; if not
+        specified, then run as the current user.
+</ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+force-stop &lt;PACKAGE>
+</code></td>
+<td>Force stop everything associated with {@code &lt;PACKAGE>} (the app's package name).
+</td>
+</tr>
+
+<tr>
+<td><code>
+kill  [options] &lt;PACKAGE>
+</code></td>
+<td> Kill all processes associated with {@code &lt;PACKAGE>}
+  (the app's package name).  This command kills only
+  processes that are safe to kill and that will not impact the user
+  experience.
+  <p>Options are:
+  <ul>
+      <li>{@code --user &lt;USER_ID> | all | current}: Specify user whose processes to kill;
+        all users if not specified.
+  </ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+kill-all
+</code></td>
+<td>Kill all background processes.
+</td>
+</tr>
+
+<tr>
+<td><code>
+broadcast [options] &lt;INTENT>
+</code></td>
+<td>Issue a broadcast intent. <p>See the
+<a href="#IntentSpec">Specification for &lt;INTENT> arguments</a>.
+<p>Options are:
+<ul>
+    <li>{@code [--user &lt;USER_ID> | all | current]}: Specify which user to send to; if not
+        specified then send to all users.
+</ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+instrument [options] &lt;COMPONENT>
+</code></td>
+<td>Start monitoring with an {@link android.app.Instrumentation} instance.
+  Typically the target {@code &lt;COMPONENT>}
+  is the form {@code &lt;TEST_PACKAGE>/&lt;RUNNER_CLASS>}.  <p>Options are:
+<ul>
+    <li>{@code -r}: Print raw results (otherwise decode
+        {@code &lt;REPORT_KEY_STREAMRESULT>}).  Use with
+        {@code [-e perf true]} to generate raw output for performance measurements.
+
+    <li>{@code -e &lt;NAME> &lt;VALUE>}: Set argument {@code &lt;NAME>} to {@code &lt;VALUE>}.
+        For test runners a common form is {@code
+        -e &lt;testrunner_flag> &lt;value>[,&lt;value>...]}.
+
+    <li>{@code -p &lt;FILE>}: Write profiling data to {@code &lt;FILE>}.
+
+    <li>{@code -w}: Wait for instrumentation to finish before returning.  Required for
+        test runners.
+
+    <li>{@code --no-window-animation}: Turn off window animations while running.
+    <li>{@code --user &lt;USER_ID> | current}: Specify which user instrumentation runs in;
+        current user if not specified.
+</ul>
+
+</td>
+</tr>
+
+<tr>
+<td><code>
+profile start &lt;PROCESS> &lt;FILE>
+</code></td>
+<td>Start profiler on {@code &lt;PROCESS>}, write results to {@code &lt;FILE>}.
+</td>
+</tr>
+
+<tr>
+<td><code>
+profile stop &lt;PROCESS>
+</code></td>
+<td>Stop profiler on {@code &lt;PROCESS>}.
+</td>
+</tr>
+
+<tr>
+<td style="white-space:nowrap"><code>
+dumpheap [options] &lt;PROCESS> &lt;FILE>
+</code></td>
+<td>Dump the heap of {@code &lt;PROCESS>}, write to {@code &lt;FILE>}. <p>Options are:
+<ul>
+    <li>{@code --user [&lt;USER_ID>|current]}: When supplying a process name,
+        specify user of process to dump; uses current user if not specified.
+    <li>{@code -n}: Dump native heap instead of managed heap.
+</ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+set-debug-app [options] &lt;PACKAGE>
+</code></td>
+<td>Set application {@code &lt;PACKAGE>} to debug.  <p>Options are:
+<ul>
+    <li>{@code -w}: Wait for debugger when application starts.
+    <li>{@code --persistent}: Retain this value.
+</ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+clear-debug-app
+</code></td>
+<td>Clear the package previous set for debugging with {@code set-debug-app}.
+</td>
+</tr>
+
+<tr>
+<td><code>
+monitor [options]
+</code></td>
+<td>Start monitoring for crashes or ANRs.  <p>Options are:
+<ul>
+    <li>{@code --gdb}: Start gdbserv on the given port at crash/ANR.
+</ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+screen-compat [on|off] &lt;PACKAGE>
+</code></td>
+<td>Control <a href="{@docRoot}guide/practices/screen-compat-mode.html">screen
+compatibility</a> mode of {@code &lt;PACKAGE>}.</p>
+</td>
+</tr>
+
+<tr>
+<td><code>
+display-size [reset|&lt;WxH>]
+</code></td>
+<td>Override emulator/device display size.
+This command is helpful for testing your app across different screen sizes by mimicking a small
+screen resolution using a device with a large screen, and vice versa.
+<p>Example:<br><code>am display-size 1280x800</code>
+</td>
+</tr>
+
+<tr>
+<td><code>
+display-density &lt;dpi>
+</code></td>
+<td>Override emulator/device display density.
+This command is helpful for testing your app across different screen densities on high-density
+screen environment using a low density screen, and vice versa.
+<p>Example:<br><code>am display-density 480</code>
+</td>
+</tr>
+
+<tr>
+<td><code>
+to-uri &lt;INTENT>
+</code></td>
+<td>Print the given intent specification as a URI. <p>See the
+<a href="#IntentSpec">Specification for &lt;INTENT> arguments</a>.
+</td>
+</tr>
+
+<tr>
+<td><code>
+to-intent-uri &lt;INTENT>
+</code></td>
+<td>Print the given intent specification as an {@code intent:} URI. <p>See the
+<a href="#IntentSpec">Specification for &lt;INTENT> arguments</a>.
+</td>
+</tr>
+</table>
+
+
+
+
+
+<h3 id="IntentSpec">
+  <a href="" class="expandable" onclick="toggleExpandable(this,'.intents');
+return false">Specification for &lt;INTENT> arguments</a></h3>
+
+<div class="intents" style="display:none">
+
+<p>For activity manager commands that take a {@code &lt;INTENT>} argument, you can
+specify the intent with the following options:</p>
+
+<dl>
+  <dt>{@code -a &lt;ACTION>}</dt>
+      <dd>Specify the intent action, such as "android.intent.action.VIEW".
+      You can declare this only once.
+
+  <dt>{@code -d &lt;DATA_URI>}</dt>
+      <dd>Specify the intent data URI, such as "content://contacts/people/1".
+      You can declare this only once.
+
+  <dt>{@code -t &lt;MIME_TYPE>}</dt>
+      <dd>Specify the intent MIME type, such as "image/png".
+      You can declare this only once.
+
+  <dt>{@code -c &lt;CATEGORY>}</dt>
+      <dd>Specify an intent category, such as "android.intent.category.APP_CONTACTS".
+
+  <dt>{@code -n &lt;COMPONENT>}</dt>
+      <dd>Specify the component name with package name prefix to create an explicit intent, such
+      as "com.example.app/.ExampleActivity".
+
+  <dt>{@code -f &lt;FLAGS>}</dt>
+      <dd>Add flags to the intent, as supported by {@link
+        android.content.Intent#setFlags setFlags()}.
+
+  <dt>{@code --esn &lt;EXTRA_KEY>}</dt>
+      <dd>Add a null extra. This option is not supported for URI intents.
+
+  <dt>{@code -e|--es &lt;EXTRA_KEY> &lt;EXTRA_STRING_VALUE>}</dt>
+      <dd>Add string data as a key-value pair.
+
+  <dt>{@code --ez &lt;EXTRA_KEY> &lt;EXTRA_BOOLEAN_VALUE>}</dt>
+      <dd>Add boolean data as a key-value pair.
+
+  <dt>{@code --ei &lt;EXTRA_KEY> &lt;EXTRA_INT_VALUE>}</dt>
+      <dd>Add integer data as a key-value pair.
+
+  <dt>{@code --el &lt;EXTRA_KEY> &lt;EXTRA_LONG_VALUE>}</dt>
+      <dd>Add long data as a key-value pair.
+
+  <dt>{@code --ef &lt;EXTRA_KEY> &lt;EXTRA_FLOAT_VALUE>}</dt>
+      <dd>Add float data as a key-value pair.
+
+  <dt>{@code --eu &lt;EXTRA_KEY> &lt;EXTRA_URI_VALUE>}</dt>
+      <dd>Add URI data as a key-value pair.
+
+  <dt>{@code --ecn &lt;EXTRA_KEY> &lt;EXTRA_COMPONENT_NAME_VALUE>}</dt>
+      <dd>Add a component name, which is converted and passed as
+      a {@link android.content.ComponentName} object.
+
+  <dt>{@code --eia &lt;EXTRA_KEY> &lt;EXTRA_INT_VALUE>[,&lt;EXTRA_INT_VALUE...]}</dt>
+      <dd>Add an array of integers.
+
+  <dt>{@code --ela &lt;EXTRA_KEY> &lt;EXTRA_LONG_VALUE>[,&lt;EXTRA_LONG_VALUE...]}</dt>
+      <dd>Add an array of longs.
+
+  <dt>{@code --efa &lt;EXTRA_KEY> &lt;EXTRA_FLOAT_VALUE>[,&lt;EXTRA_FLOAT_VALUE...]}</dt>
+      <dd>Add an array of floats.
+
+  <dt>{@code --grant-read-uri-permission}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION}.
+
+  <dt>{@code --grant-write-uri-permission}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_GRANT_WRITE_URI_PERMISSION}.
+
+  <dt>{@code --debug-log-resolution}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_DEBUG_LOG_RESOLUTION}.
+
+  <dt>{@code --exclude-stopped-packages}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_EXCLUDE_STOPPED_PACKAGES}.
+
+  <dt>{@code --include-stopped-packages}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_INCLUDE_STOPPED_PACKAGES}.
+
+  <dt>{@code --activity-brought-to-front}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_BROUGHT_TO_FRONT}.
+
+  <dt>{@code --activity-clear-top}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP}.
+
+  <dt>{@code --activity-clear-when-task-reset}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET}.
+
+  <dt>{@code --activity-exclude-from-recents}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS}.
+
+  <dt>{@code --activity-launched-from-history}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY}.
+
+  <dt>{@code --activity-multiple-task}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_MULTIPLE_TASK}.
+
+  <dt>{@code --activity-no-animation}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_ANIMATION}.
+
+  <dt>{@code --activity-no-history}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_HISTORY}.
+
+  <dt>{@code --activity-no-user-action}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_NO_USER_ACTION}.
+
+  <dt>{@code --activity-previous-is-top}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_PREVIOUS_IS_TOP}.
+
+  <dt>{@code --activity-reorder-to-front}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_REORDER_TO_FRONT}.
+
+  <dt>{@code --activity-reset-task-if-needed}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_RESET_TASK_IF_NEEDED}.
+
+  <dt>{@code --activity-single-top}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_SINGLE_TOP}.
+
+  <dt>{@code --activity-clear-task}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TASK}.
+
+  <dt>{@code --activity-task-on-home}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_ACTIVITY_TASK_ON_HOME}.
+
+  <dt>{@code --receiver-registered-only}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_RECEIVER_REGISTERED_ONLY}.
+
+  <dt>{@code --receiver-replace-pending}</dt>
+      <dd>Include the flag {@link android.content.Intent#FLAG_RECEIVER_REPLACE_PENDING}.
+
+  <dt>{@code --selector}</dt>
+      <dd>Requires the use of {@code -d} and {@code -t} options to set the intent data and type.
+
+  <dt>{@code &lt;URI> &lt;COMPONENT> &lt;PACKAGE>}</dt>
+      <dd>You can directly specify a URI, package name, and component name when not qualified
+      by one of the above options. When an argument is unqualified, the tool assumes the argument
+      is a URI if it contains a ":" (colon); it assumes the argument is a component name if it
+      contains a "/" (forward-slash); otherwise it assumes the argument is a package name.
+
+</dl>
+</div><!-- end 'intents' -->
+<script>
+  $(window).hashchange( function(){
+    if ((location.hash == "#IntentSpec") && !($("#IntentSpec a").hasClass("expanded"))) {
+      $("#IntentSpec a").click();
+    }
+  });
+</script>
+
+
+
+<h2 id="pm">Using package manager (pm)</h2>
+
+<p>Within an adb shell, you can issue commands with the package manager ({@code pm}) tool to
+perform actions and queries on application packages installed on the device. While in a shell,
+the syntax is:</p>
+<pre class="no-pretty-print">
+pm &lt;command>
+</pre>
+
+<p>You can also issue a package manager command directly from adb
+without entering a remote shell. For example:</p>
+<pre class="no-pretty-print">
+adb shell pm uninstall com.example.MyApp
+</pre>
+
+<p class="table-caption"><strong>Table 3.</strong> Available package manager commands.</p>
+<table>
+<tr>
+  <th>Command</th>
+  <th>Description</th>
+</tr>
+
+<tr>
+<td><code>
+list packages [options] &lt;FILTER>
+</code></td>
+<td>Prints all packages, optionally only
+  those whose package name contains the text in {@code &lt;FILTER>}.  <p>Options:
+<ul>
+    <li>{@code -f}: See their associated file.
+    <li>{@code -d}: Filter to only show disabled packages.
+    <li>{@code -e}: Filter to only show enabled packages.
+    <li>{@code -s}: Filter to only show system packages.
+    <li>{@code -3}: Filter to only show third party packages.
+    <li>{@code -i}: See the installer for the packages.
+    <li>{@code -u}: Also include uninstalled packages.
+    <li>{@code --user &lt;USER_ID>}: The user space to query.
+</ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+list permission-groups
+</code></td>
+<td>Prints all known permission groups.
+</td>
+</tr>
+
+<tr>
+<td><code>
+list permissions [options] &lt;GROUP>
+</code></td>
+<td>Prints all known permissions, optionally only
+  those in {@code &lt;GROUP>}.  <p>Options:
+<ul>
+    <li>{@code -g}: Organize by group.
+    <li>{@code -f}: Print all information.
+    <li>{@code -s}: Short summary.
+    <li>{@code -d}: Only list dangerous permissions.
+    <li>{@code -u}: List only the permissions users will see.
+</ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+list instrumentation
+</code></td>
+<td>List all test packages.  <p>Options:
+  <ul>
+    <li>{@code -f}: List the APK file for the test package.
+    <li>{@code &lt;TARGET_PACKAGE>}: List test packages for only this app.
+  </ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+list features
+</code></td>
+<td>Prints all features of the system.
+</td>
+</tr>
+
+<tr>
+<td><code>
+list libraries
+</code></td>
+<td>Prints all the libraries supported by the current device.
+</td>
+</tr>
+
+<tr>
+<td><code>
+list users
+</code></td>
+<td>Prints all users on the system.
+</td>
+</tr>
+
+<tr>
+<td><code>
+path &lt;PACKAGE>
+</code></td>
+<td>Print the path to the APK of the given {@code &lt;PACKAGE>}.
+</td>
+</tr>
+
+<tr>
+<td><code>
+install [options]  &lt;PATH>
+</code></td>
+<td>Installs a package (specified by {@code &lt;PATH>}) to the system.  <p>Options:
+  <ul>
+    <li>{@code -l}: Install the package with forward lock.
+    <li>{@code -r}: Reinstall an exisiting app, keeping its data.
+    <li>{@code -t}: Allow test APKs to be installed.
+    <li>{@code -i &lt;INSTALLER_PACKAGE_NAME>}: Specify the installer package name.
+    <li>{@code -s}: Install package on the shared mass storage (such as sdcard).
+    <li>{@code -f}: Install package on the internal system memory.
+    <li>{@code -d}: Allow version code downgrade.
+  </ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+uninstall [options] &lt;PACKAGE>
+</code></td>
+<td>Removes a package from the system. <p>Options:
+  <ul>
+    <li>{@code -k}: Keep the data and cache directories around after package removal.
+  </ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+clear &lt;PACKAGE>
+</code></td>
+<td>Deletes all data associated with a package.
+</td>
+</tr>
+
+<tr>
+<td><code>
+enable &lt;PACKAGE_OR_COMPONENT>
+</code></td>
+<td>Enable the given package or component (written as "package/class").
+</td>
+</tr>
+
+<tr>
+<td><code>
+disable &lt;PACKAGE_OR_COMPONENT>
+</code></td>
+<td>Disable the given package or component (written as "package/class").
+</td>
+</tr>
+
+<tr>
+<td style="white-space:nowrap"><code>
+disable-user [options] &lt;PACKAGE_OR_COMPONENT>
+</code></td>
+<td><p>Options:
+  <ul>
+    <li>{@code --user &lt;USER_ID>}: The user to disable.
+  </ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+grant &lt;PACKAGE_PERMISSION>
+</code></td>
+<td>Grant permissions
+  to applications.  Only optional permissions the application has
+  declared can be granted.
+</td>
+</tr>
+
+<tr>
+<td><code>
+revoke &lt;PACKAGE_PERMISSION>
+</code></td>
+<td>Revoke permissions
+  to applications.  Only optional permissions the application has
+  declared can be revoked.
+</td>
+</tr>
+
+<tr>
+<td><code>
+set-install-location &lt;LOCATION>
+</code></td>
+<td>Changes the default install location. Location values:
+<ul>
+    <li>{@code 0}: Auto&mdash;Let system decide the best location.
+    <li>{@code 1}: Internal&mdash;install on internal device storage.
+    <li>{@code 2}: External&mdash;install on external media.
+</ul>
+<p class="note"><strong>Note:</strong> This is only intended for debugging; using this can cause
+  applications to break and other undesireable behavior.</p>
+</td>
+</tr>
+
+<tr>
+<td><code>
+get-install-location
+</code></td>
+<td>Returns the current install location. Return values:
+<ul>
+  <li>{@code 0 [auto]}: Lets system decide the best location
+  <li>{@code 1 [internal]}: Installs on internal device storage
+  <li>{@code 2 [external]}: Installs on external media
+</ul>
+</td>
+</tr>
+
+<tr>
+<td><code>
+set-permission-enforced &lt;PERMISSION> [true|false]
+</code></td>
+<td>Specifies whether the given permission should be enforced.
+</td>
+</tr>
+
+<tr>
+<td><code>
+trim-caches &lt;DESIRED_FREE_SPACE>
+</code></td>
+<td>Trim cache files to reach the given free space.
+</td>
+</tr>
+
+<tr>
+<td><code>
+create-user &lt;USER_NAME>
+</code></td>
+<td>Create a new user with the given {@code &lt;USER_NAME>},
+  printing the new user identifier of the user.
+</td>
+</tr>
+
+<tr>
+<td><code>
+remove-user &lt;USER_ID>
+</code></td>
+<td>Remove the user with the given {@code &lt;USER_IDENTIFIER>},
+  deleting all data associated with that user
+</td>
+</tr>
+
+<tr>
+<td><code>
+get-max-users
+</code></td>
+<td>Prints the maximum number of users supported by the device.
+</td>
+</tr>
+
+</table>
+
+
+<h2 id="screencap">Taking a device screenshot</h2>
+
+<p>The {@code screencap} command is a shell utility for taking a screenshot of a device display.
+While in a shell, the syntax is:
+</p>
+
+<pre class="no-pretty-print">
+screencap &lt;filename>
+</pre>
+
+
+<p>To use the {@code screencap} from the command line, type the following:
+
+<pre>
+$ adb shell screencap /sdcard/screen.png
+</pre>
+
+<p>Here's an example screenshot session, using the adb shell to capture the screenshot and the
+{@code pull} command to download the file from the device:<p>
+
+<pre>
+$ adb shell
+shell@ $ screencap /sdcard/screen.png
+shell@ $ exit
+$ adb pull /sdcard/screen.png
+</pre>
+
+
+<h2 id="screenrecord">Recording a device screen</h2>
+
+<p>The {@code screenrecord} command is a shell utility for recording the display of devices
+  running Android 4.4 (API level 19) and higher. The utility records screen activity to an MPEG-4
+  file.</p>
+
+<p class="note"><strong>Note:</strong> Audio is not recorded with the video file.</p>
+
+<p>A developer can use this file to create promotional or training videos. While in a shell, the syntax is:</p>
+
+<pre class="no-pretty-print">
+screenrecord [options] &lt;filename>
+</pre>
+
+<p>To use {@code screenrecord} from the command line, type the following:
+
+<pre>
+$ adb shell screenrecord /sdcard/demo.mp4
+</pre>
+
+<p>Stop the screen recording by pressing Ctrl-C, otherwise the recording stops automatically
+at three minutes or the time limit set by {@code --time-limit}.</p>
+
+<p>To begin recording your device screen, run the {@code screenrecord} command to record
+the video. Then, run the {@code pull} command to download the video from the device to the host
+computer. Here's an example recording session:<p>
+
+<pre>
+$ adb shell
+shell@ $ screenrecord --verbose /sdcard/demo.mp4
+(press Ctrl-C to stop)
+shell@ $ exit
+$ adb pull /sdcard/demo.mp4
+</pre>
+
+<p>The {@code screenrecord} utility can record at any supported resolution and bit rate you
+  request, while retaining the aspect ratio of the device display. The utility records at the native
+  display resolution and orientation by default, with a maximum length of three minutes.</p>
+
+<p>There are some known limitations of the {@code screenrecord} utility that you should be aware
+  of when using it:</p>
+
+<ul>
+  <li>Some devices may not be able to record at their native display resolution.
+    If you encounter problems with screen recording, try using a lower screen resolution.</li>
+  <li>Rotation of the screen during recording is not supported. If the screen does rotate during
+    recording, some of the screen is cut off in the recording.</li>
+</ul>
+
+
+<p class="table-caption"><strong>Table 4.</strong> {@code screenrecord} options</p>
+
+<table>
+  <tr>
+    <th>Options</th>
+    <th>Description</th>
+  </tr>
+
+  <tr>
+    <td><code>--help</code>
+    </td>
+    <td>Displays command syntax and options</td>
+  </tr>
+
+  <tr>
+    <td style="white-space:nowrap">
+      <code>--size &lt;WIDTHxHEIGHT&gt;</code>
+    </td>
+    <td>Sets the video size: {@code 1280x720}. The default value is the device's native
+      display resolution (if supported), 1280x720 if not. For best results, use a size supported
+      by your device's Advanced Video Coding (AVC) encoder.</td>
+  </tr>
+
+  <tr>
+    <td><code>--bit-rate &lt;RATE&gt;</code></td>
+    <td>Sets the video bit rate for the video, in megabits per second. The default value is 4Mbps.
+      You can increase the bit rate to improve video quality, but doing so results in larger movie
+      files. The following example sets the recording bit rate to 6Mbps:
+      <pre>screenrecord --bit-rate 6000000 &#47;sdcard&#47;demo.mp4</pre>
+      </td>
+  </tr>
+
+  <tr>
+    <td><code>--time-limit &lt;TIME&gt;</code></td>
+    <td>Sets the maximum recording time, in seconds. The default and maximum value is 180
+      (3 minutes).</td>
+  </tr>
+
+  <tr>
+    <td><code>--rotate</code></td>
+    <td>Rotates the output 90 degrees. This feature is experimental.</td>
+  </tr>
+
+  <tr>
+    <td><code>--verbose</code></td>
+    <td>Displays log information on the command-line screen. If you do not set this option,
+      the utility does not display any information while running.</td>
+  </tr>
+
+</table>
+
+
+<h2 id="othershellcommands">Other shell commands</h2>
+
+<p>For a list of all the available shell programs, use the following command:</p>
+
+<pre class="no-pretty-print">adb shell ls /system/bin</pre>
+
+<p>Help is available for most of the commands. </p>
+
+<p>Table 5 lists some of the more common adb shell commands.</p>
+
+<p class="table-caption"><strong>Table 5.</strong> Some other adb shell commands</p>
+<table>
+<tr>
+  <th>Shell Command</th>
+  <th>Description</th>
+  <th>Comments</th>
+</tr>
+
+<tr>
+<td><code>dumpsys</code></td>
+<td>Dumps system data to the screen.</td>
+<td rowspan=4">The <a href="{@docRoot}tools/debugging/ddms.html">Dalvik Debug Monitor Server</a>
+(DDMS) tool offers integrated debug environment that you may find easier to use.</td>
+</tr>
+
+<tr>
+<td><code>dumpstate</code></td>
+<td>Dumps state to a file.</td>
+</tr>
+
+<tr>
+<td><code>logcat&nbsp;[option]...&nbsp;[filter-spec]...</code></td>
+<td>Enables system and app logging and prints output to the screen. </td>
+</tr>
+
+<tr>
+<td><code>dmesg</code></td>
+<td>Prints kernel debugging messages to the screen. </td>
+</tr>
+
+<tr>
+<td><code>start</code></td>
+<td>Starts (restarts) an emulator/device instance.</td>
+<td>&nbsp;</td>
+</tr>
+
+<tr>
+<td><code>stop</code></td>
+<td>Stops execution of an emulator/device instance.</td>
+<td>&nbsp;</td>
+</tr>
+
+</table>
\ No newline at end of file
diff --git a/docs/html/tools/performance/allocation-tracker/index.jd b/docs/html/tools/performance/allocation-tracker/index.jd
new file mode 100644
index 0000000..e71b584
--- /dev/null
+++ b/docs/html/tools/performance/allocation-tracker/index.jd
@@ -0,0 +1,148 @@
+page.title=Allocation Tracker Walkthrough
+meta.tags="android, performance, profiling, tools, memoryleaks, memoryheap"
+page.tags="android", "performance", "profiling", "tools", "memoryleaks", "memoryheap"
+page.metaDescription=Record you app's memory allocations with their call stack to identify code that allocates and frees objects unnecessarily.
+page.image=tools/performance/thumbnails/tools_allocation_tracker.png
+page.article=true
+
+
+@jd:body
+
+<style>
+  .no-bullet {
+    list-style-type: none;
+  }
+  .padded {
+    padding-left: 10px;
+  }
+</style>
+
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#WhatYouNeed">Prerequisites</a></li>
+  <li><a href="#WorkingWithAllocationTracker">Working with Allocation Tracker</a></li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/heap-viewer/index.html">
+    Heap Viewer Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/memory-monitor/index.html">
+    Memory Monitor Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/comparison.html">
+    Comparison: Memory Monitor, Heap Viewer, Allocation Tracker</a>
+  <li><a href="{@docRoot}tools/performance/traceview/index.html">
+    Traceview Walkthrough</a></li>
+</ul>
+
+</div>
+
+
+  <p>This walkthrough shows the basic usage and workflow for the Allocation Tracker tool in Android
+  Studio. Allocation Tracker records an app's memory allocations and lists all
+  allocated objects for the profiling cycle with their call stack, size, and allocating code.</p>
+
+  <p>What it's good for:</p>
+
+  <ul>
+    <li>Identifying where many similar object types, from roughly the same call stack, are
+    allocated and deallocated over a very short period of time.</li>
+
+    <li>Finding the places in your code that may contribute to inefficient memory use.</li>
+  </ul>
+
+  <p>Before using Allocation Tracker, profile your code with the
+  <a href="{@docRoot}tools/performance/memory-monitor/index.html">Memory
+  Monitor Tool</a>. If you see many garbage collection events in a short amount of time, use
+  <a href="{@docRoot}tools/performance/heap-viewer/index.html">Heap
+  Viewer</a> to identify candidate object types, and Allocation Tracker to determine where this is
+  happening in your code.</p>
+
+  <h2 id="WhatYouNeed">Prerequisites</h2>
+
+  <ul>
+    <li>A mobile device with <a href=
+    "http://developer.android.com/tools/device.html#developer-device-options">Developer Options</a>
+    enabled.</li>
+
+    <li>Application code. Use your own code, or the <a href=
+    "https://github.com/udacity/Sunshine-Version-2">Sunshine</a> sample app from the <a href=
+    "https://www.udacity.com/course/ud853">Android Fundamentals Udacity course</a>.</li>
+  </ul>
+
+  <h2 id="WorkingWithAllocationTracker">Working with Allocation Tracker</h2>
+
+  <p>Allocation Tracker records each memory allocation that your app performs during the profiling
+  cycle. You tell Allocation Tracker to start recording and it logs allocations
+  until you tell it to stop.</p>
+
+<hr>
+<ul class="no-bullet">
+<!-- this also hides bullet, by default outside box -->
+ <li><div style="overflow:hidden">
+  <ol class="padded">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/allocation-tracker/gettingstarted_image01.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 1. </strong>Steps for starting Allocation Tracker.
+      </p>
+    </div>
+
+    <li>Connect your mobile device to your computer.</li>
+
+    <li>Open your application in Android Studio, build the source, and run it on your device.</li>
+
+    <li>Click the <b>Android</b> button at the bottom of your Android Studio window.</li>
+
+    <li>Click the RECORD button
+        <img src="{@docRoot}images/tools/performance/allocation-tracker/gettingstarted_image02.png">
+        (Start Allocation Tracking tooltip).</li>
+
+    <li>Interact with your application.</li>
+
+    <li>Click the (same) STOP button (Stop Allocation Tracking tooltip).</li>
+  </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="7">
+
+  <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/allocation-tracker/gettingstarted_image03.png"
+         alt=""
+         width="440px" />
+      <p class="img-caption">
+        <strong>Figure 2. </strong>Example of Allocation Tracker output.
+      </p>
+    </div>
+
+    <li>After a few seconds, a pane with your recorded data opens.
+
+    <p>Note that allocations are logged on
+      the device, and the data file is transferred to the host computer, parsed for information, and
+      displayed.</p></li>
+
+    <li>The pane populates with a table.
+
+    <ul>
+      <li>Each row represents a memory allocation event.</li>
+
+      <li>Each column represents information about the allocation, such as the object type,
+      the thread, and its size. </li>
+
+      <li>The columns are movable, resizable, and sortable.</li>
+    </ul>
+
+    <p>Use the Filter to show only allocations from your app.</li>
+
+    <li>Click on an object to see its full stack trace.</li>
+  </ol>
+</div></li>
+</ul>
diff --git a/docs/html/tools/performance/batterystats-battery-historian/charts.jd b/docs/html/tools/performance/batterystats-battery-historian/charts.jd
new file mode 100644
index 0000000..cbe9d85
--- /dev/null
+++ b/docs/html/tools/performance/batterystats-battery-historian/charts.jd
@@ -0,0 +1,124 @@
+page.title=Battery Historian Charts
+meta.tags="android, performance, profiling, tools, battery, historian, batterydrain
+page.tags="android", performance", "profiling", "tools", "battery", "historian" "batterydrain"
+page.metaDescription=Examine and interpret the collected battery usage data in your browser.
+page.image=tools/performance/thumbnails/tools_battery_historian.png
+page.article=true
+
+@jd:body
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#BatteryHistorianCharts">Battery Historian Charts</a></li>
+  <li><a href="#FilteringBatterystats">Filtering batterystats output</a></li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/batterystats-battery-historian/index.html">
+    Batterystats &amp; Battery Historian Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/systrace/index.html">
+    Systrace Walkthrough</a></li>
+</ul>
+
+</div>
+
+
+  <p id="BatteryHistorianCharts">
+    The Battery Historian chart graphs power-relevant events over time.</p>
+
+  <p>Each row shows a colored bar segment when a system component is active
+   and thus drawing current from the battery. The chart does <i>not</i> show <i>how much</i> battery was used by the
+  component, only that the app was active. Charts are organized by category.</p>
+
+  <div class="figure" style="">
+  <img src="{@docRoot}images/tools/performance/batterystats-battery-historian/gettingstarted_image02.png"
+         alt=""
+         height="" />
+    <p class="img-caption">
+      <strong>Figure 1. </strong>Example of Battery Historian output.
+    </p>
+  </div>
+
+  <h3>Battery usage categories</h3>
+
+  <ul>
+    <li><b>battery_level</b>: When the battery level was recorded and logged.
+    Reported in percent, where 093 is 93%. Provides an overall measure of how fast the battery
+    is draining.</li>
+
+    <li><b>top</b>: The application running at the top; usually, the application that is visible to
+    the user. If you want to measure battery drain while your app is active, make sure
+    it's the top app. If you want to measure battery drain while your app is in
+    the background, make sure it's <i>not</i> the top app.</li>
+
+    <li><b>wifi_running</b>: Shows that the Wi-Fi network connection was active.</li>
+
+    <li><b>screen</b>: Screen is turned on.</li>
+
+    <li><b>phone_in_call</b>: Recorded when the phone is in a call.</li>
+
+    <li><b>wake_lock</b>: App wakes up, grabs a lock, does small work, then goes back to sleep.
+    This is one of the most important pieces of information. Waking up the phone is expensive, so
+    if you see lots of short bars here, that might be a problem.</li>
+
+    <li><b>running</b>: Shows when the CPU is awake. Check whether it is awake and asleep
+      when you expect it to be.</li>
+
+    <li><b>wake_reason</b>: The last thing that caused the kernel to wake up. If
+    it's your app, determine whether it was necessary.</li>
+
+    <li><b>mobile_radio</b>: Shows when the radio was on. Starting the radio is battery expensive.
+    Many narrow bars close to each other can indicate opportunities for
+    batching and other optimizations.</li>
+
+    <li><b>gps</b>: Indicates when the GPS was on. Make sure this is what you expect.</li>
+
+    <li><b>sync:</b> Shows when an app was syncing with a backend. The sync bar also shows which
+    app did the syncing. For users, this can show apps where they might turn syncing off to save
+    battery. Developers should sync as little as possible and only as often as necessary.</li>
+  </ul>
+
+
+  <p class="note"><strong>Note:</strong>
+    Not every chart will show every category.</p>
+
+  <h2 id="FilteringBatterystats">Filtering batterystats output</h2>
+
+  <p>You can gather additional information from the <code>batterystats.txt</code> file
+    where you saved the output from the batterystats command.</p>
+
+  <div class="figure" style="">
+<img src="{@docRoot}images/tools/performance/batterystats-battery-historian/gettingstarted_image03.png"
+         alt=""
+         width="340px" />
+    <p class="img-caption">
+      <strong>Figure 2.</strong>Example of filtered batterystats output.
+    </p>
+  </div>
+
+  <p>Open the file in a text editor and search for:</p>
+
+  <ol>
+    <li><b><code>Battery History</code></b>: A time series of power-relevant events, such as
+    screen, Wi-Fi, and app launch. These are also visible through Battery Historian.</li>
+
+    <li><b><code>Per-PID Stats</code></b>: How long each process ran.</li>
+
+    <li><b><code>Statistics since last charge</code></b>: System-wide statistics, such as
+    cell signal levels and screen brightness. Provides an overall picture of what's happening
+    with the device. This information is especially useful
+    to make sure no external events are affecting your experiment.</li>
+
+    <li><b><code>Estimated power use (mAh)</code></b> by UID and peripheral: This is currently an
+    extremely rough estimate and should not be considered experiment data.</li>
+
+    <li><b><code>Per-app mobile ms per packet</code></b>: Radio-awake-time divided by packets sent.
+    An efficient app will transfer all its traffic in batches, so the lower this number the
+    better.</li>
+
+    <li><b><code>All partial wake locks</code></b>: All app-held wakelocks, by aggregate
+    duration and count.</li>
+  </ol>
diff --git a/docs/html/tools/performance/batterystats-battery-historian/index.jd b/docs/html/tools/performance/batterystats-battery-historian/index.jd
new file mode 100644
index 0000000..2072df9
--- /dev/null
+++ b/docs/html/tools/performance/batterystats-battery-historian/index.jd
@@ -0,0 +1,129 @@
+page.title=Batterystats &amp; Battery Historian Walkthrough
+meta.tags="android, performance, profiling, tools, battery, batterystats, historian, batterydrain
+page.tags="android", "performance", "profiling", "tools", "battery", "batterystats", "historian", "batterydrain"
+page.metaDescription=Collect battery usage data from your device and display it graphically in your browser.
+page.image=tools/performance/thumbnails/tools_battery_historian.png
+page.article=true
+
+
+@jd:body
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/batterystats-battery-historian/charts.html">
+    Battery Historian Charts</a></li>
+  <li><a href="{@docRoot}tools/performance/systrace/index.html">
+    Systrace Walkthrough</a></li>
+</ul>
+
+</div>
+
+  <p>This walkthrough shows the basic usage and workflow for the Batterystats tool and the Battery
+  Historian script.</p>
+
+  <p>Batterystats collects battery data from your device, and Battery Historian converts that data
+  into an HTML visualization that you can view in your Browser. Batterystats is part of the Android
+  framework, and Battery Historian is open-sourced and available on GitHub at <a href=
+  "https://github.com/google/battery-historian">https://github.com/google/battery-historian</a>.</p>
+
+  <p>What it's good for:</p>
+
+  <ul>
+    <li>Showing you where and how processes are drawing current from the battery.</li>
+
+    <li>Identifying tasks in your app that could be deferred or even removed to improve battery
+    life.</li>
+  </ul>
+
+  <h2>Prerequisites</h2>
+
+  <ul>
+    <li>A mobile device with <a href=
+    "http://developer.android.com/tools/device.html#developer-device-options">Developer Options</a>
+    enabled running Android 5.0 or higher.</li>
+  </ul>
+
+  <h2>Working with Batterystats &amp; Battery Historian</h2>
+
+  <div class="sidebox-wrapper" style="width:400px;">
+      <div class="sidebox" style="width:350px;">
+        <h2>Summary</h2>
+          <code>
+            <p><b>https://github.com/google/battery-historian</b></p>
+            <p>&gt; adb kill-server</p>
+            <p>&gt; adb devices</p>
+            <p>&gt; adb shell dumpsys batterystats --reset</p>
+            <p>&lt;disconnect and play with app&gt;...&lt;reconnect&gt;</p>
+            <p>&gt; adb devices</p>
+            <p>&gt;adb shell dumpsys batterystats &gt; batterystats.txt</p>
+            <p>&gt; python historian.py batterystats.txt &gt; batterystats.html</p>
+          </code>
+      </div>
+  </div>
+
+  <ol>
+
+    <li>Download the open-source Battery Historion Python script from GitHub (<a href=
+    "https://github.com/google/battery-historian">https://github.com/google/battery-historian</a>).
+    </li>
+
+    <li>Unzip the file to extract the Battery Historian folder. Inside the folder,
+      find the <code>historian.py</code> file
+      and move it to the Desktop or another <em>writable</em> directory.</li>
+
+    <li>Connect your mobile device to your computer.</li>
+
+    <li>On your computer, open a Terminal window.</li>
+
+    <li>Change to the directory where you've saved <code>historian.py</code>,
+      <br>for example:
+      <code>cd ~/Desktop</code></li>
+
+    <li>Shut down your running adb server.
+      <br><code>&gt; adb kill-server</code></li>
+
+    <li>Restart adb and check for connected devices.
+      <br><code>&gt; adb devices</code>
+      <br><img src="{@docRoot}images/tools/performance/batterystats-battery-historian/gettingstarted_image01.png">
+      <br>If you don't see any devices, make sure your phone is connected, and USB Debugging
+      is turned on, and then kill and restart adb.</li>
+
+    <li>Reset battery data gathering.
+      <br><code>&gt; adb shell dumpsys batterystats --reset</code>
+      <p>Resetting erases old battery collection data; otherewise, the output will be huge.</p>
+    </li>
+
+    <li>Disconnect your device from your computer so that you are only drawing current from the
+    device's battery.</li>
+
+    <li>Play with your app for a short time.</li>
+
+    <li>Reconnect your phone.</li>
+
+    <li>Make sure your phone is recognized: <code>&gt; adb devices</code></li>
+
+    <li>Dump all battery data. This can take a while:
+      <br><code>&gt; adb shell dumpsys batterystats &gt; batterystats.txt</code></li>
+
+    <li>Create a HTML version of the data dump for Battery Historian:
+       <br><code>&gt; python historian.py batterystats.txt &gt; batterystats.html</code></li>
+
+    <li>Open the <code>batterystats.htm</code> file in your browser.</li>
+
+    <li>Continue with <a href="{@docRoot}tools/performance/batterystats-battery-historian/charts.html">
+        Battery Historian Charts</a>.
+    </li>
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/batterystats-battery-historian/gettingstarted_image02.png"
+         alt=""
+      <p class="img-caption">
+        <strong>Figure 1. </strong>Battery Historian output.
+      </p>
+    </div>
+  </ol>
+
+
+
diff --git a/docs/html/tools/performance/comparison.jd b/docs/html/tools/performance/comparison.jd
new file mode 100644
index 0000000..cf4b7120
--- /dev/null
+++ b/docs/html/tools/performance/comparison.jd
@@ -0,0 +1,133 @@
+page.title=Memory Profilers
+meta.tags="android, performance, profiling, tools, memory, memoryleaks, garbagecollection"
+page.tags="android", "performance", "profiling", "tools", "memory", "memoryleaks", "garbagecollection"
+page.metaDescription=Heap Viewer, Memory Monitor, and Allocation Tracker are complementary tools that visualize the memory your app uses.
+page.image=tools/performance/thumbnails/tools_memory_monitor.png
+page.article=true
+
+@jd:body
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#MemoryMonitor">Memory Monitor</a></li>
+  <li><a href="#HeapViewer">Heap Viewer</a></li>
+  <li><a href="#AllocationTracker">Allocation Tracker</a></li>
+
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/memory-monitor/index.html">
+    Memory Monitor Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/heap-viewer/index.html">
+    Heap Viewer Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/allocation-tracker/index.html">
+    Allocation Tracker Walkthrough</a></li>
+</ul>
+
+</div>
+
+  <p>Heap Viewer, Memory Monitor, and Allocation Tracker are complementary tools that visualize the
+  memory your app uses.</p>
+
+  <ol>
+    <li>Use the
+    <a href="{@docRoot}tools/performance/memory-monitor/index.html">
+    Memory Monitor Tool</a> to find out whether undesirable garbage collection (GC) event patterns might
+    be causing your performance problems.</li>
+
+    <li>Run
+    <a href="{@docRoot}tools/performance/heap-viewer/index.html">
+    Heap Viewer</a> to identify object types that get or stay allocated
+    unexpectedely or unecessarily.</li>
+
+    <li>Use
+    <a href="{@docRoot}tools/performance/allocation-tracker/index.html">
+    Allocation Tracker</a> to identify where in your code the problem might be.</li>
+  </ol>
+
+  <h2 id="MemoryMonitor">Memory Monitor</h2>
+
+<div>
+  <div class="figure" style="">
+    <img src="{@docRoot}images/tools/performance/compare_MemoryMonitor.png"
+         alt=""
+         height="" />
+    <p class="img-caption">
+      <strong>Figure 1. </strong>Memory Monitor.
+    </p>
+  </div>
+
+  <ul>
+    <li>Shows available and used memory as they both change over time <i>for your app</i> in a
+    graph, with dips indicating Garbage Collection (GC) events.</li>
+
+    <li>Provides a quick way to test whether app slowness might be related
+    to excessive GC events.</li>
+
+    <li>Provides a quick way to see whether app crashes might be related
+    to running out of memory.</li>
+
+    <li>Runs live on your application and updates about once a second.</li>
+
+    <li>Helps quickly identify the potential of memory leaks.</li>
+
+    <li>Helps identify GC patterns for your application and determine whether
+      they are healthy and what you expect.</li>
+
+    <li>Is easy to use, and it is easy to interpret what you see.</li>
+
+    <li>However, Memory Monitor does not tell you which objects are the cause
+      of your problems, or where in your code it might be.</li>
+  </ul>
+
+    <h2 id="HeapViewer">Heap Viewer</h2>
+
+  <div class="figure" style="">
+    <img src="{@docRoot}images/tools/performance/compare_HeapViewer.png"
+         alt=""
+         height="" />
+    <p class="img-caption">
+      <strong>Figure 2. </strong>Heap Viewer.
+    </p>
+  </div>
+
+  <ul>
+    <li>Shows snapshots of a number of objects allocated by type.</li>
+
+    <li>Samples data every time a garbage collection event occurs
+      naturally or triggered by you.</li>
+
+    <li>Helps identify which object types might be involved in memory leaks.</li>
+
+    <li>However, you have to look for changes over time yourself by tracking what's
+    happening in the graph.</li>
+    <br><br><br><br>
+  </ul>
+
+    <h2 id="AllocationTracker">Allocation Tracker</h2>
+
+  <div class="figure" style="">
+    <img src="{@docRoot}images/tools/performance/compare_AllocationTracker.png"
+         alt=""ge
+         height="" />
+    <p class="img-caption">
+      <strong>Figure 3. </strong>Allocation Tracker.
+    </p>
+  </div>
+
+  <ul>
+    <li>Shows when and where your code allocates object types, their size, allocating thread, and
+    stack traces.</li>
+
+    <li>Helps recognize memory churn through recurring allocation/deallocation patterns.</li>
+
+    <li>Can be used in combination with Heap Viewer to track down memory leaks. For example, if you
+    see a bitmap object resident on the heap, you can find its allocation location with Allocation
+    Tracker.</li>
+
+    <li>However, it takes time and experience to learn to interpret the output from this tool.</li>
+
+  </ul>
diff --git a/docs/html/tools/performance/debug-gpu-overdraw/index.jd b/docs/html/tools/performance/debug-gpu-overdraw/index.jd
new file mode 100644
index 0000000..e6b85fd
--- /dev/null
+++ b/docs/html/tools/performance/debug-gpu-overdraw/index.jd
@@ -0,0 +1,156 @@
+page.title=Debug GPU Overdraw Walkthrough
+meta.tags="android, performance, profiling, tools, rendering, overdraw"
+page.tags="android", "performance", "profiling", "tools",  "rendering", "overdraw"
+page.metaDescription=Use color-coding to show how many times each pixel is redrawn on the screen to reduce rendering overhead.
+page.image=tools/performance/thumbnails/tools_debug_gpu_overdraw.png
+page.article=true
+
+
+@jd:body
+
+<style>
+  .no-bullet {
+    list-style-type: none;
+  }
+  .padded {
+    padding-left: 10px;
+  }
+</style>
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#WhatYouNeed">Prerequisites</a></li>
+  <li><a href="#VisualizingOverdraw">Visualizing Overdraw</a></li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/profile-gpu-rendering/index.html">
+    Profile GPU Rendering Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/hierarchy-viewer/index.html">
+    Hierarchy Viewer Walkthrough</a></li>
+</ul>
+
+</div>
+
+  <p>This walkthrough shows how to visualize overdraw on your mobile device by color-coding
+  interface elements based on how often they are drawn underneath.</p>
+
+  <p>What it's good for:</p>
+
+  <ul>
+    <li>Showing where an app might be doing more rendering work than necessary.</li>
+
+    <li>Helping you see where you might be able to reduce rendering overhead.</li>
+  </ul>
+
+  <h2 id="WhatYouNeed">Prerequisites</h2>
+
+  <ul>
+    <li>A mobile device with <a href=
+    "http://developer.android.com/tools/device.html#developer-device-options">Developer Options</a>
+    enabled.</li>
+  </ul>
+
+
+  <h2 id="VisualizingOverdraw">Visualizing Overdraw on your Mobile Device</h2>
+
+  <ul class="no-bullet">
+  <!-- this also hides bullet, by default outside box -->
+  <li><div style="overflow:hidden">
+  <ol class="padded">
+
+    <div class="figure" style="">
+      <img
+    src="{@docRoot}images/tools/performance/debug-gpu-overdraw/gettingstarted_image01.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 1. </strong>Steps for turning on Debug GPU Overdraw.
+      </p>
+    </div>
+
+    <li>On your mobile device, go to <b>Settings</b> and tap <b>Developer Options</b>.</li>
+
+    <li>In the <em>Hardware accelerated rendering</em> section,
+      select <b>Debug GPU Overdraw</b>.</li>
+
+    <li>In the <b>Debug GPU overdraw</b> popup, select <b>Show overdraw areas</b>.</li>
+ </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="5">
+
+     <div class="figure" style="padding-right:100px">
+      <img
+    src="{@docRoot}images/tools/performance/debug-gpu-overdraw/gettingstarted_image02.png"
+         alt=""
+         width="180px" />
+      <p class="img-caption">
+        <strong>Figure 2. </strong>Example of<br>Debug GPU Overdraw output.
+      </p>
+    </div>
+
+    <li>Don't panic as your screen turns into a delirium of colors.
+      The coloring is provided to help you diagnose your app's display behavior.</li>
+
+  </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+ <ol class="padded" start="6">
+
+     <div class="figure" style="">
+      <img
+    src="{@docRoot}images/tools/performance/debug-gpu-overdraw/gettingstarted_image03.png"
+         alt=""
+         width="300px" />
+      <p class="img-caption">
+        <strong>Figure 3. </strong>Color key for Debug GPU Overdraw output.
+      </p>
+    </div>
+
+    <br><br>
+    <li>The colors are hinting at the amount of overdraw on your screen for each pixel, as
+      follows:
+
+      <ul>
+        <li><b>True color:</b> No overdraw</li>
+        <li><b>Blue:</b> Overdrawn once</li>
+        <li><b>Green:</b> Overdrawn twice</li>
+        <li><b>Pink:</b> Overdrawn three times</li>
+        <li><b>Red:</b> Overdrawn four or more times</li>
+      </ul>
+    </li>
+
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+ <ol class="padded" start="7">
+
+    <div class="figure" style="">
+      <img
+    src="{@docRoot}images/tools/performance/debug-gpu-overdraw/gettingstarted_image04.png"
+         alt=""
+         width="300px" />
+      <p class="img-caption">
+        <strong>Figure 4. </strong>Examples of undesirable and desirable
+          <br>Debug GPU Overdraw output.
+      </p>
+    </div>
+
+    <br><br><br>
+    <li>Some overdraw is unavoidable. As you are tuning your app's
+      user interface, the goal is to arrive at a visualization that shows mostly true
+      colors and 1X overdraw in blue.</li>
+
+  </ol>
+</div></li>
+</ul>
diff --git a/docs/html/tools/performance/heap-viewer/index.jd b/docs/html/tools/performance/heap-viewer/index.jd
new file mode 100644
index 0000000..9ca0c47c
--- /dev/null
+++ b/docs/html/tools/performance/heap-viewer/index.jd
@@ -0,0 +1,177 @@
+page.title=Heap Viewer Walkthrough
+meta.tags="android, performance, profiling, tools, memory, memoryleaks, memoryheap"
+page.tags="android", "performance", "profiling", "tools", "memory", "memoryleaks", "memoryheap"
+page.metaDescription=Report in real-time how many objects of what types and sizes your application is allocating and find memory leaks.
+page.image=tools/performance/thumbnails/tools_heap_viewer.png
+page.article=true
+
+@jd:body
+
+<style>
+  .no-bullet {
+    list-style-type: none;
+  }
+  .padded {
+    padding-left: 10px;
+  }
+</style>
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#WhatYouNeed">Prerequisites</a></li>
+  <li><a href="#WorkingWithHeapViewer">Working with Heap Viewer</a></li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/memory-monitor/index.html">
+    Memory Monitor Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/allocation-tracker/index.html">
+    Allocation Tracker Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/comparison.html">
+    Comparison: Memory Monitor, Heap Viewer, Allocation Tracker</a>
+  <li><a href="{@docRoot}tools/performance/traceview/index.html">
+    Traceview Walkthrough</a></li>
+</ul>
+
+</div>
+
+
+  <p>This walkthrough shows the basic usage and workflow for the Heap Viewer tool. Heap Viewer
+  reports in real-time what <i>types</i> of objects your application has allocated, how many, and
+  their sizes on the heap.</p>
+
+  <p>What it's good for:</p>
+
+  <ul>
+    <li>Getting a sense of how your app allocates and frees memory.</li>
+
+    <li>Identifying memory leaks.</li>
+  </ul>
+
+  <h2 id="WhatYouNeed">Prerequisites</h2>
+
+  <ul>
+    <li>A mobile device running Android 5.0 or higher with <a href=
+    "http://developer.android.com/tools/device.html#developer-device-options">Developer Options</a>
+    enabled.</li>
+
+    <li>Application code. Use your own code, or the <a href=
+    "https://github.com/udacity/Sunshine-Version-2">Sunshine</a> sample app from the <a href=
+    "https://www.udacity.com/course/ud853">Android Fundamentals Udacity course</a>.</li>
+  </ul>
+
+  <h2 id="WorkingWithHeapViewer">Working with Heap Viewer</h2>
+
+  <ul class="no-bullet">
+  <!-- this also hides bullet, by default outside box -->
+  <li><div style="overflow:hidden">
+  <ol class="padded">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/heap-viewer/gettingstarted_image01.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 1. </strong>Starting Android Device Monitor.
+      </p>
+    </div>
+
+    <li>Connect your mobile device to your computer.</li>
+
+    <li>Open your application in Android Studio, build the source, and run it on your device.</li>
+
+    <li>Start the Android Device Monitor from Android Studio: <b>Tools -&gt; Android -&gt; Android
+    Device</b> <b>Monitor</b>.
+
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="4">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/heap-viewer/gettingstarted_image02.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 2. </strong>Steps for Using Heap Viewer.
+      </p>
+    </div>
+
+    <li>Make sure your device and application are showing in the <b>Devices</b> tab.</li>
+
+    <li>Click the <b>DDMS</b> button, because the Heap Viewer is one of the DDMS tools.</li>
+
+    <li>Click the <b>Heap</b> tab, which is where your data will appear.</li>
+
+    <li>In the <b>Devices</b> tab, select the app you want to monitor.</li>
+
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="8">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/heap-viewer/gettingstarted_image03.png"
+         alt=""
+         width="300px"  />
+      <p class="img-caption">
+        <strong>Figure 3. </strong>Update Heap button.
+      </p>
+    </div>
+
+    <li>To start monitoring, click the Update Heap button, which looks like a green can.</li>
+
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="9">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/heap-viewer/gettingstarted_image04.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 4. </strong>Triggering GC (Garbage Collection).
+      </p>
+    </div>
+
+    <li>Note the <em>Heap updates will happen
+      after every GC for this client.</em> message.</li>
+
+    <li>Press the <strong>Cause CG</strong> button to
+      trigger a garbage collection event.
+    </li>
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="11">
+
+   <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/heap-viewer/gettingstarted_image05.png"
+         alt=""
+         width="480px" />
+      <p class="img-caption">
+        <strong>Figure 5. </strong>Example Heap Viewer output.
+      </p>
+    </div>
+
+    <li>Click a data type to see detailed information on its current allocations on the
+      heap.</li>
+
+ </ol>
+</div></li>
+
+  <p class="note"><b>Note:</b> To visualize allocation changes over time, combine
+    several snapshots of the bar graph into an animated gif or video.</p>
+ </ul>
diff --git a/docs/html/tools/performance/hierarchy-viewer/index.jd b/docs/html/tools/performance/hierarchy-viewer/index.jd
new file mode 100644
index 0000000..ebf23e5
--- /dev/null
+++ b/docs/html/tools/performance/hierarchy-viewer/index.jd
@@ -0,0 +1,330 @@
+page.title=Hierarchy Viewer Walkthrough
+meta.tags="android, performance, profiling, tools, rendering, hierarchyviewer"
+page.tags="android", "performance", "profiling", "tools", "rendering", "hierarchyviewer"
+page.metaDescription=Visualize your app's view hierarchy to help you simplify your layouts.
+page.image=tools/performance/thumbnails/tools_hierarchy_viewer.png
+page.article=true
+
+@jd:body
+
+<style>
+  .no-bullet {
+    list-style-type: none;
+  }
+  .padded {
+    padding-left: 10px;
+  }
+</style>
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#WhatYouNeed">Prerequisites</a></li>
+  <li><a href="#WorkingWithHierarchyViewer">Working with Hierarchy Viewer</a></li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/hierarchy-viewer/setup.html">
+    Device Setup for Hierarchy Viewer</a></li>
+  <li><a href="{@docRoot}tools/performance/hierarchy-viewer/profiling.html">
+    Profiling with Hierarchy Viewer</a></li>
+  <li><a href=
+    "http://developer.android.com/tools/debugging/debugging-ui.html#viewhierarchy">Hierarchy Viewer
+    </a></li>
+  <li><a href="/guide/topics/ui/overview.html#Layout">View Hierarchies</a></li>
+  <li><a href="{@docRoot}tools/performance/importing-legacy-apps.html">
+    Importing Legacy Apps into Android Studio<a></li>
+  <li><a href="{@docRoot}tools/device.html">Using Hardware Devices</a></li>
+</ul>
+
+</div>
+
+  <p>This walkthrough shows the basic usage and workflow for the Hierarchy Viewer tool.</p>
+
+  <p>The Hierarchy Viewer tool visualizes your app's <a href=
+  "http://developer.android.com/guide/topics/ui/overview.html#Layout">view hierarchy</a> and
+  profiles the relative rendering speed for each view.
+
+  <p>What it's good for:</p>
+
+  <ul>
+    <li>Simplifying your view hierarchy to reduce overdraw, and make it easier to manage.</li>
+
+    <li>Finding potential rendering performance bottlenecks related to the structure and shape of your
+    view hierarchy.</li>
+  </ul>
+
+  <h2 id="WhatYouNeed">Prerequisites</h2>
+
+  <ul>
+    <li>A mobile device set up to work with Hierarchy Viewer:</li>
+
+    <li style="list-style: none; display: inline">
+      <ol>
+        <li>You must have <a href=
+        "http://developer.android.com/tools/device.html#developer-device-options">Developer
+        Options</a> enabled on your mobile device. You must use a physical device to get
+        accurate measurements.</li>
+
+        <li>Set an {@code ANDROID_HVPROTO} environment variable on the desktop machine
+          that is connected to your device. For more information, see
+          <a href="{@docRoot}tools/performance/hierarchy-viewer/setup.html">Device Setup for Hierarchy Viewer</a>.</li>
+      </ol>
+    </li>
+
+    <li>Debuggable app code with a view hierarchy. Use your own code, or the code for the <a href=
+    "https://github.com/udacity/Sunshine-Version-2">Sunshine</a> sample app from the <a href=
+    "https://www.udacity.com/course/ud853">Android Fundamentals Udacity course</a>.</li>
+  </ul>
+
+  <h2 id="WorkingWithHierarchyViewer">Working with Hierarchy Viewer</h2>
+
+<ul class="no-bullet">
+<!-- this also hides bullet, by default outside box -->
+ <li><div style="overflow:hidden">
+  <ol class="padded">
+
+     <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image001.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 1. </strong>Starting Android Device Monitor.
+      </p>
+    </div>
+
+    <li>Connect your mobile device to your computer.</li>
+
+    <li>Open your application in Android Studio, build the source, and run it on your device.</li>
+
+    <li>From Android Studio, start the Android Device Monitor: <b>Tools &gt; Android &gt;
+    Android Device Monitor</b>.</li>
+
+    <li>Allow <b>USB Debugging</b> on your phone (if asked).</li>
+
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="6">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image005.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 2. </strong>Android Device Monitor.
+      </p>
+    </div>
+
+    <li>Figure 2 illustrates what is initially shown in the Device Monitor tool. This varies
+      depending on your setup.
+      <p>Make sure your device
+      and the package for your application are showing in the Devices (DDMS mode) or Windows
+      (Hierarchy Viewer mode) tab. You can choose <b>Window &gt; Reset Perspective</b> to get
+      back to the default arrangement.</p>
+      <p>If the app does not appear, make sure you
+      followed the <a href="{@docRoot}tools/performance/hierarchy-viewer/setup.html"> device
+      setup instructions</a>, then start over at step 1.</p></li>
+
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="7">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image002.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 3. </strong>Changing Perspective to Hierarchy Viewer.
+     </p>
+    </div>
+
+    <li>In Android Device Monitor (ADM), in the menu bar, choose <b>Window &gt; Open
+    Perspective</b>, and in the popup click <b>Hierarchy View</b>.<br>
+
+    <p>OR</p>
+    <p> Click the <b>Hierarchy View</b> button if it's already visible.<br>
+    <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image003.png">
+    </p></li>
+
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="9">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image006.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 4. </strong>Hierarchy Viewer layout.
+     </p>
+    </div>
+
+    <li>If not already open, the Hierarchy View panes open.<br>
+      The example screen in Figure&nbsp;4 shows an example of these panes.</li>
+
+  </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="10">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image004.png"
+         alt=""
+         width="240px" />
+      <p class="img-caption">
+        <strong>Figure 5. </strong>Resetting the Perspective.
+      </p>
+    </div>
+
+    <li>If you see a different window arrangement, in Android Device Manager, use
+    <b>Window &gt; Reset Perspective</b> to return to the default layout for this tutorial.
+
+  </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="11">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image007.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 6. </strong>Populated Hierarchy Viewer.
+      </p>
+    </div>
+
+    <li>Double-click your application in the Windows tab. This populates the panes with the
+      view hierarchy of your application.
+      This display is a static representation of the complete view hierarchy defined for the
+      app.</li>
+
+    <li>You can adjust the sizes of the panes and ADM will preserve your
+      arrangement in future sessions.</li>
+
+  </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="13">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image008.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+      <strong>Figure 7. </strong>Hierarchy Viewer panes.
+      </p>
+    </div>
+
+    <li>If necessary, click the <b>Layout View</b> tab to hide the Console and show a wireframe of
+    your layout. The outline of the currently selected view is red. Click an outline to select
+    it.</li>
+
+    <li>The rest of the panes:
+
+      <ul>
+        <li>The <b>Tree Overview</b> in the upper right gives you a bird's-eye view of your
+        app's complete <a href=
+        "http://developer.android.com/guide/topics/ui/overview.html#Layout">View</a> <a href=
+        "http://developer.android.com/guide/topics/ui/overview.html#Layout">Hierarchy</a>.</li>
+
+        <li>In the <b>Tree Overview</b>, move the gray viewport rectangle to change what section of
+        your hierarchy shows in the <b>Tree View</b> pane (in the center).</li>
+
+        <li>In the <b>Tree View</b>, you can drag and zoom the tree using your mouse.</li>
+      </ul>
+  </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="15">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image009.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 7. </strong>Parts of the View node display.
+      </p>
+    </div>
+
+    <li>Click on a View node to display details. Here is an annotated close-up of a node
+      and its details.</li>
+
+
+  </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="16">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image010.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 8. </strong>Location of View Properties tab.
+      </p>
+    </div>
+
+    <li>Click the <b>View Properties</b> tab at the top right (next to the Windows tab) to see
+        properties of the selected View node.</li>
+
+   </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="17">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image011.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 9. </strong>Rendering a view in a popup.
+      </p>
+    </div>
+
+    <li>Double-click a View node in the Tree View to render it in a popup window.</li>
+
+  </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="18">
+
+  <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image012.png"
+         alt=""
+         width="240px" />
+      <p class="img-caption">
+        <strong>Figure 10. </strong>Node with its type and id.
+      </p>
+    </div>
+
+    <li>Nodes in the Tree View show a Type, which indicates the View class,
+      and an id, which is the view identifier in your code.</li>
+
+  </ol>
+</div></li>
+</ul>
diff --git a/docs/html/tools/performance/hierarchy-viewer/profiling.jd b/docs/html/tools/performance/hierarchy-viewer/profiling.jd
new file mode 100644
index 0000000..b505228
--- /dev/null
+++ b/docs/html/tools/performance/hierarchy-viewer/profiling.jd
@@ -0,0 +1,169 @@
+page.title=Profiling with Hierarchy Viewer
+meta.tags="android, performance, profiling, tools, rendering, hierarchyviewer
+page.tags="android", "performance", "profiling", "tools", "rendering", "hierarchyviewer"
+page.metaDescription=Profile the relative rendering speed for each view.
+page.image=tools/performance/thumbnails/tools_hierarchy_viewer_profiling.png
+page.article=true
+
+@jd:body
+
+<style>
+  .no-bullet {
+    list-style-type: none;
+  }
+  .padded {
+    padding-left: 10px;
+  }
+</style>
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#WhatYouNeed">Prerequisites</a></li>
+  <li><a href="#ProfilingWithHierarchyViewer">Profiling with Hierarchy Viewer</a></li>
+  <li><a href="#InterpretingResults">Interpreting Profiling Results</a></li>
+
+</ul>
+</div>
+
+<p>This walkthrough shows you how to profile your app's view hiearchy with
+  Hierarchy Viewer, and how to interpret the results.</p>
+
+<h2 id="WhatYouNeed">Prerequisites</h2>
+
+<ul>
+  <li><a href="{@docRoot}tools/performance/hierarchy-viewer/setup.html">
+    Device Setup for Hierarchy Viewer</a></li>
+  <li><a href="{@docRoot}tools/performance/hierarchy-viewer/index.html">
+    Hierarchy Viewer Walkthrough</a></li>
+</ul>
+
+<h2 id="ProfilingWithHierarchyViewer">Profiling Steps</h2>
+
+<ul class="no-bullet">
+<!-- this also hides bullet, by default outside box -->
+ <li><div style="overflow:hidden">
+
+  <ol class="padded">
+
+  <div class="figure" style="">
+<img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image014.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 1. </strong>View hierarchy after profiling.
+      </p>
+    </div>
+
+    <li>Start Hierarchy Viewer for your app.</li>
+
+    <li>In the <b>Tree View</b> or the <b>Layout View</b>, click on the View node whose
+      children you want to profile.</li>
+
+    <li>To start profiling, click the small button with three circles
+<img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image013.png">
+      at the top of the Tree View.
+
+    </li>
+
+    <li>For large view hierarchies, profiling may take a few seconds.</li>
+
+    <li>Each view in your subtree gets three dots, which can be green, yellow, or red.
+
+      <ul>
+        <li>The left dot represents the Draw Process of the rendering pipeline.</li>
+        <li>The middle dot represents the Layout Phase.</li>
+        <li>The right dot represents the Execute Phase.</li>
+      </ul>
+    </li>
+
+</ol></div>
+
+</li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="5">
+
+    <div class="figure" style="">
+<img src="{@docRoot}images/tools/performance/hierarchy-viewer/gettingstarted_image015.png"
+         alt=""
+         width="240px" />
+      <p class="img-caption">
+        <strong>Figure 2. </strong>How the colored dots relate<br>to the rendering pipeline.
+      </p>
+    </div>
+
+    <li>These dots roughly correspond to the Measure,
+     Layout, and Draw
+      phases of the processing pipeline.</li>
+
+    <li>The color of the dots indicates the relative performance
+      of this node in respect to all other profiled nodes.
+
+      <ul>
+        <li><strong>Green</strong> means the view renders faster than at least
+          half of the other views.</li>
+
+        <li><strong>Yellow</strong> means the view renders faster than the bottom
+          half of the other views.</li>
+
+        <li><strong>Red</strong> means the view is among the slowest
+         half of views.</li>
+      </ul>
+    </li>
+
+    </ol>
+</div></li>
+</ul>
+
+  <h2 id="InterpretingResults">Interpreting Hierarchy Viewer Profiling Results</h2>
+
+    <p>Hierarchy Viewer measures the <em>relative performance</em> of a
+      node</b>, so there are always red nodes in a profile, and it
+      doesn't necessarily mean that view is too slow for the users of
+      your app.</p>
+
+    <p>Hierarchy Viewer software rasterizes your Activity to acquire the timing
+      information. Rasterization is the process of taking a high-level primitive, such as a
+      circle or a vector font, and turning it into pixels on the screen. Typically,
+      rasterization is done by the GPU on your device, but in the case of
+      software rasterization, rendering is done on the CPU with
+      ordinary software. This means that the absolute
+      reported timings are correct relative to each other, but are bloated and vary
+      depending on the overall and changing CPU workload on your device and PC. Profile
+      several times to get a feel for the average measurements.</p>
+
+    <p>The following are guidelines for interpreting Hierarchy Viewer profiling output.</p>
+
+    <p>A red node is a potential problem in any situation where your app has
+      unexpectedly slow performance. In a relative setting, there is always a
+      slowest node; make sure it is the node you expect.
+      The following examples illustrate how to interpret red dots.</p>
+
+      <ul>
+        <li>Look for red dots in leaf nodes or view groups with only a few children. This
+          might point to a problem. Your app may not be slow, or it may not be slow on your
+          device, but you need to be aware of why that dot is red.
+          <a href="{@docRoot}tools/performance/systrace/index.html"> Systrace</a> or
+          <a href="{@docRoot}tools/performance/traceview/index.html"> Traceview</a>
+          can give you additional information. </li>
+
+        <li>If you have a view group with many children and a red measure phase, take a
+          look at the children to see how they are performing.</li>
+
+        <li>A view with yellow or even red dots might not be performing slowly on the
+          device. That's where the actual numbers are helpful.
+          <a href="{@docRoot}tools/performance/systrace/index.html"> Systrace</a> or
+          <a href="{@docRoot}tools/performance/traceview/index.html"> Traceview</a>
+          can give you additional information.</li>
+
+        <li>If the root view of a hierarchy has a red measure phase, red layout phase, and
+          yellow draw phase, this is somewhat typical, because it's the
+          parent of all the other views.</li>
+
+        <li>If a leaf node in a tree with 20+ views has a red draw phase, this <i>is</i> a
+          problem. Check your OnDraw method for code that shouldn't be
+          there.</li>
+       </ul>
diff --git a/docs/html/tools/performance/hierarchy-viewer/setup.jd b/docs/html/tools/performance/hierarchy-viewer/setup.jd
new file mode 100644
index 0000000..aaac1ca
--- /dev/null
+++ b/docs/html/tools/performance/hierarchy-viewer/setup.jd
@@ -0,0 +1,89 @@
+page.title=Device Setup for Hierarchy Viewer
+meta.tags="android, performance, profiling, tools, rendering, hierarchyviewer"
+page.tags="android", "performance", "profiling", "tools", "rendering", "hierarchyviewer"
+page.metaDescription=Set up your mobile device to work with Hierarchy Viewer.
+page.image=tools/performance/thumbnails/tools_hierarchy_viewer.png
+page.article=true
+
+@jd:body
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/hierarchy-viewer/index.html">
+    Hierarchy Viewer Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/hierarchy-viewer/profiling.html">
+    Profiling with Hierarchy Viewer</a></li>
+</ul>
+
+</div>
+
+    <p>To run Hierarchy Viewer, you must enable Developer Options on your mobile device and perform
+      some setup on your computer.</p>
+
+    <h2>Configuring Devices</h2>
+
+    <ol>
+      <li><p>Enable <a href=
+    "http://developer.android.com/tools/device.html#developer-device-options">Developer Options</a>
+    on your mobile device.</p></li>
+
+    <li>Depending on the type of device you have, do one of the following:
+      <ul>
+        <li>If you have a locked device running Android 4.0 or lower, follow the instructions
+          for <a href=
+               "https://github.com/romainguy/ViewServer">installing and configuring ViewServer</a>.
+        </li>
+        <li>If you have an unlocked device running Android 4.0 or lower,
+          no further configuration is needed.</li>
+        <li>If you have a device running Android 4.1 or higher, you must set an environment
+          variable on your development machine. For more information,
+          see <a href="#hvproto-variable">Setting the ANDROID_HVPROTO variable</a>
+      </ul>
+    </li>
+    </ol>
+
+
+    <h2 id="hvproto-variable">Setting the ANDROID_HVPROTO variable</h2>
+
+    <h3>Windows</h3>
+
+    <ol>
+      <li>Click <b>My Computer &gt; Property &gt; Advanced &gt; Environment Variables.</b></li>
+
+      <li>Click <b>New.</b></li>
+
+      <li>In variables name put: <code>ANDROID_HVPROTO</code></li>
+
+      <li>In variable value put: <code>ddm</code></li>
+
+      <li>Click <b>OK</b><./li>
+    </ol>
+
+    <h3>Mac</h3>
+
+    <ol>
+      <li>Edit <code>~/.bash_profile</code></li>
+
+      <li>Add:
+        <br><code>#Hierarchy Viewer Variable
+        <br>export ANDROID_HVPROTO=ddm</code>
+      </li>
+
+      <li><code>source ~/.bash_profile</code></li>
+    </ol>
+
+    <h3>Linux</h3>
+
+    <ol>
+      <li>Edit <code>~/.bash_profile</code></li>
+
+      <li>Add:
+
+        <br><code>#Hierarchy Viewer Variable
+        <br>export ANDROID_HVPROTO=ddm</code>
+      </li>
+
+    <li><code>source ~/.bash_profile</code></li>
+  </ol>
diff --git a/docs/html/tools/performance/importing-legacy-apps.jd b/docs/html/tools/performance/importing-legacy-apps.jd
new file mode 100644
index 0000000..cee3519
--- /dev/null
+++ b/docs/html/tools/performance/importing-legacy-apps.jd
@@ -0,0 +1,149 @@
+page.title=Importing Legacy Apps into Android Studio
+meta.tags="android, performance, profiling, tools"
+page.tags="android", "performance", "profiling", "tools"
+page.metaDescription=Required changes when importing legacy apps into Android Studio.
+page.article=true
+
+@jd:body
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#WhatYouNeed">Prerequisites</a></li>
+  <li><a href="#StepsForImporting">Steps for Importing</a></li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="/tools/device.html">Using Hardware Devices</a></li>
+  <li><a href="/tools/help/index.html">Tools</a></li>
+</ul>
+
+</div>
+
+
+  <p>Importing some pre-Android-1.0 projects into Android 1.0 or newer can trigger a series of
+  errors. This document shows you how to resolve them, using a version of the Sunshine app used in
+  the <a href="https://www.udacity.com/course/ud853">Android Fundamentals Udacity Course</a> as an
+  example.</p>
+
+  <p><b>CAVEAT:</b> As with all documentation of this kind, the details are likely to vary for each
+  application and each update of Android Studio.</p>
+
+  <h2 id="WhatYouNeed">Prerequisites</h2>
+
+  <ul>
+    <li>The latest version of <a href="http://developer.android.com/sdk/index.html">Android
+    Studio</a> (this document uses version 1.1).</li>
+
+    <li>It helps to know how to <a href="https://developer.android.com/training/index.html">build
+    and run apps from Android Studio</a> on your device.</li>
+
+    <li>To use Sunshine, you need to download code from <a href=
+    "https://github.com/">github.com</a>. More info at <a href=
+    "https://help.github.com/">help.github.com</a>.</li>
+  </ul>
+
+  <h2 id="StepsForImporting">Steps for Importing Sunshine into Android Studio 1.1.0</h2>
+
+  <ol>
+    <li>Download Sunshine ZIP from GitHub: <a href=
+    "https://github.com/udacity/sunshine/tree/6.10-update-map-intent">https://github.com/udacity/sunshine/tree/6.10-update-map-intent</a>.
+    (If you are having any problems with Android Studio or the app, use the following version, or
+    your own app, to follow along with the example.<a href=
+    "https://github.com/udacity/sunshine/tree/3.13-add-share-action-provider">https://github.com/udacity/sunshine/tree/3.13-add-share-action-provider</a>)
+
+    <li>Unzip the application to extract the code folder.</li>
+
+    <li>Start Android Studio. (This works best if you close all projects, then restart.)</li>
+
+    <li>Click <b>Import</b> <b>project (Eclipse ADT, Gradle, etc.)</b>.
+      <br><img src="{@docRoot}images/tools/performance/import_image001.png">
+    </li>
+
+    <li>In the popup, find and select the Sunshine-6-10-updated-map-intent folder and click
+      <b>OK</b>.
+      <br><img src="{@docRoot}images/tools/performance/import_image002.png">
+    </li>
+
+    <li>If prompted, choose a destination folder for your project. If prompted to choose a build
+    system, choose Gradle. (These prompts vary, depending on your project and Android Studio
+    version.) If you need more guidance, see this <a href=
+    "http://www.lynda.com/articles/eclipse-into-android-studio">Lynda tutorial</a>.</li>
+
+    <li>Wait for the import to complete. If you see no errors, you are now ready to work with your
+    app.
+
+    <p><b>If you get a Gradle error:</b></p>
+
+    <li>If you get a Gradle error, you have some extra work to do.(Because the Import
+    didn&#40t finish, at this point, you may only see the <b>Gradle
+    Scripts</b> directory in your Project view.)</li>
+
+    <li>You may see the link <b>Install missing platform(s) and sync
+    project</b>, or a link to install missing build tools.
+    Click whatever link and
+    proceed.</li>
+
+    <li>The next time through, your build will fail with:
+      <br><img src="{@docRoot}images/tools/performance/import_image003.png">
+    </li>
+
+    <li>Click the <b>Fix plugin version and re-import project</b> link
+    in the error message. This will rebuild the app and present you with new of errors.
+      <br><img src="{@docRoot}images/tools/performance/import_image004.png">
+    </li>
+
+    <li>Click the <b>Gradle Settings</b> link in the error message.</li>
+
+    <li>Check the <b>Use auto-import</b> and click <b>OK</b>.
+      <br><img src="{@docRoot}images/tools/performance/import_image005.png">
+    </li>
+
+    <li>Expand the project hierarchy and find the <b>build.gradle file</b>.The file you are looking
+      for is not the one showing at the top level, but the one inside <b>Sunshine</b> <b>&gt;</b>
+      <b>app &gt; build.gradle</b>, as shown below.
+      <br><img src="{@docRoot}images/tools/performance/import_image006.png">
+   </li>
+
+    <li>Double-click the <code>build.gradle</code> file.</li>
+
+    <li>Make the following changes to the file:</li>
+      <ul>
+        <li>Set <code>compileSdkVersion 21</code></li>
+
+        <li>Set <code>targetSdkVersion 21</code></li>
+
+        <li>Replace <code>runProguard</code> with <code>minifyEnabled</code></li>
+      </ul>
+
+      <p>Your file should look like this: </p>
+        <img src="{@docRoot}images/tools/performance/import_image007.png">
+    </li>
+
+    <li>Save (Ctrl-S).</li>
+
+  <p>For the following two messages (Steps 18/19), what you see might vary. You might see either
+  message or both messages in sequence. Click the appropriate links to continue until the Language
+  Level Changed dialog opens.</p>
+
+    <li>In the code view bar, click the <b>Try again</b> link.
+      <br><img src="{@docRoot}images/tools/performance/import_image008.png">
+    </li>
+
+    <li>If you see these warnings, click the <b>Sync now</b> link.
+      <br><img src="{@docRoot}images/tools/performance/import_image009.png">
+    </li>
+
+    <li>In the Language Level Changed dialog, click <b>Yes</b>. And if you get the Gradle Running
+      dialog, <b>Yes</b> again.
+      <br><img src="{@docRoot}images/tools/performance/import_image010.png">
+    </li>
+
+    <li>After the project reloads, run the app on your device. (If it crashes the first time, try
+    again, and it will run.)
+    <br><img src="{@docRoot}images/tools/performance/import_image011.png">
+    </li>
+  </ol>
+
diff --git a/docs/html/tools/performance/index.jd b/docs/html/tools/performance/index.jd
new file mode 100644
index 0000000..fa5af86
--- /dev/null
+++ b/docs/html/tools/performance/index.jd
@@ -0,0 +1,73 @@
+page.title=Performance Profiling Tools
+meta.tags="android, develop, performance, profiling, tools, gather"
+page.tags="android", "develop", "performance", "profiling", "tools" "gather"
+page.metaDescription=Android Studio profiling tools for evaluating your app's performance.
+page.article=true
+
+@jd:body
+
+  <p>Putting pixels on the screen involves four primary pieces of hardware.
+  To greatly simplify, the CPU computes display lists, the GPU renders images to
+  the display, the memory stores images and data, and the battery provides
+  electrical power. Each of these pieces of hardware has constraints; pushing
+  or exceeding those constraints causes your app to be slow, have
+  bad display performance, or exhaust the battery.
+
+  <p>To discover what causes your specific performance problems, you need to
+  take a look under the hood, use tools to collect data about your app's
+  execution behavior, surface that data as lists and
+  graphics, understand and analyze what you see, and improve your code.</p>
+
+  <p>Android Studio and your device provide profiling tools to record and
+  visualize the rendering, compute, memory, and battery performance of your
+  app.</p>
+
+<h2 id="rendering-tools">Rendering Analysis Tools</h2>
+
+<p>Visualize the rendering behavior and performance of your app.</p>
+
+<div class="dynamic-grid">
+  <div class="resource-widget resource-flow-layout landing col-12"
+    data-query="collection:tools/performance/rendering"
+    data-cardSizes="9x3"
+    data-maxResults="6">
+  </div>
+</div>
+
+<h2 id="memory-tools">Memory Analysis Tools</h2>
+
+<p>Visualize the memory behavior and performance of your app.</p>
+
+<div class="dynamic-grid">
+  <div class="resource-widget resource-flow-layout landing col-12"
+    data-query="collection:tools/performance/memory"
+    data-cardSizes="9x3"
+    data-maxResults="6">
+  </div>
+</div>
+
+<h2 id="cpu-tools">Compute Analysis Tools</h2>
+
+<p>Visualize the CPU behavior and performance of your app.</p>
+
+<div class="dynamic-grid">
+  <div class="resource-widget resource-flow-layout landing col-12"
+    data-query="collection:tools/performance/cpu"
+    data-cardSizes="9x3"
+    data-maxResults="4">
+  </div>
+</div>
+
+<h2 id="battery-tools">Battery Analysis Tools</h2>
+
+<p>Visualize the battery behavior and performance of your app.</p>
+
+<div class="dynamic-grid">
+  <div class="resource-widget resource-flow-layout landing col-12"
+    data-query="collection:tools/performance/battery"
+    data-cardSizes="9x3"
+    data-maxResults="4">
+  </div>
+</div>
+
+
diff --git a/docs/html/tools/performance/memory-monitor/index.jd b/docs/html/tools/performance/memory-monitor/index.jd
new file mode 100644
index 0000000..756ca14
--- /dev/null
+++ b/docs/html/tools/performance/memory-monitor/index.jd
@@ -0,0 +1,172 @@
+page.title=Memory Monitor Walkthrough
+meta.tags="android, performance, profiling, tools, memory, memoryleaks, garbagecollection, memorymonitor"
+page.tags="android", "performance", "profiling", "tools", "memory", "memoryleaks", "garbagecollection", "memorymonitor"
+page.metaDescription=Graph memory usage and garbage collection events for your app in real-time.
+page.image=tools/performance/thumbnails/tools_memory_monitor.png
+page.article=true
+
+@jd:body
+
+<style>
+  .no-bullet {
+    list-style-type: none;
+  }
+  .padded {
+    padding-left: 10px;
+  }
+</style>
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#WhatYouNeed">Prerequisites</a></li>
+  <li><a href="#WorkingWithMemoryMonitor">Working with Memory Monitor</a></li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/heap-viewer/index.html">
+    Heap Viewer Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/allocation-tracker/index.html">
+    Allocation Tracker Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/comparison.html">
+    Comparison: Memory Monitor, Heap Viewer, Allocation Tracker</a>
+  <li><a href="{@docRoot}tools/performance/traceview/index.html">
+    Traceview Walkthrough</a></li>
+</ul>
+
+</div>
+
+
+  <p>This walkthrough shows the basic usage and workflow for the Memory Monitor tool in Android
+  Studio. Memory Monitor reports in real-time how your app allocates memory.</p>
+
+  <p>What it's good for:</p>
+
+  <ul>
+    <li>Showing available and used memory in a graph, and garbage collection events over time.</li>
+
+    <li>Quickly testing whether app slowness might be related
+    to excessive garbage collection events.</li>
+
+    <li>Quickly testing whether app crashes may be related to running out of
+    memory.</li>
+  </ul>
+
+  <h2 id="WhatYouNeed">Prerequisites</h2>
+
+  <ul>
+    <li>A mobile device with <a href=
+    "http://developer.android.com/tools/device.html#developer-device-options">Developer Options</a>
+    enabled.</li>
+
+    <li>An Application with USB Debugging enabled. Use your own, or the <a href=
+    "https://github.com/udacity/Sunshine-Version-2">Sunshine</a> sample app from the <a href=
+    "https://www.udacity.com/course/ud853">Android Fundamentals Udacity course</a>.</li>
+  </ul>
+
+  <h2 id="WorkingWithMemoryMonitor">Working with Memory Monitor</h2>
+
+ <ul class="no-bullet">
+<!-- this also hides bullet, by default outside box -->
+ <li><div style="overflow:hidden">
+  <ol class="padded">
+
+    <div class="figure" style="">
+  <img src="{@docRoot}images/tools/performance/memory-monitor/gettingstarted_image001.png"
+         alt=""
+         width="300px" />
+      <p class="img-caption">
+        <strong>Figure 1. </strong>Starting Memory Monitor.
+      </p>
+    </div>
+
+    <li>Connect your mobile device to your computer.</li>
+
+    <li>Open your application in Android Studio, build the source,
+      and run it on your device.</li></li>
+
+    <li>In Android Studio, choose <b>Tools &gt; Android &gt; Memory Monitor.</b></li>
+
+ </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="4">
+
+    <div class="figure" style="">
+  <img src="{@docRoot}images/tools/performance/memory-monitor/gettingstarted_image002.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 2. </strong>Choosing the device and Activity to monitor.
+      </p>
+    </div>
+
+    <li>This opens the Memory Monitor pane.</li>
+
+    <li>Choose your device from the drop-down menu at the top left of the pane.</li>
+
+    <li>Choose your Activity from the drop-down menu at the top right of the pane.</li>
+
+ </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="7">
+
+    <div class="figure" style="">
+  <img src="{@docRoot}images/tools/performance/memory-monitor/gettingstarted_image003.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 3. </strong>Allocated and free memory in Memory Monitor.
+      </p>
+    </div>
+
+    <li>Once Memory Monitor starts tracking your device, a stacked graph appears,
+      tracking memory usage over time.
+
+      <p>Dark blue: Amount of memory that your app
+      is currently using.</p>
+
+      <p>Light blue: Available, unallocated memory.</p>
+    </li>
+
+    <li>Over time, this graph updates, showing changes in memory usage.</li>
+
+    <li>As your app allocates and frees memory, the allocated amount shown in the
+      graph changes.</li>
+
+    <li>When you see the allocated memory drop by a large amount, a garbage
+      collection (GC) event has occurred.</li>
+
+ </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="11">
+
+    <div class="figure" style="">
+  <img src="{@docRoot}images/tools/performance/memory-monitor/gettingstarted_image005.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 4. </strong>Forcing a GC (Garbage Collection) event.
+      </p>
+    </div>
+
+    <li>You can force a garbage collection event by clicking on the garbage truck
+      icon
+<img src="{@docRoot}images/tools/performance/memory-monitor/gettingstarted_image004.png">.
+    </li>
+
+ </ol>
+</div></li>
+</ul>
+
+
diff --git a/docs/html/tools/performance/profile-gpu-rendering/index.jd b/docs/html/tools/performance/profile-gpu-rendering/index.jd
new file mode 100644
index 0000000..74862b5
--- /dev/null
+++ b/docs/html/tools/performance/profile-gpu-rendering/index.jd
@@ -0,0 +1,181 @@
+page.title=Profiling GPU Rendering Walkthrough
+meta.tags="android, performance, profiling, tools, rendering, gpu"
+page.tags="android", "performance", "profiling", "tools", "rendering", "gpu"
+page.metaDescription=Overlay a graph on your device, showing how long it takes to render UI elements relative to the 16-ms-per-frame benchmark.
+page.image=tools/performance/thumbnails/tools_profile_gpu_rendering.png
+page.article=true
+
+@jd:body
+
+<style>
+  .no-bullet {
+    list-style-type: none;
+  }
+  .padded {
+    padding-left: 10px;
+  }
+</style>
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#WhatYouNeed">Prerequisites</a></li>
+  <li><a href="#ProfileGPURendering">Profile GPU Rendering</a></li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/debug-gpu-overdraw/index.html">
+    Debug GPU Overdraw Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/hierarchy-viewer/index.html">
+    Hierarchy Viewer Walkthrough</a></li>
+</ul>
+
+</div>
+
+  <p>This walkthrough shows how to use Profile GPU Rendering on your mobile device.</p>
+
+  <p>Profile GPU Rendering gives you a quick visual representation of how much time it takes to
+  render the frames of a UI window relative to the 16-ms-per-frame benchmark.</p>
+
+  <p>What it's good for:</p>
+
+  <ul>
+    <li>Quickly seeing how a UI window performs against the 16-ms-per-frame target.</li>
+
+    <li>Identifying whether any part of the rendering pipeline stands out in using processing
+    time.</li>
+
+    <li>Looking for spikes in frame rendering time associated with user or program actions.</li>
+  </ul>
+
+  <h2 id="WhatYouNeed">Prerequisites</h2>
+
+  <ul>
+    <li>A mobile device running at least Android 4.1 with <a href=
+    "http://developer.android.com/tools/device.html#developer-device-options">Developer Options</a>
+    enabled.</li>
+  </ul>
+
+<h2 id="ProfileGPURendering">Working with Profile GPU Rendering</h2>
+
+<ul class="no-bullet">
+<!-- this also hides bullet, by default outside box -->
+ <li><div style="overflow:hidden">
+  <ol class="padded">
+
+  <div class="figure" style="">
+      <img
+src="{@docRoot}images/tools/performance/profile-gpu-rendering/gettingstarted_image001.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 1. </strong>Turning on Profile GPU Rendering.
+      </p>
+    </div>
+
+    <li>On your mobile device, go to <b>Settings &gt;</b> <b>Developer Options</b>.</li>
+
+    <li>In the <em>Monitoring</em> section, select <b>Profile GPU Rendering</b>.</li>
+
+    <li>In the Profile GPU Rendering popup, choose <b>On screen as bars</b> to overlay the graphs
+    on the screen of your mobile device.</li>
+
+    <li>Go to the app that you want to profile.</li>
+
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+
+  <div class="figure" style="">
+    <img
+src="{@docRoot}images/tools/performance/profile-gpu-rendering/gettingstarted_image002.png"
+         alt=""
+         width="400px" />
+    <p class="img-caption">
+      <strong>Figure 2. </strong>Screen when Profile GPU Rendering is on.
+    </p>
+  </div>
+
+  <h3>What you see:</h3>
+
+    <ul>
+      <li>For each visible application, the tool displays a graph.</li>
+
+      <li>The horizontal axis shows time elapsing, and the vertical axis time per frame in
+        milliseconds.</li>
+
+      <li>As you interact with your application, vertical bars show up on your screen, appearing
+        from left to right, graphing frame performance over time.</li>
+
+      <li>Each vertical bar represents one frame of rendering.
+        The taller the bar, the longer it took to render.</li>
+
+      <li>The green line marks the 16 millisecond target. Every time a frame crosses the green line,
+        your app is missing a frame, and your users may see this as stuttering images.
+    </ul>
+
+</div></li>
+
+<li style="list-style-type:none;><!-- fix issue with visible disc -->
+<div style="overflow:hidden">
+<hr>
+
+  <h3>The Profile GPU Rendering Graph</h3>
+
+    <img
+src="{@docRoot}images/tools/performance/profile-gpu-rendering/gettingstarted_image003.png"
+         alt=""
+         height="" />
+    <p class="img-caption">
+      <strong>Figure 3. </strong>Enlarged Annotated Profile GPU Rendering graph.
+    </p>
+
+  <p>In this enlarged image of the Profile GPU Rending graph you can see the colored sections
+    of the graph, and what phase of the rendering pipeline each color represents.</p>
+
+  <ul>
+    <li>The <b>green line</b> represents 16 milliseconds. To achieve 60 frames per second,
+      the vertical bar for each frame needs
+      to stay below this 16 ms mark. Any time a bar pushes above this line, there may be pauses in
+      the animations.</li>
+
+    <li>Each bar has a blue, purple (only for Android version 4.0 and higher),
+      red, and orange component.</p>
+
+    <li>The <b>blue</b> section of the bar represents the time used to create and update the
+      View's display lists. If this part of the bar is tall, there may be a
+      lot of custom view drawing, or a lot of work in onDraw methods.</li>
+
+    <li>Android 4.0 and higher: The <b>purple</b> section of the bar represents the time spent
+      transferring resources to the render thread.</li>
+
+    <li>The <b>red</b> section of the bar represents the time spent by
+      Android's 2D renderer issuing commands to OpenGL to draw and redraw
+      display lists. The height of this bar is directly proportional to the sum of the time it takes each
+      display list to execute&mdash;more display lists equals a taller red bar.</li>
+
+    <li>The <b>orange</b> section of the bar represents the time the CPU is waiting for the GPU to
+      finish its work. If this bar gets tall, it means the app is doing too much work on the GPU.
+    </li>
+  </ul>
+
+  <p class="note"><strong>Note:</strong>
+    While this tool is named Profile GPU Rendering, all monitored processes actually
+    occur in the CPU. Rendering happens by submitting commands to the GPU, and the GPU renders the
+    screen asynchronously. In certain situations, the GPU can have too much work to do,
+    and your CPU will have to wait before it can submit new commands.
+    When this happens, you'll see spikes in the Process (orange bar) and Execute (red bar)
+    stages, and the sommand submission will block until more room is made on the
+    GPU command queue.
+  </p>
+
+  </div></li>
+</ul>
+
+
+
+
diff --git a/docs/html/tools/performance/systrace/index.jd b/docs/html/tools/performance/systrace/index.jd
new file mode 100644
index 0000000..97099a0
--- /dev/null
+++ b/docs/html/tools/performance/systrace/index.jd
@@ -0,0 +1,182 @@
+page.title=Systrace Walkthrough
+meta.tags="android, performance, profiling, tools, compute, systrace"
+page.tags="android", "performance", "profiling", "tools", "compute", "systrace"
+page.metaDescription=Collect system and application process execution data to identify performance bottlenecks.
+page.image=tools/performance/thumbnails/tools_systrace.png
+page.article=true
+
+@jd:body
+
+<style>
+  .no-bullet {
+    list-style-type: none;
+  }
+  .padded {
+    padding-left: 10px;
+  }
+</style>
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#WhatYouNeed">Prerequisites</a></li>
+  <li><a href="#WorkingWithSystrace">Working with Systrace</a></li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/traceview/index.html">
+    Traceview Walkthrough</a></li>
+    <li><a href="{@docRoot}tools/performance/allocation-tracker/index.html">
+    Allocation Tracker Walkthrough</a></li>
+</ul>
+
+</div>
+
+  <p>This walkthrough shows the basic usage and workflow for the Systrace tool in the Android
+  Device Monitor.</p>
+
+  <p>Systrace collects system and application process execution data and generates detailed,
+  interactive reports from devices running Android 4.1 and higher.</p>
+
+  <p>What it's good for:</p>
+
+  <ul>
+    <li>Evaluating container performance.</li>
+
+    <li>Finding performance bottlenecks in the execution of your code.</li>
+  </ul>
+
+  <h2 id="WhatYouNeed">Prerequisites</h2>
+
+  <ul>
+    <li>Android SDK Tools 20.</li>
+
+    <li><a href="http://www.python.org/">Python</a> installed and included in your development
+    computer's execution path.</li>
+
+    <li>A mobile device running at least Android 4.1 with <a href=
+    "http://developer.android.com/tools/device.html#developer-device-options">Developer Options</a>
+    and USB Debugging enabled in Developer Options.</li>
+
+    <li>Application code. Use your own code, or the <a href=
+    "https://github.com/udacity/Sunshine-Version-2">Sunshine</a> sample app from the <a href=
+    "https://www.udacity.com/course/ud853">Android Fundamentals Udacity course</a>.</li>
+  </ul>
+
+  <h2 id="WorkingWithSystrace">Working with Systrace</h2>
+
+<ul class="no-bullet">
+<!-- this also hides bullet, by default outside box -->
+ <li><div style="overflow:hidden">
+  <ol class="padded">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/systrace/gettingstarted_image001.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 1. </strong>Starting Android Device Monitor.
+      </p>
+    </div>
+
+    <li>Connect your mobile device to your computer.</li>
+
+    <li>Open your application in Android Studio, build the source, and run it on your device.</li>
+
+    <li>From Android Studio, start the Android Device Monitor: <b>Tools -&gt; Android -&gt; Android
+    Device</b> <b>Monitor</b>.
+
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="4">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/systrace/gettingstarted_image003.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 2. </strong>Steps for starting Systrace.
+      </p>
+    </div>
+
+    <li>Make sure your
+      device and the package for your application are showing in the Devices (DDMS mode) or
+      Windows (Hierarchy Viewer mode) tab.
+
+      <p>You can choose <b>Window &gt; Reset Perspective</b> to
+      get back to the default arrangement.</p>
+    </li>
+
+    <li>Click the <b>DDMS</b> button, because Systrace is one of the DDMS tools.</li>
+
+    <li>Click the <b>Systrace</b> button
+      <img src="{@docRoot}images/tools/performance/systrace/gettingstarted_image002.png">.</li>
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="7">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/systrace/gettingstarted_image004.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+       <strong>Figure 3. </strong>Steps for creating a trace.
+      </p>
+    </div>
+
+    <li>In the <b>Android System Trace</b> popup, choose your settings for the trace.
+
+      <ul>
+        <li><b>Destination File:</b> Where the trace is stored as an HTML file. Default is in
+        your home directory as <code>trace.html</code>.</li>
+
+        <li><b>Trace Duration:</b> Default is 5 seconds,
+          and 30 seconds is a good time to choose.</li>
+
+        <li><b>Trace Buffer size:</b> Default is unlimited.</li>
+
+        <li><b>Enable Application Traces from:</b> Make sure your app is selected.</li>
+
+        <li><b>Select tags to enable:</b> Choose at least one value to trace, for example Graphics
+        and View System.</li>
+      </ul>
+    </li>
+
+    <li>Click <b>OK</b> to start tracing.</li>
+
+    <li>Interact with your app.</li>
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="10">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/systrace/gettingstarted_image005.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 4. </strong>Example systrace output in browser.
+      </p>
+    </div>
+
+    <li>When the trace is done, you are automatically returned to Android Device Monitor.</li>
+
+    <li>Go to your home directory, or the directory you chose as the file destination.</li>
+
+    <li>Open the <code>trace.html</code> file in your browser.</li>
+
+   </ol>
+</div></li>
+</ul>
+
+
diff --git a/docs/html/tools/performance/thumbnails/tools_allocation_tracker.png b/docs/html/tools/performance/thumbnails/tools_allocation_tracker.png
new file mode 100644
index 0000000..cbae4cd
--- /dev/null
+++ b/docs/html/tools/performance/thumbnails/tools_allocation_tracker.png
Binary files differ
diff --git a/docs/html/tools/performance/thumbnails/tools_battery_historian.png b/docs/html/tools/performance/thumbnails/tools_battery_historian.png
new file mode 100644
index 0000000..d1d58ac
--- /dev/null
+++ b/docs/html/tools/performance/thumbnails/tools_battery_historian.png
Binary files differ
diff --git a/docs/html/tools/performance/thumbnails/tools_debug_gpu_overdraw.png b/docs/html/tools/performance/thumbnails/tools_debug_gpu_overdraw.png
new file mode 100644
index 0000000..ff402d0
--- /dev/null
+++ b/docs/html/tools/performance/thumbnails/tools_debug_gpu_overdraw.png
Binary files differ
diff --git a/docs/html/tools/performance/thumbnails/tools_heap_viewer.png b/docs/html/tools/performance/thumbnails/tools_heap_viewer.png
new file mode 100644
index 0000000..d9028d0
--- /dev/null
+++ b/docs/html/tools/performance/thumbnails/tools_heap_viewer.png
Binary files differ
diff --git a/docs/html/tools/performance/thumbnails/tools_hierarchy_viewer.png b/docs/html/tools/performance/thumbnails/tools_hierarchy_viewer.png
new file mode 100644
index 0000000..064efea
--- /dev/null
+++ b/docs/html/tools/performance/thumbnails/tools_hierarchy_viewer.png
Binary files differ
diff --git a/docs/html/tools/performance/thumbnails/tools_hierarchy_viewer_profiling.png b/docs/html/tools/performance/thumbnails/tools_hierarchy_viewer_profiling.png
new file mode 100644
index 0000000..e9824a4
--- /dev/null
+++ b/docs/html/tools/performance/thumbnails/tools_hierarchy_viewer_profiling.png
Binary files differ
diff --git a/docs/html/tools/performance/thumbnails/tools_memory_monitor.png b/docs/html/tools/performance/thumbnails/tools_memory_monitor.png
new file mode 100644
index 0000000..c761141
--- /dev/null
+++ b/docs/html/tools/performance/thumbnails/tools_memory_monitor.png
Binary files differ
diff --git a/docs/html/tools/performance/thumbnails/tools_profile_gpu_rendering.png b/docs/html/tools/performance/thumbnails/tools_profile_gpu_rendering.png
new file mode 100644
index 0000000..c86fb14
--- /dev/null
+++ b/docs/html/tools/performance/thumbnails/tools_profile_gpu_rendering.png
Binary files differ
diff --git a/docs/html/tools/performance/thumbnails/tools_systrace.png b/docs/html/tools/performance/thumbnails/tools_systrace.png
new file mode 100644
index 0000000..567a8a7
--- /dev/null
+++ b/docs/html/tools/performance/thumbnails/tools_systrace.png
Binary files differ
diff --git a/docs/html/tools/performance/thumbnails/tools_traceview.png b/docs/html/tools/performance/thumbnails/tools_traceview.png
new file mode 100644
index 0000000..16e6bdd
--- /dev/null
+++ b/docs/html/tools/performance/thumbnails/tools_traceview.png
Binary files differ
diff --git a/docs/html/tools/performance/traceview/index.jd b/docs/html/tools/performance/traceview/index.jd
new file mode 100644
index 0000000..4a3f190
--- /dev/null
+++ b/docs/html/tools/performance/traceview/index.jd
@@ -0,0 +1,292 @@
+page.title=Traceview Walkthrough
+meta.tags="android, performance, profiling, tools, compute, traceview"
+page.tags="android", "performance", "profiling", "tools", "compute", "traceview"
+page.metaDescription=Log method execution over time and inspect execution data, per-thread timelines, and call stacks to track down performance issues in your source code.
+page.image=tools/performance/thumbnails/tools_traceview.png
+page.article=true
+
+@jd:body
+
+<style>
+  .no-bullet {
+    list-style-type: none;
+  }
+  .padded {
+    padding-left: 10px;
+  }
+</style>
+
+<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
+
+<h2>In this document</h2>
+<ul>
+  <li><a href="#WhatYouNeed">Prerequisites</a></li>
+  <li><a href="#WorkingWithTraceview">Working with Traceview</a></li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+  <li><a href="{@docRoot}tools/performance/heap-viewer/index.html">
+    Heap Viewer Walkthrough</a></li>
+  <li><a href="{@docRoot}tools/performance/systrace/index.html">
+    Systrace Walkthrough</a></li>
+</ul>
+
+</div>
+
+  <p>This walkthrough shows the basic usage and workflow for the Traceview tool. Traceview logs
+  method execution over time and shows execution data, per-thread timelines, and call stacks.</p>
+
+  <p>What it's good for:</p>
+
+  <ul>
+    <li>Tracking down performance problems in your source code.</li>
+  </ul>
+
+  <h2 id="WhatYouNeed">Prerequisites</h2>
+
+  <ul>
+    <li>A mobile device with <a href=
+    "http://developer.android.com/tools/device.html#developer-device-options">Developer Options</a>
+    enabled.</li>
+
+    <li>Application code. Use your own code, or the <a href=
+    "https://github.com/udacity/Sunshine-Version-2">Sunshine</a> sample app from the <a href=
+    "https://www.udacity.com/course/ud853">Android Fundamentals Udacity course</a>.</li>
+  </ul>
+
+<h2 id="WorkingWithTraceview">Working with Traceview</h2>
+
+<ul class="no-bullet">
+<!-- this also hides bullet, by default outside box -->
+ <li><div style="overflow:hidden">
+  <ol class="padded">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/traceview/gettingstarted_image001.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 1. </strong>Steps for starting Android Device Monitor.
+      </p>
+    </div>
+
+    <li>Connect your mobile device to your computer.</li>
+
+    <li>Open your application in Android Studio, build the source, and run it on your device.</li>
+
+    <li>Start the Android Device Monitor from Android Studio: <b>Tools -&gt; Android -&gt; Android
+    Device</b> <b>Monitor</b>.
+
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="4">
+
+      <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/traceview/gettingstarted_image002.png"
+           alt=""
+           width="400px" />
+      <p class="img-caption">
+        <strong>Figure 2. </strong>Steps for starting Traceview.
+      </p>
+    </div>
+
+    <li>Make sure your device
+      and the package for your application are showing in the <b>Devices</b> (DDMS mode) or
+      <b>Windows</b> (Hierarchy Viewer mode) tab.
+
+      <p>If necessary choose <b>Window &gt; Reset
+      Perspective</b> to get back to the default pane arrangement.</p></li>
+
+    <li>Click the <b>DDMS</b> button, because Traceview is one of the DDMS tools.</li>
+
+    <li>Select the app you want to profile.
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="7">
+
+      <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/traceview/gettingstarted_image004.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 3. </strong>Starting profiling.
+      </p>
+    </div>
+
+    <li>Click the Start method profiling
+      <img src="{@docRoot}images/tools/performance/traceview/gettingstarted_image003.png">
+        button.
+    </li>
+
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="8">
+
+     <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/traceview/gettingstarted_image005.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 4. </strong>Choosing profiling options.
+      </p>
+    </div>
+
+    <li>In the <b>Profiling Options</b> popup:
+
+      <ul>
+        <li>Choose <b>Sample based profiling</b></li>
+
+        <li>Keep the default sampling rate of 1000 microseconds.</li>
+
+        <li>Click <b>OK</b>.</li>
+      </ul>
+    </li>
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="9">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/traceview/gettingstarted_image007.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 5. </strong>Stopping profiling.
+      </p>
+    </div>
+
+
+    <li>Interact with your application. If you are aware of performance issues that
+      your users experience, perform those actions.</li>
+
+    <li>Click the Stop method profiling
+      <img src="{@docRoot}images/tools/performance/traceview/gettingstarted_image006.png">
+      button.</li>
+
+    <li>Wait for the trace to load. This may take a few seconds if you recorded for a
+      long time.</li>
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="12">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/traceview/gettingstarted_image008.png"
+         alt=""
+         width="440px" />
+      <p class="img-caption">
+        <strong>Figure 6. </strong>Traceview output panes.
+      </p>
+    </div>
+
+    <li>Traceview has two panels: <b>Timeline</b> pane and <b>Profile</b> pane, which
+      are described below.</li>
+
+    <li>Use the <b>Find</b> box at the bottom to filter your profile results. For
+      example, if you are interested in finding the running time for a function, you can
+      search for it, and the tool will highlight it in the timeline.
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="14">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/traceview/gettingstarted_image009.png"
+         alt=""
+         width="400px" />
+      <p class="img-caption">
+        <strong>Figure 7. </strong>Annotated timeline panel.
+      </p>
+    </div>
+
+    <li>The <b>Timeline</b> pane visualizes how your code executes over time.
+
+      <ul>
+        <li>Each row shows a thread.</li>
+
+        <li>Each bar on the timeline is a method executing.</li>
+
+        <li>Each color is for a different method; every time a method executes, you see
+          a the same color bar.</li>
+
+        <li>The width of its bar indicates how long the method takes to execute.</li>
+      </ul>
+    </li>
+
+    <li>When you are zoomed out, a bar indicates when a method is executing.</li>
+
+ </ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="16">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/traceview/gettingstarted_image010.png"
+         alt=""
+         width="300px" />
+       <p class="img-caption">
+        <strong>Figure 8. </strong>Segment for method on the timeline.
+      </p>
+    </div>
+
+    <li>Zoom into the graph, and the bar for each method expands into a colored
+      U-shape, where the left side of the U indicates the start, and the right side
+      the end of the method's execution.</li>
+</ol>
+</div></li>
+
+<li><div style="overflow:hidden">
+<hr>
+  <ol class="padded" start="17">
+
+    <div class="figure" style="">
+      <img src="{@docRoot}images/tools/performance/traceview/gettingstarted_image011.png"
+         alt=""
+         width="440px" />
+      <p class="img-caption">
+        <strong>Figure 9. </strong>Traceview Profiling pane with callstack.
+      </p>
+    </div>
+
+    <li>The <b>Profiling</b> pane shows a list of methods.
+
+      <ul>
+        <li>Select a method to see who called it (Parent) and who it's
+          calling (Children).</li>
+
+        <li>The selected method is also highlighted in the <b>Timeline</b> pane.</li>
+
+        <li>The columns show exclusive and inclusive CPU and real times, percentages,
+        ratios, and how often a method was called.</li>
+
+        <li>The <em>exclusive time</em> is the time spent just in the method itself, which can
+        help you find issues within that specific method.</li>
+
+        <li>The <em>inclusive time</em> is for the method and all methods it calls, which
+        can help you find problems with your call tree.</li>
+
+      <li>The <b>Calls+Rec</b> column shows how many times a method was called recursively,
+        which can help you track down performance issues.</li>
+      </ul>
+    </li>
+  </ol>
+</div></li>
+</ul>
diff --git a/docs/html/tools/revisions/gradle-plugin.jd b/docs/html/tools/revisions/gradle-plugin.jd
index fd294d2..90ec44a 100644
--- a/docs/html/tools/revisions/gradle-plugin.jd
+++ b/docs/html/tools/revisions/gradle-plugin.jd
@@ -36,9 +36,77 @@
 <p>For a summary of known issues in Android Plugin for Gradle, see <a
 href="http://tools.android.com/knownissues">http://tools.android.com/knownissues</a>.</p>
 
+
 <div class="toggle-content opened">
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+      alt=""/>Android Plugin for Gradle, Revision 1.2.0</a> <em>(April 2015)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+
+    <dl>
+    <dt>Dependencies:</dt>
+
+    <dd>
+      <ul>
+        <li>Gradle 2.2.1 or higher.</li>
+        <li>Build Tools 21.1.1 or higher.</li>
+      </ul>
+    </dd>
+
+    <dt>General Notes:</dt>
+    <dd>
+      <ul>
+      <li>Enhanced support for running unit tests with Gradle.  </li>
+        <ul>
+          <li>Added support to include Java-style resources in the classpath when running unit
+            tests directly from Gradle.
+          </li>
+          <li>Added unit test dependency support for Android ARchive (AAR) artifacts.
+          </li>
+          <li>Added support for the <code>unitTestVariants</code> property so unit test variants
+            can be manipulated using the <code>build.gradle</code> file.
+          </li>
+          <li>Added the <code>unitTest.all</code> code block under <code>testOptions</code> to
+            configure customized tasks for unit test. The following sample code shows how to add
+            unit test configuration settings using this new option:
+<pre>
+android {
+  testOptions {
+    unitTest.all {
+      jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option.
+    }
+  }
+}
+</pre>
+           </li>
+          <li>Fixed the handling of enums and public instance fields in the packaging of the
+           <code>mockable-android.jar</code> file.
+          </li>
+          <li>Fixed library project task dependencies so test classes recompile after changes.
+          </li>
+          </ul>
+        <li>Added the <code>testProguardFile</code> property to apply
+          <a href="{@docRoot}tools/help/proguard.html">ProGuard</a> files when minifying a test APK.
+        </li>
+        <li>Added the <code>timeOut</code> property to the <code>adbOptions</code> code block
+          for setting the maximum recording time for
+          <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge</a> screen recording.
+        </li>
+        <li>Added support for 280 dpi resources.
+        </li>
+        <li>Improved performance during project evaluation.
+        </li>
+     </ul>
+    </dd>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
       alt=""/>Android Plugin for Gradle, Revision 1.1.3</a> <em>(March 2015)</em>
   </p>
 
diff --git a/docs/html/tools/revisions/index.jd b/docs/html/tools/revisions/index.jd
index 0e7ceef..0b8db83 100644
--- a/docs/html/tools/revisions/index.jd
+++ b/docs/html/tools/revisions/index.jd
@@ -6,4 +6,8 @@
 an update at their own schedule, so some have their own set of release notes. You can
 find information about some of the packages in this section, including the core <a
 href="{@docRoot}tools/sdk/tools-notes.html">SDK Tools</a> and the latest <a
-href="{@docRoot}tools/revisions/platforms.html">Platforms</a>.</p>
\ No newline at end of file
+href="{@docRoot}tools/revisions/platforms.html">SDK Platforms</a>. Release notes are also available
+for Android developer tools, such as
+<a href="{@docRoot}tools/revisions/studio.html">Android Studio</a> and the
+<a href="{@docRoot}tools/revisions/gradle-plugin.html">Android Plugin for Gradle</a>.
+</p>
diff --git a/docs/html/tools/revisions/studio.jd b/docs/html/tools/revisions/studio.jd
index 3982f2e..f530a5f 100644
--- a/docs/html/tools/revisions/studio.jd
+++ b/docs/html/tools/revisions/studio.jd
@@ -29,9 +29,9 @@
 <p>For an introduction to Android Studio, read the
 <a href="{@docRoot}tools/studio/index.html">Android Studio</a> guide.</p>
 
-<p>Periodic updates are pushed to Android Studio without requiring you to update. To
-manually check for updates, select <strong>Help > Check for updates</strong> (on Mac, select
-<strong>Android Studio > Check for updates</strong>).</p>
+<p>Periodic updates are pushed to Android Studio without requiring you to update your Android
+project. To manually check for updates, select <strong>Help > Check for updates</strong> (on Mac,
+select <strong>Android Studio > Check for updates</strong>).</p>
 
 
 <h2 id="Revisions">Revisions</h2>
@@ -43,6 +43,53 @@
 <div class="toggle-content opened">
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+      alt=""/>Android Studio v1.2.0</a> <em>(April 2015)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+    <p>Various fixes and enhancements:</p>
+    <ul>
+      <li>Updated the Android runtime window to include the
+        <a href="{@docRoot}tools/studio/index.html#mem-cpu">Memory Monitor</a> tool
+        and added a tab for CPU performance monitoring.</li>
+      <li>Added a <em>Captures</em> tab in the left margin to display the captured memory and CPU
+        performance data files, such as CPU method tracking and memory heap snapshots.</li>
+      <li>Expanded <a href="{@docRoot}tools/debugging/annotations.html">annotation</a>
+          support with additional metadata annotations and inferred nullability. </li>
+      <li>Enhanced the Translations Editor with additional support for Best Current Practice
+          (BCP) 47, which uses 3-letter language and region codes.</li>
+      <li>Integrated IntelliJ 14 and 14.1 features for improved code analysis and performance:</li>
+         <ul>
+          <li>Enhanced debugging to show inline values for variables and referring objects,
+            as well as perform inline evaluation of lambda and operator expressions. </li>
+          <li>Added code style detection for tab and indent sizes. </li>
+          <li>Added scratch files for code experiments and prototyping without project files.</li>
+          <li>Added the simultaneous insertion of opening and closing tags in HTML and XML files.</li>
+          <li>Added a built-in Java class decompiler so you can look at what’s inside a library
+            for which the source code is not available. </li>
+         </ul>
+         <p>See
+         <a class="external-link" href="https://www.jetbrains.com/idea/whatsnew">What's New in IntelliJ</a>
+         for a complete description of the new features and enhancements.</p>
+       </li>
+      <li>Added additional <a href="{@docRoot}tools/studio/index.html#project-view">Project Views</a>
+        for <em>Scratches</em>, <em>Project Files</em>, <em>Problems</em>, <em>Production</em>,
+        and <em>Tests</em> to enhance project management and access. </li>
+      <li>Enhanced the <strong>File &gt; Settings</strong> menu and dialogs for improved settings
+          access and management. </li>
+      <li>Added support for high-density displays for Windows and Linux. </li>
+      <li>Added support for 280 dpi resources in the <code>res/drawable-280dpi/</code> folder.
+     </ul>
+    </ul>
+  </div>
+</div>
+
+
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
       alt=""/>Android Studio v1.1.0</a> <em>(February 2015)</em>
   </p>
 
@@ -63,6 +110,7 @@
       for region and language combinations, launcher icons, resource names, and other common
       code problems.</li>
       <li>Added support for Best Current Practice (BCP) language tag 47.  </li>
+    </ul>
   </div>
 </div>
 
@@ -85,6 +133,7 @@
       updates, use <strong>File > Settings > Updates</strong> to change to the <strong>Stable</strong>
       update channel.
       </li>
+    </ul>
   </div>
 </div>
 
diff --git a/docs/html/tools/sdk/ndk/index.jd b/docs/html/tools/sdk/ndk/index.jd
index 520fe67..ae15bc1 100644
--- a/docs/html/tools/sdk/ndk/index.jd
+++ b/docs/html/tools/sdk/ndk/index.jd
@@ -2,29 +2,25 @@
 page.template=sdk
 
 
-ndk.mac64_download=android-ndk-r10d-darwin-x86_64.bin
-ndk.mac64_bytes=442691567
-ndk.mac64_checksum=cb101e1e62d56ea75b215f6bc6c27fae
+ndk.mac64_download=android-ndk-r10e-darwin-x86_64.bin
+ndk.mac64_bytes=388937326
+ndk.mac64_checksum=2cb8893a5701603519d38a7e04c50e81
 
-ndk.mac32_download=android-ndk-r10d-darwin-x86.bin
-ndk.mac32_bytes=441545213
-ndk.mac32_checksum=0aeb3dc062dc457a4cd01e72eadb2379
+ndk.linux64_download=android-ndk-r10e-linux-x86_64.bin
+ndk.linux64_bytes=401522849
+ndk.linux64_checksum=19af543b068bdb7f27787c2bc69aba7f
 
-ndk.linux64_download=android-ndk-r10d-linux-x86_64.bin
-ndk.linux64_bytes=459151600
-ndk.linux64_checksum=263b83071e6bca15f67898548d8d236e
+ndk.linux32_download=android-ndk-r10e-linux-x86.bin
+ndk.linux32_bytes=394281908
+ndk.linux32_checksum=c3edd3273029da1cbd2f62c48249e978
 
-ndk.linux32_download=android-ndk-r10d-linux-x86.bin
-ndk.linux32_bytes=449997190
-ndk.linux32_checksum=70ed6d8c34e7e620c145b791e8eeef89
+ndk.win64_download=android-ndk-r10e-windows-x86_64.exe
+ndk.win64_bytes=419616132
+ndk.win64_checksum=8412bb4991a95e08fda50b5a44d95df7
 
-ndk.win64_download=android-ndk-r10d-windows-x86_64.exe
-ndk.win64_bytes=472613732
-ndk.win64_checksum=9a33f96da58a7e0b70e47d27b4a880b4
-
-ndk.win32_download=android-ndk-r10d-windows-x86.exe
-ndk.win32_bytes=455427281
-ndk.win32_checksum=c0930abfae0c990c4d191cc4ebd46b68
+ndk.win32_download=android-ndk-r10e-windows-x86.exe
+ndk.win32_bytes=396563176
+ndk.win32_checksum=1a82445baaf62aec3a46386ab1e5772c
 
 
 
@@ -382,11 +378,174 @@
 
 <p>The following sections provide information about releases of the NDK.</p>
 
-
 <div class="toggle-content opened">
  <p>
    <a href="#" onclick="return toggleContent(this)"> <img
      src="/assets/images/triangle-opened.png" class="toggle-content-img" alt=""
+   >Android NDK, Revision 10e</a> <em>(May 2015)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Important changes:</dt>
+      <dd>
+      <ul>
+        <li>Integrated the workaround for Cortex-A53 Erratum 843419 into the
+        {@code aarch64-linux-android-4.9} linker. For more information on this workaround, see
+        <a href="https://sourceware.org/ml/binutils/2015-03/msg00446.html">Workaround for cortex-a53
+        erratum 843419.</a></li>
+
+         <li>Added Clang 3.6; {@code NDK_TOOLCHAIN_VERSION=clang} now picks that version
+         of Clang by default.</li>
+
+         <li>Removed Clang 3.4.</li>
+
+         <li>Removed GCC 4.6.</li>
+
+         <li>Implemented multithreading support in {@code ld.gold} for all architectures. It can
+         now link with or without support for multithreading; the default is to do it without.
+            <ul>
+            <li>To compile with multithreading, use the {@code --threads} option.</li>
+            <li>To compile without multithreading, use the {@code --no-threads} option.</li>
+            </ul>
+            </li>
+
+         <li>Upgraded GDB/gdbserver to 7.7 for all architectures.</li>
+
+         <li>Removed the NDK package for 32-bit Darwin.</li>
+      </ul>
+      </dd>
+   <dl>
+
+
+     <dt>Important bug fixes:</dt>
+     <dd>
+     <ul>
+        <li>Fixed a crash that occurred when there were OpenMP loops outside of the main thread.</li>
+
+        <li>Fixed a GCC 4.9 internal compiler error (<i>ICE</i>) that occured when the user declared
+        {@code #pragma GCC optimize ("O0")}, but had a different level of optimization specified
+        on the command line. The {@code pragma} takes precedence.</li>
+
+        <li>Fixed an error that used to produce a crash with the following error message:
+<pre>
+in add_stores, at var-tracking.c:6000
+</pre>
+        </li>
+
+        <li>Implemented a workaround for a Clang 3.5 issue in which LLVM auto-vectorization
+        generates {@code llvm.cttz.v2i64()}, an instruction with no counterpart in the ARM
+        instruction set.</li>
+     </ul>
+     </dd>
+
+     <dt>Other bug fixes:</dt>
+     <dd>
+     <ul>
+        <li>Made the following header and library fixes:</li>
+           <ul>
+           <li>Fixed {@code PROPERTY_*} in {@code media/NdkMediaDrm.h}.</li>
+           <li>Fixed {@code sys/ucontext.h} for {@code mips64}.</li>
+           <li>Dropped the Clang version check for {@code __builtin_isnan} and
+           {@code __builtin_isinf}.</li>
+           <li>Added {@code android-21/arch-mips/usr/include/asm/reg.h}
+           and {@code android-21/arch-mips64/usr/include/asm/reg.h}.</li>
+           </ul>
+           </li>
+
+        <li>Fixed a spurious array-bounds warning that GCC 4.9 produced for x86, and reenabled the
+        array bounds warning that GCC 4.9 had produced for ARM. The warning for ARM had
+        previously been unconditionally disabled.</li>
+
+        <li>Fixed Clang 3.5 for {@code mips} and {@code mips64} to create a writable
+            {@code .gcc_except_table} section, thus matching GCC behavior. This change allows you
+            to avoid the following linker warning:
+
+<pre>
+.../ld: warning: creating a DT_TEXTREL in a shared object
+</pre>
+            </li>
+
+        <li>Backported a fix for {@code compiler-rt} issues that were causing crashes when Clang
+        compiled for {@code mips64}. For more information, see LLVM Issue
+        <a href="http://llvm.org/bugs/show_bug.cgi?id=20098">20098</a>.</li>
+
+        <li>Fixed Clang 3.5 crashes that occurred on non-ASCII comments. (Issue
+        <a href="https://code.google.com/p/android/issues/detail?id=81440">81440</a>)</li>
+
+        <li>Fixed {@code stlport collate::compare} to return {@code -1} and {@code 1}. Previously,
+        it had returned arbitrary signed numbers.</li>
+
+        <li>Fixed {@code ndk-gdb} for 64-bit ABIs. (Issue
+        <a href="https://code.google.com/p/android/issues/detail?id=118300">118300</a>)</li>
+
+        <li>Fixed the crash that the HelloComputeNDK sample for RenderScript was producing on
+        Android 4.4 (Android API level 19). For more information, see
+        <a href="http://stackoverflow.com/questions/28057049/targeting-pre-lollipop-devices-using-renderscript-from-ndk-c">this page</a>.</li>
+
+        <li>Fixed {@code libc++ __wrap_iter} for GCC. For more information, see LLVM Issue
+        <a href="http://llvm.org/bugs/show_bug.cgi?id=22355">22355</a>.</li>
+
+        <li>Fixed {@code .asm} support for ABI {@code x86_64}.</li>
+
+        <li>Implemented a workaround for the GCC 4.8 {@code stlport} issue. (Issue
+        <a href="https://android-review.googlesource.com/#/c/127773">127773</a>)</li>
+
+        <li>Removed the trailing directory separator {@code \\} from the project path in Windows.
+        (Issue <a href="https://code.google.com/p/android/issues/detail?id=160584">160584</a>)
+        </li>
+
+        <li>Fixed a {@code no rule to make target} error that occurred when compiling a single
+        {@code .c} file by executing the {@code ndk-build.cmd} command from {@code gradle}. (Issue
+        <a href="https://code.google.com/p/android/issues/detail?id=66937">66937</a>)</li>
+
+        <li>Added the {@code libatomic.a} and {@code libgomp.a} libraries that had been missing from
+        the following host toolchains:
+        <ul>
+           <li>{@code aarch64-linux-android-4.9}</li>
+           <li>{@code mips64el-linux-android-4.9}</li>
+           <li>{@code mipsel-linux-android-4.9}</li>
+           <li>{@code x86_64-4.9}</li>
+        </ul>
+     </ul>
+     </dd>
+
+     <dt>Other changes:</dt>
+     <dd>
+       <ul>
+       <li>Added {@code ld.gold} for {@code aarch64}. The default linker remains {@code ld.bfd}.
+       To explicitly enable {@code ld.gold}, add {@code -fuse-ld=gold} to the
+       {@code LOCAL_LDFLAGS} or {@code APP_LDFLAGS} variable.</li>
+
+       <li>Built the MIPS and MIPS64 toolchains with {@code binutils-2.25}, which provides improved
+       R6 support.</li>
+
+       <li>Made {@code -fstandalone-debug} (full debug info) a default option for Clang.</li>
+
+       <li>Replaced {@code -fstack-protector} with {@code -fstack-protector-strong} for
+       the ARM, AArch64, X86, and X86_64 toolchains for GCC 4.9, Clang 3.5, and
+       Clang 3.6.</li>
+
+       <li>Added the {@code --package} command-line switch to {@code ndk-gdb} to allow the build
+       system to override the package name. (Issue
+       <a href="https://code.google.com/p/android/issues/detail?id=56189">56189</a>)</li>
+
+       <li> Deprecated {@code -mno-ldc1-stc1} for MIPS.  This option may not work with the new
+       {@code -fpxx} and {@code -mno-odd-spreg} options, or with the FPXX ABI.</li>
+
+       <li>Added MIPS MSA and R6 detection to {@code cpu-features}.</li>
+
+     </ul>
+     </dd>
+
+   </dl>
+ </div>
+</div>
+
+
+<div class="toggle-content closed">
+ <p>
+   <a href="#" onclick="return toggleContent(this)"> <img
+     src="/assets/images/triangle-closed.png" class="toggle-content-img" alt=""
    >Android NDK, Revision 10d</a> <em>(December 2014)</em>
  </p>
  <div class="toggle-content-toggleme">
diff --git a/docs/html/tools/sdk/tools-notes.jd b/docs/html/tools/sdk/tools-notes.jd
index 47b603a..434dc44 100644
--- a/docs/html/tools/sdk/tools-notes.jd
+++ b/docs/html/tools/sdk/tools-notes.jd
@@ -24,6 +24,33 @@
 <div class="toggle-content opened">
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+      alt=""/>SDK Tools, Revision 24.2.0</a> <em>(May 2015)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+
+    <dl>
+    <dt>Dependencies:</dt>
+
+    <dd>
+      <ul>
+        <li>Android SDK Platform-tools revision 19 or later.</li>
+      </ul>
+    </dd>
+
+    <dt>General Notes:</dt>
+    <dd>
+      <ul>
+        <li>Fixed several minor emulator issues.</li>
+      </ul>
+    </dd>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
       alt=""/>SDK Tools, Revision 24.1.2</a> <em>(February 2015)</em>
   </p>
 
diff --git a/docs/html/tools/studio/index.jd b/docs/html/tools/studio/index.jd
index eaa96d3..a5b14a7 100644
--- a/docs/html/tools/studio/index.jd
+++ b/docs/html/tools/studio/index.jd
@@ -18,7 +18,7 @@
 
   <h2>See also</h2>
   <ol>
-    <li><a href="http://confluence.jetbrains.com/display/IntelliJIDEA/FAQ+on+Migrating+to+IntelliJ+IDEA">IntelliJ FAQ on migrating to IntelliJ IDEA</a></li>
+    <li><a class="external-link" href="http://confluence.jetbrains.com/display/IntelliJIDEA/FAQ+on+Migrating+to+IntelliJ+IDEA">IntelliJ FAQ on migrating to IntelliJ IDEA</a></li>
   </ol>
 
 </div>
@@ -26,8 +26,7 @@
 
 
 <p>Android Studio is the official IDE for Android application development,
-based on <a href="https://www.jetbrains.com/idea/" class="external-link"
-target="_blank">IntelliJ IDEA</a>.
+based on <a class="external-link" href="https://www.jetbrains.com/idea/" target="_blank">IntelliJ IDEA</a>.
 On top of the capabilities you expect from IntelliJ,
 Android Studio offers:</p>
 
@@ -38,10 +37,9 @@
   <li>Rich layout editor with support for drag and drop theme editing</li>
   <li>{@code lint} tools to catch performance, usability, version compatibility, and other problems</li>
   <li>ProGuard and app-signing capabilities</li>
-  <li>Built-in support for <a
-  href="http://developers.google.com/cloud/devtools/android_studio_templates/"
-  class="external-link">Google Cloud Platform</a>, making it easy to integrate Google Cloud
-  Messaging and App Engine</li>
+  <li>Built-in support for
+  <a href="http://developers.google.com/cloud/devtools/android_studio_templates/">Google Cloud Platform</a>,
+  making it easy to integrate Google Cloud Messaging and App Engine</li>
   <li>And much more</li>
 </ul>
 
@@ -55,24 +53,25 @@
 "{@docRoot}tools/workflow/index.html">Workflow</a> section, such as <a href=
 "{@docRoot}tools/projects/projects-studio.html">Managing Projects from Android Studio</a> and
 <a href="{@docRoot}tools/building/building-studio.html">Building and Running from Android
-Studio</a>.</p>
+Studio</a>. For a summary of the latest changes to Android Studio, see the
+<a href="{@docRoot}tools/revisions/studio.html">Android Studio Release Notes</a>.</p>
 
 
 
 
 <h2 id="project-structure">Project and File Structure</h2>
 
-<h3 id="project-view"><em>Android</em> Project View</h3>
-<p>By default, Android Studio displays your profile files in the <em>Android</em> project view. This
+<h3 id="project-view"><em>Android</em> project view</h3>
+<p>By default, Android Studio displays your project files in the <em>Android</em> project view. This
 view shows a flattened version of your project's structure that provides quick access to the key
 source files of Android projects and helps you work with the
 <a href="{@docRoot}sdk/installing/studio-build.html">Gradle-based build system</a>.
-The Android project view:</p>
+The <em>Android</em> project view:</p>
 
 <ul>
-  <li>Groups the build files for all modules at the top level of the project hierarchy.</li>
   <li>Shows the most important source directories at the top level of the module hierarchy.</li>
-  <li>Groups all the manifest files for each module.</li>
+  <li>Groups the build files for all modules in a common folder.</li>
+  <li>Groups all the manifest files for each module in a common folder.</li>
   <li>Shows resource files from all Gradle source sets.</li>
   <li>Groups resource files for different locales, orientations, and screen types in a single
   group per resource type.</li>
@@ -81,7 +80,7 @@
      <img src="{@docRoot}images/tools/projectview01.png" />
      <p class="img-caption"><strong>Figure 1.</strong> Show the Android project view.</p>
      <img src="{@docRoot}images/tools/studio-projectview_scripts.png"  />
-     <p class="img-caption"><strong>Figure 2.</strong> Project Build Files.</p>
+     <p class="img-caption"><strong>Figure 2.</strong> Show project build Files.</p>
 
 <p>The <em>Android</em> project view shows all the build files at the top level of the project
 hierarchy under <strong>Gradle Scripts</strong>. Each project module appears as a folder at the
@@ -91,19 +90,20 @@
   <li><code>java/</code> - Source files for the module.</li>
   <li><code>manifests/</code> - Manifest files for the module.</li>
   <li><code>res/</code> - Resource files for the module.</li>
+  <li><code>Gradle Scripts/</code> - Gradle build and property files.</li>
 </ul>
 
 <p>For example, <em>Android</em> project view groups all the instances of the
 <code>ic_launcher.png</code> resource for different screen densities under the same element.</p>
 
 <p class="note"><strong>Note:</strong> The project structure on disk differs from this flattened
-representation. To switch to back to the segregated project view, select <strong>Project</strong> from
-the <strong>Project</strong> drop-down. </p>
+representation. To switch to back to the segregated project view, select <strong>Project</strong>
+from the <strong>Project</strong> drop-down. </p>
 
 
 
-<h3>Android Studio Project and Directory Structure</h3>
-<p>When you use the <em>Project</em> view of a new project in Android Studio, you
+<h3 id="other-views">Other Android Studio views</h3>
+<p>When you use the <em>Project</em> view in Android Studio, you
 should notice that the project structure appears different than you may be used to in Eclipse. Each
 instance of Android Studio contains a project with one or more application modules. Each
 application module folder contains the complete source sets for that module, including
@@ -113,11 +113,28 @@
 specification and the files under {@code src/androidTest} directory for test case creation.
 
     <p>  <img src="{@docRoot}images/tools/studio-project-layout.png" alt="" /></p>
-    <p>  <class="img-caption"><strong>Figure 3.</strong> Android Studio project structure</p>
+    <p>  <class="img-caption"><strong>Figure 3.</strong> View Android Studio <em>Project</em>
+         structure.</p>
+
+<p>You can also customize the view of the project files to focus on specific aspects of your app
+development: </p>
+
+<ul>
+  <li><em>Packages</em> </li>
+  <li><em>Project Files</em> </li>
+  <li><em>Scratches</em> </li>
+  <li><em>Problems</em> </li>
+  <li><em>Production</em> </li>
+  <li><em>Tests</em> </li>
+</ul>
+
+<p>For example, selecting the <strong>Problems</strong> view of your project displays links to the
+source files containing any recognized coding and syntax errors, such as missing a XML element
+closing tag in a layout file.<p>
 
 <p>For more information, see
-<a href="http://confluence.jetbrains.com/display/IntelliJIDEA/Project+Organization"class="external-link">IntelliJ project organization</a> and
-<a href="{@docRoot}tools/projects/index.html">Managing Projects</a>.</p>
+<a class="external-link" href="http://confluence.jetbrains.com/display/IntelliJIDEA/Project+Organization">IntelliJ project organization</a>
+and <a href="{@docRoot}tools/projects/index.html">Managing Projects</a>.</p>
 
 
 
@@ -156,7 +173,7 @@
 <a href="{@docRoot}tools/building/configuring-gradle.html">Configuring Gradle Builds</a>.</p>
 
 
-<h3>Application ID for Package Identification </h3>
+<h3>Application ID for package identification </h3>
 <p>With the Android build system, the <em>applicationId</em> attribute is used to
 uniquely identify application packages for publishing. The application ID is set in the
 <em>android</em> section of the <code>build.gradle</code> file.
@@ -243,25 +260,53 @@
 <p>For more information, see <a href="{@docRoot}tools/devices/managing-avds.html">Managing AVDs</a>.</p>
 
 
+<h3 id="inline-debug">Inline debugging</h3>
+<p>Use inline debugging to enhance your code walk-throughs in the debugger view
+with inline verification of references, expressions, and variable values. Inline debug information
+includes: </p>
+<ul>
+ <li>Inline variable values</li>
+ <li>Referring objects that reference a selected object </li>
+ <li>Method return values</li>
+ <li>Lambda and operator expressions</li>
+ <li>Tool tip values</li>
+</ul>
 
-<h3>Memory Monitor</h3>
-<p>Android Studio provides a memory monitor view so you can more easily monitor your
-app's memory usage to find deallocated objects, locate memory leaks and track the amount of
-memory the connected device is using. With your app running on a device or emulator, click the
-<strong>Memory Monitor</strong> tab in the lower right corner to launch the memory monitor. </p>
+<p>To enable inline debugging, in the <em>Debug</em> window click the Settings icon
+<img src="{@docRoot}images/tools/studio-debug-settings-icon.png"/> and select the
+check box for <strong>Show Values In Editor</strong>.</p>
 
-    <img src="{@docRoot}images/tools/studio-memory-monitor.png" />
-    <p class="img-caption"><strong>Figure 5.</strong> Memory Monitor</p>
+<h3 id="mem-cpu">Memory and CPU monitor</h3>
+<p>Android Studio provides a memory and CPU monitor view so you can more easily monitor your
+app's performance and memory usage to track CPU usage, find deallocated objects, locate memory
+leaks, and track the amount of memory the connected device is using. With your app running on a
+device or emulator, click the <strong>Android</strong> tab in the lower left corner of the
+runtime window to launch the Android runtime window. Click the <strong>Memory</strong> or
+<strong>CPU</strong> tab. </p>
+
+<img src="{@docRoot}images/tools/studio-memory-monitor.png" srcset="{@docRoot}images/tools/studio-memory-monitor_2x.png 2x" width"635" height="171" alt="" />
+    <p class="img-caption"><strong>Figure 4.</strong> Monitor memory and CPU usage.</p>
 
 
+<h3>Data file access</h3>
+<p>The Android SDK tools, such as <a href="{@docRoot}tools/help/systrace.html">Systrace</a>,
+<a href="{@docRoot}tools/help/logcat.html">logcat</a>, and
+<a href="{@docRoot}tools/help/traceview.html">Traceview</a>, generate performance and debugging
+data for detailed app analysis.</p>
 
-<h3>Code Inspections</h3>
-<p>In Android Studio, the configured <a href="{@docRoot}tools/help/lint.html"><code>lint</code></a> and
-other IDE inspections run automatically whenever you compile your program. In addition to the
+<p>To view the available generated data files, click <strong>Captures</strong> in the left
+corner of the runtime window. In the list of the generated files, double-click a file to view
+the data. Right-click any <code>.hprof</code> files to convert them to a standard
+<a href="{@docRoot}tools/help/hprof-conv.html"><code>.hprof</code> </a> file format.</p>
+
+
+<h3>Code inspections</h3>
+<p>In Android Studio, the configured <a href="{@docRoot}tools/help/lint.html"><code>lint</code></a>
+and other IDE inspections run automatically whenever you compile your program. In addition to the
 configured {@code lint} checks, additional
-<a href="https://www.jetbrains.com/idea/help/inspection-basics.html?search=inspection" class="external-link"
-target="_blank">IntelliJ code inspections</a>
-run to streamline code review.</p>
+<a class="external-link" href="https://www.jetbrains.com/idea/help/inspection-basics.html?search=inspection"
+target="_blank">IntelliJ code inspections</a> and annotation validation run to streamline code
+review.</p>
 
 
 <p>Android Studio enables several <code>lint</code> checks
@@ -269,10 +314,10 @@
 <ul>
   <li><code> Cipher.getInstance()</code> is used with safe values</li>
   <li>In custom Views, the associated declare-styleable for the custom view uses the same
-  base name as the class name.</li>
-  <li>Security check for fragment injection.</li>
-  <li>Where ever property assignment no longer works as expected.</li>
-  <li>Gradle plugin version is compatible with the SDK.</li>
+  base name as the class name</li>
+  <li>Security check for fragment injection</li>
+  <li>Where ever property assignment no longer works as expected</li>
+  <li>Gradle plugin version is compatible with the SDK</li>
   <li>Right to left validation </li>
   <li>Required API version</li>
   <li>many others</li>
@@ -302,13 +347,13 @@
 
 
 <p>You can also manage inspection profiles and configure inspections within Android Studio.
-Choose <strong>File &gt; Settings &gt; Project Settings</strong>. The
-<em>Inspection Configuration</em> page appears with the supported inspections.</p>
+Choose <strong>File &gt; Settings &gt; Project Settings</strong> and expand <strong>Editor</strong>.
+The <em>Inspection Configuration</em> page appears with the supported inspections.</p>
 <p><img src="{@docRoot}images/tools/studio-inspections-config.png" alt="" /> </p>
-<p class="img-caption"><strong>Figure 5.</strong> Inspection Configuration</p> 
+<p class="img-caption"><strong>Figure 5.</strong> Configure inspections.</p>
 
-<p class="note"><strong>Note:</strong> If you wish to change the behavior of specific
-inspection notifications, you can change the inspection severity, for example from <em>warning</em>
+<p class="note"><strong>Note:</strong> To change the behavior of specific
+inspection notifications, change the inspection severity, for example from <em>warning</em>
 to <em>error</em>. </p>
 
 
@@ -317,7 +362,7 @@
 
 
 
-<h4>Running Inspections from the command line</h4>
+<h4>Running inspections from the command line</h4>
 <p>You can also run {@code lint} inspections from the command line in your SDK directory. </p>
 <pre>
 sdk$ lint [flags] <project directories>
@@ -328,25 +373,127 @@
 
 
 <p>For more information, see
-<a href="{@docRoot}tools/debugging/improving-w-lint.html">Improving Your Code with {@code lint}</a> and
-<a href="{@docRoot}tools/help/lint.html">lint tool</a>.</p>
+<a href="{@docRoot}tools/debugging/improving-w-lint.html">Improving Your Code with {@code lint}</a>
+and <a href="{@docRoot}tools/help/lint.html">lint tool</a>.</p>
+
+
+
+<h3 id="annotations">Annotations in Android Studio</h3>
+<p>Android Studio supports annotations for variables, parameters, and return values to help you
+catch bugs, such as null pointer exceptions and resource type conflicts. The
+<a href="{@docRoot}tools/help/sdk-manager.html">Android SDK Manager</a> packages
+the {@link android.support.annotation Support-Annotations} library
+in the Android Support Repository for use with Android
+Studio. Android Studio validates the configured annotations during code inspection. </p>
+
+<p>To add annotations to your code in Android Studio, first add a dependency for the
+{@link android.support.annotation Support-Annotations} library:</p>
+<ol>
+ <li>Select <strong>File &gt; Project Structure</strong>.</li>
+ <li>In the <em>Project Structure</em> dialog, select the desired module, click the
+ <strong>Dependencies</strong> tab. </li>
+ <li>Click the <img src="{@docRoot}images/tools/studio-add-icon.png"/> icon to include a
+ <strong>Library dependency</strong>.</li>
+ <li>In the <em>Choose Library Dependency</em> dialog, select <code>support-annotations</code> and
+ click <strong>Ok</strong>. </li>
+</ol> 
+
+<p>The <code>build.gradle</code> file is updated with the <code>support-annotations</code>
+dependency.</p>
+
+<p>You can also manually add this dependency to your <code>build.gradle</code> file, as shown in
+the following example.  </p>
+
+<pre>
+dependencies {
+    compile fileTree(dir: 'libs', include: ['*.jar'])
+    compile 'com.android.support:appcompat-v7:22.0.0'
+    <strong>compile 'com.android.support:support-annotations:22.0.0'</strong>
+}
+</pre>
+
+
+
+<h4>Inferring nullability</h4>
+<p>A nullability analysis scans the contracts throughout the method hierarchies in your code to
+detect:</p>
+<ul>
+ <li>Calling methods that can return null </li>
+ <li>Methods that should not return null </li>
+ <li>Variables, such as fields, local variables, and parameters, that can be null </li>
+ <li>Variables, such as fields, local variables, and parameters, that cannot hold a null value </li>
+</ul>
+
+<p>The analysis then automatically inserts the appropriate null annotations in the detected
+locations. </p>
+
+<p>To run a nullability analysis in Android Studio,
+select the <strong>Analyze &gt; Infer Nullity</strong>
+menu option. Android Studio inserts the Android
+{@link android.support.annotation.Nullable @Nullable} and
+{@link android.support.annotation.NonNull @NonNull} annotations in detected locations
+in your code. After running a null analysis, it's good practice to verify the injected
+annotations.</p>
+
+<p class="note"><strong>Note:</strong> The nullability analysis may insert the IntelliJ
+<a class="external-link" href="https://www.jetbrains.com/idea/help/-nullable-and-notnull-annotations.html?search=annotations">
+<code>&#64;Nullable</code></a> and
+<a class="external-link" href="https://www.jetbrains.com/idea/help/-nullable-and-notnull-annotations.html?search=annotations">
+<code>&#64;NotNull</code></a> annotations instead of the Android null annotations. When running
+a null analysis, manually search and replace any IntelliJ annotations or include
+<code>com.intellij:annotations:12.0</code> as a compile dependency in your
+<code>build.gradle</code> file. This example includes the IntelliJ annotations 12.0 library as a
+dependency in the <code>build.gradle</code> file:
+
+<pre>
+dependencies {
+    compile fileTree(dir: 'libs', include: ['*.jar'])
+    compile 'com.android.support:appcompat-v7:22.0.0'
+    compile 'com.android.support:support-annotations:22.0.0'
+    <strong>compile 'com.intellij:annotations:12.0'</strong>
+}
+</pre>
+
+</p>
+
+
+<h4>Validating annotations</h4>
+<p>You can also manually add nullability, resource, and enumerated annotations throughout your code
+to perform validations for a variety of reference values, such as
+<a href="{@docRoot}reference/android/R.string.html"><code>R.string</code></a> resources,
+<a href="{@docRoot}guide/topics/resources/drawable-resource.htm"><code>Drawable</code></a>
+resources,
+<a href="{@docRoot}reference/android/graphics/Color.html"><code>Color</code></a> resources,
+and enumerated constants. </p>
+
+<p>Run <strong>Analyze &gt; Inspect Code</strong> to validate the configured annotations. </p>
+
+<p>For a complete list of the supported annotations, either use the auto-complete feature to display
+the available options for the <code>import android.support.annotation.</code> statement or
+view the contents of the
+{@link android.support.annotation Support-Annotations}
+library. </p>
+
+<p>For more details about Android annotations, see
+<a href="{@docRoot}tools/debugging/annotations.html">Improving Code Inspection with Annotations</a>.
+
 
 
 <h3>Dynamic layout preview</h3>
 <p>Android Studio allows you to work with layouts in both a <em>Design View</em> </p>
 <p><img src="{@docRoot}images/tools/studio-helloworld-design.png" alt="" />
 </p>
-    <p class="img-caption"><strong>Figure 6.</strong> Hello World App with Design View</p>
+    <p class="img-caption"><strong>Figure 6.</strong> Hello World App with Design View.</p>
 
 <p>and a <em>Text View</em>. </p>
 
     <p><img src="{@docRoot}images/tools/studio-helloworld-text.png" alt="" />
-    <pclass="img-caption"><strong>Figure 7.</strong> Hello World App with Text View</p>
+    <pclass="img-caption"><strong>Figure 7.</strong> Hello World App with text view.</p>
 
 <p>Easily select and preview layout changes for different device images, display
 densities, UI modes, locales, and Android versions (multi-API version rendering).
     <p><img src="{@docRoot}images/tools/studio-api-version-rendering.png" /></p>
-    <p class="img-caption"><strong>Figure 8.</strong> API Version Rendering</p>
+    <p class="img-caption"><strong>Figure 8.</strong> Multi-API version rendering.</p>
 
 
 <p>From the Design View, you can drag and drop elements from the Palette to the Preview or
@@ -373,17 +520,17 @@
 <h2 id="install-updates">Installation, Setup, and Update Management</h2>
 
 <h3>Android Studio installation and setup wizards</h3>
-<p>An updated installation and setup wizards walk you through a step-by-step installation
-and setup process as the wizard checks for system requirements, such as the Java Development
-Kit (JDK) and available RAM, and then prompts for optional installation options, such as the
-Intel&#174; HAXM emulator accelerator.</p>
+<p>When you begin the installation process, an installation and setup wizard walks you through
+a step-by-step installation and setup process as the wizard checks for system requirements,
+such as the Java Development Kit (JDK) and available RAM, and then prompts for optional
+installation options, such as the Intel&#174; HAXM emulator accelerator.</p>
 
-<p>An updated setup wizard walks you through the setup processes as
+<p>During the installation process, a setup wizard walks you through the setup processes as
 the wizard updates your system image and emulation requirements, such GPU, and then creates
 an optimized default Android Virtual Device (AVD) based on Android 5 (Lollipop) for speedy and
 reliable emulation. </p>
 <p><img src="{@docRoot}images/tools/studio-setup-wizard.png" /></p>
-<p class="img-caption"><strong>Figure 9.</strong> Setup Wizard</p>
+<p class="img-caption"><strong>Figure 9.</strong> Installation and setup wizard.</p>
 
 
 <h3>Expanded template and form factor support</h3>
@@ -391,11 +538,11 @@
 types. </p>
 
     <h4> Android Wear and TV support</h4>
-    <p>For easy cross-platform development, the Project Wizard provides new templates for
+    <p>For easy cross-platform development, the Project Wizard provides templates for
     creating your apps for Android Wear and TV. </p>
     <p><img src="{@docRoot}images/tools/studio-tvwearsupport.png"  />
 
-      <p class="img-caption"><strong>Figure 10.</strong> Supported Form Factors</p>
+      <p class="img-caption"><strong>Figure 10.</strong> Supported form factors.</p>
     <p>During app creation, the Project Wizard also displays an API Level dialog to help you choose
     the best <em>minSdkVersion</em> for your project.</p>
 
@@ -405,7 +552,26 @@
     and create a cloud end-point is as easy as selecting <em>File > New Module > App Engine Java
     Servlet Module</em> and specifying the module, package, and client names. </p>
     <p><img src="{@docRoot}images/tools/studio-cloudmodule.png" /></p>
-    <p class="img-caption"><strong>Figure 11.</strong> Setup Wizard</p>
+    <p class="img-caption"><strong>Figure 11.</strong> Google App Engine integration.</p>
+
+
+<h3>Easy access to project and file settings</h3>
+<p>Android Studio provides setting dialogs so you can manage the most important project and file
+settings from the <strong>File</strong> menus as well as the build and configuration files. For
+example, you can use the <strong>File &gt; Project Structure</strong> menu or
+the <code>build.gradle</code> file to update your <code>productFlavor</code> settings.
+Additional settings from the <strong>File</strong> menus include:
+<ul>
+ <li>SDK and JDK location </li>
+ <li>SDK version </li>
+ <li>Gradle and Android Plugin for Gradle versions </li>
+ <li>Build tools version </li>
+ <li>Multidex setting</li>
+ <li>Product flavors </li>
+ <li>Build types </li>
+ <li>Dependencies </li>
+</ul>
+</p>
 
 
 
@@ -452,13 +618,14 @@
 <p>Android Studio supports HTTP proxy settings so you can run Android Studio behind a firewall or
 secure network. To set the HTTP proxy settings in Android Studio:</p>
 <ol>
- <li>From the main menu choose <strong>File &gt; Settings &gt; IDE Setting -- HTTP Proxy</strong>.
+ <li>From the main menu choose <strong>File &gt; Settings &gt; Appearance & Behavior -- System
+ Settings -- HTTP Proxy</strong>.
 
 <li>In Android Studio, open the IDE Settings dialog.
   <ul>
-     <li>On Windows and Linux, choose 
+     <li>On Windows and Linux, choose
      <strong>File &gt; Settings &gt; IDE Setting -- HTTP Proxy</strong>. </li>
-     <li>On Mac, choose 
+     <li>On Mac, choose
      <strong>Android Studio &gt; Preferences &gt; IDE Setting -- HTTP Proxy</strong>. </li>
    </ul>
  The HTTP Proxy page appears.</li>
@@ -545,37 +712,37 @@
 
 <h2 id="other">Other Highlights</h2>
 
-<h3> Translation Editor</h3>
-<p>Multi-language support is enhanced with the Translation Editor plugin so you can easily add
-locales to the app's translation file. Color codes indicate whether a locale is complete or
-still missing string translations. Also, you can use the plugin to export your strings to the
-Google Play Developer Console for translation, then download and import your translations back
-into your project. </p>
+<h3 id="trans-editor"> Translations Editor</h3>
+<p>Multi-language support is enhanced with the Translations Editor plugin so you can easily add
+a variety of locales to the app's translation file. With
+<a href="https://tools.ietf.org/html/bcp47">BCP 47</a> support, the editor combines language and
+region codes into a single selection for targeted localizations. Color codes indicate whether a
+locale is complete or still missing string translations. </p>
 
-<p>To access the Translation Editor, open a <code>strings.xml</code> file and click the
+<p>To access the Translations Editor, open a <code>strings.xml</code> file and click the
 <strong>Open Editor</strong> link.  </p>
 
     <img src="{@docRoot}images/tools/studio-translationeditoropen.png" />
-    <p class="img-caption"><strong>Figure 12.</strong> Translation Editor</p>
+    <p class="img-caption"><strong>Figure 12.</strong> Add locales and strings in the
+    Translations Editor.</p>
 
 
 <h3> Editor support for the latest Android APIs</h3>
 <p>Android Studio supports the
 <a href="{@docRoot}design/material/index.html">Material Design</a></li> themes, widgets, and
 graphics, such as shadow layers and API version rendering (showing the layout across different
-UI versions). Also, the drawable XML tags and attributes, such as &lt;ripple&gt;
-and &lt;animated-selector&gt;, are supported.</p>
+UI versions). Also, the drawable XML tags and attributes, such as <code>&lt;ripple&gt;</code>
+and <code>&lt;animated-selector&gt;</code>, are supported.</p>
 
 
 <h3 id="git-samples"> Easy access to Android code samples on GitHub</h3>
-<p>Clicking <strong>Import Samples</strong> from the <strong>File</strong> menu or <em>Welcome</em> page
-
-provides seamless access to Google code samples on GitHub.</p>
+<p>Clicking <strong>Import Samples</strong> from the <strong>File</strong> menu or <em>Welcome</em>
+page provides seamless access to Google code samples on GitHub.</p>
     <p><img src="{@docRoot}images/tools/studio-samples-githubaccess.png" /></p>
-    <p class="img-caption"><strong>Figure 13.</strong> Code Sample Access</p>
+    <p class="img-caption"><strong>Figure 13.</strong> Get code samples from GitHub.</p>
 
 
     <p><img src="{@docRoot}images/tools/studio-sample-in-editor.png" /></p>
-    <p class="img-caption"><strong>Figure 14.</strong> Imported Code Sample</p>
+    <p class="img-caption"><strong>Figure 14.</strong> Imported code sample.</p>
 
 
diff --git a/docs/html/tools/support-library/features.jd b/docs/html/tools/support-library/features.jd
index 0f0a0c0..119d74a 100644
--- a/docs/html/tools/support-library/features.jd
+++ b/docs/html/tools/support-library/features.jd
@@ -370,9 +370,8 @@
   developer guide.</p>
 
 <p class="note">
-  <strong>Note:</strong> Use of RenderScript with the support library is supported with the Android
-  Eclipse plugin and Ant build tools. It is <em>not currently</em> supported with Android Studio or
-  Gradle-based builds.
+  <strong>Note:</strong> Use of RenderScript with the support library is supported with Android
+  Studio and Gradle-based builds, as well as the Eclipse plugin and Ant build tools.
 </p>
 
 
diff --git a/docs/html/tools/tools_toc.cs b/docs/html/tools/tools_toc.cs
index 7fbb0eb..b8fdc0c 100644
--- a/docs/html/tools/tools_toc.cs
+++ b/docs/html/tools/tools_toc.cs
@@ -129,6 +129,7 @@
       <li><a href="<?cs var:toroot ?>tools/debugging/improving-w-lint.html"><span class="en">Improving Your Code with lint</span></a></li>
       <li><a href="<?cs var:toroot ?>tools/debugging/debugging-ui.html"><span class="en">Optimizing your UI</span></a></li>
       <li><a href="<?cs var:toroot ?>tools/debugging/debugging-tracing.html"><span class="en">Profiling with Traceview and dmtracedump</span></a></li>
+      <li><a href="<?cs var:toroot ?>tools/debugging/annotations.html"><span class="en">Improving Code Inspection with Annotations</span></a></li>
       <li><a href="<?cs var:toroot ?>tools/debugging/systrace.html"><span class="en">Analyzing Display and Performance</span></a></li>
       <li><a href="<?cs var:toroot ?>tools/debugging/debugging-memory.html">Investigating Your RAM Usage</a></li>
       <li><a href="<?cs var:toroot ?>tools/debugging/debugging-devtools.html"><span class="en">Using the Dev Tools App</span></a></li>
@@ -150,7 +151,12 @@
     <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/help/index.html"><span
 class="en">Tools Help</span></a></div>
     <ul>
-      <li><a href="<?cs var:toroot ?>tools/help/adb.html">adb</a></li>
+      <li class="nav-section">
+        <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/help/adb.html">adb</a></div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>tools/help/shell.html">Shell commands</a></li>
+        </ul>
+      </li>
       <li><a href="<?cs var:toroot ?>tools/help/android.html">android</a></li>
       <li><a href="<?cs var:toroot ?>tools/help/avd-manager.html">AVD Manager</a></li>
       <li><a href="<?cs var:toroot ?>tools/help/bmgr.html">bmgr</a>
@@ -167,6 +173,7 @@
       <li><a href="<?cs var:toroot ?>tools/help/mksdcard.html">mksdcard</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/proguard.html" zh-cn-lang="ProGuard">ProGuard</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/sdk-manager.html">SDK Manager</a></li>
+       <li><a href="<?cs var:toroot ?>tools/help/sqlite3.html">sqlite3</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/systrace.html">Systrace</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/gltracer.html">Tracer for OpenGL ES</a></li>
        <li><a href="<?cs var:toroot ?>tools/help/traceview.html">Traceview</a></li>
@@ -195,10 +202,70 @@
       </ul>
   </li><!-- end of build system -->
 
+<!-- Performance Tools menu-->
+  <li class="nav-section">
+    <div class="nav-section-header">
+      <a href="<?cs var:toroot ?>tools/performance/index.html">Peformance Tools</a>
+    </div>
+    <ul>
+      <li><a href="<?cs var:toroot ?>tools/performance/debug-gpu-overdraw/index.html">
+        Overdraw Debugger</a>
+      </li>
+      <li><a href="<?cs var:toroot ?>tools/performance/profile-gpu-rendering/index.html">
+        Rendering Profiler</a>
+      </li>
+      <li class="nav-section">
+        <div class="nav-section-header">
+          <a href="<?cs var:toroot ?>tools/performance/hierarchy-viewer/index.html">
+          Hierarchy Viewer</a></div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>tools/performance/hierarchy-viewer/setup.html"><span
+            class="en">Setup</span></a>
+          </li>
+          <li><a href="<?cs var:toroot ?>tools/performance/hierarchy-viewer/profiling.html"><span
+            class="en">Profiling</span></a>
+          </li>
+        </ul>
+      </li>
+      <li class="nav-section">
+        <div class="nav-section-header">
+          <a href="<?cs var:toroot ?>tools/performance/comparison.html">
+          Memory Profilers</a></div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>tools/performance/memory-monitor/index.html"><span
+            class="en">Memory Monitor</span></a>
+          </li>
+          <li><a href="<?cs var:toroot ?>tools/performance/heap-viewer/index.html"><span
+            class="en">Heap Viewer</span></a>
+          </li>
+          <li><a href="<?cs var:toroot ?>tools/performance/allocation-tracker/index.html"><span
+            class="en">Allocation Tracker</span></a>
+          </li>
+        </ul>
+      </li>
+      <li><a href="<?cs var:toroot ?>tools/performance/traceview/index.html">
+        Traceview</a>
+      </li>
+      <li><a href="<?cs var:toroot ?>tools/performance/systrace/index.html">
+        Systrace</a>
+      </li>
+      <li class="nav-section">
+        <div class="nav-section-header">
+          <a href="<?cs var:toroot ?>tools/performance/batterystats-battery-historian/index.html">
+          Battery Profilers</a></div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>tools/performance/batterystats-battery-historian/charts.html"><span
+            class="en">Historian Charts</span></a>
+          </li>
+        </ul>
+      </li>
+    </ul>
+  </li><!-- End Performance Tools menu-->
+
   <!-- Testing Tools menu-->
 
   <li class="nav-section">
-    <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/testing/testing-tools.html""><span class="en">Testing Tools</span></a></div>
+    <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/testing/testing-tools.html"><span class="en">Testing Tools</span></a></div>
     <ul>
       <li class="nav-section">
          <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/testing-support-library/index.html"><span
diff --git a/docs/html/training/enterprise/app-compatibility.jd b/docs/html/training/enterprise/app-compatibility.jd
index 216a799..419ba89 100644
--- a/docs/html/training/enterprise/app-compatibility.jd
+++ b/docs/html/training/enterprise/app-compatibility.jd
@@ -250,14 +250,14 @@
 support the <code>--user</code> flag, which lets you specify which user to run
 as. By specifying a user, you can choose whether to run as the unmanaged or
 managed profile. For
-more information, see <a href="{@docRoot}tools/help/adb.html#am">Android Debug
-Bridge: Using activity manager (am)</a>.</li>
+more information, see <a href="{@docRoot}tools/help/shell.html#am">ADB
+Shell Commands</a>.</li>
 
 <li>To find the active users on a device, use the adb package manager's
 <code>list users</code> command. The first number in the output string is the
 user ID, which you can use with the <code>--user</code> flag.  For more
-information, see <a href="{@docRoot}tools/help/adb.html#pm">Android Debug
-Bridge: Using package manager (pm)</a>.</li>
+information, see <a href="{@docRoot}tools/help/shell.html#pm">ADB Shell
+Commands</a>.</li>
 
 </ul>
 
diff --git a/docs/html/training/run-background-service/create-service.jd b/docs/html/training/run-background-service/create-service.jd
index 5f4799c..9b9fcd2 100644
--- a/docs/html/training/run-background-service/create-service.jd
+++ b/docs/html/training/run-background-service/create-service.jd
@@ -55,8 +55,8 @@
     </li>
 </ul>
 <p>
-    However, in most cases an {@link android.app.IntentService} is the preferred way to simple
-    background operations.
+    However, in most cases an {@link android.app.IntentService} is the preferred way to perform
+    simple background operations.
 </p>
 <p>
     This lesson shows you how to create your own subclass of {@link android.app.IntentService}.
diff --git a/docs/html/training/swipe/add-swipe-interface.jd b/docs/html/training/swipe/add-swipe-interface.jd
new file mode 100644
index 0000000..ac15caf
--- /dev/null
+++ b/docs/html/training/swipe/add-swipe-interface.jd
@@ -0,0 +1,135 @@
+page.title=Adding Swipe-to-Refresh To Your App
+trainingnavtop=true
+@jd:body
+
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<!-- table of contents -->
+<h2>This lesson teaches you to</h2>
+<ol>
+    <li><a href="#AddSwipeWidget">Add the SwipeRefreshLayout Widget</a>
+    <li><a href="#AddRefreshAction">Add a Refresh Action to the Action Bar</a>
+</ol>
+
+<!-- other docs (NOT javadocs) -->
+<h2>You should also read</h2>
+<ul>
+  <li>
+    <a href=
+    "{@docRoot}guide/topics/ui/accessibility/index.html">Accessibility</a>
+  </li>
+
+  <li>
+    <a href="{@docRoot}training/basics/actionbar/index.html">Adding the Action
+    Bar</a>
+  </li>
+</ul>
+
+<h2>Sample Apps</h2>
+
+<ul>
+    <li><a href="{@docRoot}samples/SwipeRefreshLayoutBasic/index.html">
+            SwipeRefreshLayoutBasic</a></li>
+    <li><a href="{@docRoot}samples/SwipeRefreshListFragment/index.html">
+            SwipeRefreshListFragment</a></li>
+</ul>
+
+</div>
+</div>
+
+
+<p>
+  The swipe-to-refresh user interface pattern is implemented entirely within
+  the {@link android.support.v4.widget.SwipeRefreshLayout} widget, which
+  detects the vertical swipe, displays a distinctive progress bar, and triggers
+  callback methods in your app. You enable this behavior
+  by adding the widget to your layout file as the parent of a {@link
+  android.widget.ListView} or {@link android.widget.GridView}, and implementing
+  the refresh behavior that gets invoked when the user swipes.
+</p>
+
+<p>
+  This lesson shows you how to add the widget to an existing layout. It also
+  shows you how to add a refresh action to the action bar overflow area, so
+  that users who may be unable to use the swipe gesture can trigger a manual
+  update with an external device.
+</p>
+
+<h2 id="AddSwipeWidget">Add the SwipeRefreshLayout Widget</h2>
+<p>
+  To add the swipe to refresh widget to an existing app, add {@link
+  android.support.v4.widget.SwipeRefreshLayout} as the parent
+  of a single {@link android.widget.ListView} or {@link
+  android.widget.GridView}. Remember that {@link
+  android.support.v4.widget.SwipeRefreshLayout} only supports a single {@link
+  android.widget.ListView} or {@link android.widget.GridView} child.
+</p>
+
+<p>
+  The following example demonstrates how to add the {@link
+  android.support.v4.widget.SwipeRefreshLayout} widget to an existing layout
+  file containing a {@link android.widget.ListView}:
+</p>
+
+<pre>&lt;android.support.v4.widget.SwipeRefreshLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="&#64;+id/swiperefresh"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"&gt;
+
+    &lt;ListView
+        android:id="&#64;android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" /&gt;
+
+&lt;/android.support.v4.widget.SwipeRefreshLayout&gt;</pre>
+
+<p>
+  You can also use the {@link android.support.v4.widget.SwipeRefreshLayout}
+  widget with a {@link android.support.v4.app.ListFragment}. If the layout
+  contains a {@link android.widget.ListView} with the ID
+  <code>"@android:id/list"</code>, the swipe-to-refresh functionality is
+  automatically supported. However, explicitly declaring the {@link
+  android.widget.ListView} in this way supersedes the default {@link
+  android.support.v4.app.ListFragment} view structure. If you want to use the
+  default view structure, you will have to override parts of the {@link
+  android.support.v4.widget.SwipeRefreshLayout} and {@link
+  android.support.v4.app.ListFragment} behavior. For an example of how to do
+  this, see the <a href=
+  "{@docRoot}samples/SwipeRefreshListFragment/index.html">SwipeRefreshListFragment</a>
+  sample app.
+</p>
+
+<h2 id="AddRefreshAction">Add a Refresh Action to the Action Bar</h2>
+
+<p>
+  You should add a refresh action to your app's action bar to ensure that
+  users who may not be able to perform a swipe gesture can still trigger a
+  manual update. For example, users with accessibility issues can trigger
+  action bar actions using external devices, such as keyboards and D-pads.
+</p>
+
+<p>
+  You should add the refresh action as a menu item,
+  rather than as a button, by setting the attribute
+  <code>android:showAsAction=never</code>. If you display the action as a
+  button, users may assume that the refresh button action is different from the
+  swipe-to-refresh action. By making the refresh action less conspicuous in the
+  action bar, you can encourage users to perform manual updates with the swipe
+  gesture while still maintaining the accessible option in a place where D-pad
+  users would look for it.
+</p>
+
+<p>
+  The following code demonstrates how to add the swipe-to-refresh action to the
+  overflow area:
+</p>
+
+<pre>&lt;menu xmlns:android="http://schemas.android.com/apk/res/android" &gt;
+    &lt;item
+        android:id="&#64;+id/menu_refresh"
+        android:showAsAction="never"
+        android:title="&#64;string/menu_refresh"/&gt;
+&lt;/menu&gt;</pre>
diff --git a/docs/html/training/swipe/images/swipe.mp4 b/docs/html/training/swipe/images/swipe.mp4
new file mode 100644
index 0000000..cd5c511
--- /dev/null
+++ b/docs/html/training/swipe/images/swipe.mp4
Binary files differ
diff --git a/docs/html/training/swipe/images/swipe_original.mp4 b/docs/html/training/swipe/images/swipe_original.mp4
new file mode 100644
index 0000000..abdf08f
--- /dev/null
+++ b/docs/html/training/swipe/images/swipe_original.mp4
Binary files differ
diff --git a/docs/html/training/swipe/index.jd b/docs/html/training/swipe/index.jd
new file mode 100644
index 0000000..17b4cf7
--- /dev/null
+++ b/docs/html/training/swipe/index.jd
@@ -0,0 +1,91 @@
+page.title=Supporting Swipe-to-Refresh
+trainingnavtop=true
+startpage=true
+
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>Dependencies and prerequisites</h2>
+<ul>
+  <li>Android 1.6 (API level 4) or later
+  </li>
+
+  <li>Latest version of the Android v4 <a href=
+  "{@docRoot}tools/support-library/index.html">Support Library</a>
+  </li>
+</ul>
+
+<h2>Sample Apps</h2>
+
+<ul>
+    <li><a href="{@docRoot}samples/SwipeRefreshLayoutBasic/index.html">
+            SwipeRefreshLayoutBasic</a></li>
+    <li><a href="{@docRoot}samples/SwipeRefreshListFragment/index.html">
+            SwipeRefreshListFragment</a></li>
+    <li><a href="{@docRoot}samples/SwipeRefreshMultipleViews/index.html">
+            SwipeRefreshMultipleViews</a></li>
+</ul>
+
+</div>
+</div>
+
+<p>
+  Even if your app automatically updates its content on a regular basis, you
+  can allow users to request manual updates as well. For example, a weather
+  forecasting app can allow users get the latest forecasts on demand. To
+  provide a standard user experience for requesting updates, the Android
+  platform includes the swipe-to-refresh design pattern, which allows users
+  to trigger an update with a vertical swipe.
+</p>
+
+<p class="note">
+  <strong>Note:</strong> This class requires the latest version of the Android
+  v4 Support Library APIs. If you have not used the Support Library before,
+  follow the instructions in the <a href=
+  "{@docRoot}tools/support-library/setup.html">Support Library Setup</a>
+  document.
+</p>
+
+<h2>Lessons</h2>
+
+<dl>
+  <dt>
+    <b><a href="add-swipe-interface.html">Adding Swipe-to-Refresh To Your
+    App</a></b>
+  </dt>
+
+  <dd>
+    <div style="width:290px;margin-right:35px;float:right">
+      <div class="framed-nexus5-port-span-5">
+        <video class="play-on-hover" autoplay alt=
+        "When the user performs a swipe gesture, the SwipeRefreshLayout widget displays a progress indicator until your app finishes updating its data.">
+        <!-- Preferred video size 216x384 (portrait) -->
+          <source src="images/swipe.mp4">
+        </video>
+      </div>
+
+      <div style="font-size:10pt;margin-left:20px;margin-bottom:30px">
+        <em>To replay the movie, click on the device screen</em>
+      </div>
+    </div>
+  </dd>
+
+  <dd>
+    Learn how to provide swipe-to-refresh support in a {@link
+    android.widget.ListView} or {@link android.widget.GridView}, and how to
+    provide an accessible refresh option using the action bar.
+  </dd>
+
+  <dt>
+    <b><a href="respond-refresh-request.html">Responding to a Refresh
+    Request</a></b>
+  </dt>
+
+  <dd>
+    Learn how to respond to the swipe-to-refresh gesture, and how to perform the
+    same update from an action bar action.
+  </dd>
+</dl>
diff --git a/docs/html/training/swipe/respond-refresh-request.jd b/docs/html/training/swipe/respond-refresh-request.jd
new file mode 100644
index 0000000..243b4a3
--- /dev/null
+++ b/docs/html/training/swipe/respond-refresh-request.jd
@@ -0,0 +1,158 @@
+page.title=Responding to a Refresh Request
+
+trainingnavtop=true
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<!-- table of contents -->
+<h2>This lesson teaches you to</h2>
+<ol>
+  <li><a href="#RespondRefresh">Respond to the Refresh Gesture</a></li>
+  <li><a href="#RespondAction">Respond to the Refresh Action</a>
+</ol>
+
+<h2>Sample App</h2>
+
+<ul>
+    <li><a href="{@docRoot}samples/SwipeRefreshLayoutBasic/index.html">
+            SwipeRefreshLayoutBasic</a></li>
+</ul>
+
+
+</div>
+</div>
+
+<p>
+  This lesson shows you how to update your app when the user requests a manual
+  refresh, whether the user triggers the refresh with a swipe gesture or by
+  using the action bar refresh action.
+</p>
+
+<h2 id="RespondRefresh">Respond to the Refresh Gesture</h2>
+
+<p>
+  When the user makes a swipe gesture, the system displays the progress
+  indicator and calls your app's callback method. Your callback method is
+  responsible for actually updating the app's data.
+</p>
+
+<p>
+  To respond to the refresh gesture in your app, implement the {@link
+  android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener} interface and
+  its {@link
+  android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener#onRefresh
+  onRefresh()} method. The {@link
+  android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener#onRefresh
+  onRefresh()} method is invoked when the user performs a swipe gesture.
+</p>
+
+<p>
+  You should put the code for the actual update
+  operation in a separate method, and call that update method from your {@link
+  android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener#onRefresh
+  onRefresh()} implementation. That way, you can use the same update method to
+  perform the update when the user triggers a refresh from the action bar.
+</p>
+
+<p>
+  Your update method calls {@link
+  android.support.v4.widget.SwipeRefreshLayout#setRefreshing
+  setRefreshing(false)} when it has finished updating the data. Calling this
+  method instructs the {@link android.support.v4.widget.SwipeRefreshLayout} to
+  remove the progress indicator and update the view contents.
+</p>
+
+<p>
+  For example, the following code implements {@link
+  android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener#onRefresh
+  onRefresh()} and invokes the method {@code myUpdateOperation()} to update the
+  data displayed by the {@link android.widget.ListView}:
+</p>
+
+<pre>/*
+ * Sets up a SwipeRefreshLayout.OnRefreshListener that is invoked when the user
+ * performs a swipe-to-refresh gesture.
+ */
+mySwipeRefreshLayout.setOnRefreshListener(
+    new SwipeRefreshLayout.OnRefreshListener() {
+        &#64;Override
+        public void onRefresh() {
+            Log.i(LOG_TAG, "onRefresh called from SwipeRefreshLayout");
+
+            // This method performs the actual data-refresh operation.
+            // The method calls setRefreshing(false) when it's finished.
+            myUpdateOperation();
+        }
+    }
+);</pre>
+
+<h2 id="RespondAction">Respond to the Refresh Action</h2>
+
+<p>
+  If the user requests a refresh by using the action bar, the system calls the
+  {@link android.support.v4.app.Fragment#onOptionsItemSelected
+  onOptionsItemSelected()} method. Your app should respond to this call by
+  displaying the progress indicator and refreshing the app's data.
+</p>
+
+<p>
+  To respond to the refresh action, override {@link
+  android.support.v4.app.Fragment#onOptionsItemSelected
+  onOptionsItemSelected()}. In your override method, trigger the {@link
+  android.support.v4.widget.SwipeRefreshLayout} progress indicator by calling
+  {@link android.support.v4.widget.SwipeRefreshLayout#setRefreshing
+  setRefreshing()} with the value {@code true}, then perform the update
+  operation. Once again, you should be doing the actual update in a separate
+  method, so the same method can be called whether the user triggers the update
+  with a swipe or by using the action bar. When the update has finished, call
+  {@link android.support.v4.widget.SwipeRefreshLayout#setRefreshing
+  setRefreshing(false)} to remove the refresh progress indicator.
+</p>
+
+<p>The following code shows how to respond to the request action:
+</p>
+
+<pre>/*
+ * Listen for option item selections so that we receive a notification
+ * when the user requests a refresh by selecting the refresh action bar item.
+ */
+&#64;Override
+public boolean onOptionsItemSelected(MenuItem item) {
+    switch (item.getItemId()) {
+
+        // Check if user triggered a refresh:
+        case R.id.menu_refresh:
+            Log.i(LOG_TAG, "Refresh menu item selected");
+
+            // Signal SwipeRefreshLayout to start the progress indicator
+            mySwipeRefreshLayout.setRefreshing(true);
+
+            // Start the refresh background task.
+            // This method calls setRefreshing(false) when it's finished.
+            myUpdateOperation();
+
+            return true;
+    }
+
+    // User didn't trigger a refresh, let the superclass handle this action
+    return super.onOptionsItemSelected(item);
+
+}</pre>
+
+<p class="note">
+  <strong>Note:</strong> When the user triggers a refresh with a swipe action as
+  described in <a href="#RespondRefresh">Respond to the Refresh Gesture</a>,
+  you do not need to call {@link
+  android.support.v4.widget.SwipeRefreshLayout#setRefreshing setRefreshing()}.
+  The {@link
+  android.support.v4.widget.SwipeRefreshLayout} widget takes care of displaying
+  the progress indicator and removing it when the update has finished. However,
+  if the update is triggered by any means <em>other than</em> a swipe gesture,
+  you need to explicitly turn the progress indicator on with {@link
+  android.support.v4.widget.SwipeRefreshLayout#setRefreshing setRefreshing()}.
+  The method which actually refreshes the data calls {@link
+  android.support.v4.widget.SwipeRefreshLayout#setRefreshing
+  setRefreshing(false)} to signal that the update is finished.
+</p>
diff --git a/docs/html/training/testing/ui-testing/index.jd b/docs/html/training/testing/ui-testing/index.jd
index 20422f7..d660c60 100644
--- a/docs/html/training/testing/ui-testing/index.jd
+++ b/docs/html/training/testing/ui-testing/index.jd
@@ -72,5 +72,5 @@
     <dd>Learn how to test UI in a single app by using the Espresso testing framework.</dd>
   <dt><strong><a href="uiautomator-testing.html">
 Testing UI for Multiple Apps</a></strong></dt>
-    <dd>Learn how to test UI in multiple apps by using the UI Automator testing framework</dd>
+    <dd>Learn how to test UI in multiple apps by using the UI Automator testing framework.</dd>
 </dl>
\ No newline at end of file
diff --git a/docs/html/training/testing/unit-testing/index.jd b/docs/html/training/testing/unit-testing/index.jd
new file mode 100644
index 0000000..a35ba80
--- /dev/null
+++ b/docs/html/training/testing/unit-testing/index.jd
@@ -0,0 +1,63 @@
+page.title=Building Effective Unit Tests
+page.tags=testing,androidjunitrunner,junit,unit test
+
+trainingnavtop=true
+startpage=true
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+        <h2>
+          You should also read
+        </h2>
+        <ul>
+          <li>
+            <a href="{@docRoot}tools/testing-support-library/index.html">Testing Support Library</a>
+          </li>
+        </ul>
+</div>
+</div>
+
+<p>Unit tests are the fundamental tests in your app testing strategy. By creating and running unit
+tests against your code, you can easily verify that the logic of individual units is correct.
+Running unit tests after every build helps you to
+quickly catch and fix software regressions introduced by code changes to your app.
+</p>
+
+<p>A unit test generally exercises the functionality of the smallest possible unit of code (which
+could be a method, class, or component) in a repeatable way. You should build unit tests when you
+need to verify the logic of specific code in your app. For example, if you are unit testing a
+class, your test might check that the class is in the right state. Typically, the unit of code
+is tested in isolation; your test affects and monitors changes to that unit only. A
+<a href="http://en.wikipedia.org/wiki/Mock_object" class="external-link">mocking framework</a>
+can be used to isolate your unit from its dependencies.</p>
+
+<p class="note"><strong>Note:</strong> Unit tests are not suitable for testing
+complex UI interaction events. Instead, you should use the UI testing frameworks, as described in
+<a href="{@docRoot}training/testing/ui-testing/index.html">Automating UI Tests</a>.</p>
+
+<p>For testing Android apps, you typically create these types of automated unit tests:</p>
+
+<ul>
+<li><strong>Local tests:</strong> Unit tests that run on your local machine only. These tests are
+compiled to run locally on the Java Virtual Machine (JVM) to minimize execution time. Use this
+approach to run unit tests that have no dependencies on the Android framework or have dependencies
+that can be filled by using mock objects.</li>
+<li><strong>Instrumented tests:</strong> Unit tests that run on an Android device or emulator.
+These tests have access to instrumentation information, such as the
+{@link android.content.Context} for the app under test. Use this approach to run unit tests that
+have Android dependencies which cannot be easily filled by using mock objects.</li>
+</ul>
+
+<p>The lessons in this class teach you how to build these types of automated unit tests.</p>
+
+<h2>Lessons</h2>
+<dl>
+  <dt><strong><a href="local-unit-tests.html">
+Building Local Unit Tests</a></strong></dt>
+    <dd>Learn how to build unit tests that run on your local machine.</dd>
+  <dt><strong><a href="instrumented-unit-tests.html">
+Building Instrumented Unit Tests</a></strong></dt>
+    <dd>Learn how to build unit tests that run on an Android device or emulator.</dd>
+</dl>
\ No newline at end of file
diff --git a/docs/html/training/testing/unit-testing/instrumented-unit-tests.jd b/docs/html/training/testing/unit-testing/instrumented-unit-tests.jd
new file mode 100644
index 0000000..07f0f739
--- /dev/null
+++ b/docs/html/training/testing/unit-testing/instrumented-unit-tests.jd
@@ -0,0 +1,250 @@
+page.title=Building Instrumented Unit Tests
+page.tags=testing,androidjunitrunner,junit,unit test,mock,instrumentation
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+  <h2>Dependencies and Prerequisites</h2>
+
+  <ul>
+    <li>Android 2.2 (API level 8) or higher</li>
+    <li><a href="{@docRoot}tools/testing-support-library/index.html">
+      Android Testing Support Library</a></li>
+  </ul>
+
+  <h2>This lesson teaches you to</h2>
+
+  <ol>
+    <li><a href="#setup">Set Up Your Testing Environment</a></li>
+    <li><a href="#build">Create a Instrumented Unit Test Class</a></li>
+    <li><a href="#run">Run Instrumented Unit Tests</a></li>
+  </ol>
+
+  <h2>Try it out</h2>
+
+  <ul>
+    <li>
+<a href="https://github.com/googlesamples/android-testing/tree/master/unittesting/BasicUnitAndroidTest"
+class="external-link">Instrumented Unit Tests Code Samples</a></li>
+  </ul>
+</div>
+</div>
+
+<p>
+Instrumented unit tests are unit tests that run on physical devices and emulators, instead of
+the Java Virtual Machine (JVM) on your local machine. You should create instrumented unit tests
+if your tests need access to instrumentation information (such as the target app's
+{@link android.content.Context}) or if they require the real implementation of an Android framework
+component (such as a {@link android.os.Parcelable} or {@link android.content.SharedPreferences}
+object). Using instrumented unit tests also helps to reduce the effort required to write and
+maintain mock code. You are still free to use a mocking framework, if you choose, to simulate any
+dependency relationships. Instrumented unit tests can take advantage of the Android framework APIs
+and supporting APIs, such as the Android Testing Support Library.
+</p>
+
+<h2 id="setup">Set Up Your Testing Environment</h2>
+<p>Before building instrumented unit tests, you must:</p>
+
+  <ul>
+      <li>
+        <strong>Install the Android Testing Support Library</strong>. The
+        <a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+        {@code AndroidJUnitRunner}</a> API, located under the
+        {@code com.android.support.test.runner} package, allows you to
+        create and run instrumented unit tests.  To learn how to install the
+        library, see <a href="{@docRoot}tools/testing-support-library/index.html#setup">
+        Testing Support Library Setup</a>.
+      </li>
+
+      <li>
+        <strong>Set up your project structure.</strong> In your Gradle project, the source code for
+        the target app that you want to test is typically placed under the {@code app/src/main/java}
+        folder. The source code for instrumentatation tests, including your unit tests, must be
+        placed under the <code>app/src/androidTest/java</code> folder.
+        To learn more about setting up your project directory, see
+        <a href="{@docRoot}tools/projects/index.html">Managing Projects</a>.
+      </li>
+
+      <li>
+        <strong>Specify your Android testing dependencies</strong>. In order for the
+        <a href="{@docRoot}tools/building/plugin-for-gradle.html">Android Plug-in for Gradle</a> to
+        correctly build and run your instrumented unit tests, you must specify the following
+        libraries in the {@code build.gradle} file of your Android app module:
+
+        <pre>
+dependencies {
+    androidTestCompile 'com.android.support.test:runner:0.2'
+    androidTestCompile 'com.android.support.test:rules:0.2'
+    // Set this dependency if you want to use Hamcrest matching
+    androidTestCompile 'org.hamcrest:hamcrest-library:1.1'
+}
+</pre>
+      </li>
+  </ul>
+
+<h2 id="build">Create an Instrumented Unit Test Class</h2>
+<p>
+Your instrumented unit test class should be written as a JUnit 4 test class. To learn more about
+creating JUnit 4 test classes and using JUnit 4 assertions and annotations, see
+<a href="local-unit-tests.html#build">Create a Local Unit Test Class</a>.
+</p>
+<p>To create an instrumented JUnit 4 test class, add the {@code &#64;RunWith(AndroidJUnit4.class)}
+annotation at the beginning of your test class definition. You also need to specify the
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a> class
+provided in the Android Testing Support Library as your default test runner. This step is described
+in more detail in <a href="#run">Run Instrumented Unit Tests</a>.
+</p>
+
+<p>The following example shows how you might write an instrumented unit test to test that
+the {@link android.os.Parcelable} interface is implemented correctly for the
+{@code LogHistory} class:</p>
+
+<pre>
+import android.os.Parcel;
+import android.support.test.runner.AndroidJUnit4;
+import android.util.Pair;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import java.util.List;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+
+&#64;RunWith(AndroidJUnit4.class)
+public class LogHistoryAndroidUnitTest {
+
+    public static final String TEST_STRING = "This is a string";
+    public static final long TEST_LONG = 12345678L;
+    private LogHistory mLogHistory;
+
+    &#64;Before
+    public void createLogHistory() {
+        mLogHistory = new LogHistory();
+    }
+
+    &#64;Test
+    public void logHistory_ParcelableWriteRead() {
+        // Set up the Parcelable object to send and receive.
+        mLogHistory.addEntry(TEST_STRING, TEST_LONG);
+
+        // Write the data.
+        Parcel parcel = Parcel.obtain();
+        mLogHistory.writeToParcel(parcel, mLogHistory.describeContents());
+
+        // After you're done with writing, you need to reset the parcel for reading.
+        parcel.setDataPosition(0);
+
+        // Read the data.
+        LogHistory createdFromParcel = LogHistory.CREATOR.createFromParcel(parcel);
+        List&lt;Pair&lt;String, Long&gt;&gt; createdFromParcelData = createdFromParcel.getData();
+
+        // Verify that the received data is correct.
+        assertThat(createdFromParcelData.size(), is(1));
+        assertThat(createdFromParcelData.get(0).first, is(TEST_STRING));
+        assertThat(createdFromParcelData.get(0).second, is(TEST_LONG));
+    }
+}
+</pre>
+
+<h3 id="test-suites">Creating a test suite</h3>
+<p>
+To organize the execution of your instrumented unit tests, you can group a collection of test
+classes in a <em>test suite</em> class and run these tests together. Test suites can be nested;
+your test suite can group other test suites and run all their component test classes together.
+</p>
+
+<p>
+A test suite is contained in a test package, similar to the main application package. By
+convention, the test suite package name usually ends with the {@code .suite} suffix (for example,
+{@code com.example.android.testing.mysample.suite}).
+</p>
+
+<p>
+To create a test suite for your unit tests, import the JUnit
+<a href="http://junit.sourceforge.net/javadoc/org/junit/runner/RunWith.html"
+class="external-link">{@code RunWith}</a> and
+<a href="http://junit.sourceforge.net/javadoc/org/junit/runners/Suite.html"
+class="external-link">{@code Suite}</a> classes. In your test suite, add the
+{@code &#64;RunWith(Suite.class)} and the {@code &#64;Suite.SuitClasses()} annotations. In
+the {@code &#64;Suite.SuiteClasses()} annotation, list the individual test classes or test
+suites as arguments.
+</p>
+
+<p>
+The following example shows how you might implement a test suite called {@code UnitTestSuite}
+that groups and runs the {@code CalculatorInstrumentationTest} and
+{@code CalculatorAddParameterizedTest} test classes together.
+</p>
+
+<pre>
+import com.example.android.testing.mysample.CalculatorAddParameterizedTest;
+import com.example.android.testing.mysample.CalculatorInstrumentationTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+// Runs all unit tests.
+&#64;RunWith(Suite.class)
+&#64;Suite.SuiteClasses({CalculatorInstrumentationTest.class,
+        CalculatorAddParameterizedTest.class})
+public class UnitTestSuite {}
+</pre>
+
+<h2 id="run">Run Instrumented Unit Tests</h2>
+<p>
+The
+<a href="https://developer.android.com/tools/building/plugin-for-gradle.html">
+  Android Plug-in for Gradle</a>
+provides a default directory ({@code src/androidTest/java}) for you to store the instrumented unit
+and integration test classes and test suites that you want to run on a device. The plug-in compiles
+the test code in that directory and then executes the test app using a test runner class. You must
+set the
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a> class provided in the
+<a href="{@docRoot}tools/testing-support-library/index.html">Android Testing Support Library</a>
+as your default test runner.</p>
+</p>
+
+<p>To specify
+<a href="{@docRoot}reference/android/support/test/runner/AndroidJUnitRunner.html">
+{@code AndroidJUnitRunner}</a> as the default test instrumentation runner, add the following
+setting in your {@code build.gradle} file:</p>
+<pre>
+android {
+    defaultConfig {
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+    }
+}
+</pre>
+
+<h3 id="run-from-Android-Studio">Running instrumented unit tests from Android Studio</h3>
+<p>
+To run instrumented unit tests in your Gradle project from Android Studio:
+</p>
+<ol>
+<li>Open the <strong>Build Variants</strong> window by clicking the left-hand tab, then set the
+test artifact to <em>Android Instrumentation Tests</em>.
+</li>
+<li>In the <strong>Project</strong> window, drill down to your unit test class or method, then
+  right-click and run it using the Android Test configuration.
+</li>
+</ol>
+
+<p>Android Studio displays the results of the unit test execution in the <strong>Run</strong>
+window.</p>
+
+<h3 id="run-from-commandline">Running instrumented unit tests from the command-line</h3>
+
+<p>To run instrumented unit tests in your Gradle project from the command-line, call the
+  {@code connectedCheck} (or {@code cC}) task:</p>
+
+<pre>
+./gradlew cC
+</pre>
+
+<p>You can find the generated HTML test result reports in the
+{@code &lt;path_to_your_project&gt;/app/build/outputs/reports/androidTests/connected/} directory,
+and the corresponding XML files in the
+{@code &lt;path_to_your_project&gt;/app/build/outputs/androidTest-results/connected/} directory.</p>
\ No newline at end of file
diff --git a/docs/html/training/testing/unit-testing/local-unit-tests.jd b/docs/html/training/testing/unit-testing/local-unit-tests.jd
new file mode 100644
index 0000000..421709b
--- /dev/null
+++ b/docs/html/training/testing/unit-testing/local-unit-tests.jd
@@ -0,0 +1,302 @@
+page.title=Building Local Unit Tests
+page.tags=testing,androidjunitrunner,junit,unit test,mock
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+  <h2>Dependencies and Prerequisites</h2>
+
+  <ul>
+    <li>Android Plug-in for Gradle 1.1.0 or higher</li>
+  </ul>
+
+  <h2>This lesson teaches you to</h2>
+
+  <ol>
+    <li><a href="#setup">Set Up Your Testing Environment</a></li>
+    <li><a href="#build">Create a Local Unit Test Class</a></li>
+    <li><a href="#run">Run Local Unit Tests</a></li>
+  </ol>
+
+  <h2>Try it out</h2>
+
+  <ul>
+    <li>
+<a href="https://github.com/googlesamples/android-testing/tree/master/unittesting/BasicSample"
+class="external-link">Local Unit Tests Code Samples</a></li>
+  </ul>
+</div>
+</div>
+
+<p>If your unit test has no dependencies or only has simple dependencies on Android, you should run
+your test on a local development machine. This testing approach is efficient because it helps
+you avoid the overhead of loading the target app and unit test code onto a physical device or
+emulator every time your test is run. Consequently, the execution time for running your unit
+test is greatly reduced. With this approach, you normally use a mocking framework, like
+<a href="https://code.google.com/p/mockito/" class="external-link">Mockito</a>, to fulfill any
+dependency relationships.</p>
+
+<p><a href="{@docRoot}tools/building/plugin-for-gradle.html">Android Plug-in for Gradle</a>
+version 1.1.0 and higher allows you to create a source directory ({@code src/test/java}) in your
+project to store JUnit tests that you want to run on a local machine. This feature improves your
+project organization by letting you group your unit tests together into a single source set. You
+can run the tests from Android Studio or the command-line, and the plugin executes them on the
+local Java Virtual Machine (JVM) on your development machine. </p>
+
+<h2 id="setup">Set Up Your Testing Environment</h2>
+<p>Before building local unit tests, you must:</p>
+
+  <ul>
+      <li>
+        <strong>Set up your project structure.</strong> In your Gradle project, the source code for
+        the target app that you want to test is typically placed under the {@code app/src/main/java}
+        folder. The source code for your local unit tests must be placed under the
+        <code>app/src/test/java</code> folder.
+        To learn more about setting up your project directory, see
+        <a href="#run">Run Local Unit Tests</a> and
+        <a href="{@docRoot}tools/projects/index.html">Managing Projects</a>.
+      </li>
+
+      <li>
+        <strong>Specify your Android testing dependencies</strong>. In order to use JUnit 4 and
+        Mockito with your local unit tests, specify the following libraries in
+        the {@code build.gradle} file of your Android app module:
+
+        <pre>
+dependencies {
+    // Unit testing dependencies
+    testCompile 'junit:junit:4.12'
+    // Set this dependency if you want to use Mockito
+    testCompile 'org.mockito:mockito-core:1.10.19'
+    // Set this dependency if you want to use Hamcrest matching
+    androidTestCompile 'org.hamcrest:hamcrest-library:1.1'
+}
+</pre>
+      </li>
+  </ul>
+
+<h2 id="build">Create a Local Unit Test Class</h2>
+<p>Your local unit test class should be written as a JUnit 4 test class.
+<a href="http://junit.org/" class="external-link">JUnit</a> is the most popular
+and widely-used unit testing framework for Java. The latest version of this framework, JUnit 4,
+allows you to write tests in a cleaner and more flexible way than its predecessor versions. Unlike
+the previous approach to Android unit testing based on JUnit 3, with JUnit 4, you do not need to
+extend the {@code junit.framework.TestCase} class. You also do not need to prefix your test method
+name with the {@code ‘test’} keyword, or use any classes in the {@code junit.framework} or
+{@code junit.extensions} package.</p>
+
+<p>To create a basic JUnit 4 test class, create a Java class that contains one or more test methods.
+A test method begins with the {@code &#64;Test} annotation and contains the code to exercise
+and verify a single functionality in the component that you want to test.</p>
+
+<p>The following example shows how you might implement a local unit test class. The test method
+{@code emailValidator_CorrectEmailSimple_ReturnsTrue} verifies that the {@code isValidEmail()}
+method in the app under test returns the correct result.</p>
+
+<pre>
+import org.junit.Test;
+import java.util.regex.Pattern;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class EmailValidatorTest {
+
+    &#64;Test
+    public void emailValidator_CorrectEmailSimple_ReturnsTrue() {
+        assertThat(EmailValidator.isValidEmail("name&#64;email.com"), is(true));
+    }
+    ...
+}
+</pre>
+
+<p>To test that components in your app return the expected results, use the
+<a href="http://junit.org/javadoc/latest/org/junit/Assert.html" class="external-link">
+junit.Assert</a> methods to perform validation checks (or <em>assertions</em>) to compare the state
+of the component under test against some expected value. To make tests more readable, you
+can use <a href="https://code.google.com/p/hamcrest/wiki/Tutorial" class="external-link">
+Hamcrest matchers</a> (such as the {@code is()} and {@code equalTo()} methods) to match the
+returned result against the expected result.</p>
+
+<p>In your JUnit 4 test class, you can use annotations to call out sections in your test code for
+special processing, such as:</p>
+
+<ul>
+<li>
+{@code &#64;Before}: Use this annotation to specify a block of code with test setup operations. This
+code block will be invoked before each test. You can have multiple {@code &#64;Before} methods but
+the order which these methods are called is not fixed.
+</li>
+<li>
+{@code &#64;After}: This annotation specifies a block of code with test tear-down operations. This
+code block will be called after every test method. You can define multiple {@code &#64;After}
+operations in your test code. Use this annotation to release any resources from memory.
+</li>
+<li>
+{@code &#64;Test}: Use this annotation to mark a test method. A single test class can contain
+multiple test methods, each prefixed with this annotation.
+</li>
+<li>
+{@code &#64;BeforeClass}: Use this annotation to specify static methods to be invoked only once per
+test class. This testing step is useful for expensive operations such as connecting to a database.
+</li>
+<li>
+{@code &#64;AfterClass}: Use this annotation to specify static methods to be invoked only after all
+tests in the class have been run. This testing step is useful for releasing any resources allocated
+in the {@code &#64;BeforeClass} block.
+</li>
+<li>
+{@code &#64;Test(timeout=&lt;milliseconds&gt;)}: Specifies a timeout period for the test. If the
+test starts but does not complete within the given timeout period, it automatically fails. You must
+specify the timeout period in milliseconds, for example: {@code &#64;Test(timeout=5000)}.
+</li>
+</ul>
+
+<h3 id="mocking-dependencies">Mocking Android dependencies</h3>
+<p>
+By default, the <a href="{@docRoot}tools/building/plugin-for-gradle.html">
+Android Plug-in for Gradle</a> executes your local unit tests against a modified
+version of the {@code android.jar} library, which does not contain any actual code. Instead, method
+calls to Android classes from your unit test throw an exception.
+</p>
+<p>
+You can use a mocking framework to stub out external dependencies in your code, to easily test that
+your component interacts with a dependency in an expected way. By substituting Android dependencies
+with mock objects, you can isolate your unit test from the rest of the Android system while
+verifying that the correct methods in those dependencies are called. The
+<a href="https://code.google.com/p/mockito/" class="external-link">Mockito</a> mocking framework
+for Java (version 1.9.5 and higher) offers compatibility with Android unit testing.
+With Mockito, you can configure mock objects to return some specific value when invoked.</p>
+
+<p>To add a mock object to your local unit test using this framework, follow this programming model:
+</p>
+
+<ol>
+<li>
+Include the Mockito library dependency in your {@code build.gradle} file, as described in
+<a href="#setup">Set Up Your Testing Environment</a>.
+</li>
+<li>At the beginning of your unit test class definition, add the
+{@code &#64;RunWith(MockitoJUnitRunner.class)} annotation. This annotation tells the Mockito test
+runner to validate that your usage of the framework is correct and simplifies the initialization of
+your mock objects.
+</li>
+<li>To create a mock object for an Android dependency, add the {@code &#64;Mock} annotation before
+the field declaration.</li>
+<li>To stub the behavior of the dependency, you can specify a condition and return
+value when the condition is met by using the {@code when()} and {@code thenReturn()} methods.
+</li>
+</ol>
+
+<p>
+The following example shows how you might create a unit test that uses a mock
+{@link android.content.Context} object.
+</p>
+
+<pre>
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.CoreMatchers.*;
+import static org.mockito.Mockito.*;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import android.content.SharedPreferences;
+
+&#64;RunWith(MockitoJUnitRunner.class)
+public class UnitTestSample {
+
+    private static final String FAKE_STRING = "HELLO WORLD";
+
+    &#64;Mock
+    Context mMockContext;
+
+    &#64;Test
+    public void readStringFromContext_LocalizedString() {
+        // Given a mocked Context injected into the object under test...
+        when(mMockContext.getString(R.string.hello_word))
+                .thenReturn(FAKE_STRING);
+        ClassUnderTest myObjectUnderTest = new ClassUnderTest(mMockContext);
+
+        // ...when the string is returned from the object under test...
+        String result = myObjectUnderTest.getHelloWorldString();
+
+        // ...then the result should be the expected one.
+        assertThat(result, is(FAKE_STRING));
+    }
+}
+</pre>
+
+<p>
+To learn more about using the Mockito framework, see the
+<a href="http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html"
+class="external-link">Mockito API reference</a> and the
+{@code SharedPreferencesHelperTest} class in the
+<a href="https://github.com/googlesamples/android-testing/tree/master/unittesting/BasicSample"
+class="external-link">sample code</a>.
+</p>
+
+<h2 id="run">Run Local Unit Tests</h2>
+<p>
+The Android Plug-in for Gradle provides a default directory ({@code src/test/java}) for you to
+store unit test classes that you want to run on a local JVM. The plug-in compiles the test code in
+that directory and then executes the test app locally using the default test runner class.
+</p>
+<p>
+As with production code, you can create unit tests for a
+<a href="http://developer.android.com/tools/building/configuring-gradle.html#workBuildVariants"
+class="external-link">specific flavor or build type</a>. You should keep unit tests in a test
+source tree location that corresponds to your production source tree, such as:
+
+<table>
+<tr>
+<th>Path to Production Class</th>
+<th>Path to Local Unit Test Class</th>
+</tr>
+<tr>
+<td>{@code src/main/java/Foo.java}</td>
+<td>{@code src/test/java/FooTest.java}</td>
+</tr>
+<tr>
+<td>{@code src/debug/java/Foo.java}</td>
+<td>{@code src/testDebug/java/FooTest.java}</td>
+</tr>
+<tr>
+<td>{@code src/myFlavor/java/Foo.java}</td>
+<td>{@code src/testMyFlavor/java/FooTest.java}</td>
+</tr>
+</table>
+
+<h3 id="run-from-Android-Studio">Running local unit tests from Android Studio</h3>
+<p>
+To run local unit tests in your Gradle project from Android Studio:
+</p>
+<ol>
+<li>In the <strong>Project</strong> window, right click on the project and synchronize your project.
+</li>
+<li>Open the <strong>Build Variants</strong> window by clicking the left-hand tab, then change the
+test artifact to <em>Unit Tests</em>.
+</li>
+<li>In the <strong>Project</strong> window, drill down to your unit test class or method, then
+right-click and run it.
+</li>
+</ol>
+
+<p>Android Studio displays the results of the unit test execution in the <strong>Run</strong>
+window.</p>
+
+<h3 id="run-from-commandline">Running local unit tests from the command-line</h3>
+
+<p>To run local unit tests in your Gradle project from the command-line, call the {@code test} task
+command with the {@code --continue} option.</p>
+
+<pre>
+./gradlew test --continue
+</pre>
+
+<p>If there are failing tests, the command will display links to HTML reports (one per build
+variant). You can find the generated HTML test result reports in the
+{@code &lt;path_to_your_project&gt;/app/build/reports/tests/} directory, and the corresponding XML
+files in the {@code &lt;path_to_your_project&gt;/app/build/test-results/} directory.</p>
\ No newline at end of file
diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs
index 3ee7ab7..79f0cee 100644
--- a/docs/html/training/training_toc.cs
+++ b/docs/html/training/training_toc.cs
@@ -1195,7 +1195,24 @@
               </li>
           </ul>
       </li>
-
+      <li class="nav-section">
+        <div class="nav-section-header">
+            <a href="<?cs var:toroot ?>training/swipe/index.html"
+            description=
+            "How to modify your app's layout to support manual content updates triggered by the
+             swipe-to-refresh gesture."
+            >Supporting Swipe-to-Refresh</a>
+        </div>
+        <ul>
+            <li>
+                <a href="<?cs var:toroot ?>training/swipe/add-swipe-interface.html"
+                >Adding Swipe-to-Refresh To Your App</a></li>
+            <li>
+                <a href="<?cs var:toroot ?>training/swipe/respond-refresh-request.html"
+                >Responding to a Refresh Gesture</a>
+            </li>
+        </ul>
+      </li>
       <li class="nav-section">
         <div class="nav-section-header">
           <a href="<?cs var:toroot ?>training/search/index.html"
@@ -1611,20 +1628,11 @@
     </ul>
   </li> <!-- end of Background Jobs -->
 
-  <li class="nav-section">
-    <div class="nav-section-header">
-      <a href="<?cs var:toroot ?>training/best-performance.html">
-      <span class="small">Best Practices for</span><br/>
-              Performance
-      </a>
-    </div>
-    <ul>
-
       <li>
         <a href="<?cs var:toroot ?>training/articles/memory.html"
-           description=
-           "How to keep your app's memory footprint small in order to improve performance
-           on a variety of mobile devices."
+          description=
+          "How to keep your app's memory footprint small in order to improve performance
+          on a variety of mobile devices."
           >Managing Your App's Memory</a>
       </li>
 
@@ -1858,6 +1866,24 @@
         </ul>
       </li>
     </ul>
+    <ul>
+      <li class="nav-section">
+      <div class="nav-section-header"><a href="<?cs var:toroot ?>training/testing/unit-testing/index.html"
+         description="How to build effective unit tests for Android apps.">
+            Building Effective Unit Tests
+          </a></div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>training/testing/unit-testing/local-unit-tests.html">
+            <span class="en">Building Local Unit Tests</span>
+            </a>
+          </li>
+          <li><a href="<?cs var:toroot ?>training/testing/unit-testing/instrumented-unit-tests.html">
+            <span class="en">Building Instrumented Unit Tests</span>
+            </a>
+          </li>
+        </ul>
+      </li>
+    </ul>
   </li>
   <!-- End best Testing -->
 
diff --git a/docs/html/training/tv/playback/index.jd b/docs/html/training/tv/playback/index.jd
index 0e9c5ec..e39e34a 100644
--- a/docs/html/training/tv/playback/index.jd
+++ b/docs/html/training/tv/playback/index.jd
@@ -42,7 +42,7 @@
   The Android framework provides classes for building user interfaces for these types of apps with
   the <a href="{@docRoot}tools/support-library/features.html#v17-leanback">v17 leanback support
   library</a>. This library provides a framework of classes for creating an efficient and familiar
-  interface for browsing and playing media files with minimal coding. The classes are designed
+  interface for browsing and playing media files with minimal coding. The classes are designed to
   be extended and customized so you can create an experience that is unique to your app.
 </p>