問題タブ [android-binder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
23359 参照

android - Androidバインダーの例

C /C++での簡単なバインダーIPCの例を探しています。最近、Android Binder Basic( http://bharathi.posterous.com/android-binder )について読み始め、Androidソースのコードも調べました。バインダーの使用部分のほとんどはC++です。Cの代わりにC++が使用される理由を誰かが説明できますか?

0 投票する
1 に答える
1961 参照

android - ネイティブ コードの Android バインダー

Binder インターフェイス (サービス) を実装するクラスを作成しました。クライアントからデータを送信できます。

非同期応答をクライアントに送り返したい場合、クライアントにも Binder インターフェイスを実装する必要がありますか?

0 投票する
2 に答える
10968 参照

java - Androidでバインダートランザクションが失敗する

重複の可能性:
カメラ画像を返すときに Binder トランザクションが失敗する

Androidスタックでバインダートランザクションが失敗する可能性は何ですか? さまざまなアクティビティを切り替えるアプリケーションがありますが、各アクティビティ間で交換されるデータのサイズは非常に小さく (20 バイト未満)、画像は含まれません。メモリ不足でシステムがクラッシュする場合もあれば、アプリケーションが終了する場合もあります。

助けてください...私は本当に困っています..

0 投票する
7 に答える
83013 参照

android - Android OS で使用できる IPC メカニズムは何ですか?

Android に存在するすべての IPC メカニズムを教えてください。

私の知る限りでは:

  1. インテント
  2. バインダー
0 投票する
2 に答える
27595 参照

android - Android ローカル サービスのサンプル、bindservice()、および ServiceConnection()

約 1 年前に @mnish から寄せられたこの質問に関連する質問があります。

彼の質問とコードを見てください。彼は ServiceConnection() を実装し、それを bindService() に渡します。これは、上部にあるサービスドキュメントの Local Service Sample に従います。

Local Service Sample を実装したいので、@mnish の質問/回答から詳細を追加しようとしています。ServiceConnection() @mnish には、私を混乱させる次の行があります。

@mnish がこのコードを書いたことは理解していますが、ILocService とは何か、独自の ILocService を作成する方法を知っている人はいますか? この構造はどこに文書化されていますか? また、必要ですか? また、IBinder iservice の価値はどこから来るのでしょうか?

0 投票する
1 に答える
2713 参照

android - Android バインダー ドライバー

バインダーについて学ぶために Android ソース コードを読み込もうとしていますが、Android システム アーキテクチャで説明されているバインダー ドライバーの部分を見つけることができません。バインダー コードが Android ソースのどこにあるのか、何か考えはありますか?

0 投票する
3 に答える
1958 参照

android - 他のアプリからの bindService ですが、同じユーザー ID/プロセス

これはメモリベースの IPC ( LocalService の例と同様) に関するものですが、同じプロセスで実行されている 2 つのアプリの場合です。

2 つのアプリ ( App1、 ) と、両方のアプリのいくつかのインターフェイスと抽象クラスを定義App2する共有プロジェクト ( ) があります。Shared

両方のアプリが同じプロセス (my.processで定義されている<application>) 内で実行され、 がApp2発行されcom.www.app2.myServiceます。

これは要約ですmyAbstractServicemyServiceまだ新しいものは何も追加していません):

myService(App1)から (App2)にバインドしようとするとMainActivity:

例外があります:

DEBUG/MS(5464): クラス com.www.shared.myBinder
エラー/AndroidRuntime(5464): java.lang.ClassCastException: com.www.shared.myBinder

両方のアプリが同じプロセスで実行されるため、メモリ結合通信が機能するはずです (少なくとも私はそう思いました)。かなりの数のメッセージを送信するため、メッセージベースまたはブロードキャストベースの通信を使用したくありません。
同じクラスに 2 つの異なるクラスローダーが使用されているために、この例外が発生したのではないでしょうか? このアプローチは単に不可能/間違っているのでしょうか、それとも何か不足していますか?

更新:
私の目的は、App1 が他のモジュール (アプリ) の委任および開始アプリケーションとして使用される、非常にモジュール化されたアプリケーションを作成することです。App1それに依存するすべてのアプリ を同梱したくないので、独自のアプリにしました。

3 番目のアプリ (App3、Android プロジェクト) があるとします。App2 と App3 は両方とも App1 によって開始されます (接続のセットアップを担当しますが、App2 と App3 は異なるアプリケーション ロジックを提供します (ただし、同じインターフェイスを持ちます))。

もう一度考えてみると、これはAndroidライブラリでも解決できると思います(App1とSharedがライブラリとしてマージされ、このライブラリのアクティビティを開始し、結果を待っています) App2? App3ただし、データは分割可能ではなく (ネットワーク接続)、このライブラリを Android マーケットで独立して配布する方法がわかりません (そこに公開されていますが、ライブラリもインストールするように依頼します) App2App3これはその問題をまったく解決しますか?

0 投票する
2 に答える
4901 参照

android - Android バインダーのセキュリティ

AndroidのBinder によって提供されるプロセス間通信は、中間者攻撃から保護されていますか? この情報を提供するドキュメントはありますか?

0 投票する
5 に答える
4033 参照

android - アクティビティが閉じられて再度開かれたときのサービスコールバックを回避する

いくつかのAPIでバインダーを公開するLocalServiceがあります。次のように、サービスリスナーを作成します。

Binderinが公開するメソッドを呼び出した後、メソッドでdataServiceListener応答を取得しdataServiceListener onResult()ます。この時点まで、問題はなく、すべてが機能しています。Service Listenerコールバックを待機しているアクティビティを閉じて、すぐに再度開くと、ある種の問題が発生します。dataServiceListenerinを再インスタンス化してもonCreate()、1つではなく2つのコールバックを受け取ります。古いものは破棄されたアクティビティからのもので、後者(右)は1つです。このように、結果はUIで混同されます。アクティビティが終了したら、コールバックを回避する必要があることをサービスまたはサービスリスナーに通知する方法はありますか。または、ServiceListenerオブジェクトを破棄することもできます。

これは、Mark L. Murphy(Commonsware)が「TheBusy Coder's GuidetoAndroidDevelopment」で説明した問題だと思います。

最大の落とし穴は、アクティビティが完了したときにリスナーを確実に撤回させることです。

これどうやってするの?アクティビティが終了したときに役に立たないリスナーを取り除く方法はありますか?

ありがとうございました!

0 投票する
1 に答える
500 参照

android - アクティビティ間で Itens の多いリストを渡せない

私はこのコードを持っています:

Intent intent = new Intent(currentActivity, nextActivity);
Bundle bundle = new Bundle(); bundle.putSerializable(nameParameter, serializable);

私の直列化可能は、一連の要素を持つ ArrayList です。メソッドstartActivityを使用すると。FAILED BINDER TRANSACTION が発生します。どうすればこれを解決できますか?