Ускорение работы приложения «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 секунд.
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 11

      0
      если бы кто-то пакетик для этого сделал или SBSettings плагин
        0
        Пакет sqlite3 можно поставить из Cydia, соответственно необходимости использовать комп нет…
        А для удобства — действительно, хорошо бы плагин для SBSettings или хотя бы просто впихнуть эту строчку в автозагрузку/выполнение по расписанию. Незнаю, есть ли в iPhone cron =)
          0
          ну да, вы правы — можно и sqlite3 из Cydia поставить. Но честно — чем меньше оттуда стоит — тем лучше.
          А crona в айфоне нет :(
            0
            Ну, sqlite3 хоть и не самая полезная рядовому пользователю вещь, но и вреда от нее немного, память он не занимает.
            А как добавить какие то команды для выполенения при запуске вы случаем не знаете?
              +1
              Для добавления команд при старте системы, надо использовать launchdaemon скрипт. Методика такая же как на Mac OS X.
              Есть папка: /System/Library/LaunchDaemons. Там лежат plist-файлы, каждый из которых выполняется при старте системы.
              Как писать стартап-plist можно подробнее почитать тут.
          +1
          Юзабилити и комфортное использование в действии. Обычный пользователь сразу же охереет прочитав 0 и 1 пункты инструкции.
            0
            Именно благодаря этим пунктам я понял, что отношусь к категории обычных пользователей :-)
              0
              нуу извиняйте.
              Можно попробовать поставить какие-нибудь приложения из сидии, с помощью которых можно было бы достучаться до этого файла, возможно MobileFinder умеет (НЕ путать с MobileFinder'ом из AppStore). Но поскольку я сам ничего такого не юзаю, то посоветовать ничего не могу :(
            +1
            Если вы помимо iPhone пользуетесь Firefox, его можно аналогично ускорить habrahabr.ru/blogs/firefox/65683/
              0
              Ну да понятно, что этот метод применим к любым базам данных sqlite.
              В Mac OS X, к слову, большинство приложений использует sqlite, например тот же Mail.app.
              0
              А не проще их очистить?

              Only users with full accounts can post comments. Log in, please.