+ Reply to Thread
Results 1 to 10 of 10

Thread: Написание Updater'a

  1. #1

    Default Написание Updater'a

    Привет всем.

    Интересует вопрос написания апдейтера. Собственно, кто в курсе посоветуйте какие-то толковые материалы, я поискав нечего по сути не нашел.

    Пока я себе представляю так:
    На сервере я ложу новую версию моей программы, далее я пишу 2 след. модуля. Первый модуль (часть программы, к-ую нужно обновить) - это часть, к-ая отвечает за закачку на телефон новой версии программы, и передаю управление ей, новая программа берет и удаляет старую.
    Второй модуль - находится на сервере и соотвесвенно принимает запросы на проверку наличия новой версии программы, и если она имеется отправляет ее, напр., по протоколу НТТР.

    Собвственно, какие схемы обновления вы можете предложить или то как я себе представляю так делают все? И еще какие советы можете дать, к-ые надо учесть для возможно какого-то дальнейшего развития, безопастности и тд...

    Если это сильно важно, то данный апдейтер я хотел бы встроить как функционал апликухи, к-ая будет находится на телефоне под ОС Android, в будущем планируется портировать на iOS.

    Спасибо за внимание!
    Буду рад любой вашей помощи.

    С уважением,
    coldfire

  2. Пользователь сказал cпасибо:
    ximera (11-05-2012)
  3. #2
    root's Avatar

    Default Re: Написание Updater'a

    Все довольно условно и зависит от архитектуры твоей программы. Самое простое - это не заморачиваться и написать два исполняемых файла (программу и апдейтер), как собственно большинство и делают.
    1. При запуске "программа" проверяет, не появилась ли новая версия и если появилась запускает "апдейтер" и завершает свою работу.
    2. "Апдейтер" в свою очередь, так же проверяет наличие новой версии и если она есть загружает ее. Затем проверяет: висит ли процесс обновляемой программы в списке процессов? И если да, то просит пользователя выйти из программы (приложения), либо завершить ее процесс.
    Можно немного заморочиться и сделать как ты хочешь, но в этом случае придется добавить еще один файл, который будет выступать в виде некой оболочки/обертки (wrapper) и будет подгружать твои модули.

    Информацию по этой теме, наверняка можно найти в каких нибудь статьях или книгах по модульному программированию (если их кто-то пишет). Я таких книг/статей не читаю(л), поскольку вся модульность в основном сводится к умению разбить программу на отдельные части, с последующим их вынесением в отдельные модули. То как эти модули будут загружаться и взаимодействовать - дело уже десятое, поскольку зависит от используемого языка программирования и платформы, на которой все это хозяйство будет разворачиваться.
    Успех – это путь от провала до провала без потери энтузиазма. (В. Черчиль)

    Не бойся идти медленно, бойся остановиться. (Китайская пословица)

    When you lose fun and start doing things only for the payback, you're dead. (c) TCLH (Phrack 65, Intro)

  4. 2 пользователя(ей) сказали cпасибо:
    coldfire (11-05-2012) ximera (11-05-2012)
  5. #3

    Default Re: Написание Updater'a

    Добрый день.

    root, спасибо за то, что отписался.

    Хотелось бы избавиться только от одного, что бы это все таки не была отдельная программа апдейтер, а то пользователи нынче сильно боятся почему-то таких вещей...=) хотя может этот апдейтер можно запихнуть будет в apk, не в курсе?

    С уважением,
    coldfire

  6. Пользователь сказал cпасибо:
    root (11-05-2012)
  7. #4
    V3T's Avatar

    Default Re: Написание Updater'a

    Последнее время лучше не использовать для апдейтеров отдельные процессы, антивирусы неадекватно очень на них реагируют
    Реверсинг ПО для незрячих - благородная цель

  8. #5

    Default Re: Написание Updater'a

    V3T я в целом так бы и хотел сделать, что бы грубо говоря у меня была ф-ия updateProgram() и в ней делалось все что надо для того, что бы запихнуть новую версию... Но вот тогда вопрос состоит в том как удалить мне старую версию проги, если она по сути все еще весит в памяти и Андроид мне не даст ее удалить. Тогда получается, что надо делать костыль вида, что бы то приложение я закачал, при первом своем запуске чистило предидущее приложение. Или нет?

  9. #6
    V3T's Avatar

    Default Re: Написание Updater'a

    Думаю да, этот костыль будет не сильно сложен в реализации
    Реверсинг ПО для незрячих - благородная цель

  10. #7

    Default Re: Написание Updater'a

    Он не сложен, но это как-то не правильно. Не серьезно так делать, пока немерее так не должно быть! Или я ошибаюсь...
    Я тут полазил и вообще есть такой слух, к-ый надо бы проверить:
    > Currently i am working on writing a android application, i wander how
    > to write a update patch for it after it has been installed on android
    > devices? Or it is better to ask the user to delete old version of the
    > application and install the new one?

    Installing the newer version, if it has the same package name and is
    signed by the same key, should automatically replace a previously
    installed version. If it is in the Android Market, users will even be
    notified when a newer version than installed is available.

  11. #8
    root's Avatar

    Default Re: Написание Updater'a

    Хотелось бы избавиться только от одного, что бы это все таки не была отдельная программа апдейтер, а то пользователи нынче сильно боятся почему-то таких вещей...=) хотя может этот апдейтер можно запихнуть будет в apk, не в курсе?
    Без понятия, андроидом еще не пользовался, поэтому не знаю как он работает, не говоря уже о том чтобы писать под него что-то. Хотя, у меня недавно появилась идея: написать одно полезное приложение, которое бы работало на ПК и Android. А заодно выучить еще один новый язык для себя Java (тем более, что у человека знающему С/С++ & Python это займет максимум несколько дней, которые в основном уйдут на ознакомление с библиотеками и функциями). Поэтому сейчас жду появления Galaxy Tab 2 (в наших магазинах) и там уже буду разбираться, что к чему. А пока сорри.

    V3T я в целом так бы и хотел сделать, что бы грубо говоря у меня была ф-ия updateProgram() и в ней делалось все что надо для того, что бы запихнуть новую версию... Но вот тогда вопрос состоит в том как удалить мне старую версию проги, если она по сути все еще весит в памяти и Андроид мне не даст ее удалить. Тогда получается, что надо делать костыль вида, что бы то приложение я закачал, при первом своем запуске чистило предидущее приложение. Или нет?
    Какие бы ни были костыли - это не хорошо. Делать все нужно исходя из имеющихся возможностей.

    > Currently i am working on writing a android application, i wander how
    > to write a update patch for it after it has been installed on android
    > devices? Or it is better to ask the user to delete old version of the
    > application and install the new one?

    Installing the newer version, if it has the same package name and is
    signed by the same key, should automatically replace a previously
    installed version. If it is in the Android Market, users will even be
    notified when a newer version than installed is available.
    Я тоже загуглил, так оно и есть: http://lifehacker.com/5828576/how-to...oid-and-iphone
    Last edited by root; 25-01-2014 at 12:59.
    Успех – это путь от провала до провала без потери энтузиазма. (В. Черчиль)

    Не бойся идти медленно, бойся остановиться. (Китайская пословица)

    When you lose fun and start doing things only for the payback, you're dead. (c) TCLH (Phrack 65, Intro)

  12. #9

    Default Re: Написание Updater'a

    Quote Originally Posted by root View Post
    Без понятия, андроидом еще не пользовался, поэтому не знаю как он работает, не говоря уже о том чтобы писать под него что-то. Хотя, у меня недавно появилась идея: написать одно полезное приложение для изучения английского языка, которое бы работало на ПК и Android. А заодно выучить еще один новый язык для себя Java (тем более, что у человека знающему С/С++ & Python это займет максимум несколько дней, которые в основном уйдут на ознакомление с библиотеками и функциями). Поэтому сейчас жду появления Galaxy Tab 2 (в наших магазинах) и там уже буду разбираться, что к чему. А пока сорри.
    По поводу языка программирования, то на сколько мне известно, то можно писать используя C/C++ ( Android NDK ), а дальше используя JNI ( прослойка для вызова кода написанного на С/С++) в коде Java, т.е. по сути и Java особо изучать не придется...

    А так проверил отдельно, не программно, то да - Андроид ОС сам за тебя обновляет, главное, что бы были одинаковые названия...

  13. Пользователь сказал cпасибо:
    root (12-05-2012)
  14. #10
    root's Avatar

    Default Re: Написание Updater'a

    Можно и на Питоне писать, как впрочем и на других скриптовых языках, но я предпочитаю использовать наиболее предпочтительный язык. Для Андроида - это Ява.

    А новый язык никогда не помешает.
    Успех – это путь от провала до провала без потери энтузиазма. (В. Черчиль)

    Не бойся идти медленно, бойся остановиться. (Китайская пословица)

    When you lose fun and start doing things only for the payback, you're dead. (c) TCLH (Phrack 65, Intro)

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 01:35
vBulletin® Copyright ©2000 - 2018
www.reverse4you.org