studio programacion para herramientas fundamentos desarrollo con avanzado aplicaciones android android-permissions

programacion - manual android studio avanzado



¿Cómo comprobar si el permiso de Android se está utilizando en realidad? (3)

En Android Studio 1.3 y Android Support Library v7: 22.2.0, tiene una solución para ello.

Pasos:

  1. Actualizar Android Studio a V1.3
  2. Actualice su biblioteca de soporte de Android a v7: 22.2.0
  3. Ejecute Android Lint (Analizar -> Inspeccionar código), en Error de pelusa, vea para Tipo "Android -> Constante y tipo de error MisMatch", que muestra todos los métodos que requieren permiso.

Explicación

  1. Android ha introducido una nueva anotación @requirespermission.
  2. Todos los métodos de SDK que requieren permiso se anotan con @requirespermission.
  3. Cuando llamamos a cualquier método sdk que requiera permiso sin verificar correctamente si tenemos permiso o no, Android Studio lo hará mediante error de pelusa.


Estoy manteniendo una aplicación de Android existente (muy grande, muy sensible).
El otro día, recibí un correo electrónico de mi cliente indicando que la Aplicación podría estar declarando los permisos que no se están utilizando activamente.

Por ejemplo, quieren que elimine el permiso "WRITE_EXTERNAL_STORAGE".
Lo eliminé, lo compilé y ejecuté la aplicación. NO hay ningún error en absoluto.
Pero, solo por eso, no creo que pueda suponer que el permiso no se usa activamente en absoluto.

Mi pregunta es "¿Hay alguna manera de que pueda verificar el permiso fácilmente y simplemente si se está utilizando activamente?"

Francamente, no quiero pasar por cada pequeño detalle de esa aplicación solo para determinar si el permiso es obligatorio o no.
Simplemente no tengo tiempo.

Mi objetivo es verificar si el permiso se está utilizando activamente. Si no, elimine el permiso.
Espero que haya una manera que consume menos tiempo para eso.

Saludos


Hay un grupo en Berkeley que escribió un paper sobre los permisos de Android. Hablan sobre los permisos excesivos y desarrollaron una herramienta llamada Stowaway que analizaría su APK para permisos no utilizados. El análisis se basó en las llamadas API de la aplicación y en su propia asignación de los permisos necesarios para cada llamada API (consulte el documento para obtener más información). La herramienta arroja un marcador si hay un permiso en el manifiesto que no está asignado a ninguna de las llamadas API que se encuentran en el APK.

Por un tiempo, una versión de la herramienta basada en la web estuvo disponible en http://www.android-permissions.org/ , pero es de la era Gingerbread y nunca se actualizó. La página ahora sugiere usar PScout .

PScout hace un mejor trabajo que Stowaway al generar los mapas de permisos. Sin embargo, PScout no incluye un analizador de APK, por lo que tendrá que comparar manualmente las asignaciones que proporcionan con las llamadas de API realizadas por su aplicación. Desafortunadamente, si está interesado en mapas para versiones posteriores a la 5.1.1, deberá generarlos usted mismo utilizando el código PScout proporcionado y su propia fuente de Marco.

También puede consultar los diversos analizadores APK here para ver si incluyen la funcionalidad que está buscando.


Probé el método sugerido por Vasanth pero no funciona para mí. De hecho, porque mi proyecto tiene sabores y Code Inspection no funciona para el proyecto con sabores. Consulte https://code.google.com/p/android/issues/detail?id=210073 .

Pero Running Lint desde la consola funciona. Entonces los pasos son simples:

  1. Elimina los permisos de tu manifiesto.
  2. Ejecute Lint para obtener un sabor como se describe aquí https://.com/a/32708435/1170154 .
  3. Abra el resultado de Lint y encuentre la sección Corrección> Error MissingPermission: Missing Permissions. Contendrá todas las llamadas que requieren permisos.