Хорошие инструкции для разработки приложения электронной коммерции

Я делаю приложение электронной коммерции на Android и, поскольку это - мой первый серьезный проект, я пытаюсь выяснить заранее лучший подход, чтобы сделать это.

Приложение говорит с веб-сервисом (магнитный API, означая мыло или xml rpc, к сожалению) и получает все содержание по телефону (категории продуктов, сведения о продукте, удостоверения пользователя и т.д.). Я думаю, что это должно сделать ленивую загрузку или что-то как этот.

Так, я думал для хранения удостоверений пользователя в пользовательском объекте, который будет сохранен в a SharedPreferences так, чтобы каждый плавиковый шпат Действия легко получил доступ к нему. Я буду использовать несколько ListViews для показа содержания и AsyncTask выбирать необходимые данные. Я должен сохранить все данные в памяти в объектах, или я должен использовать своего рода кэш или локальную базу данных? Кроме того, я планирую использовать a HashMap с SoftReferences для содержания битовых массивов, я загружаю. Но разве это не съело бы большую память?

Как плавиковый шпат все операции имеет доступ ко всем этим объектам (корзина электронной коммерции и т.д.)? Я думаю о передаче их использующий Намерения, но это не кажется правильным мне. SharedPreferences могут использоваться для большого количества объектов и являются там какими-либо проблемами параллелизма?

Любые указатели действительно ценились бы. Каковы некоторые хорошие инструкции? Какие классы я должен изучить? Вы знаете о каких-либо ресурсах в Интернете для меня для проверки?

16
задан Catalin Morosan 9 June 2010 в 14:11
поделиться

2 ответа

Очень подробный вопрос, на который я постараюсь ответить. В своем приложении я использовал следующий подход:

  • Я сохраняю учетные данные пользователя в общих настройках.Настройки могут содержать только пользовательские объекты, если они сериализуемы, а запись и чтение из флэш-памяти занимает много времени. Поэтому я загружаю настройки при запуске и сохраняю их в памяти.

  • Я стараюсь хранить все данные в памяти, которая нужна во многих местах, и в согласованном состоянии, вся остальная память передается через сериализацию в json и через намерение, или я передаю только идентификаторы и получаю их из сеть. (Определенно существует возможность кэширования в локальной базе данных, но усилия по поддержанию ее в актуальном состоянии представляют собой большую работу на данный момент.) Чтобы хранить объекты, которые долго перезагружаются из внутренней памяти или сети, и повторно анализировать их, я использую пользовательское приложение , которое содержит ссылку на некоторые объекты контроллера, которые управляют кэшированием. Приложение будет оставаться в памяти, пока ваше приложение не будет закрыто. Это удобно, но может потребовать много памяти, если вы не будете осторожны.

  • Растровые изображения, загружаемые моей программой, кэшируются на двух уровнях. В первый раз, когда я хочу получить доступ к изображению, я создаю объект диспетчера изображений внутри своей области действия. Этот объект попытается найти растровое изображение на внутренней карте. Если его нет, он попытается загрузить его из памяти телефона, если его нет в памяти телефона, он загрузит его из сети, сохранит в папке кеша моего приложения и поместит на карту. Таким образом, растровое изображение доступно, пока выполняется действие, и очищается в момент перехода пользователя на другой экран. До сих пор мне этого достаточно.

В конце просто начните программировать и возвращайтесь, если у вас возникнут другие вопросы или ошибки, и задайте более конкретные вопросы.

12
ответ дан 30 November 2019 в 23:00
поделиться

Многие полезные методы, которые вам понадобятся: ContentProviders, AsyncTasks, Bitmap Caching, ... используются в Romain Guys 'Shelvs' ( http: //www.curious- Creature.org/2009/01/19/shelves-an-open-source-android-application/) приложение. Это отличная отправная точка для того, чтобы получить рекомендации по Android.

1
ответ дан 30 November 2019 в 23:00
поделиться
Другие вопросы по тегам:

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