Android Studio方式(推荐) Maven依赖
- dependencies {
- compile 'com.aliyun.dpa:oss-android-sdk:2.4.4'
- compile 'com.squareup.okhttp3:okhttp:3.4.1'
- compile 'com.squareup.okio:okio:1.9.0'
- }
直接引入jar包
当您下载了OSS Android SDK 的 zip 包后,进行以下步骤(对Android studio 或者 Eclipse 都适用):
- 在官网下载 sdk 包
- 解压后得到 jar 包,目前包括 aliyun-oss-sdk-android-x.x.x.jar、okhttp-3.x.x.jar 和 okio-1.x.x.jar
- 将以上 3 个 jar 包导入 libs 目录
权限设置
以下是 OSS Android SDK 所需要的 Android 权限,请确保您的 AndroidManifest.xml 文件中已经配置了这些权限,否则,SDK 将无法正常工作。
- <uses-permission android:name="android.permission.INTERNET"></uses-permission>
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
混淆设置
在混淆配置中加入:
- -keep class com.alibaba.sdk.android.oss.** { *; }
- -dontwarn okio.**
- -dontwarn org.apache.commons.codec.binary.**
对 SDK 中同步接口、异步接口的一些说明
考虑到移动端开发场景下不允许在UI线程执行网络请求的编程规范,SDK大多数接口都提供了同步、异步两种调用方式,同步接口调用后会阻塞等待结果返回,而异步接口需要在请求时传入回调函数,请求的执行结果将在回调中处理。
同步接口不能在UI线程调用。遇到异常时,将直接抛出ClientException或者ServiceException异常,前者指本地遇到的异常如网络异常、参数非法等;后者指OSS返回的服务异常,如鉴权失败、服务器错误等。
异步请求遇到异常时,异常会在回调函数中处理。
此外,调用异步接口时,函数会直接返回一个Task,Task可以取消、等待直到完成、或者直接获取结果。如:
- OSSAsyncTask task = oss.asyncGetObejct(...);
- task.cancel(); // 可以取消任务
- task.waitUntilFinished(); // 等待直到任务完成
- GetObjectResult result = task.getResult(); // 阻塞等待结果返回
接口支持同步和异步两种调用方式,考虑到简洁性,本文档中只有部分重要接口会同时提供同步、异步两种调用的示例,其他接口暂时以异步调用的示例为主。