├── app
├── .gitignore
└── src
│ ├── vdev
│ └── java
│ │ └── com
│ │ └── xiaochen
│ │ └── module
│ │ └── ApiConstants.java
│ └── vtest
│ └── java
│ └── com.xiaochen.emvp
│ └── ApiConstants.java
├── README.md
├── argus-apm-main
├── .gitignore
├── libs
│ ├── argus-apm-cloud.jar
│ └── argus-apm-cloud-dummy-impl.jar
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ └── com
│ │ │ └── argusapm
│ │ │ └── android
│ │ │ ├── debug
│ │ │ ├── callback
│ │ │ │ └── IDebugCallback.java
│ │ │ ├── tasks
│ │ │ │ ├── IParser.java
│ │ │ │ ├── MonitorParseTask.java
│ │ │ │ └── MemoryParseTask.java
│ │ │ ├── storage
│ │ │ │ └── StorageManager.java
│ │ │ ├── config
│ │ │ │ └── DebugConfig.java
│ │ │ └── output
│ │ │ │ └── OutputProxy.java
│ │ │ ├── core
│ │ │ ├── storage
│ │ │ │ ├── ITable.java
│ │ │ │ └── IStorage.java
│ │ │ ├── job
│ │ │ │ ├── watchDog
│ │ │ │ │ └── WatchDogInfo.java
│ │ │ │ ├── webview
│ │ │ │ │ ├── AopWebTrace.java
│ │ │ │ │ └── WebTask.java
│ │ │ │ ├── net
│ │ │ │ │ ├── i
│ │ │ │ │ │ ├── IStreamCompleteListener.java
│ │ │ │ │ │ ├── QURL.java
│ │ │ │ │ │ └── QOKHttp.java
│ │ │ │ │ └── NetTask.java
│ │ │ │ ├── func
│ │ │ │ │ ├── FuncTask.java
│ │ │ │ │ ├── AopFuncTrace.java
│ │ │ │ │ └── FuncTable.java
│ │ │ │ ├── appstart
│ │ │ │ │ ├── AppStartTask.java
│ │ │ │ │ └── AppStartTable.java
│ │ │ │ └── activity
│ │ │ │ │ └── ActivityHelper.java
│ │ │ ├── tasks
│ │ │ │ └── ITask.java
│ │ │ ├── IInfo.java
│ │ │ └── StorageConfig.java
│ │ │ ├── api
│ │ │ ├── IExtraDataCallback.java
│ │ │ └── ExtraDataType.java
│ │ │ ├── network
│ │ │ ├── UploadConfig.java
│ │ │ └── UploadInfoField.java
│ │ │ ├── utils
│ │ │ ├── AspectjUtils.java
│ │ │ ├── FloatWindowUtils.java
│ │ │ └── RootHelper.java
│ │ │ ├── aop
│ │ │ ├── IAopTraceHelper.java
│ │ │ └── IActivityHelper.java
│ │ │ ├── cloudconfig
│ │ │ ├── Constant.java
│ │ │ └── data
│ │ │ │ └── ArgusApmConfigCore.java
│ │ │ └── Env.java
│ │ └── res
│ │ └── values
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── colors.xml
└── sdk_utils.gradle
├── module
├── module_apm
│ ├── consumer-rules.pro
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── xiaochen
│ │ │ │ └── module
│ │ │ │ └── apm
│ │ │ │ ├── MainActivity.java
│ │ │ │ └── ApmApplication.java
│ │ │ └── res
│ │ │ └── layout
│ │ │ └── apm_activity_main.xml
│ ├── build.gradle
│ └── proguard-rules.pro
├── module_app
│ ├── consumer-rules.pro
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ └── proguard-rules.pro
├── module_mvp
│ ├── consumer-rules.pro
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── xiaochen
│ │ │ │ └── module
│ │ │ │ └── mvp
│ │ │ │ ├── view
│ │ │ │ └── ITestView.java
│ │ │ │ ├── response
│ │ │ │ └── HomeArticleRespVO.java
│ │ │ │ ├── MvpApplication.java
│ │ │ │ ├── api
│ │ │ │ └── IServiceApi.java
│ │ │ │ └── MvpInfoServiceImpl.java
│ │ │ └── res
│ │ │ └── layout
│ │ │ └── mvp_activity_main.xml
│ ├── build.gradle
│ └── proguard-rules.pro
├── module_mvvm
│ ├── consumer-rules.pro
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── xiaochen
│ │ │ │ └── module
│ │ │ │ └── mvvm
│ │ │ │ ├── response
│ │ │ │ └── HomeArticleRespVO.kt
│ │ │ │ ├── MvvmApplication.java
│ │ │ │ ├── api
│ │ │ │ └── IServiceApi.kt
│ │ │ │ ├── MvvmInfoServiceImpl.java
│ │ │ │ ├── repository
│ │ │ │ └── TestRepository.kt
│ │ │ │ └── viewmodel
│ │ │ │ └── TestViewModel.kt
│ │ │ └── res
│ │ │ └── layout
│ │ │ └── mvvm_activity_main.xml
│ ├── build.gradle
│ └── proguard-rules.pro
├── module_aop
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── res
│ │ │ ├── values
│ │ │ │ └── strings.xml
│ │ │ └── layout
│ │ │ │ └── layout_aop.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── xiaochen
│ │ │ │ └── module
│ │ │ │ └── aop
│ │ │ │ ├── annotation
│ │ │ │ ├── Test.java
│ │ │ │ └── Msg.java
│ │ │ │ ├── DebugLog.java
│ │ │ │ ├── DebugTrace.java
│ │ │ │ ├── MainActivity.java
│ │ │ │ └── StopWatch.java
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ └── proguard-rules.pro
├── module_bluetooth
│ ├── consumer-rules.pro
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ └── com
│ │ │ └── xiaochen
│ │ │ └── module
│ │ │ └── bluetooth
│ │ │ ├── device
│ │ │ ├── StethoscopeDevice.kt
│ │ │ └── BangleDevice.kt
│ │ │ ├── constant
│ │ │ └── CmdConstants.kt
│ │ │ └── BluetoothInfoServiceImpl.java
│ ├── build.gradle
│ └── proguard-rules.pro
├── module_dagger2
│ ├── .gitignore
│ ├── consumer-rules.pro
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── xiaochen
│ │ │ │ └── module
│ │ │ │ └── dagger2
│ │ │ │ ├── scope
│ │ │ │ ├── AScope.java
│ │ │ │ └── PersonScope.java
│ │ │ │ ├── Person1.java
│ │ │ │ ├── module
│ │ │ │ ├── ApplicationModule.java
│ │ │ │ ├── PersonModule.java
│ │ │ │ ├── MainModule.java
│ │ │ │ └── AModule.java
│ │ │ │ ├── PersonQualifier.java
│ │ │ │ ├── component
│ │ │ │ ├── AComponent.java
│ │ │ │ ├── ApplicationComponent.java
│ │ │ │ └── MainComponent.java
│ │ │ │ ├── Person.java
│ │ │ │ └── Dagger2InfoServiceImpl.java
│ │ │ └── res
│ │ │ └── layout
│ │ │ └── dagger2_activity_main.xml
│ ├── build.gradle
│ └── proguard-rules.pro
├── module_router1
│ ├── .gitignore
│ ├── consumer-rules.pro
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ └── com
│ │ │ └── xiaochen
│ │ │ └── module
│ │ │ └── router1
│ │ │ ├── ArouterInfoServiceImpl.java
│ │ │ ├── JsonServiceImpl.java
│ │ │ └── UserInfo.java
│ ├── build.gradle
│ └── proguard-rules.pro
├── module_router2
│ ├── .gitignore
│ ├── consumer-rules.pro
│ ├── build.gradle
│ ├── src
│ │ └── main
│ │ │ ├── assets
│ │ │ └── test.html
│ │ │ ├── res
│ │ │ └── layout
│ │ │ │ ├── router2_fragment_test.xml
│ │ │ │ ├── router2_activity_test.xml
│ │ │ │ └── router2_activity_main2.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── xiaochen
│ │ │ │ └── module
│ │ │ │ └── router2
│ │ │ │ ├── TestFragment.java
│ │ │ │ └── UserInterceptor.java
│ │ │ └── AndroidManifest.xml
│ └── proguard-rules.pro
├── module_widget
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── res
│ │ │ ├── values
│ │ │ │ ├── strings.xml
│ │ │ │ ├── styles.xml
│ │ │ │ └── colors.xml
│ │ │ ├── drawable-xhdpi
│ │ │ │ ├── icon1.png
│ │ │ │ ├── icon2.png
│ │ │ │ ├── red_bg.9.png
│ │ │ │ ├── icon1_selected.png
│ │ │ │ └── icon2_selected.png
│ │ │ ├── color
│ │ │ │ └── btn_text_selector.xml
│ │ │ ├── layout
│ │ │ │ ├── drag_img.xml
│ │ │ │ ├── fragment_cobweb.xml
│ │ │ │ ├── fragment_smile_face.xml
│ │ │ │ ├── fragment_olympic.xml
│ │ │ │ ├── fragment_range_seekbar.xml
│ │ │ │ ├── fragment_piechart.xml
│ │ │ │ ├── fragment_toggle.xml
│ │ │ │ ├── fragment_circle_progress.xml
│ │ │ │ ├── fragment_drag_stick.xml
│ │ │ │ ├── fragment_clock.xml
│ │ │ │ ├── fragment_view.xml
│ │ │ │ └── fragment_viewgroup.xml
│ │ │ └── drawable
│ │ │ │ ├── btn1_selector.xml
│ │ │ │ ├── btn2_selector.xml
│ │ │ │ ├── flag_01.xml
│ │ │ │ └── out_anim.xml
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ └── com
│ │ │ └── xiaochen
│ │ │ └── module
│ │ │ └── widget
│ │ │ └── ui
│ │ │ ├── bean
│ │ │ └── PointBean.java
│ │ │ ├── fragment
│ │ │ ├── ToggleFragment.java
│ │ │ ├── ClockFragment.java
│ │ │ ├── CobwebFragment.java
│ │ │ ├── FlowLayoutFragment.java
│ │ │ ├── MyLayoutFragment.java
│ │ │ ├── OlymicRingsFragment.java
│ │ │ ├── DragStickFragment.java
│ │ │ ├── SmileFaceFragment.java
│ │ │ ├── RangeSeekBarFragment.java
│ │ │ ├── PieChartFragment.java
│ │ │ └── CircleProgressFragment.java
│ │ │ ├── WidgetInfoServiceImpl.java
│ │ │ └── adapter
│ │ │ ├── MyPagerAdapter.java
│ │ │ └── MyPagerAdapter1.java
│ ├── build.gradle
│ └── proguard-rules.pro
└── module_jetpack
│ ├── src
│ └── main
│ │ ├── res
│ │ ├── values
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ ├── color
│ │ │ └── bottom_text_color.xml
│ │ ├── layout
│ │ │ ├── fragment_home.xml
│ │ │ ├── fragment_my.xml
│ │ │ ├── fragment_setting.xml
│ │ │ ├── recyclerview_item.xml
│ │ │ ├── activity_paging.xml
│ │ │ └── activity_lifecycle.xml
│ │ └── drawable
│ │ │ └── ic_home.xml
│ │ ├── java
│ │ └── com
│ │ │ └── xiaochen
│ │ │ └── module
│ │ │ └── jetpack
│ │ │ ├── room
│ │ │ ├── Address.java
│ │ │ ├── Book.java
│ │ │ ├── User.java
│ │ │ ├── UserDao.java
│ │ │ └── AppDataBase.java
│ │ │ ├── MyViewModel.java
│ │ │ ├── fragment
│ │ │ ├── HomeFragment.java
│ │ │ └── SettingFragment.java
│ │ │ ├── JetpackInfoServiceImpl.java
│ │ │ └── ConstraintLayoutActivity.java
│ │ └── AndroidManifest.xml
│ ├── proguard-rules.pro
│ └── build.gradle
├── app_shell
├── app_aop
│ ├── .gitignore
│ ├── build.gradle
│ └── AndroidManifest.xml
├── app_apm
│ ├── .gitignore
│ └── build.gradle
├── app_arouter
│ ├── .gitignore
│ ├── build.gradle
│ └── AndroidManifest.xml
├── app_dagger2
│ ├── .gitignore
│ ├── build.gradle
│ ├── AndroidManifest.xml
│ └── proguard-rules.pro
├── app_jetpack
│ ├── .gitignore
│ ├── build.gradle
│ └── AndroidManifest.xml
├── app_mvp
│ ├── .gitignore
│ ├── build.gradle
│ └── AndroidManifest.xml
├── app_widget
│ ├── .gitignore
│ ├── build.gradle
│ └── AndroidManifest.xml
└── app_bluetooth
│ ├── .gitignore
│ ├── build.gradle
│ └── AndroidManifest.xml
├── component
├── common_base
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ └── com
│ │ │ └── xiaochen
│ │ │ └── common
│ │ │ └── base
│ │ │ ├── BaseEvent.java
│ │ │ ├── MyAppGlideModule.java
│ │ │ ├── BaseApplication.java
│ │ │ └── AppUtil.java
│ └── build.gradle
├── common_data
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ └── com
│ │ │ └── xiaochen
│ │ │ └── common
│ │ │ └── data
│ │ │ ├── BaseInfo.java
│ │ │ ├── BaseRequest.java
│ │ │ ├── BaseResponse.java
│ │ │ ├── BaseResponseCallBack.java
│ │ │ ├── ApiManager.java
│ │ │ └── interceptor
│ │ │ └── CommonHeaderInterceptor.java
│ └── build.gradle
├── common_mvp
│ ├── .gitignore
│ ├── consumer-rules.pro
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ └── com
│ │ │ └── xiaochen
│ │ │ └── common
│ │ │ └── mvp
│ │ │ ├── BaseModel.java
│ │ │ ├── IBaseView.java
│ │ │ └── BasePresenter.java
│ ├── build.gradle
│ └── proguard-rules.pro
├── common_mvvm
│ ├── .gitignore
│ ├── consumer-rules.pro
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ └── com
│ │ │ └── xiaochen
│ │ │ └── common
│ │ │ └── mvvm
│ │ │ ├── BaseException.kt
│ │ │ └── BaseResult.kt
│ ├── build.gradle
│ └── proguard-rules.pro
├── common_sdk
│ ├── .gitignore
│ ├── consumer-rules.pro
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ └── com
│ │ │ └── xiaochen
│ │ │ └── common
│ │ │ └── sdk
│ │ │ └── BusManager.kt
│ ├── build.gradle
│ └── proguard-rules.pro
├── common_service
│ ├── consumer-rules.pro
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ └── com
│ │ │ └── xiaochen
│ │ │ └── common
│ │ │ └── service
│ │ │ └── CommonNameService.java
│ ├── build.gradle
│ └── proguard-rules.pro
├── common_utils
│ ├── consumer-rules.pro
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── java
│ │ │ └── com
│ │ │ └── xiaochen
│ │ │ └── common
│ │ │ └── utils
│ │ │ ├── AppLogger.java
│ │ │ └── PermissionUtil.java
│ ├── build.gradle
│ └── proguard-rules.pro
├── common_widget
│ ├── consumer-rules.pro
│ ├── .gitignore
│ ├── src
│ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ └── res
│ │ │ ├── drawable-xhdpi
│ │ │ ├── pop1.png
│ │ │ ├── pop2.png
│ │ │ ├── pop3.png
│ │ │ ├── pop4.png
│ │ │ ├── pop5.png
│ │ │ ├── ring_dot.png
│ │ │ ├── rod_place_icon.png
│ │ │ └── rod_handshank_butten.png
│ │ │ └── values
│ │ │ └── colors.xml
│ ├── build.gradle
│ └── proguard-rules.pro
├── common_bluetooth
│ ├── .gitignore
│ ├── consumer-rules.pro
│ ├── src
│ │ └── main
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── xiaochen
│ │ │ │ └── common
│ │ │ │ └── bluetooth
│ │ │ │ ├── classicble
│ │ │ │ ├── DeviceContants.kt
│ │ │ │ └── ConnectState.kt
│ │ │ │ └── fastble
│ │ │ │ ├── service
│ │ │ │ └── BleConnectEvent.java
│ │ │ │ └── constant
│ │ │ │ ├── DeviceConstants.java
│ │ │ │ ├── UUIDConstants.java
│ │ │ │ └── CmdConstants.kt
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ └── proguard-rules.pro
└── common_resource
│ ├── .gitignore
│ ├── src
│ └── main
│ │ ├── res
│ │ ├── values
│ │ │ ├── attrs.xml
│ │ │ └── strings.xml
│ │ ├── drawable-xhdpi
│ │ │ ├── loading.gif
│ │ │ └── common_back.png
│ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ ├── xml
│ │ │ ├── file_paths.xml
│ │ │ └── public_network_security_config.xml
│ │ ├── drawable
│ │ │ ├── common_dialog_shape.xml
│ │ │ ├── common_dialog_confirm_shape.xml
│ │ │ └── common_dialog_cancel_shape.xml
│ │ └── layout
│ │ │ ├── layout_common_loading_dialog.xml
│ │ │ ├── layout_common_right_text.xml
│ │ │ └── layout_common_head_title.xml
│ │ └── AndroidManifest.xml
│ └── build.gradle
├── image
└── image.gif
├── .gitignore
├── common_component.gradle
├── gradle.properties
└── settings.gradle
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # easy-component项目
2 |
--------------------------------------------------------------------------------
/argus-apm-main/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/module/module_apm/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/module/module_app/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/module/module_mvp/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/module/module_mvvm/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app_shell/app_aop/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app_shell/app_apm/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app_shell/app_arouter/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app_shell/app_dagger2/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app_shell/app_jetpack/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app_shell/app_mvp/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app_shell/app_widget/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/component/common_base/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/component/common_data/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/component/common_mvp/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/component/common_mvp/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/component/common_mvvm/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/component/common_mvvm/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/component/common_sdk/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/component/common_sdk/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/component/common_service/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/component/common_utils/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/component/common_widget/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/module/module_aop/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/module/module_apm/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/module/module_app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/module/module_bluetooth/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/module/module_dagger2/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/module/module_dagger2/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/module/module_mvp/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/module/module_mvvm/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/module/module_router1/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/module/module_router1/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/module/module_router2/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/module/module_router2/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/module/module_widget/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app_shell/app_bluetooth/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/component/common_bluetooth/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/component/common_bluetooth/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/component/common_resource/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/component/common_service/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/component/common_utils/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/component/common_widget/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/module/module_bluetooth/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/image/image.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/image/image.gif
--------------------------------------------------------------------------------
/component/common_base/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/argus-apm-main/libs/argus-apm-cloud.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/argus-apm-main/libs/argus-apm-cloud.jar
--------------------------------------------------------------------------------
/module/module_aop/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | aop_module
3 |
4 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | aacmodule
3 |
4 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | cwidget
3 |
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | gradle
4 | build
5 | /local.properties
6 | /.idea
7 | .DS_Store
8 | /build
9 | /captures
10 | .externalNativeBuild
11 |
--------------------------------------------------------------------------------
/argus-apm-main/libs/argus-apm-cloud-dummy-impl.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/argus-apm-main/libs/argus-apm-cloud-dummy-impl.jar
--------------------------------------------------------------------------------
/component/common_mvp/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/component/common_sdk/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/module/module_app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/component/common_data/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/component/common_mvvm/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/component/common_utils/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/component/common_widget/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/component/common_service/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/drawable-xhdpi/icon1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_widget/src/main/res/drawable-xhdpi/icon1.png
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/drawable-xhdpi/icon2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_widget/src/main/res/drawable-xhdpi/icon2.png
--------------------------------------------------------------------------------
/component/common_data/src/main/java/com/xiaochen/common/data/BaseInfo.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.data;
2 |
3 | /**
4 | * 所有实体类的父类
5 | */
6 | public class BaseInfo {
7 | }
8 |
--------------------------------------------------------------------------------
/component/common_widget/src/main/res/drawable-xhdpi/pop1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_widget/src/main/res/drawable-xhdpi/pop1.png
--------------------------------------------------------------------------------
/component/common_widget/src/main/res/drawable-xhdpi/pop2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_widget/src/main/res/drawable-xhdpi/pop2.png
--------------------------------------------------------------------------------
/component/common_widget/src/main/res/drawable-xhdpi/pop3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_widget/src/main/res/drawable-xhdpi/pop3.png
--------------------------------------------------------------------------------
/component/common_widget/src/main/res/drawable-xhdpi/pop4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_widget/src/main/res/drawable-xhdpi/pop4.png
--------------------------------------------------------------------------------
/component/common_widget/src/main/res/drawable-xhdpi/pop5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_widget/src/main/res/drawable-xhdpi/pop5.png
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/drawable-xhdpi/red_bg.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_widget/src/main/res/drawable-xhdpi/red_bg.9.png
--------------------------------------------------------------------------------
/component/common_data/src/main/java/com/xiaochen/common/data/BaseRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.data;
2 |
3 | public class BaseRequest {
4 | public String token;
5 | }
6 |
--------------------------------------------------------------------------------
/component/common_widget/src/main/res/drawable-xhdpi/ring_dot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_widget/src/main/res/drawable-xhdpi/ring_dot.png
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_jetpack/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_jetpack/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_jetpack/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_jetpack/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/drawable-xhdpi/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_resource/src/main/res/drawable-xhdpi/loading.gif
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_jetpack/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/drawable-xhdpi/common_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_resource/src/main/res/drawable-xhdpi/common_back.png
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_resource/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_resource/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_jetpack/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_jetpack/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_jetpack/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/drawable-xhdpi/icon1_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_widget/src/main/res/drawable-xhdpi/icon1_selected.png
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/drawable-xhdpi/icon2_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_widget/src/main/res/drawable-xhdpi/icon2_selected.png
--------------------------------------------------------------------------------
/component/common_widget/src/main/res/drawable-xhdpi/rod_place_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_widget/src/main/res/drawable-xhdpi/rod_place_icon.png
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_jetpack/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/module/module_jetpack/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/component/common_service/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_component.gradle"
2 | def thirdDependencies = rootProject.ext.thirdDependencies
3 | dependencies {
4 | api thirdDependencies.arouter
5 | }
6 |
--------------------------------------------------------------------------------
/component/common_widget/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_component.gradle"
2 |
3 | dependencies {
4 | api project(':component:common_resource')
5 | api project(':component:common_base')
6 | }
7 |
--------------------------------------------------------------------------------
/component/common_widget/src/main/res/drawable-xhdpi/rod_handshank_butten.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zlc921022/easy_component/HEAD/component/common_widget/src/main/res/drawable-xhdpi/rod_handshank_butten.png
--------------------------------------------------------------------------------
/module/module_apm/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
--------------------------------------------------------------------------------
/component/common_mvp/src/main/java/com/xiaochen/common/mvp/BaseModel.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.mvp;
2 |
3 | /**
4 | *
model基类
5 | *
6 | * @author zhenglecheng
7 | * @date 2020/4/16
8 | */
9 | public class BaseModel {
10 | }
11 |
--------------------------------------------------------------------------------
/component/common_base/src/main/java/com/xiaochen/common/base/BaseEvent.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.base;
2 |
3 | /**
4 | * @author zlc
5 | * email : zlc921022@163.com
6 | * desc : eventbus类的基类
7 | */
8 | public class BaseEvent {
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/app_shell/app_mvp/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_shell.gradle"
2 |
3 | dependencies {
4 | implementation project(":component:common_resource")
5 | implementation project(":component:common_base")
6 | runtimeOnly project(':module:module_mvvm')
7 | }
8 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/debug/callback/IDebugCallback.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.debug.callback;
2 |
3 | /**
4 | * Debug模块回调接口
5 | *
6 | * @author ArgusAPM Team
7 | */
8 | public interface IDebugCallback {
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/app_shell/app_aop/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_shell.gradle"
2 |
3 | dependencies {
4 | implementation project(':component:common_resource')
5 | implementation project(':component:common_base')
6 | runtimeOnly project(':module:module_aop')
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/app_shell/app_widget/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_shell.gradle"
2 |
3 | dependencies {
4 | implementation project(':component:common_resource')
5 | implementation project(':component:common_base')
6 | runtimeOnly project(':module:module_widget')
7 | }
8 |
--------------------------------------------------------------------------------
/app_shell/app_jetpack/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_shell.gradle"
2 |
3 | dependencies {
4 | implementation project(':component:common_resource')
5 | implementation project(':component:common_base')
6 | runtimeOnly project(':module:module_jetpack')
7 | }
8 |
--------------------------------------------------------------------------------
/app_shell/app_bluetooth/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_shell.gradle"
2 |
3 | dependencies {
4 | implementation project(':component:common_resource')
5 | implementation project(':component:common_base')
6 | runtimeOnly project(':module:module_bluetooth')
7 | }
8 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/storage/ITable.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.storage;
2 |
3 | /**
4 | * @author ArgusAPM Team
5 | */
6 | public interface ITable {
7 |
8 | String createSql();
9 |
10 | String getTableName();
11 |
12 | }
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/xml/file_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
--------------------------------------------------------------------------------
/component/common_data/src/main/java/com/xiaochen/common/data/BaseResponse.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.data;
2 |
3 | /**
4 | * @author admin
5 | */
6 | public class BaseResponse {
7 | public int errorCode;
8 | public String errorMsg;
9 | public T data;
10 | }
11 |
--------------------------------------------------------------------------------
/module/module_aop/src/main/java/com/xiaochen/module/aop/annotation/Test.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.aop.annotation;
2 |
3 | /**
4 | * {d}
5 | *
6 | * @author zhenglecheng
7 | * @date 2020-02-28
8 | */
9 | @Msg(msg = "zlchahahaha")
10 | public class Test {
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/vdev/java/com/xiaochen/module/ApiConstants.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module;
2 |
3 | /**
4 | * @类描述:
5 | * @作者: zhenglecheng
6 | * @创建时间: 2019/10/9 16:22
7 | */
8 | public class ApiConstants {
9 | public static final String BASE_URL = "https://www.wanandroid.com";
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/vtest/java/com.xiaochen.emvp/ApiConstants.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module;
2 |
3 | /**
4 | * @类描述:
5 | * @作者: zhenglecheng
6 | * @创建时间: 2019/10/9 16:22
7 | */
8 | public class ApiConstants {
9 | public static final String BASE_URL = "https://www.wanandroid.com";
10 | }
11 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/debug/tasks/IParser.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.debug.tasks;
2 |
3 | import com.argusapm.android.core.IInfo;
4 |
5 | /**
6 | * @author ArgusAPM Team
7 | */
8 | public interface IParser {
9 | boolean parse(IInfo info);
10 | }
11 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/color/btn_text_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/component/common_mvvm/src/main/java/com/xiaochen/common/mvvm/BaseException.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.mvvm
2 |
3 | import java.lang.Exception
4 |
5 | /**
6 | * 异常处理
7 | * @author zhenglecheng
8 | * @date 2020/4/16
9 | */
10 | class BaseException(e : Exception) {
11 | }
--------------------------------------------------------------------------------
/module/module_widget/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/bean/PointBean.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.bean;
2 |
3 | /**
4 | * @author zlc
5 | * @created 27/07/2018
6 | * @desc
7 | */
8 | public class PointBean {
9 | public String msgNum;
10 | public String position;
11 | }
12 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/drag_img.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/module/module_router1/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app_shell/app_dagger2/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_shell.gradle"
2 |
3 | dependencies {
4 | implementation project(':component:common_resource')
5 | implementation project(':component:common_base')
6 | runtimeOnly project(':module:module_dagger2')
7 | runtimeOnly project(':module:module_widget')
8 | }
9 |
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/xml/public_network_security_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
--------------------------------------------------------------------------------
/app_shell/app_arouter/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_shell.gradle"
2 |
3 | dependencies {
4 | implementation project(":component:common_resource")
5 | implementation project(":component:common_base")
6 | runtimeOnly project(':module:module_router1')
7 | runtimeOnly project(':module:module_router2')
8 | }
9 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/api/IExtraDataCallback.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.api;
2 |
3 | /**
4 | * 该接口用于sdk读取外部数据
5 | * 第一个参数(int):代表类型
6 | * 其余参数,根据类型确定
7 | *
8 | * @author ArgusAPM Team
9 | */
10 | public interface IExtraDataCallback {
11 | Object parse(Object... args);
12 | }
13 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/module/module_mvp/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/watchDog/WatchDogInfo.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.watchDog;
2 |
3 | import com.argusapm.android.core.job.block.BlockInfo;
4 |
5 | /**
6 | * @author ArgusAPM Team
7 | */
8 | public class WatchDogInfo extends BlockInfo {
9 | private final String SUB_TAG = "WachDogInfo";
10 | }
11 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 18dp
4 | 10dp
5 | @dimen/dp_10
6 |
7 | 12dp
8 | 1dp
9 |
10 |
11 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/color/bottom_text_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/module/module_mvvm/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app_shell/app_apm/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_shell.gradle"
2 | apply plugin: 'argusapm'
3 | android{
4 | useLibrary('org.apache.http.legacy')
5 | }
6 | dependencies {
7 | implementation project(':component:common_resource')
8 | implementation project(':component:common_base')
9 | runtimeOnly project(':module:module_apm')
10 | }
11 |
12 |
--------------------------------------------------------------------------------
/module/module_router2/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_module.gradle"
2 |
3 | android {
4 | resourcePrefix "router2_" //给 Module 内的资源名增加前缀, 避免资源名冲突
5 | }
6 |
7 | dependencies {
8 | implementation project(':component:common_base')
9 | implementation project(':component:common_sdk')
10 | implementation project(':component:common_utils')
11 | }
12 |
--------------------------------------------------------------------------------
/module/module_widget/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_module.gradle"
2 |
3 | android {
4 | resourcePrefix "widget_" //给 Module 内的资源名增加前缀, 避免资源名冲突
5 | }
6 |
7 | dependencies {
8 | implementation project(':component:common_widget')
9 | implementation project(':component:common_sdk')
10 | implementation project(':component:common_service')
11 | }
12 |
--------------------------------------------------------------------------------
/module/module_mvvm/src/main/java/com/xiaochen/module/mvvm/response/HomeArticleRespVO.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.mvvm.response
2 |
3 | import com.xiaochen.common.data.BaseResponse
4 |
5 | /**
6 | *
7 | * @author zhenglecheng
8 | * @date 2019/12/19
9 | */
10 | class HomeArticleRespVO : BaseResponse(){
11 | class Data
12 | }
--------------------------------------------------------------------------------
/component/common_utils/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_component.gradle"
2 | // 扩展库
3 | def supportDependencies = rootProject.ext.supportDependencies
4 | // 第三库
5 | def thirdDependencies = rootProject.ext.thirdDependencies
6 | dependencies {
7 | api supportDependencies.supportAnnotations
8 | api thirdDependencies.timber
9 | api thirdDependencies.gson
10 | }
11 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/drawable/btn1_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/drawable/btn2_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/module/module_app/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_module.gradle"
2 | android {
3 | resourcePrefix "app_" //给 Module 内的资源名增加前缀, 避免资源名冲突
4 | }
5 |
6 | dependencies {
7 | implementation project(':component:common_base')
8 | implementation project(':component:common_resource')
9 | implementation project(':component:common_sdk')
10 | implementation project(':component:common_service')
11 | }
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/module/module_mvp/src/main/java/com/xiaochen/module/mvp/view/ITestView.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.mvp.view;
2 |
3 | import com.xiaochen.common.mvp.IBaseView;
4 | import com.xiaochen.module.mvp.response.HomeArticleRespVO;
5 |
6 | /**
7 | * 测试
8 | *
9 | * @author zhenglecheng
10 | * @date 2019/12/26
11 | */
12 | public interface ITestView extends IBaseView {
13 | }
14 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/webview/AopWebTrace.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.webview;
2 |
3 | import org.json.JSONObject;
4 |
5 | /**
6 | * 通过AOP切面调用,不要轻易更改文件所有的包路径和类名
7 | *
8 | * @author ArgusAPM Team
9 | */
10 | public class AopWebTrace {
11 | public static void dispatch(JSONObject jsonObject) {
12 | WebTrace.dispatch(jsonObject);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/drawable/common_dialog_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/module/module_aop/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/module/module_mvp/src/main/java/com/xiaochen/module/mvp/response/HomeArticleRespVO.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.mvp.response;
2 |
3 | import com.xiaochen.common.data.BaseResponse;
4 |
5 | /**
6 | *
7 | *
8 | * @author zhenglecheng
9 | * @date 2019/12/27
10 | */
11 | public class HomeArticleRespVO extends BaseResponse {
12 | public static class Data{
13 |
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/component/common_base/src/main/java/com/xiaochen/common/base/MyAppGlideModule.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.base;
2 |
3 | import com.bumptech.glide.annotation.GlideModule;
4 | import com.bumptech.glide.module.AppGlideModule;
5 |
6 | /**
7 | * 自定义AppGlideModule
8 | *
9 | * @author zhenglecheng
10 | * @date 2019/12/6
11 | */
12 | @GlideModule
13 | public class MyAppGlideModule extends AppGlideModule {
14 | }
15 |
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/drawable/common_dialog_confirm_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/module/module_aop/src/main/java/com/xiaochen/module/aop/DebugLog.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.aop;
2 |
3 | import android.util.Log;
4 |
5 | /**
6 | * {d}
7 | *
8 | * @author zhenglecheng
9 | * @date 2020-02-28
10 | */
11 | public class DebugLog {
12 | private DebugLog() {
13 | }
14 |
15 | public static void log(String tag, String message) {
16 | Log.e(tag, message);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/api/ExtraDataType.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.api;
2 |
3 | /**
4 | * @author ArgusAPM Team
5 | */
6 | public class ExtraDataType {
7 | public static final int TYPE_GET_PLUGIN_NAME = 0;
8 | public static final int TYPE_GET_PLUGIN_VERSION = 1;
9 | public static final int TYPE_GET_MAIN_VERSION = 2;
10 | public static final int TYPE_RECV_V5_UPDATE = 3;
11 | }
12 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/drawable/flag_01.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
13 |
14 |
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/scope/AScope.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2.scope;
2 |
3 | import java.lang.annotation.Retention;
4 | import java.lang.annotation.RetentionPolicy;
5 |
6 | import javax.inject.Scope;
7 |
8 | /**
9 | *
10 | *
11 | * @author zhenglecheng
12 | * @date 2020/4/28
13 | */
14 | @Scope
15 | @Retention(RetentionPolicy.RUNTIME)
16 | public @interface AScope {
17 | }
18 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/net/i/IStreamCompleteListener.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.net.i;
2 |
3 | /**
4 | * @author ArgusAPM Team
5 | */
6 | public interface IStreamCompleteListener {
7 |
8 | void onInputstreamComplete(long size);
9 |
10 | void onOutputstreamComplete(long size);
11 |
12 | void onInputstreamError(long size);
13 |
14 | void onOutputstreamError(long size);
15 | }
16 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/java/com/xiaochen/module/jetpack/room/Address.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.jetpack.room;
2 |
3 | import androidx.room.ColumnInfo;
4 |
5 | /**
6 | * @类描述:
7 | * @作者: zhenglecheng
8 | * @创建时间: 2019/10/17 17:19
9 | */
10 | public class Address {
11 | public String street;
12 | public String state;
13 | public String city;
14 | @ColumnInfo(name = "post_code")
15 | public String postCode;
16 | }
17 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/network/UploadConfig.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.network;
2 |
3 | /**
4 | * ArgusAPM相关配置
5 | *
6 | * @author ArgusAPM Team
7 | */
8 | public class UploadConfig {
9 | public static final long UPLOAD_INTERVAL = 1 * 60 * 60 * 1000; //数据上传时间间隔
10 | public static final long UPLOAD_MIN_INTERVAL = 5 * 60 * 1000; //数据上传最小时间间隔
11 | public static final int RETRY_COUNT = 3; //上传失败重试次数
12 | }
13 |
--------------------------------------------------------------------------------
/module/module_bluetooth/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/module/module_bluetooth/src/main/java/com/xiaochen/module/bluetooth/device/StethoscopeDevice.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.bluetooth.device
2 |
3 | import com.xiaochen.common.bluetooth.fastble.device.AbsBaseBleDevice
4 |
5 | /**
6 | * 听诊仪
7 | * @author zhenglecheng
8 | * @date 2020/4/13
9 | */
10 | object StethoscopeDevice : AbsBaseBleDevice() {
11 |
12 | override fun getDeviceName(): String {
13 | return ""
14 | }
15 | }
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/scope/PersonScope.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2.scope;
2 |
3 | import java.lang.annotation.Retention;
4 | import java.lang.annotation.RetentionPolicy;
5 |
6 | import javax.inject.Scope;
7 |
8 | /**
9 | *
10 | *
11 | * @author zhenglecheng
12 | * @date 2020/4/28
13 | */
14 | @Scope
15 | @Retention(RetentionPolicy.RUNTIME)
16 | public @interface PersonScope {
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/java/com/xiaochen/module/jetpack/room/Book.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.jetpack.room;
2 |
3 | import androidx.room.ColumnInfo;
4 | import androidx.room.PrimaryKey;
5 |
6 | /**
7 | * @类描述:
8 | * @作者: zhenglecheng
9 | * @创建时间: 2019/10/17 17:15
10 | */
11 | public class Book {
12 | @PrimaryKey
13 | private String bookId;
14 | private String title;
15 | @ColumnInfo(name = "user_id")
16 | private String userId;
17 | }
18 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/tasks/ITask.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.tasks;
2 |
3 | import com.argusapm.android.core.IInfo;
4 |
5 | /**
6 | * ArgusAPM任务接口
7 | *
8 | * @author ArgusAPM Team
9 | */
10 | public interface ITask {
11 | String getTaskName();
12 |
13 | void start();
14 |
15 | boolean isCanWork();
16 |
17 | void setCanWork(boolean value);
18 |
19 | boolean save(IInfo info);
20 |
21 | void stop();
22 | }
--------------------------------------------------------------------------------
/component/common_bluetooth/src/main/java/com/xiaochen/common/bluetooth/classicble/DeviceContants.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.bluetooth.classicble;
2 |
3 | import java.util.*
4 |
5 | /**
6 | * 设备信息
7 | * @author zhenglecheng
8 | * @date 2020/4/13
9 | */
10 | class DeviceConstants {
11 | companion object {
12 | const val device_name = ""
13 | val service_uuid: UUID = UUID.fromString("00001108-0000-1000-8000-00805F9B34FB")
14 | }
15 | }
--------------------------------------------------------------------------------
/component/common_mvvm/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_component.gradle"
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | dependencies {
5 |
6 | api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
7 |
8 | api project(':component:common_data')
9 |
10 | api thirdDependencies.lifecycle
11 | api thirdDependencies.livedata
12 | api thirdDependencies.viewmodel
13 | api thirdDependencies.viewModelKtx
14 | }
15 |
--------------------------------------------------------------------------------
/module/module_apm/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_module.gradle"
2 | apply plugin: 'argusapm'
3 | android {
4 | useLibrary('org.apache.http.legacy')
5 | resourcePrefix "apm_" //给 Module 内的资源名增加前缀, 避免资源名冲突
6 | }
7 |
8 | dependencies {
9 | implementation project(':component:common_base')
10 | implementation project(':component:common_resource')
11 | implementation project(':component:common_sdk')
12 | implementation project(':component:common_service')
13 | }
--------------------------------------------------------------------------------
/module/module_router1/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_module.gradle"
2 |
3 | def thirdDependencies = rootProject.ext.thirdDependencies
4 |
5 | android {
6 | resourcePrefix "router1_" //给 Module 内的资源名增加前缀, 避免资源名冲突
7 | }
8 |
9 | dependencies {
10 | implementation project(':component:common_base')
11 | implementation project(':component:common_sdk')
12 | implementation project(':component:common_utils')
13 | implementation project(':component:common_service')
14 | }
15 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/fragment/ToggleFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.fragment;
2 |
3 |
4 | import com.xiaochen.module.widget.R;
5 |
6 | /**
7 | * Created by zlc on 2018/7/16.
8 | */
9 | public class ToggleFragment extends BaseFragment{
10 | @Override
11 | protected int getLayoutId() {
12 | return R.layout.fragment_toggle;
13 | }
14 |
15 | @Override
16 | protected void initData() {
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/fragment/ClockFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.fragment;
2 |
3 |
4 | import com.xiaochen.module.widget.R;
5 |
6 | /**
7 | * Created by zlc on 2018/7/16.
8 | */
9 |
10 | public class ClockFragment extends BaseFragment {
11 | @Override
12 | protected int getLayoutId() {
13 | return R.layout.fragment_clock;
14 | }
15 |
16 | @Override
17 | protected void initData() {
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/fragment/CobwebFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.fragment;
2 |
3 |
4 | import com.xiaochen.module.widget.R;
5 |
6 | /**
7 | * Created by zlc on 2018/7/16.
8 | */
9 |
10 | public class CobwebFragment extends BaseFragment{
11 | @Override
12 | protected int getLayoutId() {
13 | return R.layout.fragment_cobweb;
14 | }
15 |
16 | @Override
17 | protected void initData() {
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/component/common_service/src/main/java/com/xiaochen/common/service/CommonNameService.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.service;
2 |
3 | import android.content.Context;
4 |
5 | import com.alibaba.android.arouter.facade.template.IProvider;
6 |
7 | /**
8 | *
9 | *
10 | * @author zhenglecheng
11 | * @date 2020/4/29
12 | */
13 | public interface CommonNameService extends IProvider {
14 | /**
15 | * 获取模块名字
16 | * @return 模块名字
17 | */
18 | String getModuleName();
19 | }
20 |
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/drawable/common_dialog_cancel_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/fragment/FlowLayoutFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.fragment;
2 |
3 |
4 | import com.xiaochen.module.widget.R;
5 |
6 | /**
7 | * Created by zlc on 2018/7/16.
8 | */
9 |
10 | public class FlowLayoutFragment extends BaseFragment{
11 | @Override
12 | protected int getLayoutId() {
13 | return R.layout.fragment_flow;
14 | }
15 |
16 | @Override
17 | protected void initData() {
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/fragment/MyLayoutFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.fragment;
2 |
3 |
4 | import com.xiaochen.module.widget.R;
5 |
6 | /**
7 | * Created by zlc on 2018/7/16.
8 | */
9 |
10 | public class MyLayoutFragment extends BaseFragment{
11 | @Override
12 | protected int getLayoutId() {
13 | return R.layout.fragment_my_layout;
14 | }
15 |
16 | @Override
17 | protected void initData() {
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/layout/layout_common_loading_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/fragment/OlymicRingsFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.fragment;
2 |
3 |
4 | import com.xiaochen.module.widget.R;
5 |
6 | /**
7 | * Created by zlc on 2018/7/16.
8 | */
9 |
10 | public class OlymicRingsFragment extends BaseFragment{
11 | @Override
12 | protected int getLayoutId() {
13 | return R.layout.fragment_olympic;
14 | }
15 |
16 | @Override
17 | protected void initData() {
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/fragment_cobweb.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/component/common_bluetooth/src/main/java/com/xiaochen/common/bluetooth/fastble/service/BleConnectEvent.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.bluetooth.fastble.service;
2 |
3 | /**
4 | * @author zlc
5 | * email : zlc921022@163.com
6 | * desc : 蓝牙连接
7 | */
8 | public class BleConnectEvent {
9 | private boolean isSuccess;
10 |
11 | public BleConnectEvent(boolean isSuccess) {
12 | this.isSuccess = isSuccess;
13 | }
14 |
15 | public boolean isSuccess() {
16 | return isSuccess;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/debug/storage/StorageManager.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.debug.storage;
2 |
3 | import com.argusapm.android.Env;
4 | import com.argusapm.android.utils.LogX;
5 |
6 | /**
7 | * 日志数据存储管理类
8 | *
9 | * @author ArgusAPM Team
10 | */
11 | public class StorageManager {
12 | /**
13 | * 按行保存到文本文件
14 | *
15 | * @param line
16 | */
17 | public static void saveToFile(String line) {
18 | TraceWriter.log(Env.TAG, line);
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/module/module_aop/src/main/java/com/xiaochen/module/aop/DebugTrace.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.aop;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * {d}
10 | *
11 | * @author zhenglecheng
12 | * @date 2020-02-28
13 | */
14 | @Retention(RetentionPolicy.CLASS)
15 | @Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
16 | public @interface DebugTrace {
17 | }
18 |
--------------------------------------------------------------------------------
/module/module_aop/src/main/res/layout/layout_aop.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | mobile
3 | com.apm.mobile
4 |
5 | 内存
6 | total:
7 | dalvik:
8 | native:
9 | other:
10 | M
11 |
12 | 帧率:
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/Person1.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2;
2 |
3 |
4 | /**
5 | *
6 | *
7 | * @author zhenglecheng
8 | * @date 2020/4/28
9 | */
10 | public class Person1 {
11 | private String name;
12 |
13 | public Person1(String name) {
14 | this.name = name;
15 | }
16 |
17 | public String getName() {
18 | return name;
19 | }
20 |
21 | public void setName(String name) {
22 | this.name = name;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/component/common_bluetooth/src/main/java/com/xiaochen/common/bluetooth/classicble/ConnectState.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.bluetooth.classicble
2 | /**
3 | * 蓝牙连接状态类
4 | * @author zhenglecheng
5 | * @date 2020/4/8
6 | */
7 | object ConnectState {
8 | // 初始状态
9 | const val STATE_NONE = 0
10 | // 服务端监听状态
11 | const val STATE_LISTEN = 1
12 | // 连接状态
13 | const val STATE_CONNECTING = 2
14 | // 连接成功状态
15 | const val STATE_CONNECTED = 3
16 | // 状态
17 | var mState = STATE_NONE
18 | }
--------------------------------------------------------------------------------
/component/common_bluetooth/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_component.gradle"
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | // 扩展库
5 | def thirdDependencies = rootProject.ext.thirdDependencies
6 | def supportDependencies = rootProject.ext.supportDependencies
7 |
8 | dependencies {
9 | api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
10 | api thirdDependencies.fastble
11 | implementation supportDependencies.supportAnnotations
12 | implementation thirdDependencies.timber
13 | }
--------------------------------------------------------------------------------
/component/common_widget/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | @color/colorGrayPrimary
4 | @color/colorGraySecondary
5 | #96d15d
6 | #61c36d
7 | #000000
8 | #e8e8e8
9 | #85f9c4
10 | #ffffff
11 |
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/module/ApplicationModule.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2.module;
2 |
3 | import com.google.gson.Gson;
4 |
5 | import javax.inject.Singleton;
6 |
7 | import dagger.Module;
8 | import dagger.Provides;
9 |
10 | /**
11 | *
12 | *
13 | * @author zhenglecheng
14 | * @date 2020/4/28
15 | */
16 | @Module
17 | public class ApplicationModule {
18 | @Singleton
19 | @Provides
20 | public Gson createGson() {
21 | return new Gson();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/module/module_mvp/src/main/java/com/xiaochen/module/mvp/MvpApplication.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.mvp;
2 |
3 | import com.xiaochen.common.base.BaseApplication;
4 | import com.xiaochen.common.data.HttpManager;
5 |
6 | /**
7 | *
8 | *
9 | * @author zhenglecheng
10 | * @date 2020/4/22
11 | */
12 | public class MvpApplication extends BaseApplication {
13 | @Override
14 | public void onCreate() {
15 | super.onCreate();
16 | HttpManager.createManager("https://www.wanandroid.com", isDebug, this);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/utils/AspectjUtils.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.utils;
2 |
3 | /**
4 | * @author ArgusAPM Team
5 | */
6 | public class AspectjUtils {
7 | public static final String JOINPOINT_KIND_CALL_METHOD = "method-call";
8 | public static final String JOINPOINT_KIND_EXECUTION_METHOD = "method-execution";
9 | public static final String JOINPOINT_KIND_CALL_CONSTRUCTOR = "constructor-call";
10 | public static final String JOINPOINT_KIND_EXECUTION_CONSTRUCTOR = "constructor-execution";
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/PersonQualifier.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2;
2 |
3 | import java.lang.annotation.Documented;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 |
7 | import javax.inject.Qualifier;
8 |
9 | /**
10 | *
11 | *
12 | * @author zhenglecheng
13 | * @date 2020/4/28
14 | */
15 | @Qualifier
16 | @Documented
17 | @Retention(RetentionPolicy.RUNTIME)
18 | public @interface PersonQualifier {
19 | String value() default "";
20 | }
21 |
--------------------------------------------------------------------------------
/module/module_mvvm/src/main/java/com/xiaochen/module/mvvm/MvvmApplication.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.mvvm;
2 |
3 | import com.xiaochen.common.base.BaseApplication;
4 | import com.xiaochen.common.data.HttpManager;
5 |
6 | /**
7 | *
8 | *
9 | * @author zhenglecheng
10 | * @date 2020/4/22
11 | */
12 | public class MvvmApplication extends BaseApplication {
13 | @Override
14 | public void onCreate() {
15 | super.onCreate();
16 | HttpManager.createManager("https://www.wanandroid.com", isDebug, this);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/module/module_mvvm/src/main/java/com/xiaochen/module/mvvm/api/IServiceApi.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.mvvm.api
2 |
3 | import com.xiaochen.module.mvvm.response.HomeArticleRespVO
4 | import retrofit2.http.GET
5 | import retrofit2.http.Path
6 |
7 | /**
8 | *
9 | * 服务器接口{d}
10 | *
11 | * @author zhenglecheng
12 | * @date 2019-12-08
13 | */
14 | interface IServiceApi {
15 |
16 | /**
17 | * 首页文章列表
18 | */
19 | @GET("/article/list/{page}/json")
20 | suspend fun getHomeArticles(@Path("page") page: Int): HomeArticleRespVO
21 | }
22 |
--------------------------------------------------------------------------------
/component/common_resource/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_component.gradle"
2 | // 扩展库
3 | def thirdDependencies = rootProject.ext.thirdDependencies
4 | def supportDependencies = rootProject.ext.supportDependencies
5 |
6 | dependencies {
7 | // 基础ui
8 | api supportDependencies.supportAppcompat
9 | api supportDependencies.recyclerView
10 | api supportDependencies.suppoutDesign
11 | api supportDependencies.supportAnnotations
12 | api supportDependencies.constraintLayout
13 | // 屏幕适配
14 | api thirdDependencies.autoSize
15 | }
16 |
--------------------------------------------------------------------------------
/component/common_utils/src/main/java/com/xiaochen/common/utils/AppLogger.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.utils;
2 |
3 | import timber.log.Timber;
4 |
5 | /**
6 | * @author zlc
7 | * email : zlc921022@163.com
8 | * desc : APP日志
9 | */
10 | public final class AppLogger {
11 |
12 | private AppLogger(){}
13 | /**
14 | * 初始化日志
15 | * @param isDebug 是否是调试模式
16 | */
17 | public static void init(final boolean isDebug) {
18 | if (isDebug) {
19 | Timber.plant(new Timber.DebugTree());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/module/module_dagger2/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_module.gradle"
2 |
3 | def thirdDependencies = rootProject.ext.thirdDependencies
4 |
5 | android {
6 | resourcePrefix "dagger2_" //给 Module 内的资源名增加前缀, 避免资源名冲突
7 | }
8 |
9 | dependencies {
10 | implementation project(':component:common_base')
11 | implementation project(':component:common_utils')
12 | implementation project(':component:common_sdk')
13 | implementation project(':component:common_service')
14 |
15 | annotationProcessor thirdDependencies.dagger2Compiler
16 | }
17 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/layout/fragment_home.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
13 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/fragment_smile_face.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/module/module_router2/src/main/assets/test.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | 跳转测试
10 | 自定义Scheme
11 |
12 | 页面跳转不带参数
13 |
14 |
15 | 页面跳转带参数
16 |
17 |
18 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/fragment_olympic.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/component/common_base/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_component.gradle"
2 | // 扩展库
3 | def supportDependencies = rootProject.ext.supportDependencies
4 | // 第三库
5 | def thirdDependencies = rootProject.ext.thirdDependencies
6 |
7 | //依赖库
8 | dependencies {
9 |
10 | api project(':component:common_resource')
11 | api supportDependencies.multidex
12 |
13 | //其他工具库
14 | api thirdDependencies.statusbarutil
15 | api thirdDependencies.glide
16 | api thirdDependencies.materialDialogs
17 | api thirdDependencies.arouter
18 | api thirdDependencies.timber
19 | }
20 |
--------------------------------------------------------------------------------
/module/module_aop/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_module.gradle"
2 | apply plugin: 'android-aspectjx'
3 | android {
4 | aspectjx {
5 | //排除所有package路径中包含`android.support`的class文件及库(jar文件)
6 | exclude 'com.android.support'
7 | exclude 'com.google.gson'
8 | }
9 | resourcePrefix "aop_" //给 Module 内的资源名增加前缀, 避免资源名冲突
10 | }
11 |
12 | dependencies {
13 | implementation fileTree(dir: 'libs', include: ['*.jar'])
14 |
15 | implementation project(':component:common_resource')
16 | // 添加aop依赖
17 | implementation 'org.aspectj:aspectjrt:1.8.9'
18 | }
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/component/AComponent.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2.component;
2 |
3 | import com.xiaochen.module.dagger2.Dagger2OtherActivity;
4 | import com.xiaochen.module.dagger2.module.AModule;
5 | import com.xiaochen.module.dagger2.scope.AScope;
6 |
7 | import dagger.Subcomponent;
8 |
9 | /**
10 | *
11 | *
12 | * @author zhenglecheng
13 | * @date 2020/4/28
14 | */
15 | @AScope
16 | @Subcomponent(modules = AModule.class)
17 | public interface AComponent {
18 | void inject(Dagger2OtherActivity activity);
19 | }
20 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/layout/fragment_my.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
14 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/aop/IAopTraceHelper.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.aop;
2 |
3 | /**
4 | * @author ArgusAPM Team
5 | */
6 | public interface IAopTraceHelper {
7 | void dispatch(long startTime,
8 | String kind,
9 | String sign,
10 | Object[] args,
11 | Object target,
12 | Object thiz,
13 | String location,
14 | String staticPartStr,
15 | String methodName,
16 | Object result
17 | );
18 | }
19 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/cloudconfig/Constant.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.cloudconfig;
2 |
3 | /**
4 | * 云控逻辑常量配置类
5 | *
6 | * @author ArgusAPM Team
7 | */
8 | public class Constant {
9 | // 配置请求的最小时间间隔
10 | public static final long INTERVAL = 1 * 60 * 60 * 1000;
11 | public static final long APP_START_CLOUD_MAX_DELAY_TIME = 10 * 1000;//APP(进程)启动候,云控请求最大延迟
12 | public static final long CLOUD_MIN_INTERVAL = 5 * 60 * 1000; //云规则请求的最小时间间隔
13 | public static final String CLOUD_RULE_UPDATE_ACTION = "com.apm.mobile.action.cloud.rule.update";
14 | }
15 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/layout/fragment_setting.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
14 |
--------------------------------------------------------------------------------
/module/module_mvp/src/main/java/com/xiaochen/module/mvp/api/IServiceApi.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.mvp.api;
2 | import com.xiaochen.module.mvp.response.HomeArticleRespVO;
3 |
4 | import io.reactivex.Observable;
5 | import retrofit2.http.GET;
6 | import retrofit2.http.Path;
7 |
8 | /**
9 | * 服务器接口{d}
10 | *
11 | * @author zhenglecheng
12 | * @date 2019-12-08
13 | */
14 | public interface IServiceApi {
15 |
16 | /**
17 | * 首页文章列表
18 | */
19 | @GET("article/list/{page}/json")
20 | Observable getHomeArticles(@Path("page") int page);
21 | }
22 |
--------------------------------------------------------------------------------
/module/module_router2/src/main/res/layout/router2_fragment_test.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
14 |
15 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/func/FuncTask.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.func;
2 |
3 | import com.argusapm.android.api.ApmTask;
4 | import com.argusapm.android.core.storage.IStorage;
5 | import com.argusapm.android.core.tasks.BaseTask;
6 |
7 | /**
8 | * @author ArgusAPM Team
9 | */
10 | public class FuncTask extends BaseTask {
11 | @Override
12 | protected IStorage getStorage() {
13 | return new FuncStorage();
14 | }
15 |
16 | @Override
17 | public String getTaskName() {
18 | return ApmTask.TASK_FUNC;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/net/NetTask.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.net;
2 |
3 | import com.argusapm.android.api.ApmTask;
4 | import com.argusapm.android.core.storage.IStorage;
5 | import com.argusapm.android.core.tasks.BaseTask;
6 |
7 | /**
8 | * @author ArgusAPM Team
9 | */
10 | public class NetTask extends BaseTask {
11 |
12 | @Override
13 | protected IStorage getStorage() {
14 | return new NetStorage();
15 | }
16 |
17 | @Override
18 | public String getTaskName() {
19 | return ApmTask.TASK_NET;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/component/common_data/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_component.gradle"
2 |
3 | // 第三库
4 | def thirdDependencies = rootProject.ext.thirdDependencies
5 |
6 | dependencies {
7 | //网络请求
8 | api thirdDependencies.retrofit
9 | api thirdDependencies.gson
10 | api (thirdDependencies.retrofitConverterGson){
11 | exclude group : 'com.google.code.gson'
12 | exclude group : 'com.squareup.retrofit2'
13 | }
14 | api (thirdDependencies.okhttpLoggingInterceptor){
15 | exclude group : 'com.squareup.okhttp3'
16 | }
17 | api thirdDependencies.timber
18 | }
19 |
--------------------------------------------------------------------------------
/module/module_aop/src/main/java/com/xiaochen/module/aop/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.aop;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.annotation.Nullable;
6 | import androidx.appcompat.app.AppCompatActivity;
7 |
8 | /**
9 | *
10 | *
11 | * @author zhenglecheng
12 | * @date 2020/4/14
13 | */
14 | public class MainActivity extends AppCompatActivity {
15 | @Override
16 | protected void onCreate(@Nullable Bundle savedInstanceState) {
17 | super.onCreate(savedInstanceState);
18 | setContentView(R.layout.layout_aop);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/webview/WebTask.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.webview;
2 |
3 | import com.argusapm.android.api.ApmTask;
4 | import com.argusapm.android.core.storage.IStorage;
5 | import com.argusapm.android.core.tasks.BaseTask;
6 |
7 | /**
8 | * @author ArgusAPM Team
9 | */
10 | public class WebTask extends BaseTask {
11 | @Override
12 | protected IStorage getStorage() {
13 | return new WebStorage();
14 | }
15 |
16 | @Override
17 | public String getTaskName() {
18 | return ApmTask.TASK_WEBVIEW;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/component/common_mvp/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_component.gradle"// 第三库
2 | def supportDependencies = rootProject.ext.supportDependencies
3 | def thirdDependencies = rootProject.ext.thirdDependencies
4 |
5 | dependencies {
6 | api project(':component:common_data')
7 | api supportDependencies.supportAppcompat
8 | api thirdDependencies.statusbarutil
9 | api thirdDependencies.rxJava
10 | api (thirdDependencies.rxJavaAdapter){
11 | exclude group : 'io.reactivex.rxjava2'
12 | }
13 | api thirdDependencies.rxAndroid
14 | api thirdDependencies.lifecycle
15 | }
16 |
--------------------------------------------------------------------------------
/module/module_apm/src/main/java/com/xiaochen/module/apm/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.apm;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.annotation.Nullable;
6 |
7 | import com.xiaochen.common.base.BaseActivity;
8 |
9 | /**
10 | *
11 | *
12 | * @author zhenglecheng
13 | * @date 2020/5/12
14 | */
15 | public class MainActivity extends BaseActivity {
16 | @Override
17 | protected void onCreate(@Nullable Bundle savedInstanceState) {
18 | super.onCreate(savedInstanceState);
19 | setContentView(R.layout.apm_activity_main);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/module/module_mvp/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_module.gradle"
2 | def thirdDependencies = rootProject.ext.thirdDependencies
3 |
4 | android {
5 | resourcePrefix "mvp_" //给 Module 内的资源名增加前缀, 避免资源名冲突
6 | }
7 |
8 | dependencies {
9 | implementation project(':component:common_resource')
10 | implementation project(':component:common_utils')
11 | implementation project(':component:common_mvp')
12 | implementation project(':component:common_sdk')
13 | implementation project(':component:common_base')
14 | implementation project(':component:common_service')
15 |
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/component/common_sdk/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_component.gradle"
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 |
5 |
6 | def thirdDependencies = rootProject.ext.thirdDependencies
7 | dependencies {
8 | api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
9 | api thirdDependencies.timber
10 | api thirdDependencies.arouter
11 | api thirdDependencies.glide
12 | api thirdDependencies.eventbus
13 | api thirdDependencies.butterknife
14 | api thirdDependencies.dagger2
15 | annotationProcessor thirdDependencies.butterKnifeCompiler
16 | }
17 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/fragment_range_seekbar.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/func/AopFuncTrace.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.func;
2 |
3 | import com.argusapm.android.aop.IAopTraceHelper;
4 |
5 | /**
6 | * @author ArgusAPM Team
7 | */
8 | public class AopFuncTrace implements IAopTraceHelper {
9 | @Override
10 | public void dispatch(long startTime, String kind, String sign, Object[] args, Object target, Object thiz, String location, String staticPartStr, String methodName, Object result) {
11 | FuncTrace.dispatch(startTime, kind, sign, args, target, thiz, location, staticPartStr, methodName, result);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/module/module_bluetooth/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_module.gradle"
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'kotlin-kapt'
5 |
6 | def thirdDependencies = rootProject.ext.thirdDependencies
7 |
8 | dependencies {
9 | implementation project(':component:common_base')
10 | implementation project(':component:common_utils')
11 | implementation project(':component:common_bluetooth')
12 | implementation project(':component:common_sdk')
13 | implementation project(':component:common_service')
14 |
15 | kapt thirdDependencies.arouterCompiler
16 | }
17 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/java/com/xiaochen/module/jetpack/MyViewModel.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.jetpack;
2 |
3 | import androidx.lifecycle.MutableLiveData;
4 | import androidx.lifecycle.ViewModel;
5 |
6 | /**
7 | * @类描述:
8 | * @作者: zhenglecheng
9 | * @创建时间: 2019/10/14 18:25
10 | */
11 | public class MyViewModel extends ViewModel {
12 | // public String name = "zlc";
13 | private MutableLiveData mLiveData;
14 |
15 | MutableLiveData getLiveData() {
16 | if(mLiveData == null){
17 | mLiveData = new MutableLiveData<>();
18 | }
19 | return mLiveData;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/appstart/AppStartTask.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.appstart;
2 |
3 | import com.argusapm.android.api.ApmTask;
4 | import com.argusapm.android.core.storage.IStorage;
5 | import com.argusapm.android.core.tasks.BaseTask;
6 |
7 | /**
8 | * 应用启动Task
9 | *
10 | * @author ArgusAPM Team
11 | */
12 | public class AppStartTask extends BaseTask {
13 |
14 | @Override
15 | protected IStorage getStorage() {
16 | return new AppStartStorage();
17 | }
18 |
19 | @Override
20 | public String getTaskName() {
21 | return ApmTask.TASK_APP_START;
22 | }
23 | }
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/Person.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2;
2 |
3 |
4 | import javax.inject.Inject;
5 |
6 | /**
7 | *
8 | *
9 | * @author zhenglecheng
10 | * @date 2020/4/28
11 | */
12 | public class Person {
13 | private String name;
14 |
15 | @Inject
16 | public Person() {
17 | name = "郑乐成";
18 | }
19 |
20 | public Person(String name) {
21 | this.name = name;
22 | }
23 |
24 | public String getName() {
25 | return name;
26 | }
27 |
28 | public void setName(String name) {
29 | this.name = name;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/aop/IActivityHelper.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.aop;
2 |
3 | import android.app.Activity;
4 | import android.content.Context;
5 |
6 | /**
7 | * @author ArgusAPM Team
8 | */
9 | public interface IActivityHelper {
10 | // activity的生命周期处理
11 | void invoke(Activity activity, long startTime, String lifeCycle, Object... args);
12 |
13 | // application的onCreate处理
14 | void applicationOnCreate(Context context);
15 |
16 | // application的attachBaseContext处理
17 | void applicationAttachBaseContext(Context context);
18 |
19 | // 扩展用
20 | Object parse(Object... args);
21 | }
22 |
--------------------------------------------------------------------------------
/module/module_router2/src/main/res/layout/router2_activity_test.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
15 |
16 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/fragment_piechart.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/fragment_toggle.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/IInfo.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core;
2 |
3 | import android.content.ContentValues;
4 |
5 | import org.json.JSONException;
6 | import org.json.JSONObject;
7 |
8 | import java.io.Serializable;
9 |
10 | /**
11 | * 通用基本数据接口
12 | *
13 | * @author ArgusAPM Team
14 | */
15 | public interface IInfo extends Serializable {
16 | // 目前是数据库自增字段
17 | int getId();
18 |
19 | JSONObject toJson() throws JSONException;
20 |
21 | void parserJsonStr(String json) throws JSONException;
22 |
23 | void parserJson(JSONObject json) throws JSONException;
24 |
25 | ContentValues toContentValues();
26 |
27 | }
--------------------------------------------------------------------------------
/component/common_data/src/main/java/com/xiaochen/common/data/BaseResponseCallBack.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.data;
2 |
3 | /**
4 | * 服务数据接口回调
5 | * @author admin
6 | */
7 | public interface BaseResponseCallBack {
8 |
9 | /**
10 | * 开始请求
11 | */
12 | void onStart();
13 |
14 | /**
15 | * 请求成功
16 | *
17 | * @param data 对象
18 | */
19 | void onSuccess(T data);
20 |
21 | /**
22 | * 请求失败
23 | *
24 | * @param code 错误码
25 | * @param errMessage 错误信息
26 | */
27 | void onFailure(String code, String errMessage);
28 |
29 | /**
30 | * 请求结束
31 | */
32 | void onEnd();
33 | }
34 |
--------------------------------------------------------------------------------
/module/module_bluetooth/src/main/java/com/xiaochen/module/bluetooth/constant/CmdConstants.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.bluetooth.constant
2 |
3 | /**
4 | * 透传蓝牙-常用命令{d}
5 | * @author zhenglecheng
6 | * @date 2020/4/2
7 | */
8 | class CmdConstants {
9 | companion object {
10 | // 指令开头
11 | private const val start = ""
12 | const val num_cmd = ""
13 | const val mode_cmd = ""
14 | const val heart_cmd = ""
15 | const val lung_cmd = ""
16 | const val common_cmd = ""
17 | const val search_cmd = ""
18 | const val voice_add_cmd = ""
19 | const val voice_sub_cmd = ""
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/component/common_mvvm/src/main/java/com/xiaochen/common/mvvm/BaseResult.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.mvvm
2 |
3 | /**
4 | * 1
5 | * @author zhenglecheng
6 | */
7 | sealed class BaseResult {
8 |
9 | /**
10 | * 请求成功返回
11 | */
12 | data class Success(val data: T?) : BaseResult()
13 |
14 | /**
15 | * 请求失败返回
16 | */
17 | data class Error(val exception: Exception) : BaseResult()
18 |
19 | override fun toString(): String {
20 | return when (this) {
21 | is Success -> "Success[data=$data]"
22 | is Error -> "Error[exception=$exception]"
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/module/module_router2/src/main/res/layout/router2_activity_main2.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
16 |
17 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/fragment_circle_progress.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
15 |
16 |
--------------------------------------------------------------------------------
/component/common_resource/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
8 |
9 |
10 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/layout/layout_common_right_text.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
--------------------------------------------------------------------------------
/component/common_bluetooth/src/main/java/com/xiaochen/common/bluetooth/fastble/constant/DeviceConstants.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.bluetooth.fastble.constant;
2 |
3 | /**
4 | * @author zlc
5 | * email : zlc921022@163.com
6 | * desc : 切换蓝牙操作方式类
7 | */
8 | public final class DeviceConstants {
9 | /**
10 | * 用服务形式操作蓝牙
11 | */
12 | public static final int SERVICE = 0;
13 | /**
14 | * fastble库操作蓝牙
15 | */
16 | public static final int FAST_BLE = 1;
17 | /**
18 | * 指令直接间隔发送时间
19 | */
20 | public static final long SLEEP_TIME = 100;
21 | /**
22 | * 扫描时间
23 | */
24 | public static final long SCAN_TIME_OUT = 60 * 1000;
25 | }
26 |
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/module/PersonModule.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2.module;
2 |
3 | import com.xiaochen.module.dagger2.Person;
4 | import com.xiaochen.module.dagger2.scope.PersonScope;
5 |
6 | import dagger.Module;
7 | import dagger.Provides;
8 |
9 | /**
10 | *
11 | *
12 | * @author zhenglecheng
13 | * @date 2020/4/28
14 | */
15 |
16 | @Module
17 | public class PersonModule {
18 |
19 | @PersonScope
20 | @Provides
21 | public Person createPerson(String name) {
22 | return new Person(name);
23 | }
24 |
25 | @Provides
26 | public String createName() {
27 | return "小成";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/module/module_aop/src/main/java/com/xiaochen/module/aop/annotation/Msg.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.aop.annotation;
2 |
3 | import java.lang.annotation.Documented;
4 | import java.lang.annotation.ElementType;
5 | import java.lang.annotation.Inherited;
6 | import java.lang.annotation.Retention;
7 | import java.lang.annotation.RetentionPolicy;
8 | import java.lang.annotation.Target;
9 |
10 | /**
11 | * {d}
12 | *
13 | * @author zhenglecheng
14 | * @date 2020-02-28
15 | */
16 | @Target(ElementType.TYPE)
17 | @Retention(RetentionPolicy.RUNTIME)
18 | @Inherited
19 | @Documented
20 | public @interface Msg {
21 | String DEFAULT_MSG = "msg";
22 | String msg() default DEFAULT_MSG;
23 | }
24 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/fragment_drag_stick.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
16 |
17 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/drawable/out_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
11 |
14 |
17 |
20 |
21 |
--------------------------------------------------------------------------------
/module/module_mvp/src/main/res/layout/mvp_activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
17 |
18 |
--------------------------------------------------------------------------------
/module/module_mvvm/src/main/res/layout/mvvm_activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
17 |
18 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/network/UploadInfoField.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.network;
2 |
3 | /**
4 | * 上传数据字段
5 | *
6 | * @author ArgusAPM Team
7 | */
8 | public class UploadInfoField {
9 | public static final String KEY_MODE = "m"; //MODEL 机型信息
10 | public static final String KEY_MANUFACTURE = "mf"; //MANUFACTURER 厂商
11 | public static final String KEY_SDKINI = "s"; //SDK_INT SDK版本
12 | public static final String KEY_RELEASEVERSION = "rv"; //RELEASE 系统版本
13 | public static final String KEY_FRAME_VER = "fv";//主程序版本号
14 | public static final String KEY_APMID = "apmid";
15 | public static final String KEY_APMVER = "apmver";
16 | public static final String KEY_TIME = "t";
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/component/common_mvp/src/main/java/com/xiaochen/common/mvp/IBaseView.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.mvp;
2 |
3 |
4 | /**
5 | * 父类View接口 原则上子类View接口都应该实现该接口
6 | *
7 | * @author zhenglecheng
8 | */
9 | public interface IBaseView {
10 |
11 | /**
12 | * 显示loading
13 | */
14 | default void showLoading() {
15 |
16 | }
17 |
18 | /**
19 | * 关闭loading
20 | */
21 | default void dismissLoading() {
22 |
23 | }
24 |
25 | /**
26 | * 请求成功回调
27 | *
28 | * @param data 接口数据
29 | */
30 | void setData(T data);
31 |
32 | /**
33 | * 请求错误回调
34 | *
35 | * @param msg 错误信息
36 | * @param code 错误码
37 | */
38 | void onError(String msg, String code);
39 | }
40 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/fragment_clock.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
16 |
17 |
--------------------------------------------------------------------------------
/component/common_mvp/src/main/java/com/xiaochen/common/mvp/BasePresenter.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.mvp;
2 |
3 |
4 | import androidx.lifecycle.Lifecycle;
5 | import androidx.lifecycle.LifecycleObserver;
6 | import androidx.lifecycle.LifecycleOwner;
7 | import androidx.lifecycle.OnLifecycleEvent;
8 |
9 | /**
10 | * presenter基类
11 | *
12 | * @author zhenglecheng
13 | * @date 2019/11/20
14 | */
15 | public class BasePresenter implements LifecycleObserver {
16 |
17 | @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
18 | public void onCreateView(LifecycleOwner lifecycleOwner) {
19 | }
20 |
21 | @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
22 | public void onDetachView(LifecycleOwner lifecycleOwner) {
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/module/MainModule.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2.module;
2 |
3 | import android.content.Context;
4 | import android.content.SharedPreferences;
5 |
6 | import com.xiaochen.common.base.AppUtil;
7 | import com.xiaochen.common.utils.SpUtil;
8 |
9 | import dagger.Module;
10 | import dagger.Provides;
11 |
12 | /**
13 | *
14 | *
15 | * @author zhenglecheng
16 | * @date 2020/4/28
17 | */
18 | @Module
19 | public class MainModule {
20 | @Provides
21 | public SharedPreferences createSp(Context context) {
22 | return SpUtil.getSp(context);
23 | }
24 |
25 | @Provides
26 | public Context getContext() {
27 | return AppUtil.getContext();
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #96d15d
4 | #61c36d
5 | #000000
6 | #e8e8e8
7 | #85f9c4
8 | #ffffff
9 | #333333
10 | #666666
11 |
--------------------------------------------------------------------------------
/module/module_mvvm/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_module.gradle"
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'kotlin-kapt'
5 | def thirdDependencies = rootProject.ext.thirdDependencies
6 |
7 | android {
8 | defaultConfig {
9 | multiDexEnabled = true
10 | }
11 | resourcePrefix "mvvm_" //给 Module 内的资源名增加前缀, 避免资源名冲突
12 | }
13 |
14 | dependencies {
15 | implementation project(':component:common_utils')
16 | implementation project(':component:common_mvvm')
17 | implementation project(':component:common_base')
18 | implementation project(':component:common_sdk')
19 | implementation project(':component:common_service')
20 |
21 | kapt thirdDependencies.arouterCompiler
22 | }
23 |
24 |
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/component/ApplicationComponent.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2.component;
2 |
3 | import com.google.gson.Gson;
4 | import com.xiaochen.module.dagger2.module.AModule;
5 | import com.xiaochen.module.dagger2.module.ApplicationModule;
6 |
7 | import javax.inject.Singleton;
8 |
9 | import dagger.Component;
10 |
11 | /**
12 | *
13 | *
14 | * @author zhenglecheng
15 | * @date 2020/4/28
16 | */
17 | @Singleton
18 | @Component(modules = ApplicationModule.class)
19 | public interface ApplicationComponent {
20 | /**
21 | * 创建gson对象
22 | *
23 | * @return
24 | */
25 | Gson createGson();
26 |
27 | /**
28 | * 添加声明
29 | */
30 | AComponent plus(AModule module);
31 | }
32 |
--------------------------------------------------------------------------------
/common_component.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | // android配置
3 | def config = rootProject.ext.android
4 |
5 | android {
6 | compileSdkVersion config.compileSdkVersion
7 | buildToolsVersion config.buildToolsVersion
8 |
9 | defaultConfig {
10 | minSdkVersion config.minSdkVersion
11 | versionCode config.versionCode
12 | versionName config.versionName
13 | }
14 |
15 | compileOptions {
16 | sourceCompatibility rootProject.ext.javaVersion
17 | targetCompatibility rootProject.ext.javaVersion
18 | }
19 |
20 | buildTypes {
21 | release {
22 | minifyEnabled false
23 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/app_shell/app_dagger2/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/module/module_apm/src/main/res/layout/apm_activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
15 |
16 |
--------------------------------------------------------------------------------
/component/common_bluetooth/src/main/java/com/xiaochen/common/bluetooth/fastble/constant/UUIDConstants.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.bluetooth.fastble.constant;
2 |
3 |
4 | /**
5 | * @author zlc
6 | * email : zlc921022@163.com
7 | * desc : UUID定义类
8 | */
9 | public final class UUIDConstants {
10 | /**
11 | * 服务UUID
12 | */
13 | public static final String SERVICE_UUID = "";
14 | /**
15 | * 通知UUID
16 | */
17 | public static final String NOTIFY_CHAR_UUID = "";
18 | /**
19 | * 读UUID
20 | */
21 | public static final String READ_CHAR_UUID = "";
22 | /**
23 | * 写UUID
24 | */
25 | public static final String WRITE_CHAR_UUID = "";
26 | /**
27 | * 写描述符UUID
28 | */
29 | public static final String DESCRIPTOR_UUID = "";
30 | }
31 |
--------------------------------------------------------------------------------
/app_shell/app_jetpack/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/component/MainComponent.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2.component;
2 |
3 |
4 | import com.xiaochen.module.dagger2.Dagger2MainActivity;
5 | import com.xiaochen.module.dagger2.module.MainModule;
6 | import com.xiaochen.module.dagger2.module.PersonModule;
7 | import com.xiaochen.module.dagger2.scope.PersonScope;
8 |
9 | import dagger.Component;
10 |
11 | /**
12 | *
13 | *
14 | * @author zhenglecheng
15 | * @date 2020/4/28
16 | */
17 | @PersonScope
18 | @Component(dependencies = ApplicationComponent.class, modules = {MainModule.class, PersonModule.class})
19 | public interface MainComponent {
20 | /**
21 | * 注入MainActivity对象
22 | *
23 | * @param activity
24 | */
25 | void inject(Dagger2MainActivity activity);
26 | }
27 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/debug/tasks/MonitorParseTask.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.debug.tasks;
2 |
3 | import com.argusapm.android.core.IInfo;
4 |
5 | /**
6 | * @author ArgusAPM Team
7 | */
8 | public class MonitorParseTask implements IParser {
9 | @Override
10 | public boolean parse(IInfo info) {
11 | // if (info != null && info instanceof MonitorInfo) {
12 | // MonitorInfo mInfo = (MonitorInfo) info;
13 | // try {
14 | // JSONObject obj = mInfo.toJson();
15 | // obj.put("taskName", ApmTask.TASK_NET);
16 | // OutputProxy.output(msg, obj.toString());
17 | // } catch (JSONException e) {
18 | // e.printStackTrace();
19 | // }
20 | // }
21 | return false;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/component/common_data/src/main/java/com/xiaochen/common/data/ApiManager.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.data;
2 |
3 | /**
4 | * Api的管理类,负责创建api接口对象
5 | */
6 | public class ApiManager {
7 |
8 | private HttpManager mHttpProvider;
9 |
10 | private ApiManager() {
11 | mHttpProvider = HttpManager.getManager();
12 | }
13 |
14 | public static ApiManager getManager() {
15 | return SingleHolder.INSTANCE;
16 | }
17 |
18 | private final static class SingleHolder {
19 | private final static ApiManager INSTANCE = new ApiManager();
20 | }
21 |
22 | /**
23 | * 获得api接口对象
24 | *
25 | * @param service
26 | * @param
27 | * @return
28 | */
29 | public T createApi(Class service) {
30 | return mHttpProvider.createApi(service);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/storage/IStorage.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.storage;
2 |
3 | import android.content.ContentValues;
4 |
5 | import com.argusapm.android.core.IInfo;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * 数据增删改查中间操作
11 | *
12 | * @author ArgusAPM Team
13 | */
14 | public interface IStorage {
15 | String getName();
16 |
17 | IInfo get(Integer id);
18 |
19 | boolean save(IInfo data);
20 |
21 | int deleteByTime(long time);
22 |
23 | boolean delete(Integer id);
24 |
25 | // 按照一条id更新数据
26 | boolean update(Integer id, ContentValues cv);
27 |
28 | List getAll();
29 |
30 | List getData(int index, int count);
31 |
32 | boolean clean();
33 |
34 | boolean cleanByCount(int count);
35 |
36 | Object[] invoke(Object... args);
37 | }
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/layout/recyclerview_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
17 |
18 |
22 |
23 |
--------------------------------------------------------------------------------
/module/module_mvp/src/main/java/com/xiaochen/module/mvp/MvpInfoServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.mvp;
2 |
3 | import android.content.Context;
4 |
5 | import com.alibaba.android.arouter.facade.annotation.Route;
6 | import com.xiaochen.common.sdk.RouterPathConstant;
7 | import com.xiaochen.common.service.CommonNameService;
8 |
9 | /**
10 | *
11 | *
12 | * @author zhenglecheng
13 | * @date 2020/4/29
14 | */
15 | @Route(path = RouterPathConstant.MVP_SERVICE,name = "mvp服务")
16 | public class MvpInfoServiceImpl implements CommonNameService {
17 | private Context mContext;
18 | @Override
19 | public String getModuleName() {
20 | return mContext.getString(R.string.module_mvp);
21 | }
22 |
23 | @Override
24 | public void init(Context context) {
25 | this.mContext = context;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/Env.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android;
2 |
3 | /**
4 | * APM全局配置文件
5 | *
6 | * @author ArgusAPM Team
7 | */
8 | public class Env {
9 | public static final boolean DEBUG = BuildConfig.IS_DEBUG;
10 |
11 | public static final String VERSION = BuildConfig.VERSION;
12 | public static final String BUILD = BuildConfig.BUILD;
13 |
14 | public static final String getVersionName() {
15 | return VERSION + "." + BUILD;
16 | }
17 |
18 | /**
19 | * apm日志输出TAG
20 | */
21 | public static final String TAG = "apm_debug";
22 |
23 | /**
24 | * apm对外输出的日志TAG
25 | */
26 | public static final String TAG_O = "argus_apm";
27 |
28 | /**
29 | * 是否将数据库生成到sdcard方便调试
30 | */
31 | public static final boolean DB_IN_SDCARD = BuildConfig.DB_IN_SDCARD;
32 | }
--------------------------------------------------------------------------------
/module/module_mvvm/src/main/java/com/xiaochen/module/mvvm/MvvmInfoServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.mvvm;
2 |
3 | import android.content.Context;
4 |
5 | import com.alibaba.android.arouter.facade.annotation.Route;
6 | import com.xiaochen.common.sdk.RouterPathConstant;
7 | import com.xiaochen.common.service.CommonNameService;
8 |
9 | /**
10 | *
11 | *
12 | * @author zhenglecheng
13 | * @date 2020/4/29
14 | */
15 | @Route(path = RouterPathConstant.MVVM_SERVICE,name = "mvvm服务")
16 | public class MvvmInfoServiceImpl implements CommonNameService {
17 | private Context mContext;
18 | @Override
19 | public String getModuleName() {
20 | return mContext.getString(R.string.module_mvvm);
21 | }
22 |
23 | @Override
24 | public void init(Context context) {
25 | this.mContext = context;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/component/common_bluetooth/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/module/module_aop/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/module/module_apm/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/module/module_app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/module/module_mvp/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/fragment/DragStickFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.fragment;
2 |
3 | import android.widget.ListView;
4 |
5 | import com.xiaochen.module.widget.R;
6 | import com.xiaochen.module.widget.ui.adapter.PointsAdapter;
7 |
8 | /**
9 | * Created by zlc on 2018/7/16.
10 | */
11 |
12 | public class DragStickFragment extends BaseFragment{
13 | private ListView mLvPoints;
14 |
15 | @Override
16 | protected int getLayoutId() {
17 | return R.layout.fragment_drag_stick;
18 | }
19 |
20 | @Override
21 | protected void initView() {
22 | super.initView();
23 | mLvPoints = findView(R.id.lv_points);
24 | }
25 |
26 | @Override
27 | protected void initData() {
28 | mLvPoints.setAdapter(new PointsAdapter(mActivity));
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/fragment/SmileFaceFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.fragment;
2 |
3 | import com.xiaochen.common.widget.view.SmileFaceView;
4 | import com.xiaochen.module.widget.R;
5 |
6 | /**
7 | * Created by zlc on 2018/7/16.
8 | */
9 |
10 | public class SmileFaceFragment extends BaseFragment {
11 |
12 | private SmileFaceView mSmileView;
13 |
14 | @Override
15 | protected int getLayoutId() {
16 | return R.layout.fragment_smile_face;
17 | }
18 |
19 | @Override
20 | protected void initView() {
21 | super.initView();
22 | mSmileView = findView(R.id.smile_view);
23 | }
24 |
25 | @Override
26 | protected void initData() {
27 | }
28 |
29 | public void smileAnimation(){
30 | mSmileView.playAnimation();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app_shell/app_dagger2/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/component/common_mvp/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/component/common_mvvm/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/component/common_sdk/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/component/common_utils/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/module/module_dagger2/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/module/module_jetpack/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/java/com/xiaochen/module/jetpack/fragment/HomeFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.jetpack.fragment;
2 |
3 | import android.os.Bundle;
4 | import android.view.LayoutInflater;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 |
8 | import androidx.annotation.NonNull;
9 | import androidx.annotation.Nullable;
10 | import androidx.fragment.app.Fragment;
11 |
12 | import com.xiaochen.module.jetpack.R;
13 |
14 | /**
15 | * @类描述:
16 | * @作者: zhenglecheng
17 | * @创建时间: 2019/10/23 14:33
18 | */
19 | public class HomeFragment extends Fragment {
20 |
21 | @Nullable
22 | @Override
23 | public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
24 | return inflater.inflate(R.layout.fragment_home, container, false);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/module/module_mvvm/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/module/module_router1/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/module/module_router2/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/module/module_widget/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | #00000000
5 |
6 |
7 | #000000
8 | #4d4d4d
9 | #999999
10 | #b2b2b2
11 | #29a600
12 | #f14c0c
13 | #FFFFFF
14 | #0096FF
15 | #f79d1c
16 |
17 |
18 | @color/common_font_color_8
19 | #33000000
20 |
21 |
--------------------------------------------------------------------------------
/component/common_bluetooth/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/component/common_service/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/component/common_widget/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/module/module_bluetooth/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/component/common_bluetooth/src/main/java/com/xiaochen/common/bluetooth/fastble/constant/CmdConstants.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.bluetooth.fastble.constant;
2 |
3 | /**
4 | * 透传蓝牙-常用命令{d}
5 | * @author zhenglecheng
6 | * @date 2020/4/2
7 | */
8 | class CmdConstants {
9 | companion object {
10 | private const val start = ""
11 | // 0001-9999 设备号设置
12 | const val num_cmd = ""
13 | // 0 从机模式 (音频连接手机) 1 主机模式 音频连接蓝牙耳机
14 | const val mode_cmd = ""
15 | // 心音模式
16 | const val heart_cmd = ""
17 | // 肺音模式
18 | const val lung_cmd = ""
19 | // 一般模式
20 | const val common_cmd = ""
21 | // 音频模式查询
22 | const val search_cmd = ""
23 | // 声音加
24 | const val voice_add_cmd = ""
25 | // 声音减
26 | const val voice_sub_cmd = ""
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/Dagger2InfoServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2;
2 |
3 | import android.content.Context;
4 |
5 | import com.alibaba.android.arouter.facade.annotation.Route;
6 | import com.xiaochen.common.sdk.RouterPathConstant;
7 | import com.xiaochen.common.service.CommonNameService;
8 |
9 | /**
10 | *
11 | *
12 | * @author zhenglecheng
13 | * @date 2020/4/29
14 | */
15 | @Route(path = RouterPathConstant.DAGGER2_SERVICE,name = "dagger2服务")
16 | public class Dagger2InfoServiceImpl implements CommonNameService {
17 | private Context mContext;
18 | @Override
19 | public String getModuleName() {
20 | return mContext.getString(R.string.module_dagger2);
21 | }
22 |
23 | @Override
24 | public void init(Context context) {
25 | this.mContext = context;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/java/com/xiaochen/module/jetpack/JetpackInfoServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.jetpack;
2 |
3 | import android.content.Context;
4 |
5 | import com.alibaba.android.arouter.facade.annotation.Route;
6 | import com.xiaochen.common.sdk.RouterPathConstant;
7 | import com.xiaochen.common.service.CommonNameService;
8 |
9 | /**
10 | *
11 | *
12 | * @author zhenglecheng
13 | * @date 2020/4/29
14 | */
15 | @Route(path = RouterPathConstant.JETPACK_SERVICE,name = "jetpack服务")
16 | public class JetpackInfoServiceImpl implements CommonNameService {
17 | private Context mContext;
18 | @Override
19 | public String getModuleName() {
20 | return mContext.getString(R.string.module_jetpack);
21 | }
22 |
23 | @Override
24 | public void init(Context context) {
25 | this.mContext = context;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/module/module_router1/src/main/java/com/xiaochen/module/router1/ArouterInfoServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.router1;
2 |
3 | import android.content.Context;
4 |
5 | import com.alibaba.android.arouter.facade.annotation.Route;
6 | import com.xiaochen.common.sdk.RouterPathConstant;
7 | import com.xiaochen.common.service.CommonNameService;
8 |
9 | /**
10 | *
11 | *
12 | * @author zhenglecheng
13 | * @date 2020/4/29
14 | */
15 | @Route(path = RouterPathConstant.AROUTER_SERVICE,name = "arouter服务")
16 | public class ArouterInfoServiceImpl implements CommonNameService {
17 | private Context mContext;
18 | @Override
19 | public String getModuleName() {
20 | return mContext.getString(R.string.module_arouter);
21 | }
22 |
23 | @Override
24 | public void init(Context context) {
25 | this.mContext = context;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/fragment/RangeSeekBarFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.fragment;
2 |
3 | import com.xiaochen.common.widget.viewgroup.RangeSeekBar;
4 | import com.xiaochen.module.widget.R;
5 |
6 | /**
7 | * Created by zlc on 2018/7/16.
8 | */
9 |
10 | public class RangeSeekBarFragment extends BaseFragment{
11 |
12 | private RangeSeekBar mSeekbar;
13 |
14 | @Override
15 | protected int getLayoutId() {
16 | return R.layout.fragment_range_seekbar;
17 | }
18 |
19 | @Override
20 | protected void initView() {
21 | super.initView();
22 | mSeekbar = findView(R.id.seekbar);
23 | }
24 |
25 | @Override
26 | protected void initData() {
27 | }
28 |
29 | @Override
30 | public void initListener() {
31 | super.initListener();
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app_shell/app_aop/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/fragment/PieChartFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.fragment;
2 |
3 | import com.xiaochen.common.widget.view.PieChartView;
4 | import com.xiaochen.module.widget.R;
5 |
6 | /**
7 | * Created by zlc on 2018/7/16.
8 | */
9 |
10 | public class PieChartFragment extends BaseFragment{
11 |
12 | private PieChartView mChartView;
13 |
14 | @Override
15 | protected int getLayoutId() {
16 | return R.layout.fragment_piechart;
17 | }
18 |
19 | @Override
20 | protected void initView() {
21 | super.initView();
22 | mChartView = findView(R.id.pieChart);
23 | }
24 |
25 | @Override
26 | protected void initData() {
27 | }
28 |
29 | public void chartAnimation(){
30 | mChartView.setProgressAnimation(PieChartView.DURATION);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app_shell/app_widget/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/res/layout/dagger2_activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
18 |
19 |
--------------------------------------------------------------------------------
/module/module_dagger2/src/main/java/com/xiaochen/module/dagger2/module/AModule.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.dagger2.module;
2 |
3 | import com.xiaochen.module.dagger2.Person;
4 | import com.xiaochen.module.dagger2.Person1;
5 | import com.xiaochen.module.dagger2.PersonQualifier;
6 | import com.xiaochen.module.dagger2.scope.AScope;
7 |
8 | import javax.inject.Named;
9 |
10 | import dagger.Module;
11 | import dagger.Provides;
12 |
13 | /**
14 | *
15 | *
16 | * @author zhenglecheng
17 | * @date 2020/4/28
18 | */
19 | @Module
20 | public class AModule {
21 |
22 | @PersonQualifier( "m")
23 | @AScope
24 | @Provides
25 | public Person1 getPerson() {
26 | return new Person1("小城");
27 | }
28 |
29 | @PersonQualifier( "w")
30 | @AScope
31 | @Provides
32 | public Person1 getGirlFriend() {
33 | return new Person1("小艳");
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/fragment/CircleProgressFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.fragment;
2 |
3 | import com.xiaochen.common.widget.view.CircleRingProgress;
4 | import com.xiaochen.module.widget.R;
5 |
6 | /**
7 | * Created by zlc on 2018/7/16.
8 | */
9 |
10 | public class CircleProgressFragment extends BaseFragment{
11 | private CircleRingProgress mRingProgress;
12 |
13 | @Override
14 | protected int getLayoutId() {
15 | return R.layout.fragment_circle_progress;
16 | }
17 |
18 | @Override
19 | protected void initView() {
20 | super.initView();
21 | mRingProgress = findView(R.id.ring_progress);
22 | }
23 |
24 | @Override
25 | protected void initData() {
26 | }
27 |
28 | public void progressAnimation(){
29 | mRingProgress.setProgressAnimation(0,60,1000);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/WidgetInfoServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui;
2 |
3 | import android.content.Context;
4 |
5 | import com.alibaba.android.arouter.facade.annotation.Route;
6 | import com.xiaochen.common.sdk.RouterPathConstant;
7 | import com.xiaochen.common.service.CommonNameService;
8 | import com.xiaochen.module.widget.R;
9 |
10 | /**
11 | *
12 | *
13 | * @author zhenglecheng
14 | * @date 2020/4/29
15 | */
16 | @Route(path = RouterPathConstant.WIDGET_SERVICE,name = "widget服务")
17 | public class WidgetInfoServiceImpl implements CommonNameService {
18 | private Context mContext;
19 | @Override
20 | public String getModuleName() {
21 | return mContext.getString(R.string.module_widget);
22 | }
23 |
24 | @Override
25 | public void init(Context context) {
26 | this.mContext = context;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/component/common_sdk/src/main/java/com/xiaochen/common/sdk/BusManager.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.sdk
2 |
3 | import org.greenrobot.eventbus.EventBus
4 |
5 | /**
6 | * eventbus二次封装
7 | * @author zhenglecheng
8 | * @date 2020/4/29
9 | */
10 | class BusManager private constructor() {
11 |
12 | companion object {
13 |
14 | @JvmStatic
15 | fun register(subscriber: Any) {
16 | EventBus.getDefault().register(subscriber)
17 | }
18 |
19 | @JvmStatic
20 | fun post(event: Any) {
21 | EventBus.getDefault().post(event)
22 | }
23 |
24 | @JvmStatic
25 | fun postSticky(event: Any) {
26 | EventBus.getDefault().postSticky(event)
27 | }
28 |
29 | @JvmStatic
30 | fun unregister(subscriber: Any) {
31 | EventBus.getDefault().unregister(subscriber)
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/java/com/xiaochen/module/jetpack/fragment/SettingFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.jetpack.fragment;
2 |
3 | import android.os.Bundle;
4 | import android.view.LayoutInflater;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 |
8 | import androidx.annotation.NonNull;
9 | import androidx.annotation.Nullable;
10 | import androidx.fragment.app.Fragment;
11 |
12 | import com.xiaochen.module.jetpack.R;
13 |
14 | /**
15 | * @author admin
16 | * @类描述:
17 | * @作者: zhenglecheng
18 | * @创建时间: 2019/10/23 14:34
19 | */
20 | public class SettingFragment extends Fragment {
21 |
22 | @Nullable
23 | @Override
24 | public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
25 | View view = inflater.inflate(R.layout.fragment_setting, container, false);
26 | return view;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/module/module_bluetooth/src/main/java/com/xiaochen/module/bluetooth/BluetoothInfoServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.bluetooth;
2 |
3 | import android.content.Context;
4 |
5 | import com.alibaba.android.arouter.facade.annotation.Route;
6 | import com.xiaochen.common.base.AppUtil;
7 | import com.xiaochen.common.sdk.RouterPathConstant;
8 | import com.xiaochen.common.service.CommonNameService;
9 |
10 | /**
11 | *
12 | *
13 | * @author zhenglecheng
14 | * @date 2020/4/29
15 | */
16 | @Route(path = RouterPathConstant.BLUETOOTH_SERVICE,name = "蓝牙服务")
17 | public class BluetoothInfoServiceImpl implements CommonNameService {
18 | private Context mContext;
19 | @Override
20 | public String getModuleName() {
21 | return mContext.getString(R.string.module_bluetooth);
22 | }
23 |
24 | @Override
25 | public void init(Context context) {
26 | this.mContext = context;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app_shell/app_mvp/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
12 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/argus-apm-main/sdk_utils.gradle:
--------------------------------------------------------------------------------
1 | ext {
2 | // debug版带日志
3 | APMSDK_DEBUG = false
4 | APMSDK_VERSION = "2.0.1"
5 | APMSDK_BUILD = "1006"
6 |
7 | getDirSuffix = this.&getDirSuffix
8 | APM_TASKS_GROUP = "argus"
9 | }
10 |
11 | String getTime() {
12 | Calendar calendar = Calendar.getInstance();
13 | StringBuilder sbuilder = new StringBuilder();
14 | sbuilder.append(calendar.get(Calendar.YEAR) + "-");
15 | sbuilder.append(calendar.get(Calendar.MONTH) + 1 + "-");
16 | sbuilder.append(calendar.get(Calendar.DAY_OF_MONTH) + "-");
17 | sbuilder.append(calendar.get(Calendar.HOUR_OF_DAY) + "-");
18 | sbuilder.append(calendar.get(Calendar.MINUTE) + "-");
19 | sbuilder.append(calendar.get(Calendar.MILLISECOND));
20 | return sbuilder.toString();
21 | }
22 |
23 | String getDirSuffix() {
24 | String suffix = APMSDK_VERSION + "." + APMSDK_BUILD + "-[" + getTime() + "]";
25 | return suffix.replaceAll("\"", "");
26 | }
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/layout/activity_paging.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
19 |
20 |
24 |
25 |
--------------------------------------------------------------------------------
/app_shell/app_arouter/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
12 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/StorageConfig.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core;
2 |
3 | /**
4 | * 存储相关配置
5 | *
6 | * @author ArgusAPM Team
7 | */
8 | public class StorageConfig {
9 | public static final String CONTENT_PATH_PREFIX = "content://";
10 | public static final String AUTHORITY_SUFFIX = "apm.storage";
11 | public static final String DB_NAME = "apm.db"; //数据库名称
12 | public static final int DB_VERSION = 14; //数据库版本号,字段新增或改变后,必须升级此版本号
13 |
14 | public static final int SAVE_DB_INTERVAL = 15 * 1000;// 写入数据库最短时间间隔,防止频繁IO
15 | public static final int SAVE_DB_MAX_COUNT = 100;// 写入数据库最大缓存条数
16 |
17 |
18 | /*****************数据清理相关配置************************/
19 | public static final long DATA_CLEAR_INTERVAL_TIME = 2 * 60 * 60 * 1000; // 两小时执行一次即可
20 | public static final long DATA_CLEAR_INTERVAL_MIN_TIME = 10 * 60 * 1000; // 触发清理的最短时间是10分钟
21 | public static final int DATA_OVER_DAY = 2; //日志过期时间(天)
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/module/module_router2/src/main/java/com/xiaochen/module/router2/TestFragment.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.router2;
2 |
3 | import android.os.Bundle;
4 | import android.view.LayoutInflater;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 |
8 | import com.alibaba.android.arouter.facade.annotation.Route;
9 | import com.xiaochen.common.sdk.RouterPathConstant;
10 |
11 | import androidx.annotation.NonNull;
12 | import androidx.annotation.Nullable;
13 | import androidx.fragment.app.Fragment;
14 |
15 | /**
16 | * {d}
17 | *
18 | * @author zhenglecheng
19 | * @date 2020/4/19
20 | */
21 | @Route(path = RouterPathConstant.TEST_FRAGMENT)
22 | public class TestFragment extends Fragment {
23 | @Nullable
24 | @Override
25 | public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
26 | return inflater.inflate(R.layout.router2_fragment_test, container, false);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/java/com/xiaochen/module/jetpack/room/User.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.jetpack.room;
2 |
3 | import android.text.TextUtils;
4 |
5 | import androidx.annotation.Nullable;
6 | import androidx.room.ColumnInfo;
7 | import androidx.room.Entity;
8 | import androidx.room.PrimaryKey;
9 |
10 | /**
11 | * @类描述:
12 | * @作者: zhenglecheng
13 | * @创建时间: 2019/10/16 11:18
14 | */
15 | @Entity(tableName = "user")
16 | public class User {
17 | @PrimaryKey(autoGenerate = true)
18 | public Integer id = 0;
19 | @ColumnInfo(name = "user_name")
20 | public String userName;
21 |
22 | @Override
23 | public boolean equals(@Nullable Object obj) {
24 | if( !(obj instanceof User)){
25 | return false;
26 | }
27 | if(obj == this){
28 | return true;
29 | }
30 | User user = (User) obj;
31 | return this.id.equals(user.id) && TextUtils.equals(this.userName,user.userName);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | ## Project-wide Gradle settings.
2 | #
3 | # For more details on how to configure your build environment visit
4 | # http://www.gradle.org/docs/current/userguide/build_environment.html
5 | #
6 | # Specifies the JVM arguments used for the daemon process.
7 | # The setting is particularly useful for tweaking memory settings.
8 | # Default value: -Xmx1024m -XX:MaxPermSize=256m
9 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
10 | #
11 | # When configured, Gradle will run in incubating parallel mode.
12 | # This option should only be used with decoupled projects. More details, visit
13 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
14 | # org.gradle.parallel=true
15 | #Fri Jul 27 18:18:19 CST 2018
16 | systemProp.http.proxyHost=192.168.1.101
17 | org.gradle.jvmargs=-Xmx1536m
18 | systemProp.http.proxyPort=1080
19 |
20 | android.useAndroidX=true
21 | android.enableJetifier=true
--------------------------------------------------------------------------------
/module/module_router2/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/activity/ActivityHelper.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.activity;
2 |
3 | import android.app.Activity;
4 | import android.content.Context;
5 |
6 | import com.argusapm.android.aop.IActivityHelper;
7 |
8 | /**
9 | * 用于AOP
10 | *
11 | * @author ArgusAPM Team
12 | */
13 | public class ActivityHelper implements IActivityHelper {
14 | @Override
15 | public void applicationAttachBaseContext(Context context) {
16 | AH.applicationAttachBaseContext(context);
17 | }
18 |
19 |
20 | @Override
21 | public void invoke(Activity activity, long startTime, String lifeCycle, Object... args) {
22 | AH.invoke(activity, startTime, lifeCycle, args);
23 | }
24 |
25 | @Override
26 | public void applicationOnCreate(Context context) {
27 | AH.applicationOnCreate(context);
28 | }
29 |
30 | @Override
31 | public Object parse(Object... args) {
32 | return null;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/java/com/xiaochen/module/jetpack/room/UserDao.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.jetpack.room;
2 |
3 | import androidx.paging.DataSource;
4 | import androidx.room.Dao;
5 | import androidx.room.Delete;
6 | import androidx.room.Insert;
7 | import androidx.room.Query;
8 | import androidx.room.Update;
9 |
10 | import java.util.List;
11 |
12 | /**
13 | * @类描述:
14 | * @作者: zhenglecheng
15 | * @创建时间: 2019/10/16 11:18
16 | */
17 | @Dao
18 | public interface UserDao {
19 |
20 | @Insert
21 | void insertUser(User user);
22 |
23 | @Insert
24 | void insertAll(List users);
25 |
26 | @Delete
27 | int delete(User user);
28 |
29 | @Update
30 | void update(User user);
31 |
32 | @Query("SELECT * FROM user WHERE user_name = :name")
33 | User selectUser(String name);
34 |
35 | @Query("SELECT * FROM user")
36 | List selectAll();
37 |
38 | @Query("SELECT * FROM user")
39 | DataSource.Factory getAll();
40 | }
41 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/fragment_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
18 |
19 |
23 |
24 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/res/layout/fragment_viewgroup.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
18 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/module/module_mvvm/src/main/java/com/xiaochen/module/mvvm/repository/TestRepository.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.mvvm.repository
2 | import com.xiaochen.common.data.ApiManager
3 | import com.xiaochen.common.mvvm.BaseRepository
4 | import com.xiaochen.common.mvvm.BaseResult
5 | import com.xiaochen.module.mvvm.api.IServiceApi
6 | import com.xiaochen.module.mvvm.response.HomeArticleRespVO
7 |
8 | /**
9 | *
10 | * @author zhenglecheng
11 | * @date 2019/12/16
12 | */
13 | class TestRepository : BaseRepository() {
14 |
15 | private val mApiManager by lazy {
16 | ApiManager.getManager().createApi(IServiceApi::class.java)
17 | }
18 |
19 | suspend fun getArticle(page: Int): BaseResult {
20 | return safeApiCall(call = { requestArticle(page) }, errorMessage = "网络错误")
21 | }
22 |
23 | private suspend fun requestArticle(page: Int): BaseResult {
24 | return executeResponse(mApiManager.getHomeArticles(page))
25 | }
26 | }
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/utils/FloatWindowUtils.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.utils;
2 |
3 | import android.os.Build;
4 | import android.view.WindowManager;
5 |
6 | /**
7 | * 悬浮窗口工具类
8 | *
9 | * @author ArgusAPM Team
10 | */
11 | public class FloatWindowUtils {
12 |
13 | /**
14 | * 选择悬浮窗类型
15 | */
16 | public static int getType() {
17 | if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
18 | //7.1.1以上需要动态申请TYPE_APPLICATION_OVERLAY权限
19 | return WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
20 | } else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N_MR1) {
21 | //7.1.1 需要动态申请TYPE_SYSTEM_ALERT权限
22 | return WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
23 | } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
24 | return WindowManager.LayoutParams.TYPE_TOAST;
25 | } else {
26 | return WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/debug/config/DebugConfig.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.debug.config;
2 |
3 | /**
4 | * APM Debug模块配置信息
5 | *
6 | * @author ArgusAPM Team
7 | */
8 | public class DebugConfig {
9 |
10 | public static int NET_REQUEST_SUCCESS = 200;
11 | public static String OUTPUT_FILE = "apm_debug_warning.txt";//存储文件名称
12 | public static int TEXT_COLOR_DEFAULT = 0xFFffffff;//白色文本
13 | public static int BIG_WINDOW_BG_COLOR = 0x99000000; //大悬浮窗背景颜色
14 | public static int TEXT_COLOR_GREEN = 0xff29a600; //绿色文本
15 | public static int TEXT_COLOR_WARN = 0xffff0000; //警告文本颜色
16 | public static int DEFAULT_PADDING = 10;
17 | public static int DEFAULT_TEXT_SIZE = 10;
18 |
19 | //警报阈值
20 | public static int WARN_ACTIVITY_CREATE_VALUE = 300; //Activity生命周期oncreate警报时间间隔 单位:ms
21 | public static int WARN_ACTIVITY_FRAME_VALUE = 500; //Activity生命周期第一帧警报时间间隔 单位:ms
22 | public static int WARN_FPS_VALUE = 40;
23 | public static int WARN_CPU_VALUE = 10;
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/component/common_base/src/main/java/com/xiaochen/common/base/BaseApplication.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.base;
2 |
3 | import android.app.Application;
4 | import android.content.Context;
5 |
6 | import com.alibaba.android.arouter.launcher.ARouter;
7 |
8 | import androidx.multidex.MultiDex;
9 | import timber.log.Timber;
10 |
11 | /**
12 | * 父类application
13 | * 负责context和apiManager对象的创建和获取
14 | *
15 | * @author admin
16 | */
17 | public class BaseApplication extends Application {
18 |
19 | protected boolean isDebug = true;
20 |
21 | @Override
22 | protected void attachBaseContext(Context base) {
23 | super.attachBaseContext(base);
24 | MultiDex.install(this);
25 | }
26 |
27 | @Override
28 | public void onCreate() {
29 | super.onCreate();
30 | if (isDebug) {
31 | Timber.plant(new Timber.DebugTree());
32 | ARouter.openLog();
33 | ARouter.openDebug();
34 | }
35 | ARouter.init(this);
36 | AppUtil.init(this);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/net/i/QURL.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.net.i;
2 |
3 | import com.argusapm.android.api.ApmTask;
4 | import com.argusapm.android.core.Manager;
5 | import com.argusapm.android.core.job.net.impl.AopURL;
6 |
7 | import java.io.IOException;
8 | import java.net.Proxy;
9 | import java.net.URL;
10 | import java.net.URLConnection;
11 |
12 | /**
13 | * aop 代码织入时会调用
14 | *
15 | * @author ArgusAPM Team
16 | */
17 | public class QURL {
18 |
19 | public static URLConnection openConnection(URL url) throws IOException {
20 | return isNetTaskRunning() ? AopURL.openConnection(url) : url.openConnection();
21 | }
22 |
23 | public static URLConnection openConnection(URL url, Proxy proxy) throws IOException {
24 | return isNetTaskRunning() ? AopURL.openConnection(url, proxy) : url.openConnection(proxy);
25 | }
26 |
27 | private static boolean isNetTaskRunning() {
28 | return Manager.getInstance().getTaskManager().taskIsCanWork(ApmTask.TASK_NET);
29 | }
30 | }
--------------------------------------------------------------------------------
/module/module_aop/src/main/java/com/xiaochen/module/aop/StopWatch.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.aop;
2 |
3 | import java.util.concurrent.TimeUnit;
4 |
5 | /**
6 | * {d}
7 | *
8 | * @author zhenglecheng
9 | * @date 2020-02-28
10 | */
11 | public class StopWatch {
12 | private long startTime;
13 | private long endTime;
14 | private long elapsedTime;
15 |
16 | public StopWatch() {
17 |
18 | }
19 |
20 | private void reset() {
21 | startTime = 0;
22 | endTime = 0;
23 | elapsedTime = 0;
24 | }
25 |
26 | public void start() {
27 | reset();
28 | startTime = System.nanoTime();
29 | }
30 |
31 | public void stop() {
32 | if (startTime != 0) {
33 | endTime = System.nanoTime();
34 | elapsedTime = endTime - startTime;
35 | } else {
36 | reset();
37 | }
38 | }
39 |
40 | public long getTotalTimeMillis() {
41 | return (elapsedTime != 0) ? TimeUnit.NANOSECONDS.toMillis(elapsedTime) : 0;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | easy_component
6 | app-aop
7 | app-router
8 | app-bluetooth
9 | app-jetpack
10 | app-widget
11 | app-mvvm
12 | app-mvp
13 | app-dagger2
14 | app-apm
15 |
16 |
17 | 蓝牙学习
18 | dagger2学习
19 | jetpack学习
20 | mvp测试
21 | mvvm测试
22 | arouter学习
23 | 自定义控件学习
24 |
25 |
--------------------------------------------------------------------------------
/module/module_router1/src/main/java/com/xiaochen/module/router1/JsonServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.router1;
2 |
3 | import android.content.Context;
4 |
5 | import com.alibaba.android.arouter.facade.annotation.Route;
6 | import com.alibaba.android.arouter.facade.service.SerializationService;
7 | import com.google.gson.Gson;
8 |
9 | import java.lang.reflect.Type;
10 |
11 | /**
12 | * @author zlc
13 | */
14 | @Route(path = "/service/json")
15 | public class JsonServiceImpl implements SerializationService {
16 | private Gson gson;
17 |
18 | @Override
19 | public T json2Object(String input, Class clazz) {
20 | return gson.fromJson(input, clazz);
21 | }
22 |
23 | @Override
24 | public String object2Json(Object instance) {
25 | return gson.toJson(instance);
26 | }
27 |
28 | @Override
29 | public T parseObject(String input, Type clazz) {
30 | return gson.fromJson(input, clazz);
31 | }
32 |
33 | @Override
34 | public void init(Context context) {
35 | gson = new Gson();
36 | }
37 | }
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/java/com/xiaochen/module/jetpack/room/AppDataBase.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.jetpack.room;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.room.Database;
6 | import androidx.room.Room;
7 | import androidx.room.RoomDatabase;
8 |
9 | /**
10 | * @author admin
11 | * @类描述:
12 | * @作者: zhenglecheng
13 | * @创建时间: 2019/10/16 11:14
14 | */
15 | @Database(entities = {User.class}, version = 1,exportSchema = false)
16 | public abstract class AppDataBase extends RoomDatabase {
17 |
18 | public abstract UserDao userDao();
19 |
20 | private static AppDataBase mAppDataBase;
21 |
22 | public static AppDataBase getInstance(Context context) {
23 | if (mAppDataBase == null) {
24 | synchronized (AppDataBase.class) {
25 | if (mAppDataBase == null) {
26 | mAppDataBase = Room.databaseBuilder(context.getApplicationContext(),
27 | AppDataBase.class, "user_data").build();
28 | }
29 | }
30 | }
31 | return mAppDataBase;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/drawable/ic_home.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
22 |
25 |
26 |
--------------------------------------------------------------------------------
/component/common_data/src/main/java/com/xiaochen/common/data/interceptor/CommonHeaderInterceptor.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.data.interceptor;
2 |
3 | import java.io.IOException;
4 | import java.util.HashMap;
5 |
6 | import okhttp3.Headers;
7 | import okhttp3.Interceptor;
8 | import okhttp3.Request;
9 | import okhttp3.Response;
10 |
11 | /**
12 | * 通用请求头拦截器
13 | *
14 | * @author zhenglecheng
15 | * @date 2019/12/27
16 | */
17 | public class CommonHeaderInterceptor implements Interceptor {
18 |
19 | @Override
20 | public Response intercept(Chain chain) throws IOException {
21 | Request request = chain.request();
22 | Request.Builder builder = request.newBuilder();
23 | builder.headers(getHeads());
24 | return chain.proceed(builder.build());
25 | }
26 |
27 | /**
28 | * 添加通用请求头并获取请求头
29 | */
30 | private Headers getHeads() {
31 | HashMap heads = new HashMap<>();
32 | heads.put("token","1");
33 | heads.put("id","2");
34 | heads.put("cookie","3");
35 | return Headers.of(heads);
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/java/com/xiaochen/module/jetpack/ConstraintLayoutActivity.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.jetpack;
2 |
3 | import android.os.Bundle;
4 | import android.widget.TextView;
5 |
6 | import androidx.annotation.Nullable;
7 | import androidx.appcompat.app.AppCompatActivity;
8 |
9 | import com.xiaochen.common.base.BaseActivity;
10 |
11 | /**
12 | * @类描述:
13 | * @作者: zhenglecheng
14 | * @创建时间: 2019/10/22 17:08
15 | */
16 | public class ConstraintLayoutActivity extends BaseActivity {
17 |
18 | @Override
19 | protected void onCreate(@Nullable Bundle savedInstanceState) {
20 | super.onCreate(savedInstanceState);
21 | }
22 |
23 | @Override
24 | protected int getLayoutResId() {
25 | return R.layout.activity_constraintlayout_test;
26 | }
27 |
28 | @Override
29 | protected void initView() {
30 | super.initView();
31 | TextView title = findViewById(R.id.title_text);
32 | title.setText("ConstraintLayout");
33 | findViewById(R.id.back_button).setOnClickListener(v -> {
34 | finish();
35 | });
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/module/module_jetpack/src/main/res/layout/activity_lifecycle.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
12 |
13 |
19 |
20 |
28 |
29 |
--------------------------------------------------------------------------------
/component/common_base/src/main/java/com/xiaochen/common/base/AppUtil.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.base;
2 |
3 | import android.app.Application;
4 | import android.content.Context;
5 |
6 | /**
7 | * application管理类
8 | *
9 | * @author zhenglecheng
10 | * @date 2020/4/16
11 | */
12 | public class AppUtil {
13 |
14 | private static Application mContext;
15 |
16 | private AppUtil() {
17 |
18 | }
19 |
20 | static void init(Application context) {
21 | mContext = context;
22 | }
23 |
24 | public static Context getContext() {
25 | return mContext;
26 | }
27 |
28 | public static String getString(int resId) {
29 | return mContext.getString(resId);
30 | }
31 |
32 | public static String getString(int resId, Object... formatArgs) {
33 | return mContext.getString(resId, formatArgs);
34 | }
35 |
36 | public static int getColor(int colorId) {
37 | return mContext.getResources().getColor(colorId);
38 | }
39 |
40 | public static int getDimens(int resId) {
41 | return mContext.getResources().getDimensionPixelSize(resId);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/func/FuncTable.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.func;
2 |
3 | import android.text.TextUtils;
4 |
5 | import com.argusapm.android.api.ApmTask;
6 | import com.argusapm.android.core.storage.DbHelper;
7 | import com.argusapm.android.core.storage.ITable;
8 |
9 | /**
10 | * @author ArgusAPM Team
11 | */
12 | public class FuncTable implements ITable {
13 | @Override
14 | public String createSql() {
15 | return TextUtils.concat(
16 | DbHelper.CREATE_TABLE_PREFIX + getTableName(),
17 | "(", FuncInfo.KEY_ID_RECORD, " INTEGER PRIMARY KEY AUTOINCREMENT,",
18 | FuncInfo.KEY_TIME_RECORD, DbHelper.DATA_TYPE_INTEGER,
19 | FuncInfo.KEY_TYPE, DbHelper.DATA_TYPE_TEXT,
20 | FuncInfo.KEY_PARAM, DbHelper.DATA_TYPE_TEXT,
21 | FuncInfo.KEY_RESERVE_1, DbHelper.DATA_TYPE_TEXT,
22 | FuncInfo.KEY_RESERVE_2, DbHelper.DATA_TYPE_TEXT_SUF
23 | ).toString();
24 | }
25 |
26 | @Override
27 | public String getTableName() {
28 | return ApmTask.TASK_FUNC;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/net/i/QOKHttp.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.net.i;
2 |
3 | import com.argusapm.android.core.job.net.NetInfo;
4 |
5 | /**
6 | * OkHttp相关,对外暴露的接口
7 | *
8 | * @author ArgusAPM Team
9 | */
10 | public class QOKHttp {
11 |
12 | /**
13 | * 记录一次网络请求
14 | *
15 | * @param url 请求url
16 | * @param code 状态码
17 | * @param requestSize 发送的数据大小
18 | * @param responseSize 接收的数据大小
19 | * @param startTime 发起时间
20 | * @param costTime 耗时
21 | */
22 | public static void recordUrlRequest(String url, int code, long requestSize, long responseSize,
23 | long startTime, long costTime) {
24 | NetInfo netInfo = new NetInfo();
25 | netInfo.setStartTime(startTime);
26 | netInfo.setURL(url);
27 | netInfo.setStatusCode(code);
28 | netInfo.setSendBytes(requestSize);
29 | netInfo.setRecordTime(System.currentTimeMillis());
30 | netInfo.setReceivedBytes(responseSize);
31 | netInfo.setCostTime(costTime);
32 | netInfo.end();
33 | }
34 | }
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/utils/RootHelper.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.utils;
2 |
3 | import android.text.TextUtils;
4 |
5 | import java.io.File;
6 |
7 | /**
8 | * @author ArgusAPM Team
9 | */
10 | public class RootHelper {
11 |
12 | public static boolean isRooted() {
13 | return isCmdExist("su");
14 | }
15 |
16 | /**
17 | * 检查命令行 cmd 是否存在
18 | */
19 | private static boolean isCmdExist(String cmd) {
20 | String path = System.getenv("PATH");
21 | if (TextUtils.isEmpty(path)) {
22 | return false;
23 | }
24 | File file;
25 | if (path.contains(":")) {
26 | String[] array = path.split(":");
27 | for (String str : array) {
28 | file = new File(str, cmd);
29 | if (file.exists()) {
30 | return true;
31 | }
32 | }
33 | return false;
34 | } else {
35 | // 可能 PATH 中只有一个路径
36 | file = new File(path, cmd);
37 | boolean ret = file.exists();
38 | return ret;
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/component/common_utils/src/main/java/com/xiaochen/common/utils/PermissionUtil.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.common.utils;
2 |
3 | import android.content.Context;
4 | import android.content.pm.PackageManager;
5 | import android.os.Build;
6 | import androidx.annotation.NonNull;
7 |
8 | /**
9 | * @author zlc
10 | * email : zlc921022@163.com
11 | * desc : 权限获取检查util
12 | */
13 | public class PermissionUtil {
14 |
15 | private PermissionUtil() {
16 | }
17 |
18 | /**
19 | * 是否获取了权限
20 | *
21 | * @param context
22 | * @param permissions
23 | * @return
24 | */
25 | public static boolean isGetPermission(@NonNull Context context, @NonNull String... permissions) {
26 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
27 | boolean isGet = true;
28 | for (String permission : permissions) {
29 | if (context.checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
30 | isGet = false;
31 | break;
32 | }
33 | }
34 | return isGet;
35 | }
36 | return true;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/module/module_apm/src/main/java/com/xiaochen/module/apm/ApmApplication.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.apm;
2 |
3 |
4 | import android.content.Context;
5 |
6 | import com.argusapm.android.api.Client;
7 | import com.argusapm.android.core.Config;
8 | import com.argusapm.android.network.cloudrule.RuleSyncRequest;
9 | import com.argusapm.android.network.upload.CollectDataSyncUpload;
10 | import com.xiaochen.common.base.BaseApplication;
11 |
12 | /**
13 | *
14 | *
15 | * @author zhenglecheng
16 | * @date 2020/5/12
17 | */
18 | public class ApmApplication extends BaseApplication {
19 |
20 | @Override
21 | protected void attachBaseContext(Context base) {
22 | super.attachBaseContext(base);
23 | Config.ConfigBuilder builder = new Config.ConfigBuilder()
24 | .setAppContext(this)
25 | .setAppName("app_apm")
26 | .setRuleRequest(new RuleSyncRequest())
27 | .setUpload(new CollectDataSyncUpload())
28 | .setAppVersion("0.0.1")
29 | .setApmid("app_apm");
30 | Client.attach(builder.build());
31 | Client.startWork();
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | // app宿主壳
2 | include ':app'
3 | // app组件壳
4 | include ':app_shell:app_aop'
5 | include ':app_shell:app_bluetooth'
6 | include ':app_shell:app_jetpack'
7 | include ':app_shell:app_arouter'
8 | include ':app_shell:app_widget'
9 | include ':app_shell:app_mvp'
10 | include ':app_shell:app_apm'
11 |
12 | // 通用组件
13 | include ':component:common_base'
14 | include ':component:common_data'
15 | include ':component:common_resource'
16 | include ':component:common_sdk'
17 | include ':component:common_utils'
18 | include ':component:common_widget'
19 | include ':component:common_bluetooth'
20 | include ':component:common_mvp'
21 | include ':component:common_mvvm'
22 | include ':component:common_service'
23 |
24 | // app业务模块
25 | include ':module:module_aop'
26 | include ':module:module_widget'
27 | include ':module:module_jetpack'
28 | include ':module:module_bluetooth'
29 | include ':module:module_router1'
30 | include ':module:module_mvp'
31 | include ':module:module_mvvm'
32 | include ':module:module_router2'
33 | include ':module:module_app'
34 | include ':module:module_dagger2'
35 | include ':app_shell:app_dagger2'
36 | include ':module:module_apm'
37 | include ':argus-apm-main'
--------------------------------------------------------------------------------
/module/module_jetpack/build.gradle:
--------------------------------------------------------------------------------
1 | apply from: "../../common_module.gradle"
2 | def thirdDependencies = rootProject.ext.thirdDependencies
3 |
4 | android {
5 | resourcePrefix "jetpack_" //给 Module 内的资源名增加前缀, 避免资源名冲突
6 | }
7 |
8 | dependencies {
9 | implementation project(':component:common_sdk')
10 | implementation project(':component:common_base')
11 | implementation project(':component:common_service')
12 |
13 | implementation thirdDependencies.rxAndroid
14 | implementation thirdDependencies.lifecycle
15 | implementation thirdDependencies.viewmodel
16 | implementation thirdDependencies.livedata
17 |
18 | implementation 'androidx.paging:paging-runtime:2.1.2'
19 | implementation 'androidx.paging:paging-rxjava2:2.1.2'
20 | implementation 'androidx.room:room-runtime:2.2.5'
21 | annotationProcessor 'androidx.room:room-compiler:2.2.5'
22 | implementation "androidx.navigation:navigation-fragment-ktx:2.2.2"
23 | implementation "androidx.navigation:navigation-ui-ktx:2.2.2"
24 |
25 | // implementation project(':easy_butterknife:butterknife-core')
26 | // annotationProcessor project(':easy_butterknife:butterknife-compiler')
27 | }
28 |
--------------------------------------------------------------------------------
/module/module_bluetooth/src/main/java/com/xiaochen/module/bluetooth/device/BangleDevice.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.bluetooth.device
2 | import com.xiaochen.common.bluetooth.fastble.device.AbsBaseBleDevice
3 | import kotlin.experimental.and
4 |
5 | /**
6 | * 手环{d}
7 | * @author zhenglecheng
8 | * @date 2020/4/4
9 | */
10 | object BangleDevice : AbsBaseBleDevice() {
11 |
12 | override fun getDeviceName(): String {
13 | return "J-Style GOGO"
14 | }
15 |
16 | /**
17 | * 返回字节数组
18 | * 针对步数 卡路里 距离 睡眠
19 | * @param cmd 指令名称
20 | * @param day 第几天
21 | */
22 | fun getBytes(cmd: String, day: String): ByteArray? {
23 | val b1 = cmd.toByte(16)
24 | val b2 = day.toByte(16)
25 | val bytes = ByteArray(16)
26 | var b: Byte = 0
27 | for (i in 0..14) {
28 | if (i == 0) {
29 | bytes[0] = b1
30 | } else if (i == 1) {
31 | bytes[1] = b2
32 | } else {
33 | bytes[i] = 0
34 | }
35 | b = (b + bytes[i]).toByte()
36 | }
37 | bytes[15] = (b and 0xFF.toByte())
38 | return bytes
39 | }
40 | }
--------------------------------------------------------------------------------
/component/common_resource/src/main/res/layout/layout_common_head_title.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
15 |
16 |
27 |
28 |
--------------------------------------------------------------------------------
/module/module_router1/src/main/java/com/xiaochen/module/router1/UserInfo.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.router1;
2 |
3 | /**
4 | * {d}
5 | *
6 | * @author zhenglecheng
7 | * @date 2020/4/17
8 | */
9 | public class UserInfo {
10 | private String name;
11 | private String sex;
12 | private int age;
13 |
14 | public UserInfo(String name, String sex, int age) {
15 | this.name = name;
16 | this.sex = sex;
17 | this.age = age;
18 | }
19 |
20 | public String getName() {
21 | return name;
22 | }
23 |
24 | public void setName(String name) {
25 | this.name = name;
26 | }
27 |
28 | public String getSex() {
29 | return sex;
30 | }
31 |
32 | public void setSex(String sex) {
33 | this.sex = sex;
34 | }
35 |
36 | public int getAge() {
37 | return age;
38 | }
39 |
40 | public void setAge(int age) {
41 | this.age = age;
42 | }
43 |
44 | @Override
45 | public String toString() {
46 | return "UserInfo{" +
47 | "name='" + name + '\'' +
48 | ", sex='" + sex + '\'' +
49 | ", age='" + age + '\'' +
50 | '}';
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/app_shell/app_bluetooth/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
15 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/core/job/appstart/AppStartTable.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.core.job.appstart;
2 |
3 | import android.text.TextUtils;
4 |
5 | import com.argusapm.android.api.ApmTask;
6 | import com.argusapm.android.core.storage.DbHelper;
7 | import com.argusapm.android.core.storage.ITable;
8 |
9 |
10 | /**
11 | * 应用启动时间 数据表
12 | *
13 | * @author ArgusAPM Team
14 | */
15 | public class AppStartTable implements ITable {
16 | @Override
17 | public String createSql() {
18 | return TextUtils.concat(
19 | DbHelper.CREATE_TABLE_PREFIX + getTableName(),
20 | "(", AppStartInfo.KEY_ID_RECORD, " INTEGER PRIMARY KEY AUTOINCREMENT,",
21 | AppStartInfo.KEY_TIME_RECORD, DbHelper.DATA_TYPE_INTEGER,
22 | AppStartInfo.KEY_START_TIME, DbHelper.DATA_TYPE_INTEGER,
23 | AppStartInfo.KEY_PARAM, DbHelper.DATA_TYPE_TEXT,
24 | AppStartInfo.KEY_RESERVE_1, DbHelper.DATA_TYPE_TEXT,
25 | AppStartInfo.KEY_RESERVE_2, DbHelper.DATA_TYPE_TEXT_SUF
26 | ).toString();
27 | }
28 |
29 | @Override
30 | public String getTableName() {
31 | return ApmTask.TASK_APP_START;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/module/module_mvvm/src/main/java/com/xiaochen/module/mvvm/viewmodel/TestViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.mvvm.viewmodel
2 |
3 | import androidx.lifecycle.MutableLiveData
4 | import com.xiaochen.common.mvvm.BaseResult
5 | import com.xiaochen.common.mvvm.BaseViewModel
6 | import com.xiaochen.module.mvvm.repository.TestRepository
7 | import com.xiaochen.module.mvvm.response.HomeArticleRespVO
8 | import kotlinx.coroutines.Dispatchers
9 | import kotlinx.coroutines.withContext
10 |
11 | /**
12 | *
13 | * @author zhenglecheng
14 | * @date 2019/12/18
15 | */
16 | class TestViewModel : BaseViewModel() {
17 |
18 | val mHomeLiveData: MutableLiveData = MutableLiveData()
19 | private val testRepository = TestRepository()
20 |
21 | fun getArticleInfo(page: Int) {
22 | launchUI {
23 | val result = withContext(Dispatchers.IO) {
24 | testRepository.getArticle(page)
25 | }
26 | if (result is BaseResult.Success) {
27 | mHomeLiveData.value = result.data
28 | } else if (result is BaseResult.Error) {
29 | mExceptionLiveData.value = result.exception
30 | }
31 | }
32 | }
33 |
34 | }
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/debug/output/OutputProxy.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.debug.output;
2 |
3 | import android.text.TextUtils;
4 |
5 | import com.argusapm.android.debug.AnalyzeManager;
6 | import com.argusapm.android.debug.storage.StorageManager;
7 |
8 | /**
9 | * Debug模块输出代理类
10 | *
11 | * @author ArgusAPM Team
12 | */
13 | public class OutputProxy {
14 | /**
15 | * 警报信息输出
16 | *
17 | * @param showMsg
18 | */
19 | public static void output(String showMsg) {
20 | if (!AnalyzeManager.getInstance().isDebugMode()) {
21 | return;
22 | }
23 | if (TextUtils.isEmpty(showMsg)) {
24 | return;
25 | }
26 | //存储在本地
27 | StorageManager.saveToFile(showMsg);
28 | }
29 |
30 | /**
31 | * 警报信息输出
32 | *
33 | * @param showMsg toast展示输出
34 | * @param allMsg 所有信息
35 | */
36 | public static void output(String showMsg, String allMsg) {
37 | if (!AnalyzeManager.getInstance().isDebugMode()) {
38 | return;
39 | }
40 | if (!TextUtils.isEmpty(allMsg)) {
41 | //存储在本地
42 | StorageManager.saveToFile(allMsg);
43 | }
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/module/module_router2/src/main/java/com/xiaochen/module/router2/UserInterceptor.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.router2;
2 |
3 | import android.content.Context;
4 |
5 | import com.alibaba.android.arouter.facade.Postcard;
6 | import com.alibaba.android.arouter.facade.annotation.Interceptor;
7 | import com.alibaba.android.arouter.facade.callback.InterceptorCallback;
8 | import com.alibaba.android.arouter.facade.template.IInterceptor;
9 | import com.xiaochen.common.utils.LogUtil;
10 | import com.xiaochen.common.sdk.RouterPathConstant;
11 |
12 | /**
13 | * {d}
14 | *
15 | * @author zhenglecheng
16 | * @date 2020/4/19
17 | */
18 | @Interceptor(priority = 6)
19 | public class UserInterceptor implements IInterceptor {
20 | @Override
21 | public void process(Postcard postcard, InterceptorCallback callback) {
22 | if (RouterPathConstant.TEST_ACTIVITY2.equalsIgnoreCase(postcard.getPath())) {
23 | LogUtil.e("UserInterceptor process", "开始拦截操作");
24 | // callback.onInterrupt(new Exception("纯纯粹粹"));
25 | }
26 | callback.onContinue(postcard);
27 | }
28 |
29 | @Override
30 | public void init(Context context) {
31 | LogUtil.e("UserInterceptor init", "拦截器初始化");
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/debug/tasks/MemoryParseTask.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.debug.tasks;
2 |
3 | import com.argusapm.android.api.ApmTask;
4 | import com.argusapm.android.core.IInfo;
5 | import com.argusapm.android.core.job.memory.MemoryInfo;
6 | import com.argusapm.android.debug.output.OutputProxy;
7 | import com.argusapm.android.debug.utils.DebugFloatWindowUtls;
8 |
9 | import org.json.JSONException;
10 | import org.json.JSONObject;
11 |
12 | /**
13 | * debug模式内存task
14 | *
15 | * @author ArgusAPM Team
16 | */
17 | public class MemoryParseTask implements IParser {
18 | @Override
19 | public boolean parse(IInfo info) {
20 | if (info instanceof MemoryInfo) {
21 | MemoryInfo aInfo = (MemoryInfo) info;
22 | if (aInfo == null) {
23 | return false;
24 | }
25 | try {
26 | JSONObject obj = aInfo.toJson();
27 | obj.put("taskName", ApmTask.TASK_MEM);
28 | OutputProxy.output("", obj.toString());
29 | } catch (JSONException e) {
30 | e.printStackTrace();
31 | }
32 | DebugFloatWindowUtls.sendBroadcast(aInfo);
33 | }
34 | return true;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/adapter/MyPagerAdapter.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.adapter;
2 |
3 |
4 | import java.util.List;
5 |
6 | import androidx.fragment.app.Fragment;
7 | import androidx.fragment.app.FragmentManager;
8 | import androidx.fragment.app.FragmentStatePagerAdapter;
9 |
10 | /**
11 | * Created by zlc on 2018/7/16.
12 | */
13 |
14 | public class MyPagerAdapter extends FragmentStatePagerAdapter {
15 |
16 | private List mFragments;
17 | private String[] mTitles;
18 | public MyPagerAdapter(FragmentManager fm) {
19 | super(fm);
20 | }
21 |
22 | @Override
23 | public Fragment getItem(int position) {
24 | return mFragments.get(position);
25 | }
26 |
27 | @Override
28 | public int getCount() {
29 | return mFragments != null ? mFragments.size() : 0;
30 | }
31 |
32 |
33 | public void setFragments(List fragments) {
34 | mFragments = fragments;
35 | }
36 |
37 | public void setTitles(String[] titles){
38 | this.mTitles = titles;
39 | }
40 |
41 | @Override
42 | public CharSequence getPageTitle(int position) {
43 | return mTitles != null ? mTitles[position] : "";
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/module/module_widget/src/main/java/com/xiaochen/module/widget/ui/adapter/MyPagerAdapter1.java:
--------------------------------------------------------------------------------
1 | package com.xiaochen.module.widget.ui.adapter;
2 |
3 |
4 | import java.util.List;
5 |
6 | import androidx.fragment.app.Fragment;
7 | import androidx.fragment.app.FragmentManager;
8 | import androidx.fragment.app.FragmentStatePagerAdapter;
9 |
10 | /**
11 | * Created by zlc on 2018/7/16.
12 | */
13 |
14 | public class MyPagerAdapter1 extends FragmentStatePagerAdapter {
15 |
16 | private List mFragments;
17 | private String[] mTitles;
18 | public MyPagerAdapter1(FragmentManager fm) {
19 | super(fm);
20 | }
21 |
22 | @Override
23 | public Fragment getItem(int position) {
24 | return mFragments.get(position);
25 | }
26 |
27 | @Override
28 | public int getCount() {
29 | return mFragments != null ? mFragments.size() : 0;
30 | }
31 |
32 |
33 | public void setFragments(List fragments) {
34 | mFragments = fragments;
35 | }
36 |
37 | public void setTitles(String[] titles){
38 | this.mTitles = titles;
39 | }
40 |
41 | @Override
42 | public CharSequence getPageTitle(int position) {
43 | return mTitles != null ? mTitles[position] : "";
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/argus-apm-main/src/main/java/com/argusapm/android/cloudconfig/data/ArgusApmConfigCore.java:
--------------------------------------------------------------------------------
1 | package com.argusapm.android.cloudconfig.data;
2 |
3 | import android.text.TextUtils;
4 |
5 | import com.argusapm.android.api.ApmTask;
6 |
7 | /**
8 | * 云控数据g_core段
9 | *
10 | * @author ArgusAPM Team
11 | */
12 | public class ArgusApmConfigCore {
13 | private long exp = Long.MAX_VALUE;
14 | private int flags = 0;// 采集默认为全关
15 |
16 | public long getExp() {
17 | return exp;
18 | }
19 |
20 | public void setExp(long exp) {
21 | this.exp = exp;
22 | }
23 |
24 | public void setEnabled(int flag) {
25 | flags |= flag;
26 | }
27 |
28 | public void setDisabled(int flag) {
29 | flags &= (~flag);
30 | }
31 |
32 | public boolean isEnabled(String task) {
33 | if (TextUtils.isEmpty(task)) {
34 | return false;
35 | }
36 | Integer obj = ApmTask.getTaskMap().get(task);
37 | if (obj == null) {
38 | return false;
39 | }
40 | int flag = obj.intValue();
41 | boolean switchState = (flags & flag) == flag;
42 | long curTime = System.currentTimeMillis();
43 | boolean isValidTime = curTime < exp;
44 | return switchState && isValidTime;
45 | }
46 | }
--------------------------------------------------------------------------------