Скорость графики iPhone / iPod

Начиная с Java 7, NIO Api обеспечивает лучший и более общий способ доступа к содержимому файлов Zip или Jar. Фактически, теперь это унифицированный API, который позволяет обрабатывать Zip-файлы в точности как обычные файлы.

Чтобы извлечь все файлы, содержащиеся внутри zip-файла в этом API, вы должны сделать это:

В Java 8:

private void extractAll(URI fromZip, Path toDirectory) throws IOException{
    FileSystems.newFileSystem(fromZip, Collections.emptyMap())
            .getRootDirectories()
            .forEach(root -> {
                // in a full implementation, you'd have to
                // handle directories 
                Files.walk(root).forEach(path -> Files.copy(path, toDirectory));
            });
}

В java 7:

private void extractAll(URI fromZip, Path toDirectory) throws IOException{
    FileSystem zipFs = FileSystems.newFileSystem(fromZip, Collections.emptyMap());

    for(Path root : zipFs.getRootDirectories()) {
        Files.walkFileTree(root, new SimpleFileVisitor<Path>() {
            @Override
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) 
                    throws IOException {
                // You can do anything you want with the path here
                Files.copy(file, toDirectory);
                return FileVisitResult.CONTINUE;
            }

            @Override
            public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) 
                    throws IOException {
                // In a full implementation, you'd need to create each 
                // sub-directory of the destination directory before 
                // copying files into it
                return super.preVisitDirectory(dir, attrs);
            }
        });
    }
}
1
задан Josh Crozier 11 December 2015 в 00:35
поделиться

1 ответ

Существует три класса устройств: ARM7 (iPhone, iPod touch первого поколения, iPhone 3G и iPod touch второго поколения), Cortex A8 (iPhone 3G S, iPod touch третьего поколения) и A4 (iPad, iPhone 4). Устройства одного класса должны иметь одинаковую производительность.

CoreGraphics в целом работает медленно, потому что вообще не использует графический процессор. Используйте CoreAnimation, чтобы разделить вашу сцену на слои и перерисовать только то, что необходимо для небольшого увеличения, или перенесите свой код рисования в OpenGL ES для лучшей производительности.

2
ответ дан 2 September 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: