2012-04-03 4 views
1

私はアンドロイドでSDKを使用したいと思いますが、明示的に指定していないアクセス権をそのSDKには持たせたくありません。さらに、SDKがキャッチされていない例外をスローすると、アプリケーション全体を停止させたくありません。Android上のJavaプロセスのサンドボックス部分には方法がありますか?

C#では、その内部で実行されているコードをサンドボックスのように扱い、許可を許可(または制限)し、明示的に共有したいデータにのみアクセスできるAppDomainの概念があります。

Androidプラットフォーム用にJavaでこのように機能するものはありますか?

+0

なぜこの質問は-1ですか?私は投票しました – Monojit

+0

:-)ありがとうございました。なんらかの理由で-2になった。憎しみは嫌いだ。 – Hounshell

答えて

2

ここに2つの質問があります。最初の1つは、信頼できないコードで例外を処理することです。信頼できない部分が純粋なJavaである限り、慎重に書かれたtry/catchブロックで処理しなければなりません。ネイティブコードが許可されていれば、プロセスレベルの分離が不十分であれば何の助けにもなりません。別のプロセスでコードを実行するには、Androidサービスで読み上げてください。指定したプロセスで実行するサービスを指定できます。その後、例外(非管理対象の種類)はメインアプリケーションを停止させません。あなたはただ "サービスが死んだ"例外を得るでしょう。

さらに別の問題は、権限セットを下げることです。私の知る限りでは、アプリ内の権限セットを低くする方法はありません。サロゲートプロセスでさえ助けにならないでしょう。ラップしてカスタムコードを実行するためにアプリケーション(Androidの意味で)を出荷すると、それが役に立ちます。しかし、アプリのインストールの物流は手間がかかります。 Google Marketは、アプリの相互依存関係や前提条件の概念を容易にサポートしません。

+0

サービスについての良い点は、ライブラリが個別のスレッド(このスレッドが行う)を呼び出す状況もまた捕捉すると思います。しかし許可は残念です。私はこれをもう少し長く開いたままにしておきます。多分公表されていない魔法の呼び出しがあり、*機能します。 – Hounshell

+0

あなたの宣伝物があまり公開されていない場合は、Androidソースを掘り下げてください。 –

0

あなたのアプリケーションに与えるすべてのアクセス許可は、許可されていないアクセス権です。それ以外のアクセス許可はほとんどありません。 Manifest.xmlでアクセス権を設定する場合は、他の種類のアクセス許可を設定できない場合があります。

+0

はい、私は、それらのアクセス許可のサブセットにしかアクセスできないSDKを使用したいと思います。 – Hounshell

関連する問題