端末にdalvikvmをインストールして起動しようとしています。ターミナルはam.jarでdalvikvmを実行します
dalvikvm -cp system/framework/am.jar com.android.commands.am.Am
:
dalvikvm cannot find a main class
は、だから私はdalvikvmに「スタートしています」を実行しようとした:
dalvikvm -cp /system/app/Calculator.apk com.android.calculator2/.Calculator
そして、失敗のメッセージ来る:私はちょうどので、これを実行しようとした場合には動作しません。
本当にうまくいきます。しかし、私がアプリを起動しようとすると:
dalvikvm -cp system/framework/am.jar com.android.commands.am.Am start -n com.android.calculator2/.Calculator
それは動作しません。
誰かが私を助けてくれますか?
ありがとうございました。しかし、私はアプリからdalvikvmを始めたいと思う。そして私はそれが可能だと思います。 'dalvikvm -cp system/framework/am.jar com.android.commands.am.Am'を実行すると、端末に' am -help'を指定したときと同じメッセージになります。だから私はちょうどdalvikvmから始まり、私のアプリを起動するコマンドとしてamを与えたいと思う。私はあなたのやり方が分かりましたが、私はそれが必要です。私はdalvikvmを修正して、既存のdalvikvm上にappとして私のdalvikvmを起動したいからです。 – Aprel
おそらく、zygoteを見たいと思っています。私はdalvikの変更されたバージョンからamコマンドを実行するだけで、あなたが望むことをするとは思えません。私が推測していたのであれば、普通のdalvikを使っていつものようにアンドロイドアプリを起動してから、execのシステムコールを使って新しいdalvikvmインスタンスをロードして実行し、アンドロイドアプリケーションが必要とする様々なハンドルこれは、接合子プロセスの働きと同様です。 – JesusFreke
これはおそらく非常に悪い考えです。すべてのアンドロイドプロセスは共有メモリを共有しているため、利用できません。たとえば、すべてのフレームワーククラスは一度ロードされ、すべてのdalvikプロセスはその同じ共有メモリの部分を見ることができます。あなたの新しいdalvik VMインスタンスは、これらすべてのフレームワーククラス自体をロードする必要があり、そのため、あなたのアプリケーションのメモリ使用量が過剰になります。 – JesusFreke