Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
#Changelog
## 8.3.1(2021-06-30)
* 支持 API level 14 (注意调整 okhttp 至 3.12.+)
* 支持 okhttp 4.9
* 解决偶现并发异常

## 8.3.0(2021-05-12)
* 支持资源通过 Uri 和 InputStream 方式上传

Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ https://github.com/qiniudemo/qiniu-lab-android

| Qiniu SDK 版本 | 最低 Android版本 | 依赖库版本 |
|------------ |-----------------|------------------------|
| 8.3.x | Android 5.0+ | okhttp 4+ |
| 8.3.1+ | Android 4.0+ | okhttp 4+ |
| 8.3.0 | Android 5.0+ | okhttp 4+ |
| 8.2.x | Android 5.0+ | okhttp 4+ |
| 8.1.x | Android 5.0+ | okhttp 4+ |
| 8.0.x | Android 5.0+ | okhttp 4+ |
Expand All @@ -30,7 +31,7 @@ https://github.com/qiniudemo/qiniu-lab-android
| 7.0.7 | Android 2.2+ | android-async-http 1.4.8 |

### 注意
* 推荐使用最新版:8.3.0
* 推荐使用最新版:8.3.1
* AndroidNetwork.getMobileDbm()可以获取手机信号强度,需要如下权限(API>=18时生效)
```
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
Expand Down
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Wed Dec 23 14:42:43 CST 2020
#Mon Jun 28 14:50:04 CST 2021
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
5 changes: 3 additions & 2 deletions library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ android {
buildToolsVersion '29.0.2'
defaultConfig {
//applicationId "com.qiniu.android"
minSdkVersion 19
minSdkVersion 14
targetSdkVersion 26
versionCode code
versionName version
Expand Down Expand Up @@ -52,7 +52,8 @@ android {

dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.2.2'
// implementation 'com.squareup.okhttp3:okhttp:3.12.1'

// implementation 'com.squareup.okhttp3:okhttp:3.12.+'
implementation 'com.qiniu:happy-dns:0.2.18'
// for javax.annotation.Nullable use in custom MultipartBody and Headers implements.
// implementation 'com.google.code.findbugs:jsr305:3.0.2'
Expand Down
24 changes: 14 additions & 10 deletions library/src/androidTest/java/com/qiniu/android/BaseTest.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.qiniu.android;

import com.qiniu.android.utils.LogUtil;
import android.test.AndroidTestCase;

import junit.framework.TestCase;
import com.qiniu.android.utils.LogUtil;

import java.util.Date;
import java.util.concurrent.CountDownLatch;
Expand All @@ -11,7 +11,7 @@
/**
* Created by yangsen on 2020/5/26
*/
public class BaseTest extends TestCase {
public class BaseTest extends AndroidTestCase {

@Override
protected void setUp() throws Exception {
Expand All @@ -20,18 +20,19 @@ protected void setUp() throws Exception {
}

private long maxWaitTimestamp = 0;

/**
* waitCondition: 等待条件
* maxWaitTime: 等待最大时长 单位-秒
*/
public void wait(WaitConditional waitConditional, float maxWaitTime){
public void wait(WaitConditional waitConditional, float maxWaitTime) {

WaitConditional waitConditionalP = waitConditional;
if (waitConditionalP == null){
if (waitConditionalP == null) {
waitConditionalP = new WaitCondition();
}

this.maxWaitTimestamp = new Date().getTime() + (long)(maxWaitTime * 1000);
this.maxWaitTimestamp = new Date().getTime() + (long) (maxWaitTime * 1000);
while (waitConditionalP.shouldWait()) {
long currentTimestamp = new Date().getTime();
if (currentTimestamp > maxWaitTimestamp) {
Expand All @@ -53,13 +54,16 @@ public interface WaitConditional {

public static class WaitCondition implements WaitConditional {
public boolean shouldWait = true;
public boolean shouldWait(){

public boolean shouldWait() {
return shouldWait;
};
}

;
}


private void notestWait(){
private void notestWait() {

long waitTime = 5;

Expand All @@ -71,6 +75,6 @@ private void notestWait(){

long endTimestamp = new Date().getTime();

assertTrue(((startTimestamp + waitTime*1000) < endTimestamp));
assertTrue(((startTimestamp + waitTime * 1000) < endTimestamp));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

public class BigDataConfigurationTest extends AndroidTestCase {

public void testCopy(){
public void testCopy() {
Configuration configuration = new Configuration();
configuration.connectTimeout = 15;

Expand All @@ -15,7 +15,7 @@ public void testCopy(){
assertTrue(configurationCopy.connectTimeout == configuration.connectTimeout);
}

public void testCopyNoValue(){
public void testCopyNoValue() {
Configuration configuration = null;

Configuration configurationCopy = Configuration.copy(configuration);
Expand Down
13 changes: 4 additions & 9 deletions library/src/androidTest/java/com/qiniu/android/ClientTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,22 @@
import com.qiniu.android.bigdata.client.CompletionHandler;
import com.qiniu.android.bigdata.client.PostArgs;
import com.qiniu.android.http.ResponseInfo;
import com.qiniu.android.http.request.httpclient.MultipartBody;
import com.qiniu.android.storage.UpToken;
import com.qiniu.android.utils.StringMap;

import org.json.JSONObject;

import java.util.HashMap;

import okhttp3.MediaType;

public class ClientTest extends BaseTest {

public void testSyncGet(){
public void testSyncGet() {

Client client = new Client(null, 90, 90, null, null);
ResponseInfo responseInfo = client.syncGet("https://up.qiniup.com/crossdomain.xml", null);
assertTrue(responseInfo != null);
assertTrue(responseInfo.statusCode == 200);
}

public void testAsyncGet(){
public void testAsyncGet() {

final WaitCondition waitCondition = new WaitCondition();
Client client = new Client();
Expand All @@ -41,7 +36,7 @@ public void complete(ResponseInfo info, JSONObject response) {
wait(waitCondition, 10 * 60);
}

public void testMultipartSyncPost(){
public void testMultipartSyncPost() {

PostArgs postArgs = new PostArgs();
postArgs.data = "123".getBytes();
Expand All @@ -57,7 +52,7 @@ public void testMultipartSyncPost(){
assertTrue(responseInfo != null);
}

public void testMultipartAsyncPost(){
public void testMultipartAsyncPost() {

final WaitCondition waitCondition = new WaitCondition();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,22 @@
package com.qiniu.android;

import android.test.AndroidTestCase;
import android.util.Log;

import com.qiniu.android.common.Config;
import com.qiniu.android.http.ResponseInfo;
import com.qiniu.android.storage.Configuration;
import com.qiniu.android.storage.UpCompletionHandler;
import com.qiniu.android.storage.UploadManager;

import junit.framework.Assert;

import org.json.JSONObject;

import java.io.File;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

public class ComplexUploadSceneTest extends UploadBaseTest {

private final CountDownLatch signal = new CountDownLatch(1);

public void testMutiUploadV1(){
public void testMutiUploadV1() {

final int maxCount = 40;

Expand All @@ -36,7 +30,7 @@ public void testMutiUploadV1(){
.resumeUploadVersion(Configuration.RESUME_UPLOAD_VERSION_V1)
.useConcurrentResumeUpload(true)
.concurrentTaskCount(3)
.chunkSize((i%4 + 1) * 1024 * 1024 + i)
.chunkSize((i % 4 + 1) * 1024 * 1024 + i)
.build();

int size = (i + 1) * 1024;
Expand All @@ -53,12 +47,12 @@ public void testMutiUploadV1(){
upload(info, keyUp, config, null, new UpCompletionHandler() {
@Override
public void complete(String key, ResponseInfo info, JSONObject response) {
synchronized (param){
synchronized (param) {
param.completeCount += 1;
if (info != null && info.isOK()){
if (info != null && info.isOK()) {
param.successCount += 1;
}
if (param.completeCount == (maxCount - start)){
if (param.completeCount == (maxCount - start)) {
signal.countDown();
}
}
Expand All @@ -76,7 +70,7 @@ public void complete(String key, ResponseInfo info, JSONObject response) {
assertTrue("success count" + param.successCount, param.successCount == param.completeCount);
}

public void testMutiUploadV2(){
public void testMutiUploadV2() {

final int maxCount = 40;

Expand All @@ -90,7 +84,7 @@ public void testMutiUploadV2(){
.resumeUploadVersion(Configuration.RESUME_UPLOAD_VERSION_V2)
.useConcurrentResumeUpload(true)
.concurrentTaskCount(3)
.chunkSize((i%4 + 1) * 1024 * 1024 + i)
.chunkSize((i % 4 + 1) * 1024 * 1024 + i)
.build();

int size = (i + 1) * 1024;
Expand All @@ -107,12 +101,12 @@ public void testMutiUploadV2(){
upload(info, keyUp, config, null, new UpCompletionHandler() {
@Override
public void complete(String key, ResponseInfo info, JSONObject response) {
synchronized (param){
synchronized (param) {
param.completeCount += 1;
if (info != null && (info.isOK() || info.statusCode == 614)){
if (info != null && (info.isOK() || info.statusCode == 614)) {
param.successCount += 1;
}
if (param.completeCount == (maxCount - start)){
if (param.completeCount == (maxCount - start)) {
signal.countDown();
}
}
Expand All @@ -131,7 +125,7 @@ public void complete(String key, ResponseInfo info, JSONObject response) {
}


private class TestParam{
private class TestParam {
int successCount = 0;
int completeCount = 0;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,12 @@
package com.qiniu.android;

import android.test.suitebuilder.annotation.LargeTest;

import com.qiniu.android.common.AutoZone;
import com.qiniu.android.common.FixedZone;
import com.qiniu.android.common.Zone;
import com.qiniu.android.http.ResponseInfo;
import com.qiniu.android.storage.Configuration;
import com.qiniu.android.storage.UpCompletionHandler;
import com.qiniu.android.storage.UpProgressHandler;
import com.qiniu.android.storage.UploadManager;
import com.qiniu.android.storage.UploadOptions;
import com.qiniu.android.utils.AsyncRun;
import com.qiniu.android.utils.Etag;
import com.qiniu.android.utils.LogUtil;

import org.json.JSONObject;

import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Queue;


/**
* Created by yangsen on 2020/5/27
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,6 @@
import com.qiniu.android.http.dns.IDnsNetworkAddress;
import com.qiniu.android.storage.UpToken;

import android.util.Log;
import com.qiniu.android.storage.Recorder;
import com.qiniu.android.utils.StringUtils;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;

import java.util.List;

/**
Expand All @@ -28,7 +21,7 @@ protected void setUp() throws Exception {

public void testLocalLoad() {

final String host = "upload.qiniup.com";
final String host = "uc.qbox.me";
final DnsPrefetcher dnsPrefetcher = DnsPrefetcher.getInstance();
dnsPrefetcher.localFetch();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.qiniu.android.utils.FastDatePrinter;
import com.qiniu.android.utils.LogUtil;

import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
Expand Down
Loading