Honeycomb最近的App自动截图缓存

时间:2011-04-29 16:29:24

标签: android graphics android-3.0-honeycomb

在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 个答案:

答案 0 :(得分:1)

应用程序无法访问这些缩略图。

答案 1 :(得分:0)

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());              
        }
    }
}