android - AWS iOS/Android SDK 大小问题

标签 android ios amazon-web-services amazon-sqs aws-sdk

我现在正在开发一个库,我需要在其中集成 AWS SDK。 我在我的库中只使用了两个 AWS SQS 服务 -

  1. 创建队列
  2. 发送消息(上传一些数据)

AWS SDK(iOS 和 Android)对我的库的整体大小影响很大(在两个平台上都超过 50%)。为了说服合作伙伴,我的首要要求是缩小我的图书馆的规模。

我的问题是-

  • 是否有任何现成的东西可以直接用于创建队列和上传数据?
  • 我如何才能针对此用例自行实现类似 AWS SDK 的轻量级版本?

注意:我对 AWS 的东西一窍不通。

最佳答案

有两种方法可以使用适用于 iOS 的 AWS 开发工具包:通过 CocoaPods 和 AWSiOSSDKv2.framework .如果您使用的是 CocoaPods,则可以使用以下 Podfile仅导入 Amazon SQS 所需的代码:

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

pod 'AWSiOSSDKv2/SQS'

如果您使用 AWSiOSSDKv2.framework ,您可以删除 -ObjC来自build设置中的其他链接器标记的标记。 Xcode 足够聪明,可以只从框架中引入您的应用程序中使用的目标文件,并且对最终应用程序的二进制大小影响很小。如果您有其他需要 -ObjC 的框架标志,你可以使用 -force_load在这些框架上而不是 -ObjC .

在 Android 方面,我们一直致力于减小 jar 大小,因此请确保您获取最新版本的 SDK。适用于 Android 2.1.8(仅限 Amazon SQS)的 AWS Mobile SDK 的大小为:

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

我们还随 SDK 提供了 Proguard 设置建议。请参阅Proguard.html关于如何使用 Proguard 减少应用程序二进制文件的大小。

作为旁注,请确保您已经彻底检查了从移动设备创建队列的权限。通常,我们不建议从移动设备创建队列,因为移动设备上的任何凭据都可能被恶意用户提取和滥用。唯一的异常(exception)是当您“信任”所有最终用户时(例如当您为员工编写企业应用程序时)。

关于android - AWS iOS/Android SDK 大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28422097/

相关文章:

android - Android 导航组件中处理 onBackPressed

iphone - iOS - 保存到 plist

ios - 如何在 Swift 中的 "model"组件中设置委托(delegate) View Controller 类

amazon-web-services - 寻找将分层文档放入 DynamoDB 的最佳方法

amazon-web-services - 为什么一个亚马逊 EC2 实例需要两个弹性 IP?

android - 如何编写自己的 ls 命令并使其在 Rooted Android 终端上运行?

android - 如何以编程方式找到 Root设备?

java - URL获取参数的问题

ios - 从另一个 ViewController 访问变量

java - AmazonS3Client 中 getContinuationToken 和 getNextContinuationToken 之间的区别