Intereting Posts
Что делает исключение java.lang.IllegalArgumentException: Запрошенное окно android.os.BinderProxy@4205eb18 не существует Украшение RecyclerView (с помощью GridLayoutManager) для отображения разделителя между элементами Android GoogleAuthUtil.getTokenWithNotification Интерактивный вызов не запускается Как узнать, видно ли приложение для Android? Target filter pathPrefix с вопросительным знаком Ресурсы $ NotFoundException при использовании Robolectric с Gradle Как использовать центр представления как контрольную точку внутри RelativeLayout Android изменит и установит локаль по умолчанию в приложении. Анализатор SAX против синтаксического анализа XMLPull Как сделать телефонный звонок в android и вернуться к моей активности, когда звонок будет завершен? Проверка, работает ли приложение Android в фоновом режиме Общие действия и безопасность потоков Как добавить панель действий из библиотеки поддержки в PreferenceActivity? Android. Можно ли вставлять значения @IntDef внутри @interface? Создание списка в фрагменте андроида

Что такое «Stub» и «AIDL» для java?

Вопрос 1:

Я изучаю Android-сервис и часто вижу такой код:

private ISampleService.Stub sampleServiceIf = new ISampleService.Stub(){} 

Что такое.

Вопрос 2:

Я проверил « AIDL », но я хочу знать, почему мы должны использовать это вместо файла интерфейса Java?

Solutions Collecting From Web of "Что такое «Stub» и «AIDL» для java?"

«Stub» – это класс, который реализует удаленный интерфейс таким образом, что вы можете использовать его, как если бы он был локальным. Он обрабатывает марафонирование / разборку данных и отправку / получение в / из удаленной службы. Термин «заглушка» обычно используется для описания этой функции в других методах RPC (COM, Java remoting и т. Д.), Но это может означать несколько разные вещи.

IDL (язык определения интерфейса), как правило, не зависит от языка, и вы можете теоретически генерировать код C ++ или Python. Android один из них основан на Java, поэтому различие является тонким. Одно из отличий заключается в том, что вы можете иметь только один интерфейс в файле .aidl, тогда как Java допускает несколько классов / интерфейсов на один файл .java. Существуют также некоторые правила, для которых поддерживаются типы, поэтому он не совсем то же, что и интерфейс Java, и вы не можете использовать его вместо AIDL.

Эй, пожалуйста, проверьте этот http://developer.android.com/guide/components/aidl.html . Это поможет вам понять заглушку и AIDL.