Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building App Extensions equivalents on Android ...

Building App Extensions equivalents on Android (maybe?)

Atsushi Eno

April 18, 2025
Tweet

More Decks by Atsushi Eno

Other Decks in Technology

Transcript

  1. Extensibility App Components that extends existing software, most likely written

    by others Add(-)ins, Add(-)ons, Plug(-)ins, Extensions
  2. Extensibility on mobiles Apps are sandboxed and cannot simply load

    plugin code (library) You can embed JS runtime etc. to get it around. But it is not easy to get access to full platform features.
  3. Plugins on iOS App Extension In macOS SDK / iOS

    SDK / * https://developer.apple.com/app-extensions/
  4. Android? Android has Content Providers and Services since very beginning

    Android 16 also introduced AppFunctionManager (build your own MCP alike maybe?) https://developer.android.com/guide/components/intents-filters
  5. GUI had not been extensible Don't hijack over other app's

    UI! Allowlisted technology: RemoteViews, widgets... totally inflexible
  6. SurfaceControlViewHost kind of New since Android 11! - Render arbitrary

    android.view.View onto host app's android.view.SurfaceView - Host app indicates target SurfacePackage that performs rendering - Under host's explicit agreement, there is no hijacking concern
  7. Resources - API Reference https://developer.android.com/reference/android/view/SurfaceControlViewHost - TechBooster: INSIDE [技術のヒミツ] (Japanese

    book, 2023) https://booth.pm/ja/items/5010062 - CommonsWare: A Peek at SurfaceControlViewHost in Android R https://commonsware.com/blog/2020/03/27/peek-surfacecontrolviewhost-android-r.html - my use case https://github.com/atsushieno/aap-core/blob/531e3adf/androidaudioplugin/src/main/java/org/android audioplugin/hosting/AudioPluginSurfaceControlClient.kt