問題タブ [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.
android - Androidバインダーの例
C /C++での簡単なバインダーIPCの例を探しています。最近、Android Binder Basic( http://bharathi.posterous.com/android-binder )について読み始め、Androidソースのコードも調べました。バインダーの使用部分のほとんどはC++です。Cの代わりにC++が使用される理由を誰かが説明できますか?
android - ネイティブ コードの Android バインダー
Binder インターフェイス (サービス) を実装するクラスを作成しました。クライアントからデータを送信できます。
非同期応答をクライアントに送り返したい場合、クライアントにも Binder インターフェイスを実装する必要がありますか?
java - Androidでバインダートランザクションが失敗する
重複の可能性:
カメラ画像を返すときに Binder トランザクションが失敗する
Androidスタックでバインダートランザクションが失敗する可能性は何ですか? さまざまなアクティビティを切り替えるアプリケーションがありますが、各アクティビティ間で交換されるデータのサイズは非常に小さく (20 バイト未満)、画像は含まれません。メモリ不足でシステムがクラッシュする場合もあれば、アプリケーションが終了する場合もあります。
助けてください...私は本当に困っています..
android - Android OS で使用できる IPC メカニズムは何ですか?
Android に存在するすべての IPC メカニズムを教えてください。
私の知る限りでは:
- インテント
- バインダー
android - Android ローカル サービスのサンプル、bindservice()、および ServiceConnection()
約 1 年前に @mnish から寄せられたこの質問に関連する質問があります。
彼の質問とコードを見てください。彼は ServiceConnection() を実装し、それを bindService() に渡します。これは、上部にあるサービスドキュメントの Local Service Sample に従います。
Local Service Sample を実装したいので、@mnish の質問/回答から詳細を追加しようとしています。ServiceConnection() @mnish には、私を混乱させる次の行があります。
@mnish がこのコードを書いたことは理解していますが、ILocService とは何か、独自の ILocService を作成する方法を知っている人はいますか? この構造はどこに文書化されていますか? また、必要ですか? また、IBinder iservice の価値はどこから来るのでしょうか?
android - Android バインダー ドライバー
バインダーについて学ぶために Android ソース コードを読み込もうとしていますが、Android システム アーキテクチャで説明されているバインダー ドライバーの部分を見つけることができません。バインダー コードが Android ソースのどこにあるのか、何か考えはありますか?
android - 他のアプリからの bindService ですが、同じユーザー ID/プロセス
これはメモリベースの IPC ( LocalService の例と同様) に関するものですが、同じプロセスで実行されている 2 つのアプリの場合です。
2 つのアプリ ( App1
、 ) と、両方のアプリのいくつかのインターフェイスと抽象クラスを定義App2
する共有プロジェクト ( ) があります。Shared
両方のアプリが同じプロセス (my.process
で定義されている<application>
)
内で実行され、 がApp2
発行されcom.www.app2.myService
ます。
これは要約ですmyAbstractService
(myService
まだ新しいものは何も追加していません):
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 マーケットで独立して配布する方法がわかりません (そこに公開されていますが、ライブラリもインストールするように依頼します) App2
。App3
これはその問題をまったく解決しますか?
android - Android バインダーのセキュリティ
AndroidのBinder によって提供されるプロセス間通信は、中間者攻撃から保護されていますか? この情報を提供するドキュメントはありますか?
android - アクティビティが閉じられて再度開かれたときのサービスコールバックを回避する
いくつかのAPIでバインダーを公開するLocalServiceがあります。次のように、サービスリスナーを作成します。
Binder
inが公開するメソッドを呼び出した後、メソッドでdataServiceListener
応答を取得しdataServiceListener
onResult()
ます。この時点まで、問題はなく、すべてが機能しています。Service Listenerコールバックを待機しているアクティビティを閉じて、すぐに再度開くと、ある種の問題が発生します。dataServiceListener
inを再インスタンス化してもonCreate()
、1つではなく2つのコールバックを受け取ります。古いものは破棄されたアクティビティからのもので、後者(右)は1つです。このように、結果はUIで混同されます。アクティビティが終了したら、コールバックを回避する必要があることをサービスまたはサービスリスナーに通知する方法はありますか。または、ServiceListenerオブジェクトを破棄することもできます。
これは、Mark L. Murphy(Commonsware)が「TheBusy Coder's GuidetoAndroidDevelopment」で説明した問題だと思います。
最大の落とし穴は、アクティビティが完了したときにリスナーを確実に撤回させることです。
これどうやってするの?アクティビティが終了したときに役に立たないリスナーを取り除く方法はありますか?
ありがとうございました!
android - アクティビティ間で Itens の多いリストを渡せない
私はこのコードを持っています:
Intent intent = new Intent(currentActivity, nextActivity);
Bundle bundle = new Bundle();
bundle.putSerializable(nameParameter, serializable);
私の直列化可能は、一連の要素を持つ ArrayList です。メソッドstartActivityを使用すると。FAILED BINDER TRANSACTION が発生します。どうすればこれを解決できますか?