我现在正在开发一个库,我需要在其中集成 AWS SDK。 我在我的库中只使用了两个 AWS SQS 服务 -
- 创建队列
- 发送消息(上传一些数据)
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/