ドキュメントからの引用
'Android Building Blocks'
Generally, these components all run in the same system process.
It's possible (and quite common) to create multiple threads within that process,
and it's also possible to create completely separate child processes if you need to.
Such cases are pretty uncommon though, because Android tries very hard to make processes transparent to your code.
普通、これらのコンポーネントはすべて同じシステムプロセスで動作する。
そのプロセスの中に複数のスレッドを作ることが可能で(そして相当よくある)、
またもし必要なら完全に分割された子プロセスを作ることも可能だ。
そのようなケースはすこし珍しい、なぜならあなたのコードを透過的にするのはAndroidにとって難しいからだ。
'Designing and Using a Remote Interface Using AIDL'
Since each application runs in its own process,
and you can write a service that runs in a different process from your Application's UI,
sometimes you need to pass objects between processes.
On the Android platform,one process can not normally access the memory of another process.
So to talk, they need to decompose their objects into primitives that the operating system can understand,
and "marshall" the object across that boundary for you.
The code to do that marshalling is tedious to write, so we provide the AIDL tool to do it for you.
各アプリケーションは自身のプロセスで動作するし、
アプリケーションのUIと異なるプロセスで動かすようにサービスを書くこともあるので
プロセス間でオブジェクトを受け渡しする必要が時々ある。
Androidプラットホームでは、あるプロセスは他のプロセスのメモリに普通にアクセスすることはできない。
そのために、オペレーティングシステムが理解できるプリミティブにオブジェクトを分解して、
境界を越えてobjectをマーシャルする必要がある。
そういうマーシャリングを行うコードを書くのはうんざりする。
android:process 属性
Specify a specific process that the associated code is to run in. Use with the application tag (to supply a default process for all application components), or with the activity, receiver, service, or provider tag (to supply a specific icon for that component).
Application components are normally run in a single process that is created for the entire application. You can use this tag to modify where they run. If the process name begins with a ':' character, a new process private to that application will be created when needed to run that component (allowing you to spread your application across multiple processes). If the process name begins with a lower-case character, the component will be run in a global process of that name, provided that you have permission to do so, allowing multiple applications to share one process to reduce resource usage.
関連するコードが動作するプロセスを指定する。Applicationタグと一緒に使う(アプリケーション中の全コンポーネントのデフォルトプロセスを供給する)、または activity, receiver, service, or provider タグ と一緒に使う(そのコンポーネントのiconの指定を供給する)。
アプリケーションのコンポーネントは通常はアプリケーション全体のために作成された単一のプロセスにおいて動く。このタグを使うことでどこでそれが動くか変更できる。もしプロセス名が ':' で始まるなら、新しいプロセスはそのコンポーネントを動かすことが必要になった時にアプリケーションによって作られるプライベートなものだ(アプリケーションを複数のプロセスに展開することが許容される)。もしプロセス名が英小文字で始まるなら、コンポーネントはその名前のグローバルプロセスの中で動作して、そういうパーミッションを提供すれば、リソース使用を軽減するために複数のアプリケーションを単一のプロセスで共有することが許容される。
最終更新:2007年11月18日 13:26