Cómo obtener la ubicación del archivo * .apk en el dispositivo Android

¿Necesita ayuda recuperando el nombre del archivo * .apk del dispositivo Android programáticamente? ¿Podría algún organismo proporcionar algunos métodos de Android que lo hagan o incluso ejecutar comandos de shell en Android para obtener la ubicación del archivo, si conozco solo una parte del nombre del archivo?

Además, si hay una forma de averiguar dónde fue el archivo * .apk después de la descarga desde Market o fuera de Market?

Gracias de antemano.

List PackageManager.getInstalledApplications() le dará una lista de las aplicaciones instaladas, y ApplicationInfo.sourceDir es la ruta al archivo .apk.

 PackageManager pm = getPackageManager(); for (ApplicationInfo app : pm.getInstalledApplications(0)) { Log.d("PackageList", "package: " + app.packageName + ", sourceDir: " + app.sourceDir); } 

Produce algo como esto:

 package: com.tmobile.themechooser, sourceDir: /system/app/ThemeChooser.apk package: com.tmobile.thememanager, sourceDir: /system/app/ThemeManager.apk package: com.touchtype.swiftkey, sourceDir: /data/app/com.touchtype.swiftkey-1.apk package: com.twitter.android, sourceDir: /data/app/com.twitter.android-2.apk package: fm.last.android, sourceDir: /data/app/fm.last.android-1.apk 
 $ adb shell pm list packages -f 

También puede hacer un adb bugreport y mirar el resultado. buscar

Las aplicaciones que descargas van a /data/app para que con ls puedas obtener una lista de los archivos comprimidos descargados.