Перейти к содержимому

28.01.2010

Ускорение работы приложения «SMS/MMS» на Iphone

Все счастливые обладатели данного девайса и активно (или не очень) читающие и пишущие смски, рано или поздно сталкиваются с тем, что открывая само приложение смс, оно оооооочень долго грузится. Однако, возможно не многие знают, что это можно поправить!;)

Правда, к сожалению, такая возможность есть только на джейлбрейкнутых телефонах.
Если в кратце, то суть в следующем: база данных смсок в айфоне хранится в виде обычной базы данных sqlite. Поэтому надо просто взять файлик бд и сделать чистку базы с помощью vacuum. Поскольку на самом айфоне нет утилит для работы с sqlite базами данных, то надо скачать файлик себе на компьютер и с помощью любой проги по работе с sqlite выполнить vacuum.

Для справки: Команда VACUUM чистит базу данных путем копирования содержимого в временный файл базы данных и затем перезаливку данных в базу. Эта процедура устраняет пустые страницы, выстраивает данные последовательно, а так же чистит структуру файла базы данных.

Под *nix/MacOS самый простой алгоритм следующий:
0) Запускаем на телефоне ssh, если вдруг оно у вас не запущено.
1) Заходим на телефон по ssh под рутом.
2) Идем в /var/mobile/Library/SMS: #cd /var/mobile/Library/SMS.
3) На всякий случай бэкапим файлик: cp sms.db sms.db.old.
4) Копируем этот файл себе на комп по scp: #scp sms.db Ваш_логин@IP_компа:~/.
5) Чиним базу смсок у себя на компе: >sqlite3 ~/sms.db vacuum
6) Заливаем ее обратно: scp Ваш_логин@IP_компа:~/sms.db ./

Вуаля! 🙂

Для примера:
На моем айфоне (2g) с количеством смс = 4300, время загрузки до выполнения этой процедуры было ~12 секунд, после чистки оно сократилось до ~4 секунд.

Узнайте больше из Iphone