diff --git a/mojo/services/native_viewport/BUILD.gn b/mojo/services/native_viewport/BUILD.gn
index ed428c4..0935818 100644
--- a/mojo/services/native_viewport/BUILD.gn
+++ b/mojo/services/native_viewport/BUILD.gn
@@ -4,10 +4,25 @@
 
 import("//build/config/ui.gni")
 
-if (!is_android) {
+if (is_android) {
+  import("//build/config/android/config.gni")
+  import("//build/config/android/rules.gni")
+
+  android_library("native_viewport_java") {
+    java_files = [
+      "android/src/org/chromium/mojo/PlatformViewportAndroid.java",
+    ]
+
+    deps = [
+      "//base:base_java",
+    ]
+  }
+} else {
   shared_library("native_viewport") {
     output_name = "native_viewport_service"
 
+    sources = [ "main.cc" ]
+
     deps = [
       ":lib",
       "//base",
@@ -18,12 +33,34 @@
       "//mojo/services/public/cpp/native_viewport:args",
       "//ui/gl",
     ]
-
-    sources = [ "main.cc" ]
   }
 }
 
 source_set("lib") {
+  sources = [
+    "gpu_impl.cc",
+    "gpu_impl.h",
+    "native_viewport_impl.cc",
+    "native_viewport_impl.h",
+    "platform_viewport.h",
+    "platform_viewport_android.cc",
+    "platform_viewport_android.h",
+    "platform_viewport_mac.mm",
+    "platform_viewport_headless.cc",
+    "platform_viewport_headless.h",
+    "platform_viewport_win.cc",
+    "viewport_surface.cc",
+    "viewport_surface.h",
+  ]
+
+  if (is_ios) {
+    sources += [ "platform_viewport_stub.cc" ]
+  }
+
+  if (use_ozone) {
+    sources += [ "platform_viewport_ozone.cc" ]
+  }
+
   deps = [
     "//base",
     "//cc/surfaces",
@@ -47,39 +84,16 @@
     "//ui/platform_window",
   ]
 
-  sources = [
-    "gpu_impl.cc",
-    "gpu_impl.h",
-    "native_viewport_impl.cc",
-    "native_viewport_impl.h",
-    "platform_viewport.h",
-    "platform_viewport_android.cc",
-    "platform_viewport_android.h",
-    "platform_viewport_mac.mm",
-    "platform_viewport_headless.cc",
-    "platform_viewport_headless.h",
-    "platform_viewport_win.cc",
-    "viewport_surface.cc",
-    "viewport_surface.h",
-  ]
-
-  if (is_ios) {
-    sources += [ "platform_viewport_stub.cc" ]
-  }
-
   if (is_android) {
     deps += [ "//mojo:jni_headers" ]
   }
 
   if (use_x11) {
     sources += [ "platform_viewport_x11.cc" ]
+
     deps += [
       "//ui/events/platform/x11",
       "//ui/platform_window/x11",
     ]
   }
-
-  if (use_ozone) {
-    sources += [ "platform_viewport_ozone.cc" ]
-  }
 }
diff --git a/mojo/shell/BUILD.gn b/mojo/shell/BUILD.gn
index 491dd17..1a09074 100644
--- a/mojo/shell/BUILD.gn
+++ b/mojo/shell/BUILD.gn
@@ -6,10 +6,19 @@
 import("//mojo/public/mojo.gni")
 import("//mojo/public/tools/bindings/mojom.gni")
 
+if (is_android) {
+  import("//build/config/android/config.gni")
+  import("//build/config/android/rules.gni")
+}
+
 if (!use_prebuilt_mojo_shell) {
 
 # GYP version: mojo/mojo.gyp:mojo_shell
 executable("mojo_shell") {
+  sources = [
+    "desktop/mojo_main.cc"
+  ]
+
   deps = [
     ":lib",
     "//base",
@@ -20,33 +29,12 @@
   if (is_component_build) {
     deps += ["//ui/gl"]
   }
-
-  sources = [
-    "desktop/mojo_main.cc"
-  ]
 }
 
 }  # !use_prebuilt_mojo_shell
 
 # GYP version: mojo/mojo.gyp:mojo_shell_lib
 source_set("lib") {
-  deps = [
-    ":app_child_process_bindings",
-    ":external_application_registrar_bindings",
-    ":external_service_bindings",
-    "//base",
-    "//base/third_party/dynamic_annotations",
-    "//base:base_static",
-    "//mojo/application",
-    "//mojo/application_manager",
-    "//mojo/common",
-    "//mojo/edk/system",
-    "//mojo/gles2",
-    "//mojo/public/interfaces/application",
-    "//mojo/services/public/interfaces/network",
-    "//mojo/spy",
-  ]
-
   sources = [
     "app_child_process.cc",
     "app_child_process.h",
@@ -86,15 +74,91 @@
     "ui_application_loader_android.h",
   ]
 
+  deps = [
+    ":app_child_process_bindings",
+    ":external_application_registrar_bindings",
+    ":external_service_bindings",
+    "//base",
+    "//base/third_party/dynamic_annotations",
+    "//base:base_static",
+    "//mojo/application",
+    "//mojo/application_manager",
+    "//mojo/common",
+    "//mojo/edk/system",
+    "//mojo/gles2",
+    "//mojo/public/interfaces/application",
+    "//mojo/services/public/interfaces/network",
+    "//mojo/spy",
+  ]
+
   if (is_android) {
-    deps += [
-      "//mojo/services/native_viewport:lib",
-      "//mojo/services/network:lib",
-    ]
     sources += [
       "network_application_loader.cc",
       "network_application_loader.h",
     ]
+
+    deps += [
+      "//mojo/services/native_viewport:lib",
+      "//mojo/services/network:lib",
+    ]
+  }
+}
+
+if (is_android) {
+  generate_jni("jni_headers") {
+    sources = [
+      "android/apk/src/org/chromium/mojo_shell_apk/MojoMain.java",
+    ]
+    jni_package = "mojo"
+  }
+
+  android_library("java") {
+    java_files = [
+      "android/apk/src/org/chromium/mojo_shell_apk/MojoMain.java",
+      "android/apk/src/org/chromium/mojo_shell_apk/MojoShellActivity.java",
+      "android/apk/src/org/chromium/mojo_shell_apk/MojoShellApplication.java",
+    ]
+
+    deps = [
+      "//base:base_java",
+      "//net/android:net_java",
+    ]
+  }
+
+  android_resources("resources") {
+    resource_dirs = [ "android/apk/res" ]
+    custom_package = "org.chromium.mojo_shell_apk"
+  }
+
+  shared_library("libmojo_shell") {
+    sources = [
+      "android/library_loader.cc",
+      "android/mojo_main.cc",
+      "android/mojo_main.h",
+    ]
+    deps = [
+      ":jni_headers",
+      ":lib",
+      "//ui/gl",
+    ]
+  }
+
+  android_apk("mojo_shell_apk") {
+    apk_name = "MojoShell"
+
+    android_manifest = "android/apk/AndroidManifest.xml"
+
+    native_libs = [
+      "libmojo_shell.so"
+    ]
+
+    deps = [
+      ":java",
+      ":libmojo_shell",
+      ":resources",
+      "//mojo/services/native_viewport:native_viewport_java",
+    ]
+
   }
 }
 
@@ -132,6 +196,17 @@
 
 # GYP version: mojo/mojo.gyp:mojo_shell_tests
 test("mojo_shell_tests") {
+  sources = [
+    "child_process_host_unittest.cc",
+    "dynamic_application_loader_unittest.cc",
+    "in_process_dynamic_service_runner_unittest.cc",
+    "mojo_url_resolver_unittest.cc",
+    "shell_test_base.cc",
+    "shell_test_base.h",
+    "shell_test_base_unittest.cc",
+    "shell_test_main.cc",
+  ]
+
   deps = [
     ":lib",
     "//base",
@@ -152,17 +227,6 @@
     "//mojo/services/test_service:test_request_tracker_app",
   ]
 
-  sources = [
-    "child_process_host_unittest.cc",
-    "dynamic_application_loader_unittest.cc",
-    "in_process_dynamic_service_runner_unittest.cc",
-    "mojo_url_resolver_unittest.cc",
-    "shell_test_base.cc",
-    "shell_test_base.h",
-    "shell_test_base_unittest.cc",
-    "shell_test_main.cc",
-  ]
-
   if (is_android) {
     deps += [
       # TODO(GYP):
@@ -186,6 +250,12 @@
 
 # GYP version: mojo/mojo.gyp:external_application_tests
 test("mojo_external_application_tests") {
+  sources = [
+    "incoming_connection_listener_unittest.cc",
+    "external_application_listener_unittest.cc",
+    "external_application_test_main.cc",
+  ]
+
   deps = [
     ":lib",
     ":external_application_registrar_connection",
@@ -199,10 +269,4 @@
     "//mojo/edk/system",
     "//mojo/environment:chromium",
   ]
-
-  sources = [
-    "incoming_connection_listener_unittest.cc",
-    "external_application_listener_unittest.cc",
-    "external_application_test_main.cc",
-  ]
 }
