gitextract_oil8rr72/ ├── .github/ │ └── issue_template.md ├── .gitignore ├── .idea/ │ ├── codeStyleSettings.xml │ ├── codeStyles/ │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── compiler.xml │ ├── copyright/ │ │ ├── apache2.xml │ │ └── profiles_settings.xml │ ├── dictionaries/ │ │ └── Jacksgong.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── inspectionProfiles/ │ │ ├── Project_Default.xml │ │ └── profiles_settings.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── .travis.yml ├── CHANGELOG-ZH.md ├── CHANGELOG.md ├── LICENSE.txt ├── README-zh.md ├── README.md ├── build.gradle ├── checkstyle.xml ├── demo/ │ ├── .gitignore │ ├── build.gradle │ ├── filedownloaderdemo.jks │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── assets/ │ │ ├── filedownloader.properties │ │ └── performance_test_data │ ├── java/ │ │ └── com/ │ │ └── liulishuo/ │ │ └── filedownloader/ │ │ └── demo/ │ │ ├── Constant.java │ │ ├── DemoApplication.java │ │ ├── GlobalMonitor.java │ │ ├── HybridTestActivity.java │ │ ├── MainActivity.java │ │ ├── MultitaskTestActivity.java │ │ ├── NotificationSampleActivity.java │ │ ├── SingleTaskTestActivity.java │ │ ├── TasksManagerDemoActivity.java │ │ ├── Utils.java │ │ └── performance/ │ │ ├── IntParcel.java │ │ ├── LongParcel.java │ │ └── PerformanceTestActivity.java │ └── res/ │ ├── drawable/ │ │ └── bg_item_task_manager.xml │ ├── layout/ │ │ ├── activity_hybrid_test.xml │ │ ├── activity_main.xml │ │ ├── activity_mutitask_test.xml │ │ ├── activity_notification_minset.xml │ │ ├── activity_notification_sample.xml │ │ ├── activity_performance.xml │ │ ├── activity_single.xml │ │ ├── activity_tasks_manager_demo.xml │ │ └── item_tasks_manager.xml │ ├── menu/ │ │ └── menu_main.xml │ ├── values/ │ │ ├── colors.xml │ │ ├── donottranslate.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── values-zh/ │ │ └── strings.xml │ └── xml/ │ └── network_security_config.xml ├── gradle/ │ ├── bintray.gradle │ ├── mvn-local.gradle │ ├── mvn-push.gradle │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── install.sh ├── library/ │ ├── .gitignore │ ├── LICENSE │ ├── build.gradle │ ├── gradle.properties │ ├── proguard-rules.pro │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── aidl/ │ │ │ └── com/ │ │ │ └── liulishuo/ │ │ │ └── filedownloader/ │ │ │ ├── i/ │ │ │ │ ├── IFileDownloadIPCCallback.aidl │ │ │ │ └── IFileDownloadIPCService.aidl │ │ │ ├── message/ │ │ │ │ └── MessageSnapshot.aidl │ │ │ └── model/ │ │ │ ├── FileDownloadHeader.aidl │ │ │ └── FileDownloadTaskAtom.aidl │ │ ├── java/ │ │ │ └── com/ │ │ │ └── liulishuo/ │ │ │ └── filedownloader/ │ │ │ ├── BaseDownloadTask.java │ │ │ ├── DownloadSpeedMonitor.java │ │ │ ├── DownloadTask.java │ │ │ ├── DownloadTaskHunter.java │ │ │ ├── FileDownloadConnectListener.java │ │ │ ├── FileDownloadEventPool.java │ │ │ ├── FileDownloadLargeFileListener.java │ │ │ ├── FileDownloadLine.java │ │ │ ├── FileDownloadLineAsync.java │ │ │ ├── FileDownloadList.java │ │ │ ├── FileDownloadListener.java │ │ │ ├── FileDownloadMessageStation.java │ │ │ ├── FileDownloadMessenger.java │ │ │ ├── FileDownloadMonitor.java │ │ │ ├── FileDownloadQueueSet.java │ │ │ ├── FileDownloadSampleListener.java │ │ │ ├── FileDownloadServiceProxy.java │ │ │ ├── FileDownloadServiceSharedTransmit.java │ │ │ ├── FileDownloadServiceUIGuard.java │ │ │ ├── FileDownloadTaskLauncher.java │ │ │ ├── FileDownloader.java │ │ │ ├── IDownloadSpeed.java │ │ │ ├── IFileDownloadMessenger.java │ │ │ ├── IFileDownloadServiceProxy.java │ │ │ ├── ILostServiceConnectedHandler.java │ │ │ ├── IQueuesHandler.java │ │ │ ├── ITaskHunter.java │ │ │ ├── IThreadPoolMonitor.java │ │ │ ├── LostServiceConnectedHandler.java │ │ │ ├── MessageSnapshotGate.java │ │ │ ├── PauseAllMarker.java │ │ │ ├── QueuesHandler.java │ │ │ ├── connection/ │ │ │ │ ├── DefaultConnectionCountAdapter.java │ │ │ │ ├── FileDownloadConnection.java │ │ │ │ ├── FileDownloadUrlConnection.java │ │ │ │ └── RedirectHandler.java │ │ │ ├── database/ │ │ │ │ ├── FileDownloadDatabase.java │ │ │ │ ├── NoDatabaseImpl.java │ │ │ │ ├── RemitDatabase.java │ │ │ │ ├── SqliteDatabaseImpl.java │ │ │ │ └── SqliteDatabaseOpenHelper.java │ │ │ ├── download/ │ │ │ │ ├── ConnectTask.java │ │ │ │ ├── ConnectionProfile.java │ │ │ │ ├── CustomComponentHolder.java │ │ │ │ ├── DownloadLaunchRunnable.java │ │ │ │ ├── DownloadRunnable.java │ │ │ │ ├── DownloadStatusCallback.java │ │ │ │ ├── FetchDataTask.java │ │ │ │ └── ProcessCallback.java │ │ │ ├── event/ │ │ │ │ ├── DownloadEventPoolImpl.java │ │ │ │ ├── DownloadEventSampleListener.java │ │ │ │ ├── DownloadServiceConnectChangedEvent.java │ │ │ │ ├── IDownloadEvent.java │ │ │ │ ├── IDownloadEventPool.java │ │ │ │ └── IDownloadListener.java │ │ │ ├── exception/ │ │ │ │ ├── FileDownloadGiveUpRetryException.java │ │ │ │ ├── FileDownloadHttpException.java │ │ │ │ ├── FileDownloadNetworkPolicyException.java │ │ │ │ ├── FileDownloadOutOfSpaceException.java │ │ │ │ ├── FileDownloadSecurityException.java │ │ │ │ └── PathConflictException.java │ │ │ ├── message/ │ │ │ │ ├── BlockCompleteMessage.java │ │ │ │ ├── IFlowDirectly.java │ │ │ │ ├── IMessageSnapshot.java │ │ │ │ ├── LargeMessageSnapshot.java │ │ │ │ ├── MessageSnapshot.java │ │ │ │ ├── MessageSnapshotFlow.java │ │ │ │ ├── MessageSnapshotTaker.java │ │ │ │ ├── MessageSnapshotThreadPool.java │ │ │ │ └── SmallMessageSnapshot.java │ │ │ ├── model/ │ │ │ │ ├── ConnectionModel.java │ │ │ │ ├── FileDownloadHeader.java │ │ │ │ ├── FileDownloadModel.java │ │ │ │ ├── FileDownloadStatus.java │ │ │ │ └── FileDownloadTaskAtom.java │ │ │ ├── notification/ │ │ │ │ ├── BaseNotificationItem.java │ │ │ │ ├── FileDownloadNotificationHelper.java │ │ │ │ └── FileDownloadNotificationListener.java │ │ │ ├── services/ │ │ │ │ ├── BaseFileServiceUIGuard.java │ │ │ │ ├── DefaultIdGenerator.java │ │ │ │ ├── DownloadMgrInitialParams.java │ │ │ │ ├── FDServiceSeparateHandler.java │ │ │ │ ├── FDServiceSharedHandler.java │ │ │ │ ├── FileDownloadBroadcastHandler.java │ │ │ │ ├── FileDownloadManager.java │ │ │ │ ├── FileDownloadService.java │ │ │ │ ├── FileDownloadThreadPool.java │ │ │ │ ├── ForegroundServiceConfig.java │ │ │ │ └── IFileDownloadServiceHandler.java │ │ │ ├── stream/ │ │ │ │ ├── FileDownloadOutputStream.java │ │ │ │ └── FileDownloadRandomAccessFile.java │ │ │ └── util/ │ │ │ ├── DownloadServiceNotConnectedHelper.java │ │ │ ├── ExtraKeys.java │ │ │ ├── FileDownloadExecutors.java │ │ │ ├── FileDownloadHelper.java │ │ │ ├── FileDownloadLog.java │ │ │ ├── FileDownloadProperties.java │ │ │ ├── FileDownloadSerialQueue.java │ │ │ └── FileDownloadUtils.java │ │ └── res/ │ │ └── values/ │ │ └── strings.xml │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── liulishuo/ │ │ └── filedownloader/ │ │ ├── FileDownloaderTest.java │ │ ├── connection/ │ │ │ └── FileDownloadUrlConnectionTest.java │ │ ├── download/ │ │ │ ├── DownloadLaunchRunnableTest.java │ │ │ └── DownloadRunnableTest.java │ │ └── util/ │ │ └── FileDownloadUtilsTest.java │ └── resources/ │ └── mockito-extensions/ │ └── org.mockito.plugins.MockMaker ├── okcat.yml └── settings.gradle