Malcolm, кажется этот вопрос уже задавался: почему созданный архив весит больше, чем суммарный вес файлов для запаковки? Пример: вес двух игр-516 кб, запаковка с динамическими кодами-519, с статическими-539.
У меня возникала ошибка, когда читался лишний байт. Дело в том, что прога читает чуть больше, чем нужно, потому она так быстро и открывает. Но при этом иногда она читает байт, который уже не принадлежит запакованному потоку, и остальной код программы из-за этого сбивается с толку. Я сделал маленький буфер, чтобы это исправить, вроде все работает, но пока не рискну выкладывать, завтра проверю как следует, и вот тогда уже выложу.
Malcolm, кажется этот вопрос уже задавался: почему созданный архив весит больше, чем суммарный вес файлов для запаковки? Пример: вес двух игр-516 кб, запаковка с динамическими кодами-519, с статическими-539.
M.A.S, когда файлы пакуются, в архив записывается какая-то дополнительная информация. А ты же паковал несжимаемые файлы. Вот они и не сжались и лишь увеличился объем. И скорее всего еще какая-то причина, заключенная в алгоритме запаковки.
Во-первых, дополнительная информация, во-вторых, даже иделаьно подобранные коды Хаффмана не всегда уменьшают размер. Вот арифметическое сжатие, используемое в LZMA (7Zip) в худшем случае просто не уменьшает размер. Но оно защищено патентами, поэтому практически нигде неиспользуется. Не хотят люди тучу денег платить, чтобы сжать на 10-15% сильнее.
Может вопрос покажется глупым, но что эта прога может делать? Ну да, распаковывает jar архив и запаковывает, и всё? И что я с этим архивом могу делать? Зачем он нужен, скачал например готовую игру, поиграл-удалил!
Serjinho, ну вот практика показывает, что конкретно с Jar люди много чего вытворяют: меняют программные ресурсы, иконки, картинки, звуки, даже программный код кто-то пытается редактировать. И для всего этого нужно собирать и разбирать архив. А кроме Jar поддерживаются и другие форматы, которые на мобильниках тоже часто встречаются, кроме, пожалуй что, tar.gz.
9 мар 2008 в 20:25