2017-01-30 3 views
1

Androidが呼び出すものに取り組んでいますsoftware-based sensors。論理的には、自分のアルゴリズムをAndroidのMotionManagerに直接入れることはできません。これらのアルゴリズムは、異なるアプリケーションに使用できます。特定のパラメータは、アプリケーションによって設定され、他のすべての動作に影響を与えます。アルゴリズムからの出力は、100Hzでfloat[4]のようなものです。Android System Servicesのようなサービスを作るには?

私は良いデザインパターンを探していますが、私はので、これは、Androidで可能であるかどうかわからないんだけど:

  • は、私が直接(明らかに)AndroidのMotionManager

  • に私のコードを追加することはできません。

    すべてのアプリにインポートされる基本ライブラリは、この目的のために設計されていません。

  • Bind Servicesの「バインド」側は面白いですが、複数のアプリケーションで動作するように設計されていないと思います。さらに、バインディングのコードは、開発者にとって[registerListener (SensorEventListener listener, Sensor sensor, int samplingPeriodUs)](https://developer.android.com/reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorEventListener、android.hardware.Sensor、int))より簡単ではありません。

  • AIDLはサービスの "複数のアプリ"側を処理できますが、バインドサービス(参照渡し)と同じ理由でそれを行う方法ではないと思います。

+2

IPCが必要な場合は、「AIDL」または「android.os.Messenger」です。代わりに、「パイプ」を作成して他のアプリに渡して読み書きできます。 – pskink

+1

オプション1)@pskinkコメントによるか、2)AOSPのカスタマイズです。 – Onik

答えて

2

http://processors.wiki.ti.com/index.php/Android-Adding_SystemServiceを見ましたか?

スタブを隠して例外を処理するライブラリを作成すると、単純なAPIを使用してアプリケーション間でサービスを共有できます。

+1

提供されているリンクの解決策では、カスタムROMを作成する必要があります。 – Onik

+0

確かに、カスタムROMを構築せずに新しいシステムサービスを追加することは可能だとは思いません。 –

関連する問題