アクセス許可 [Mainfest.xml で要求された] が Android アプリで削除する目的でどのように、どこで使用されたかを調査したい場合、これを行う簡単な方法はありますか? lint または findbugs は、プロジェクトで使用/悪用されたパーミッションを追跡するための何らかのサポートを提供しますか?
7 に答える
私はあなたの命を救うために未来から来ました。
ここで (将来的に)、LINT は、 LINTのチェックでわかるように、不足しているアクセス許可をチェックします。
- そのため、Android パーミッションを使用し
AndroidManifest.xml
てすべてのタグを削除します(つまり、やなどのアプリに属するパーミッションは削除しないでください)。<uses-permission>
UA_DATA
C2D_MESSAGE
- 次に、LINT 分析を実行します。クリックして
Analyze
からInspect Code...
- 下を見て
Android -> Constant and Resource Type Mismatches
- 不足している権限がすべて表示されます。
- 次に、それらを右クリックして選択します
Apply fix "Add Permission"
。このオプションを選択すると、Android Studio にはエラーごとに 1 つの権限が含まれます。そのため、マニフェスト ファイルに同じアクセス許可の複数のコピーが作成されることになります。重複を削除するだけです。手動でもできます。
LINT ルールの説明は次のとおりです。
ID リソースタイプ
説明
このインスペクションは、さまざまなサポート アノテーション (RequiresPermission や UiThread など) でアノテーションが付けられた Android API 呼び出しを調べ、アノテーションで指定されたとおりに API を正しく使用していない呼び出しにフラグを立てます。このインスペクションによってフラグが立てられるエラーの例:
- 別のタイプ (R.dimen など) を予期する API に、間違ったタイプのリソース整数 (R.string など) を渡す。
- オーバーライドされたメソッドを必要とするメソッドで (スーパー経由で) 呼び出すのを忘れる
- マニフェストでパーミッションを宣言せずにパーミッションを必要とするメソッドを呼び出す
- RGB 整数値を期待するメソッドにリソース カラー参照を渡します。
...などなど。詳細については、http://developer.android.com/tools/debugging/annotations.html のドキュメントを参照してください。
Android Studio 2.1.2 を使用しています。
コードを記述していないアプリに対して行う方法は、アクセス許可を 1 つずつ削除し、毎回アプリをエンドツーエンドでテストすることです。失敗したら絞り込む。そうでない場合、その許可は使用されない可能性があります。
それらを 1 つずつ削除して、アプリがまだ正常に動作するかどうかを確認する必要があります。これは lint によってチェックされません (そうあるべきです)。
彼らが戻ってきたら (彼らは現在ダウンしています)、あなたの apk をこのウェブサイトにアップロードして (それでよければ)、あなたが使用しているパーミッションを彼らに静的に分析させることができます: http://www.android-permissions.org/
最善の方法は、 may が実際に何をするかを理解することです。カメラを使用する場合は、カメラの許可が必要であることがわかります。