Я хотел бы проверить, есть ли хотя бы одно человеческое лицо на моих фотографиях во внешнем хранилище.
Я запрашиваю внешнее содержимое следующим образом:
queryTimeTaken += measureTimeMillis {
try {
cursor = context.contentResolver.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection,
null,
null,
sortOrderAndFetchLimit
)
} catch (e: Exception) {
println("Error when executing query(): $e")
}
}
get uri занимает 0.004s
getUriTimeTaken += measureTimeMillis {
uri = ContentUris.withAppendedId(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, cursor.getInt(cursor.getColumnIndex(MediaStore.Images.ImageColumns._ID)).toLong())
}
getBitmap () занимает слишком много времени.Это занимает около 10 секунд.
getBitmapTimeTaken += measureTimeMillis {
bitmap = MediaStore.Images.Media.getBitmap(context.contentResolver, uri)
}
getBitmap () занимает 90% от общего времени, так что это бутылочное горлышко здесь.Что я могу сделать, чтобы сделать это быстрее?