Honeycomb Recent App Автоматическая кэш-память скриншотов - PullRequest
0 голосов
/ 29 апреля 2011

В Android 3.0 есть автоматические скриншоты, сделанные приложениями для использования в списке «Недавние приложения».Похоже, SurfaceFlinger отвечает за создание этих снимков экрана на основе следующего вывода журнала:

D/SurfaceFlinger(  133): screenshot: sw=216, sh=135, minZ=0, maxZ=21020
D/SurfaceFlinger(  133): screenshot: result = OK

Где (если вообще) в файловой системе кэшируются эти изображения?iOS имеет аналогичную функцию, где скриншоты автоматически делаются, когда приложение отправляется в фоновый режим, а изображения кэшируются в / private / var / root / Library / Caches / Snapshots, и я хотел бы знать, хранит ли их и Androidизображения где-то доступны.

Ответы [ 2 ]

1 голос
/ 29 апреля 2011

Эти эскизы недоступны приложениям.

0 голосов
/ 04 июля 2013
private void getRecentTaskThumbnails() {
    if (mBitmaps != null) {
        mBitmaps.clear();
    } else {
        mBitmaps = new LinkedList<Bitmap>();
    }
    mCurIndex = 0;

    ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

    List<ActivityManager.RecentTaskInfo> recentTasks = am.getRecentTasks(
            20, ActivityManager.RECENT_IGNORE_UNAVAILABLE);
    for (ActivityManager.RecentTaskInfo task : recentTasks) {
        Log.e(TAG, "task:"
                + task.baseIntent.getComponent().getPackageName() + "="
                + task.persistentId);

        ActivityManager.TaskThumbnails thumbs = am
                .getTaskThumbnails(task.persistentId);
        if(thumbs != null && thumbs.mainThumbnail != null) {
            mBitmaps.add(thumbs.mainThumbnail);
            Log.e(TAG, "thumbs=" + thumbs + "size="+thumbs.mainThumbnail.getWidth()+","+thumbs.mainThumbnail.getHeight());              
        }
    }
}
...