2015-02-10 3 views
0

Я сейчас работаю над библиотекой, и мне нужно интегрировать в нее AWS SDK. Я использую только два AWS услуг SQS в моей библиотеке -Проблемы с размерами AWS iOS/Android SDK

  1. Создать очередь
  2. Отправить сообщение (загрузить некоторые данные)

Общего размером влияние AWS SDK (IOS и Android) на моя библиотека огромна (более 50% на обеих платформах). Чтобы убедить партнеров, основное требование - уменьшить размер моей библиотеки.

Мои вопросы являются-

  • Есть ли что-нибудь уже существующего, что я могу использовать непосредственно для создания очередей и загрузки данных?
  • Как я могу реализовать что-то вроде облегченной версии AWS SDK самостоятельно для этого варианта использования?

ПРИМЕЧАНИЕ: Я ном для материала AWS.

+0

Все AWS API основаны на REST. Все, что вам нужно сделать, это сделать запрос к конечной точке для службы, которую вы используете. SDK действительно предоставляют некоторые удобства и абстракции для служб REST, но они не являются критическими для использования. – datasage

+0

Что еще вы делаете из своего приложения? Вы могли (и, вероятно, должны) сделать это на стороне сервера.В противном случае вы распространяете * свои * ключи в своем приложении. – tedder42

+0

У нас есть ключи, безопасные, связывая его с нашей конечной точкой веб-сервиса и кодировками, поэтому безопасность не является проблемой. Моя проблема заключается в том, как реализовать API REST. Я видел документацию, и она выглядит немного сложной, было бы очень полезно, если кто-то может сломать вещи и объяснить это простыми словами. –

ответ

1

Существует два способа использования AWS SDK для iOS: через CocoaPods и AWSiOSSDKv2.framework. Если вы используете CocoaPods, вы можете использовать следующую Podfile импортировать только код, необходимый для Amazon SQS:

source 'https://github.com/CocoaPods/Specs.git' 

pod 'AWSiOSSDKv2/SQS' 

Если вы используете AWSiOSSDKv2.framework, вы можете удалить -ObjC флаг из Других флагов компоновщика в вашем Настройки сборки. Xcode достаточно умен, чтобы отображать только объектные файлы, используемые в вашем приложении из фреймворка, а влияние двоичного размера на конечное приложение минимально. Если у вас есть другие фреймворки, которым нужен флаг -ObjC, вы можете использовать -force_load на этих фреймворках вместо -ObjC.

На стороне Android мы постоянно работаем над уменьшением размеров баннеров, поэтому, пожалуйста, убедитесь, что вы берете последнюю версию SDK. Размер AWS Mobile SDK для Android 2.1.8 (только Amazon SQS) является:

  • aws-android-sdk-2.1.8-core.jar: 2MB
  • aws-android-sdk-2.1.8-sqs.jar: 180KB

Мы также отправляем наши Proguard установки рекомендации с SDK , Пожалуйста, см. Proguard.html о том, как уменьшить размер двоичного файла приложения с помощью Proguard.

В качестве примечания, пожалуйста, убедитесь, что вы тщательно просмотрели разрешения на создание очередей с мобильного устройства. В общем, мы не рекомендуем создавать очереди с мобильных устройств, потому что любые учетные данные на мобильных устройствах могут быть извлечены и использованы злоумышленниками. Единственное исключение - когда вы «доверяете» всем своим конечным пользователям (например, когда вы пишете корпоративные приложения для сотрудников).

+0

Этот размер слишком большой для моего требования, и в будущем нам также понадобятся услуги s3, поэтому я не думаю, что это сработает. Для нас очень важно хранить нашу библиотеку. –

+0

Как использовать aws rest apis для SendMessage порядка 256 КБ? –

Смежные вопросы