diff --git a/Aria/src/main/java/com/arialyy/aria/core/download/downloader/ConnectionHelp.java b/Aria/src/main/java/com/arialyy/aria/core/download/downloader/ConnectionHelp.java index a98b0054..01277969 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/download/downloader/ConnectionHelp.java +++ b/Aria/src/main/java/com/arialyy/aria/core/download/downloader/ConnectionHelp.java @@ -26,6 +26,8 @@ import java.net.HttpURLConnection; import java.net.ProtocolException; import java.net.URL; import java.net.URLConnection; +import java.util.List; +import java.util.Map; import java.util.Set; import java.util.zip.GZIPInputStream; import java.util.zip.InflaterInputStream; @@ -123,27 +125,27 @@ class ConnectionHelp { } if (conn.getRequestProperty("Accept") == null) { StringBuilder accept = new StringBuilder(); - accept.append("image/gif, ") - .append("image/jpeg, ") - .append("image/pjpeg, ") - .append("image/webp, ") - .append("image/apng, ") - .append("application/xml, ") - .append("application/xaml+xml, ") - .append("application/xhtml+xml, ") - .append("application/x-shockwave-flash, ") - .append("application/x-ms-xbap, ") - .append("application/x-ms-application, ") - .append("application/msword, ") - .append("application/vnd.ms-excel, ") - .append("application/vnd.ms-xpsdocument, ") - .append("application/vnd.ms-powerpoint, ") - .append("text/plain, ") - .append("text/html, ") - .append("*/*"); - conn.setRequestProperty("Accept", accept.toString()); + //accept + //.append("image/gif, ") + //.append("image/jpeg, ") + //.append("image/pjpeg, ") + //.append("image/webp, ") + //.append("image/apng, ") + //.append("application/xml, ") + //.append("application/xaml+xml, ") + //.append("application/xhtml+xml, ") + //.append("application/x-shockwave-flash, ") + //.append("application/x-ms-xbap, ") + //.append("application/x-ms-application, ") + //.append("application/msword, ") + //.append("application/vnd.ms-excel, ") + //.append("application/vnd.ms-xpsdocument, ") + //.append("application/vnd.ms-powerpoint, ") + //.append("text/plain, ") + //.append("text/html, ") + //.append("*/*"); + conn.setRequestProperty("Accept", "*/*"); } - //302获取重定向地址 conn.setInstanceFollowRedirects(false); return conn; diff --git a/Aria/src/main/java/com/arialyy/aria/core/download/downloader/HttpFileInfoThread.java b/Aria/src/main/java/com/arialyy/aria/core/download/downloader/HttpFileInfoThread.java index 71b206c8..59724e97 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/download/downloader/HttpFileInfoThread.java +++ b/Aria/src/main/java/com/arialyy/aria/core/download/downloader/HttpFileInfoThread.java @@ -56,7 +56,7 @@ class HttpFileInfoThread implements Runnable { URL url = new URL(CommonUtil.convertUrl(mEntity.getUrl())); conn = ConnectionHelp.handleConnection(url, mTaskEntity); conn = ConnectionHelp.setConnectParam(mTaskEntity, conn); - conn.setRequestProperty("Range", "bytes=" + 0 + "-"); + //conn.setRequestProperty("Range", "bytes=" + 0 + "-"); conn.setConnectTimeout(mConnectTimeOut); //conn.setChunkedStreamingMode(0); conn.connect(); diff --git a/DEV_LOG.md b/DEV_LOG.md index 45878274..a5ba12cc 100644 --- a/DEV_LOG.md +++ b/DEV_LOG.md @@ -1,4 +1,8 @@ ## 开发日志 + + v_3.4.4 + - 实现[多线程分块下载](https://aria.laoyuyu.me/aria_doc/start/config.html) + - 修复`stopAll()`和`resumeAll()`导致的进度为0问题 + - 修复任务组添加header无效的问题 + v_3.4.3 - 修复在activity 的onStop中取消注册导致的内存泄露问题 - fix bug https://github.com/AriaLyy/Aria/issues/258 diff --git a/README.md b/README.md index 434b4e28..4099c6a9 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Aria有以下特点: - 支持文件FTP断点续传上传 + 支持https地址下载 - 在配置文件中很容易就可以设置CA证书的信息 + + 支持[多线程分块下载](https://aria.laoyuyu.me/aria_doc/start/config.html),能更有效的发挥机器IO性能 + 支持300、301、302重定向下载链接下载 + 下载支持文件长度动态增加,文件下载初始化时将不再占用过多的内存空间,见[动态长度配置](https://aria.laoyuyu.me/aria_doc/start/config.html#%E4%B8%8B%E8%BD%BD%E5%8A%A8%E6%80%81%E6%96%87%E4%BB%B6%E8%AF%B4%E6%98%8E) @@ -30,8 +31,8 @@ Aria有以下特点: [![Download](https://api.bintray.com/packages/arialyy/maven/AriaApi/images/download.svg)](https://bintray.com/arialyy/maven/AriaApi/_latestVersion) [![Download](https://api.bintray.com/packages/arialyy/maven/AriaCompiler/images/download.svg)](https://bintray.com/arialyy/maven/AriaCompiler/_latestVersion) ```java -compile 'com.arialyy.aria:aria-core:3.4.3' -annotationProcessor 'com.arialyy.aria:aria-compiler:3.4.3' +compile 'com.arialyy.aria:aria-core:3.4.4' +annotationProcessor 'com.arialyy.aria:aria-compiler:3.4.4' ``` 如果出现android support,请将 `compile 'com.arialyy.aria:aria-core:'`替换为 ``` @@ -99,10 +100,10 @@ protected void onCreate(Bundle savedInstanceState) { ### 版本日志 - + v_3.4.3 - - 修复在activity 的onStop中取消注册导致的内存泄露问题 - - fix bug https://github.com/AriaLyy/Aria/issues/258 - - fix bug https://github.com/AriaLyy/Aria/issues/259 + + v_3.4.4 + - 实现[多线程分块下载](https://aria.laoyuyu.me/aria_doc/start/config.html) + - 修复`stopAll()`和`resumeAll()`导致的进度为0问题 + - 修复任务组添加header无效的问题 [更多版本记录](https://github.com/AriaLyy/Aria/blob/master/DEV_LOG.md) @@ -124,6 +125,8 @@ protected void onCreate(Bundle savedInstanceState) { ## 其他 有任何问题,可以在[issues](https://github.com/AriaLyy/Aria/issues)给我留言反馈。
在提交问题前,希望你已经查看过[wiki](https://aria.laoyuyu.me/aria_doc/)或搜索过[issues](https://github.com/AriaLyy/Aria/issues)。
+ 交流群:524329160 + *** License diff --git a/app/libs/siteparser.aar b/app/libs/siteparser.aar new file mode 100644 index 00000000..3f685bbd Binary files /dev/null and b/app/libs/siteparser.aar differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 42eeca06..cbae1869 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -7,7 +7,7 @@ diff --git a/app/src/main/java/com/arialyy/simple/base/BaseApplication.java b/app/src/main/java/com/arialyy/simple/base/BaseApplication.java index cffe0330..d2a23288 100644 --- a/app/src/main/java/com/arialyy/simple/base/BaseApplication.java +++ b/app/src/main/java/com/arialyy/simple/base/BaseApplication.java @@ -30,8 +30,12 @@ import com.arialyy.simple.common.ConnectionChangeReceiver; * Created by Lyy on 2016/9/27. */ public class BaseApplication extends Application { + + private static BaseApplication INSTANCE; + @Override public void onCreate() { super.onCreate(); + INSTANCE = this; AbsFrame.init(this); Aria.init(this); if (BuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { @@ -43,4 +47,13 @@ public class BaseApplication extends Application { registerReceiver(new ConnectionChangeReceiver(), new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); } + + public static BaseApplication getApp() { + return INSTANCE; + } + + @Override + public void onTerminate() { + super.onTerminate(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/arialyy/simple/common/ConnectionChangeReceiver.java b/app/src/main/java/com/arialyy/simple/common/ConnectionChangeReceiver.java index 63b25d4d..c9d8cf6e 100644 --- a/app/src/main/java/com/arialyy/simple/common/ConnectionChangeReceiver.java +++ b/app/src/main/java/com/arialyy/simple/common/ConnectionChangeReceiver.java @@ -21,13 +21,13 @@ public class ConnectionChangeReceiver extends BroadcastReceiver { NetworkInfo.State state = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); - if (NetworkInfo.State.CONNECTED == state) { - Aria.download(this).resumeAllTask(); - Log.w(TAG, "恢复所有任务"); - return; - } - - Aria.download(this).stopAllTask(); + //if (NetworkInfo.State.CONNECTED == state) { + // Aria.download(this).resumeAllTask(); + // Log.w(TAG, "恢复所有任务"); + // return; + //} + // + //Aria.download(this).stopAllTask(); //Log.w(TAG, "停止所有任务"); //state = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState(); //if (NetworkInfo.State.CONNECTED == state) { diff --git a/app/src/main/java/com/arialyy/simple/test/AnyRunActivity.java b/app/src/main/java/com/arialyy/simple/test/AnyRunActivity.java index e988d22d..dc3a6c66 100644 --- a/app/src/main/java/com/arialyy/simple/test/AnyRunActivity.java +++ b/app/src/main/java/com/arialyy/simple/test/AnyRunActivity.java @@ -4,8 +4,8 @@ import android.os.Bundle; import android.util.Log; import android.view.View; import com.arialyy.aria.core.Aria; -import com.arialyy.aria.core.download.DownloadEntity; import com.arialyy.aria.core.download.DownloadTaskEntity; +import com.arialyy.aria.util.ALog; import com.arialyy.simple.R; import com.arialyy.simple.base.BaseActivity; import com.arialyy.simple.databinding.ActivityTestBinding; @@ -18,7 +18,7 @@ public class AnyRunActivity extends BaseActivity { AnyRunnModule module; String[] urls; int index = 0; - String URL = "http://static.gaoshouyou.com/d/12/0d/7f120f50c80d2e7b8c4ba24ece4f9cdd.apk"; + //String URL = "http://static.gaoshouyou.com/d/12/0d/7f120f50c80d2e7b8c4ba24ece4f9cdd.apk"; //String URL = "http://58.213.157.242:8081/sims_file/rest/v1/file/mshd_touchscreen_ms/guideFile/41c33556-dc4a-4d78-bb76-b9f627f94448.mp4/%E5%85%AB%E5%8D%A6%E6%B4%B2%E5%8D%97%E4%BA%AC%E5%86%9C%E4%B8%9A%E5%98%89%E5%B9%B4%E5%8D%8E0511.mp4"; //String URL = "http://d1.showself.com/download/showself_android-s236279_release.apk"; //String URL = "http://static.gaoshouyou.com/d/22/94/822260b849944492caadd2983f9bb624.apk"; @@ -26,6 +26,7 @@ public class AnyRunActivity extends BaseActivity { //String URL = "https://dl.genymotion.com/releases/genymotion-2.12.1/genymotion-2.12.1-vbox.exe"; //String URL = "ftp://192.168.29.140:21/download/SDK_Demo-release.apk"; //String URL = "ftp://z:z@dygod18.com:21211/[电影天堂www.dy2018.com]猩球崛起3:终极之战BD国英双语中英双字.mkv"; + private String URL = "https://www.bilibili.com/bangumi/play/ep77693"; @Override protected int setLayoutId() { return R.layout.activity_test; diff --git a/app/src/main/java/com/arialyy/simple/test/AnyRunnModule.java b/app/src/main/java/com/arialyy/simple/test/AnyRunnModule.java index 0c34b9a0..ba756516 100644 --- a/app/src/main/java/com/arialyy/simple/test/AnyRunnModule.java +++ b/app/src/main/java/com/arialyy/simple/test/AnyRunnModule.java @@ -65,7 +65,7 @@ public class AnyRunnModule { void start(String url) { mUrl = url; - String path = Environment.getExternalStorageDirectory().getPath() + "/abcds.apk"; + String path = Environment.getExternalStorageDirectory().getPath() + "/aaa.apk"; //File file = new File(path); //if (file.exists()) { // file.delete(); @@ -73,12 +73,12 @@ public class AnyRunnModule { Aria.download(this) .load(url) //.addHeader("Accept-Encoding", "gzip") - .addHeader("headers", "Referer: http://www.bilibili.com/") + .addHeader("Referer", "http://www.bilibili.com/") .addHeader("user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36") .setRequestMode(RequestEnum.GET) //.setUrlProxy(Proxy.NO_PROXY) .setFilePath(path) - //.resetState() + .resetState() .start(); //String[] urls = new String[] { // "http://cdn-s1.touchfound.net/1526449199142_3617.png", diff --git a/build.gradle b/build.gradle index 6e6e989d..3bf91731 100644 --- a/build.gradle +++ b/build.gradle @@ -39,7 +39,7 @@ task clean(type: Delete) { ext { userOrg = 'arialyy' groupId = 'com.arialyy.aria' - publishVersion = '3.4.4_dev4' + publishVersion = '3.4.4' // publishVersion = '1.0.3' //FTP插件 repoName='maven' desc = 'android 下载框架'