Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

RemoteCallable

@Target([AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER]) class RemoteCallable
androidx.remotecallback.RemoteCallable

Used to tag a method as callable using CallbackReceiver#createRemoteCallback.

This is only valid on methods on concrete classes that implement CallbackReceiver. The method must have return type RemoteCallback, and should return RemoteCallback#LOCAL.

At compile time Methods tagged with RemoteCallable have hooks generated for them. The vast majority of the calls are done through generated code directly, so everything except for class names can be optimized/obfuscated. Given that remote callbacks are only accessible on platform components such as receivers and providers, they are already generally not able to be obfuscated.

Summary

Public constructors

Used to tag a method as callable using CallbackReceiver#createRemoteCallback.

Public constructors

<init>

RemoteCallable()

Used to tag a method as callable using CallbackReceiver#createRemoteCallback.

This is only valid on methods on concrete classes that implement CallbackReceiver. The method must have return type RemoteCallback, and should return RemoteCallback#LOCAL.

At compile time Methods tagged with RemoteCallable have hooks generated for them. The vast majority of the calls are done through generated code directly, so everything except for class names can be optimized/obfuscated. Given that remote callbacks are only accessible on platform components such as receivers and providers, they are already generally not able to be obfuscated.