grpc / grpc/grpc-java

Extend BinderChannel to support cross-user communication and introduce BinderChannelCredentials (io.grpc.binder.*) in experimental.

オープン
#10,173 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る
experimental API
主要言語
Java
スター
12.1k
フォーク
4k
平均マージ
2日 17時間
マージ済み PR(30日)
37

説明

BinderChannel, as specified in [gRFC L73](https://github.com/grpc/proposal/blob/master/L73-java-binderchannel.md) only supports the cross-process communication within the same Android user. However, some special Android applications need to do cross-user communication either using [Context.bindServiceAsUser](https://developer.android.com/reference/android/content/Context#bindServiceAsUser(android.content.Intent,%20android.content.ServiceConnection,%20int,%20android.os.UserHandle)) or [DevicePolicyManager.bindDeviceAdminServiceAsUser](https://developer.android.com/reference/android/app/admin/DevicePolicyManager#bindDeviceAdminServiceAsUser(android.content.ComponentName,%20android.content.Intent,%20android.content.ServiceConnection,%20int,%20android.os.UserHandle)).

TargetUserHandle is introduced in BinderChannel to enhance this use case. In the meanwhile BinderChannelCredentials is introduced in experimental stage to capture arbitrary arguments needed by DevicePolicyManager or other Android components to establish a binder connection.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず gRFC L73 と、Android の bindServiceAsUser API および bindDeviceAdminServiceAsUser API を読みます。次に BinderChannel と実験的な io.grpc.binder パッケージを見つけます。ユーザー間のターゲットと BinderChannelCredentials が、これらの binder 接続を確立するために必要な任意の引数をサポートすれば、作業は完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
android, java
領域
mobile-dev
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。