You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The [AWS SDK for Android](https://aws.amazon.com/mobile/resources/) provides a library and documentation for developers to build connected mobile applications using AWS.
6
+
The AWS SDK for Android provides a library and documentation for developers to build connected mobile applications using AWS.
9
7
10
-
##Resources
8
+
### Features / APIs
11
9
12
-
***[Developer Guide](https://docs.aws.amazon.com/aws-mobile/latest/developerguide/getting-started.html)** - For in-depth getting started and usage information.
13
-
***[Code Samples](https://github.com/awslabs/aws-sdk-android-samples)** - Repository of example projects using the SDK.
14
-
***[Javadoc](http://docs.aws.amazon.com/AWSAndroidSDK/latest/javadoc/)** - For operations, parameters, responses, and examples
15
-
***[AWS Mobile Developer Blog](http://mobile.awsblog.com/)** - For updates and guidance on using the AWS SDK for Android
16
-
***[Changelog](https://github.com/aws/aws-sdk-android/blob/master/CHANGELOG.md)** - To see the latest features, bug fixes, and changes in the SDK
17
-
***[Issues](https://github.com/aws/aws-sdk-android/issues)** - Report issues and submit pull requests (see [Apache 2.0 License](http://aws.amazon.com/apache-2-0/))
18
-
***[@awsformobile](https://twitter.com/awsformobile)** - Follow us on Twitter
10
+
-[__Authentication__](https://aws-amplify.github.io/docs/android/authentication): APIs and building blocks for developers who want to create user authentication experiences.
11
+
-[__Analytics__](https://aws-amplify.github.io/docs/android/analytics): Easily collect analytics data for your app. Analytics data includes user sessions and other custom events that you want to track in your app.
12
+
-[__API__](https://aws-amplify.github.io/docs/android/api): Provides a simple solution when making HTTP requests. It provides an automatic, lightweight signing process which complies with AWS Signature Version 4.
13
+
-[__Storage__](https://aws-amplify.github.io/docs/android/storage): Provides a simple mechanism for managing user content for your app in public, protected or private storage buckets.
14
+
-[__Push Notifications__](https://aws-amplify.github.io/docs/android/push-notifications): Allows you to integrate push notifications in your app with Amazon Pinpoint targeting and campaign management support.
15
+
-[__PubSub__](https://aws-amplify.github.io/docs/android/pubsub): Provides connectivity with cloud-based message-oriented middleware.
16
+
-[__Generated AWS Service Interfaces__](https://aws-amplify.github.io/docs/android/manualsetup): Provides direct interaction with any AWS service.
19
17
20
-
##Getting Started using the SDK
18
+
#### Visit our [Web Site](https://aws-amplify.github.io) to learn more about Amplify Framework.
21
19
22
-
Please note the AWS SDK for Android supports Android API level 10+ and newer libraries may require higher API level 21+ and 23+.
23
-
24
-
### Sign up for AWS
25
-
Before you begin, you need to sign up for an AWS account [here](http://aws.amazon.com/), click 'Sign In to the Console', and select new user.
26
-
27
-
### Create an Amazon Cognito Identity pool
28
-
Amazon Cognito Identity allows you to authenticate users to access your AWS resources without having to place your credentials within the applicaiton itself (which is *very* insecure).
1. Log into the [Cognito Console](https://console.aws.amazon.com/cognito/home) and click the Get Started button (or the **Manage Federated Identities** button if your account already has an identity pool).
33
-
2. Give your Identity Pool a unique name and either enable access to unauthenticated identities or follow the guides presented in the console to setup an authentication provider (Such as Amazon, Facebook, Google, Twitter, or be your own authentication provider). Then click create pool.
34
-
3. You will need to create a role associated with your Identity Pool. This role specifies the actions that users in the identity pool are allowed to make. By default the console provides you with a role that allows the synchronization of user data from Cognito Sync and recording user events using Amazon Mobile Analytics. For some example ways to allow other services, or to revoke the permission for these default services see the [Getting Started Guide](http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/getting-started-android.html) and navigate to the service you are interested in to see an example of how to create an appropriate role.
35
-
4. The Cognito console will then present you with a code snippet for getting AWS Credentials to your application. Keep this open as you may find it useful once you are ready to start coding with the SDK.
26
+
Please note the AWS SDK for Android supports Android API level 10+ and newer libraries may require higher API level 21+ and 23+.
36
27
37
-
### Depend on the AWS SDK for Android in your application
28
+
### Include the SDK for Android in an Existing Application
38
29
39
30
The following 3 sections describe how you can depend on the SDK in your application using Gradle with Android Studio, Maven, or by downloading the Jar files from our website.
40
31
If you use Maven or Gradle you can automatically get new versions of the SDK when they are released.
@@ -113,7 +104,7 @@ Here's an example pom.xml showing how you can add Amazon Cognito Identity, Amazo
113
104
114
105
#### Including the Jars
115
106
116
-
You can also download the .zip file containing the jars files of the SDK [here](http://aws.amazon.com/mobile/sdk/).
107
+
You can also download the .zip file containing the jars files of the SDK [here](https://sdk-for-android.amazonwebservices.com/latest/aws-android-sdk.zip).
117
108
How you include these in your project will depend on the editor you are using.
118
109
119
110
For an Eclipse project, add the jar files to a folder in your project called 'libs' (create one if it doesn't already exist). The Eclipse Android plug-in will usually add this to your classpath by default. If it does not right click your project --> properties --> Java build path (Libraries tab), add Jar and select the Jars you want to add
@@ -165,69 +156,11 @@ private class S3Example extends AsyncTask<Void,Void,Void>{
165
156
### SDK Fundamentals
166
157
There are only a few fundamentals that are helpful to know when developing against the AWS SDK for Android.
167
158
168
-
* Never embed credentrials in an Android application. It is trivially easy to decompile applications and steal embedded credentials. Always use temporarily vended credentials from services such as [Amazon Cognito Identity](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html).
159
+
* Never embed credentrials in an Android application. It is trivially easy to decompile applications and steal embedded credentials. Always use temporarily vended credentials from services such as Amazon Cognito Identity.
169
160
* Unless explicitly stated, calls are synchronous and must be taken off of the main thread.
170
161
* Unless explicitly stated, calls can always throw an AmazonServiceException or an AmazonClientException (depending on if the exception is generated by the client or the service).
171
162
* The SDK will handle re-trying requests automatically, but unless explicitly stated will throw an exception if it cannot contact AWS.
172
-
* We are always looking to help, please feel free to open an [issue](https://github.com/aws/aws-sdk-android/issues).
173
-
174
-
### Basic Service API Calls
175
-
176
-
The SDK provides access to many AWS Services. At the most basic level the SDK provides a request/response model for many of the various service methods. At this level, for a given service, you will have a client that accepts request objects and will pass back a response object, or throw an error. This basic model is shown in the above example. Looking at the [Javadoc](http://docs.aws.amazon.com/AWSAndroidSDK/latest/javadoc/) you will notice that services typically have a com.amazonaws.services.*servicename* package and com.amazonaws.services.*servicename*.model package . This *servicename* package contains the client that you will pass request/response objects to in order to make service calls. The *servicename*.model package contains classes that model the request and response parameters of calls to and from AWS services.
177
-
178
-
### Mobile Connectors
179
-
180
-
The SDK also provides a higher level experience for many services.
181
-
182
-
### S3 Transfer Utility
183
-
184
-
The TransferUtility adds convenience and reliability on top of using the standard `AmazonS3Client` when uploading and downloading data to S3:
185
-
186
-
* Enhances performance by automatically converting upload transfers > 5MB to multi-part uploads, using multiple threads.
187
-
* Provides the ability to pause/resume/cancel upload/download transfers, which is useful if the app is being killed or loses internet connectivity.
188
-
* Automatically pauses/resumes upload/download transfers when network connectivity changes.
189
-
190
-
### S3 Transfer Manager (Deprecated)
191
-
192
-
Please use S3 Transfer Utility
193
-
194
-
### DynamoDB Object Mapper
195
-
196
-
DynamoDB Object Mapper lets you map client-side classes to DynamoDB tables similar to standard ORM techniques. With it you can:
197
-
198
-
* Perform various create, read, update, and delete (CRUD) operations, as well as execute queries which automatically return the classes you specify.
199
-
* Use S3 link if the class you are mapping contains large blob data. With S3 Links you can store large chunks of bytes, such as avatar images, in S3 while storing the rest of the class data, such as primitives and strings in DynamoDB.
200
-
201
-
Note: The DynamoDB Mapper is in a separate jar (and Maven package), but requires the DynamoDB jar to be on the classpath. If you want to use S3 Links, you will also need the Amazon S3 jar on the classpath.
202
-
203
-
### Lambda Invoker
204
-
The Lambda Invoker helps calling code in the cloud via AWS Lambda by:
205
-
206
-
* Automatically providing your Lambda functions with data about the device, app, and end user identity for personalized responses.
207
-
* Allowing you to annotate Java interfaces, denoting them as proxies to Lambda fuctions, letting you stay in the Java paradigm.
208
-
209
-
### Amazon Cognito
210
-
211
-
The Amazon Cognito mobile connector provides the ability to:
212
-
213
-
* Authenticate users from login providers such Amazon, Facebook, Google, Twitter, or your own custom identity provider.
214
-
* Synchronize user profile data, app preferences or game state across devices and across login providers.
215
-
* Record and update user data while offline.
216
-
217
-
**Note**: The Amazon Cognito Federated Identities classes are part of `AWS SDK for Android - Core` (`aws-android-sdk-core` Maven package) and can be found [here](https://github.com/aws/aws-sdk-android/tree/master/aws-android-sdk-core). The Amazon Cognito Sync code can be found [here](https://github.com/aws/aws-sdk-android/tree/master/aws-android-sdk-cognito).
218
-
219
-
### Amazon Pinpoint
220
-
Using Amazon Pinpoint, you can:
221
-
222
-
* Record custom events
223
-
* Automatically track customer behaviors, aggregate metrics, and generate data visualizations.
224
-
* Record events to disk, and select when to send batches of recorded events to AWS. (This allows saving of events while offline, and saves battery life by infrequently waking up the network.)
225
-
* Specify the maximum amount of storage space you want to dedicate to event storage.
226
-
227
-
### Kinesis Recorder
228
-
Amazon Kinesis allows for real-time processing of streaming data at massive scale. Unlike Amazon Mobile Analytics, using Amazon Kinesis developers write server side code to process data sent to Kinesis. An example would be recording click stream data.
229
-
230
-
* The Kinesis Recorder allows developers to save PutRecordRequests to disk and send them in batches. (This allows saving of records while offline, and saves battery life by infrequently waking up the network.)
163
+
* We are always looking to help, please feel free to open an [issue](https://github.com/aws-amplify/aws-sdk-android/issues).
231
164
232
165
## Building the SDK
233
166
This section describes how you can compile the SDK source code on your own.
@@ -239,10 +172,6 @@ After installing Gradle, clone this repository and run
239
172
240
173
Otherwise, use Android Studio to open the project and build the sub-project(s) of your choice and check the `build` folder for `libs` or `output/aar`.
241
174
242
-
#### Developing
243
-
244
-
The recommended IDE is Android Studio, but you should be able to use your favorite IDE as long as it supports Gradle.
245
-
246
175
#### Issues with unit tests on Windows
247
176
248
177
If you are using a Windows machine, unit tests that involve file deletion can fail because the filesystem does not respond well to `file.delete()`.
@@ -251,36 +180,14 @@ If you are using a Windows machine, unit tests that involve file deletion can fa
251
180
252
181
For more information on Android development, see the Android developer site at: [developer.android.com](http://developer.android.com/index.html)
253
182
254
-
### Supported AWS Services
255
-
256
-
The AWS SDK for Android supports the following AWS services:
257
-
258
-
*[Amazon API Gateway](https://aws.amazon.com/api-gateway/)
259
-
*[Amazon Auto Scaling](https://aws.amazon.com/autoscaling/)
0 commit comments