├── .gitignore ├── .idea ├── .gitignore ├── inspectionProfiles │ └── Project_Default.xml ├── modules.xml └── vcs.xml ├── LICENSE ├── README.md ├── Study.md ├── androidlibrary ├── .gitignore ├── .idea │ ├── caches │ │ ├── build_file_checksums.ser │ │ └── gradle_models.ser │ ├── codeStyles │ │ └── Project.xml │ ├── compiler.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── inspectionProfiles │ │ └── Project_Default.xml │ ├── jarRepositories.xml │ ├── misc.xml │ ├── modules.xml │ └── vcs.xml ├── app │ ├── .gitignore │ ├── .idea │ │ ├── codeStyles │ │ │ └── Project.xml │ │ ├── gradle.xml │ │ ├── misc.xml │ │ ├── modules.xml │ │ ├── runConfigurations.xml │ │ ├── vcs.xml │ │ └── workspace.xml │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── androidlibrary │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── androidlibrary │ │ │ │ ├── AppContext.java │ │ │ │ └── activity │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MainContract.java │ │ │ │ └── MainPresenter.java │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.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 │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── androidlibrary │ │ └── ExampleUnitTest.java ├── build.gradle ├── commonlibrary │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── android │ │ │ └── commonlibrary │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── android │ │ │ │ └── commonlibrary │ │ │ │ ├── adapter │ │ │ │ ├── item_adapter │ │ │ │ │ ├── AdapterHelper.java │ │ │ │ │ ├── ComAdapter.java │ │ │ │ │ ├── DefaultAdapter.java │ │ │ │ │ ├── GroupAdapter.java │ │ │ │ │ └── IAdapter.java │ │ │ │ ├── item_divider │ │ │ │ │ ├── GridDividerItemDecoration.java │ │ │ │ │ └── LinearDividerItemDecoration.java │ │ │ │ └── viewpager_adapter │ │ │ │ │ └── ViewPagerAdapter.java │ │ │ │ ├── app │ │ │ │ ├── ComContext.java │ │ │ │ └── LibraryConfig.java │ │ │ │ ├── broadcast │ │ │ │ ├── AppInstallReceiver.java │ │ │ │ ├── AppLocalReceiver.java │ │ │ │ ├── AppReceiver.java │ │ │ │ └── NetworkReceiver.java │ │ │ │ ├── cacher │ │ │ │ ├── normal_cache │ │ │ │ │ ├── Cache.java │ │ │ │ │ ├── CacheConfig.java │ │ │ │ │ ├── CacheListener.java │ │ │ │ │ ├── DLCacheManager.java │ │ │ │ │ ├── DiskCacheInfo.java │ │ │ │ │ ├── DiskLruCache.java │ │ │ │ │ ├── MLCacheManager.java │ │ │ │ │ └── MemoryLruCache.java │ │ │ │ └── simple_cache │ │ │ │ │ └── SimpleCache.java │ │ │ │ ├── dialog │ │ │ │ ├── dialogfragment │ │ │ │ │ ├── AgreementDialog.java │ │ │ │ │ ├── AppDialogFragment.java │ │ │ │ │ ├── DefaultDialogFragment.java │ │ │ │ │ ├── SyDialogFragment.java │ │ │ │ │ └── SyDialogHelper.java │ │ │ │ └── dialognative │ │ │ │ │ ├── AppDialog.java │ │ │ │ │ └── LoadingDialog.java │ │ │ │ ├── entity │ │ │ │ ├── AppInfo.java │ │ │ │ ├── BaseEntity.java │ │ │ │ ├── ResponseData.java │ │ │ │ ├── RestTimeEntity.java │ │ │ │ ├── RxData.java │ │ │ │ ├── UIData.java │ │ │ │ └── contentprovider │ │ │ │ │ ├── ContactData.java │ │ │ │ │ └── SmsData.java │ │ │ │ ├── frame │ │ │ │ ├── af │ │ │ │ │ ├── AppActivity.java │ │ │ │ │ └── AppFragment.java │ │ │ │ ├── screen │ │ │ │ │ ├── autosize │ │ │ │ │ │ ├── AutoAdapterHelper.java │ │ │ │ │ │ ├── DefaultApplyAutoActivity.java │ │ │ │ │ │ ├── DefaultApplyAutoFragment.java │ │ │ │ │ │ ├── DefaultCancelAutoActivity.java │ │ │ │ │ │ ├── DefaultCancelAutoFragment.java │ │ │ │ │ │ └── DefaultSuperAutoSizeActivity.java │ │ │ │ │ ├── sw │ │ │ │ │ │ └── SmallWidthDimensHelper.java │ │ │ │ │ └── wd │ │ │ │ │ │ └── WidthHeightDimensHelper.java │ │ │ │ ├── struct │ │ │ │ │ └── mvp │ │ │ │ │ │ ├── MvpWrapper.java │ │ │ │ │ │ └── UIPresenter.java │ │ │ │ └── view │ │ │ │ │ └── ButterKnifeWrapper.java │ │ │ │ ├── interfacer │ │ │ │ ├── base │ │ │ │ │ ├── IAF.java │ │ │ │ │ ├── IAFFrame.java │ │ │ │ │ ├── IActivity.java │ │ │ │ │ ├── IFragment.java │ │ │ │ │ ├── IFrame.java │ │ │ │ │ └── ITop.java │ │ │ │ └── frame │ │ │ │ │ ├── IScreenFrame.java │ │ │ │ │ ├── struct │ │ │ │ │ └── mvp │ │ │ │ │ │ ├── IMvpFrame.java │ │ │ │ │ │ ├── IPresenter.java │ │ │ │ │ │ ├── PrePresenter.java │ │ │ │ │ │ └── PreView.java │ │ │ │ │ └── view │ │ │ │ │ └── butterknife │ │ │ │ │ └── IButterKnifeFrame.java │ │ │ │ ├── io │ │ │ │ ├── StreamUtil.java │ │ │ │ ├── nio │ │ │ │ │ ├── NIOStreamUtil.java │ │ │ │ │ └── PathStreamUtil.java │ │ │ │ └── oio │ │ │ │ │ ├── ByteStreamUtil.java │ │ │ │ │ └── CharStreamUtil.java │ │ │ │ ├── listener │ │ │ │ ├── EditTextChangeListener.java │ │ │ │ └── RecycleScrollListener.java │ │ │ │ ├── message_data │ │ │ │ ├── AffairManager.java │ │ │ │ ├── RxBus.java │ │ │ │ └── UIHandler.java │ │ │ │ ├── permission │ │ │ │ ├── PermissionHelper.java │ │ │ │ └── PermissionHelper2.java │ │ │ │ ├── service │ │ │ │ ├── ServiceHelper.java │ │ │ │ ├── accessibility_service │ │ │ │ │ ├── AccessibilityHelper.java │ │ │ │ │ └── GestureHelper.java │ │ │ │ ├── local_service │ │ │ │ │ └── LocalServiceHelper.java │ │ │ │ └── remote_service │ │ │ │ │ ├── RemoteService.java │ │ │ │ │ └── RemoteServiceHelper.java │ │ │ │ ├── ui │ │ │ │ ├── activity │ │ │ │ │ ├── AppHelper.java │ │ │ │ │ ├── IntentHelper.java │ │ │ │ │ ├── SuperActivity.java │ │ │ │ │ └── SuperFragActivity.java │ │ │ │ ├── fragment │ │ │ │ │ └── SuperFragment.java │ │ │ │ └── manager │ │ │ │ │ ├── act │ │ │ │ │ └── AppActivityManager.java │ │ │ │ │ └── frag │ │ │ │ │ ├── AppFragmentManager.java │ │ │ │ │ └── FragmentStackManager.java │ │ │ │ ├── util │ │ │ │ ├── AgreementDefaultHelper.java │ │ │ │ ├── AppUtil.java │ │ │ │ ├── Badgetor.java │ │ │ │ ├── Clipboard.java │ │ │ │ ├── CollectionUtil.java │ │ │ │ ├── CompareSortor.java │ │ │ │ ├── DateUtil.java │ │ │ │ ├── DoubleClickUtil.java │ │ │ │ ├── FileUtil.java │ │ │ │ ├── FlashHelper.java │ │ │ │ ├── FlyAnimtor.java │ │ │ │ ├── FormatUtil.java │ │ │ │ ├── GroupUtil.java │ │ │ │ ├── GsonUtil.java │ │ │ │ ├── KeyboardUtil.java │ │ │ │ ├── LaunchUtil.java │ │ │ │ ├── LogUtil.java │ │ │ │ ├── MainfastUtil.java │ │ │ │ ├── NavigationBarUtil.java │ │ │ │ ├── NetSpeed.java │ │ │ │ ├── NetUtil.java │ │ │ │ ├── NotificationHelper.java │ │ │ │ ├── NumberUtil.java │ │ │ │ ├── PhoneAudioHelper.java │ │ │ │ ├── RandomUtil.java │ │ │ │ ├── RegularUtil.java │ │ │ │ ├── RxTimer.java │ │ │ │ ├── SDCardUtil.java │ │ │ │ ├── ScreenBrightUtil.java │ │ │ │ ├── ScreenOrientationUtil.java │ │ │ │ ├── ScreenUtil.java │ │ │ │ ├── ShotShareUtil.java │ │ │ │ ├── SoftKeyBoardHelper.java │ │ │ │ ├── SpannableStringUtil.java │ │ │ │ ├── StatusBarUtil.java │ │ │ │ ├── StringUtil.java │ │ │ │ ├── SwipeRefreshHelper.java │ │ │ │ ├── TimeFlag.java │ │ │ │ ├── TimerManager.java │ │ │ │ ├── ToastUtil.java │ │ │ │ ├── UriUtil.java │ │ │ │ ├── VersionHelper.java │ │ │ │ ├── VibratorUtil.java │ │ │ │ ├── ViewPagerHelper.java │ │ │ │ ├── WakeUpUtil.java │ │ │ │ ├── contentprovider │ │ │ │ │ ├── ContactUtil.java │ │ │ │ │ └── SmsMonitor.java │ │ │ │ ├── encrypt │ │ │ │ │ ├── AES.java │ │ │ │ │ ├── Aes128.java │ │ │ │ │ ├── Aes256.java │ │ │ │ │ └── MD5Util.java │ │ │ │ ├── sp │ │ │ │ │ ├── InsecureSHA1PRNGKeyDerivator.java │ │ │ │ │ └── SpUtil.java │ │ │ │ └── view │ │ │ │ │ ├── EditTextUtil.java │ │ │ │ │ ├── ImageViewUtil.java │ │ │ │ │ ├── TextViewUtil.java │ │ │ │ │ └── ViewUtil.java │ │ │ │ ├── widget │ │ │ │ ├── ClearEditText.java │ │ │ │ ├── EmotionView.java │ │ │ │ ├── ImageTextView.java │ │ │ │ ├── LoadProgressBar.java │ │ │ │ ├── MaskButton.java │ │ │ │ ├── SearchConfig.java │ │ │ │ ├── TitleBar.java │ │ │ │ ├── TitleBar2.java │ │ │ │ └── menu │ │ │ │ │ └── BaseMenuView.java │ │ │ │ └── window │ │ │ │ └── AppPopupWindow.java │ │ └── res │ │ │ ├── anim │ │ │ ├── popu_bottom_in.xml │ │ │ ├── popu_bottom_out.xml │ │ │ ├── popu_left_in.xml │ │ │ ├── popu_left_out.xml │ │ │ ├── popu_right_in.xml │ │ │ ├── popu_right_out.xml │ │ │ ├── popu_screen_bottom_in.xml │ │ │ ├── popu_screen_bottom_out.xml │ │ │ ├── popu_top_in.xml │ │ │ └── popu_top_out.xml │ │ │ ├── drawable │ │ │ ├── ic_clear_edit_delete.png │ │ │ └── toast_bg.xml │ │ │ ├── layout │ │ │ ├── dialog_agreement.xml │ │ │ ├── dialog_fragment_sy.xml │ │ │ ├── dialog_toast.xml │ │ │ ├── title_bar_layout.xml │ │ │ └── title_bar_layout2.xml │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_left_back.png │ │ │ └── ic_right_back.png │ │ │ ├── values │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── update_files.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── android │ │ └── commonlibrary │ │ └── ExampleUnitTest.java ├── config.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── course ├── 使用说明索引.md └── 迭代说明.md ├── read ├── AdapterHelper使用说明.md ├── AffairManager使用说明.md ├── AppActivityManager使用说明.md ├── AppActivity使用说明.md ├── AppActivity加载Fragment能力使用说明.md ├── AppActivity基础能力使用说明.md ├── AppActivity网络通讯能力使用说明.md ├── AppDialogFragment使用说明.md ├── AppDialog使用说明.md ├── AppFragmentManager使用说明.md ├── AppFragment使用说明.md ├── AppHelper使用说明.md ├── AppInstallReceiver使用说明.md ├── AppLocalReceiver使用说明.md ├── AppPopupWindow使用说明.md ├── AppReceiver使用说明.md ├── Badgetor使用说明.md ├── BaseEntity使用说明.md ├── ByteStreamUtil使用说明.md ├── Cache使用说明.md ├── CharStreamUtil使用说明.md ├── ClearEditText使用说明.md ├── Clipboard使用说明.md ├── ComAdapter使用说明.md ├── CompareSortor使用说明.md ├── DefaultDialogFragment使用说明.md ├── EditTextChangeListener使用说明.md ├── EmotionView使用说明.md ├── FlashHelper使用说明.md ├── FragmentStackManager使用说明.md ├── GroupAdapter使用说明.md ├── ImageTextView使用说明.md ├── IntentHelper使用说明.md ├── LaunchUtil使用说明.md ├── LoadProgressBar使用说明.md ├── LoadingDialog使用说明.md ├── LocalServiceHelper使用说明.md ├── MaskButton使用说明.md ├── NIOStreamUtil使用说明.md ├── NetSpeed使用说明.md ├── NetworkReceiver使用说明.md ├── NotificationHelper使用说明.md ├── PermissionHelper使用说明.md ├── PhoneAudioHelper使用说明.md ├── RecycleScrollListener使用说明.md ├── RemoteServiceHelper使用说明.md ├── RemoteService使用说明.md ├── RxBus使用说明.md ├── RxTimer定时器使用说明.md ├── SearchConfig使用说明.md ├── ServiceHelper使用说明.md ├── SimpleCache使用说明.md ├── SoftKeyBoardHelper使用说明.md ├── SpUtil使用说明.md ├── StatusBarUtil&NavigationBarUtil浸入式状态栏使用说明.md ├── StreamUtil使用说明.md ├── SuperFragment使用说明.md ├── SyDialogFragment使用说明.md ├── SyDialogHelper使用说明.md ├── TimeFlag使用说明.md ├── TimerManager使用说明.md ├── TitleBar2使用说明.md ├── TitleBar使用说明.md ├── UIHandler使用说明.md ├── UIPresenter使用说明.md ├── VersionHelper使用说明.md ├── ViewPagerHelper使用说明.md └── mvp-frame使用说明.md └── read2020 ├── AES加密使用说明.md ├── AccessibilityHelper使用说明.md ├── AccessibilityService使用说明.md ├── AgreementDefaultHelper使用说明.md ├── AndroidAutoSize封装使用说明.md ├── BaseMenuView使用说明.md ├── ContactUtil使用说明.md ├── GestureHelper使用说明.md ├── PermissionHelper2使用说明.md ├── RandomUtil使用说明.md ├── ScreenBrightUtil使用说明.md ├── ScreenOrientationUtil使用说明.md ├── SmallWidthDimensHelper使用说明.md ├── SmsMonitor使用说明.md ├── SwipeRefreshHelper使用说明.md └── WidthHeightDimensHelper使用说明.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Files for the ART/Dalvik VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # Generated files 12 | bin/ 13 | gen/ 14 | out/ 15 | 16 | # Gradle files 17 | .gradle/ 18 | build/ 19 | 20 | # Local configuration file (sdk path, etc) 21 | local.properties 22 | 23 | # Proguard folder generated by Eclipse 24 | proguard/ 25 | 26 | # Log Files 27 | *.log 28 | 29 | # Android Studio Navigation editor temp files 30 | .navigation/ 31 | 32 | # Android Studio captures folder 33 | captures/ 34 | 35 | # IntelliJ 36 | *.iml 37 | .idea/workspace.xml 38 | .idea/tasks.xml 39 | .idea/gradle.xml 40 | .idea/assetWizardSettings.xml 41 | .idea/dictionaries 42 | .idea/libraries 43 | .idea/caches 44 | 45 | # Keystore files 46 | # Uncomment the following line if you do not want to check your keystore files in. 47 | #*.jks 48 | 49 | # External native build folder generated in Android Studio 2.2 and later 50 | .externalNativeBuild 51 | 52 | # Google Services (e.g. APIs or Firebase) 53 | google-services.json 54 | 55 | # Freeline 56 | freeline.py 57 | freeline/ 58 | freeline_project_description.json 59 | 60 | # fastlane 61 | fastlane/report.xml 62 | fastlane/Preview.html 63 | fastlane/screenshots 64 | fastlane/test_output 65 | fastlane/readme.md 66 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 36 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | [![](https://jitpack.io/v/ShaoqiangPei/AndroidLibrary.svg)](https://jitpack.io/#ShaoqiangPei/AndroidLibrary) 3 | 4 | 5 | ### 库引用说明 6 | 在自己项目的`project`对应的`build.gradle`里面添加如下代码: 7 | ``` 8 | allprojects { 9 | repositories { 10 | ... 11 | maven { url 'https://jitpack.io' } 12 | maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } 13 | } 14 | } 15 | ``` 16 | 在你项目的`app_module`对应的`build.gradle`里面引用此库(以`1.1.0`版本为例),如下: 17 | ``` 18 | android { 19 | 20 | //此项配置也要添加 21 | compileOptions { 22 | sourceCompatibility JavaVersion.VERSION_1_8 23 | targetCompatibility JavaVersion.VERSION_1_8 24 | } 25 | } 26 | 27 | dependencies { 28 | implementation 'com.github.ShaoqiangPei:AndroidLibrary:1.1.0' 29 | } 30 | ``` 31 | 在你的项目中自定义一个`Application`,然后在你的自定义`Application`的`onCreate()`中进行初始化,类似如下: 32 | ``` 33 | /** 34 | * Title:自定义application 35 | * description: 36 | * autor:pei 37 | * created on 2020/1/9 38 | */ 39 | public class AppContext extends Application { 40 | 41 | private static AppContext instance; 42 | 43 | public static synchronized AppContext getInstance() { 44 | return instance; 45 | } 46 | 47 | @Override 48 | public void onCreate() { 49 | super.onCreate(); 50 | instance = this; 51 | 52 | //初始化AndroidLibrary 53 | LibraryConfig.getInstance().init(this) 54 | //开启log调试,默认为关闭状态 55 | .setDebug(true) 56 | //是否打印设备屏幕信息,默认false 57 | //必须在setDebug之后调用,且当setDebug(true)时,setShowScreenInfo(true)才生效 58 | .setShowScreenInfo(true); 59 | 60 | } 61 | 62 | } 63 | ``` 64 | 在你项目的`mainfast.xml`中声明自己的`application`,类似如下: 65 | ``` 66 | 71 | //此处省略 72 | //...... 73 | 74 | 75 | ``` 76 | ### 使用说明 77 | `库引用说明`记载的是最新版本的引用,若你使用的不是最新版本,请留意`迭代说明`上的迭代历程,以帮助你迅速接入你想使用的版本 78 | 本库引入你项目以后,若要了解各模块使用详细,请参见`使用说明索引` 79 | - [使用说明索引](https://github.com/ShaoqiangPei/AndroidLibrary/blob/master/course/%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%E7%B4%A2%E5%BC%95.md) 80 | - [迭代说明](https://github.com/ShaoqiangPei/AndroidLibrary/blob/master/course/%E8%BF%AD%E4%BB%A3%E8%AF%B4%E6%98%8E.md) 81 | 82 | 83 | -------------------------------------------------------------------------------- /Study.md: -------------------------------------------------------------------------------- 1 | ### 学习地址 2 | [51CTO-fundroid](https://blog.51cto.com/u_15200109) 3 | 4 | -------------------------------------------------------------------------------- /androidlibrary/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | -------------------------------------------------------------------------------- /androidlibrary/.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShaoqiangPei/AndroidLibrary/462c8be8d0acea940dcc0ba1c4273aaca333f75c/androidlibrary/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /androidlibrary/.idea/caches/gradle_models.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShaoqiangPei/AndroidLibrary/462c8be8d0acea940dcc0ba1c4273aaca333f75c/androidlibrary/.idea/caches/gradle_models.ser -------------------------------------------------------------------------------- /androidlibrary/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /androidlibrary/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /androidlibrary/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 22 | 23 | -------------------------------------------------------------------------------- /androidlibrary/.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 36 | -------------------------------------------------------------------------------- /androidlibrary/.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | 29 | 30 | 34 | 35 | -------------------------------------------------------------------------------- /androidlibrary/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | 18 | 19 | 21 | -------------------------------------------------------------------------------- /androidlibrary/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /androidlibrary/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /androidlibrary/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /androidlibrary/app/.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /androidlibrary/app/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /androidlibrary/app/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | -------------------------------------------------------------------------------- /androidlibrary/app/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /androidlibrary/app/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /androidlibrary/app/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /androidlibrary/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | //android配置 4 | def config = rootProject.ext.android 5 | //相关库依赖 6 | def librarys = rootProject.ext.supportDependencies 7 | 8 | android { 9 | 10 | compileSdkVersion config.compileSdkVersion 11 | defaultConfig { 12 | applicationId config.applicationId 13 | minSdkVersion config.minSdkVersion 14 | targetSdkVersion config.targetSdkVersion 15 | versionCode config.versionCode 16 | versionName config.versionName 17 | multiDexEnabled config.multiDexEnabled 18 | testInstrumentationRunner config.testInstrumentationRunner 19 | } 20 | 21 | buildTypes { 22 | release { 23 | minifyEnabled false 24 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 25 | } 26 | } 27 | 28 | 29 | compileOptions { 30 | sourceCompatibility 1.8 31 | targetCompatibility 1.8 32 | } 33 | } 34 | 35 | dependencies { 36 | implementation fileTree(include: ['*.jar'], dir: 'libs') 37 | //基础库 38 | implementation librarys.implementation_support_appcompat 39 | implementation librarys.implementation_support_v4 40 | implementation librarys.implementation_suppout_design 41 | implementation librarys.implementation_recyclerview_v7 42 | implementation librarys.implementation_constraint_layout 43 | androidTestImplementation librarys.testImplementation_test_junit 44 | androidTestImplementation librarys.androidTestImplementation_support_runner 45 | androidTestImplementation librarys.androidTestImplementation_support_espresso 46 | implementation project(':commonlibrary') 47 | //==========第三方======== 48 | //butterknife 49 | implementation librarys.implementation_butterknife 50 | annotationProcessor librarys.annotationProcessor_butterknife_compiler 51 | 52 | } 53 | -------------------------------------------------------------------------------- /androidlibrary/app/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShaoqiangPei/AndroidLibrary/462c8be8d0acea940dcc0ba1c4273aaca333f75c/androidlibrary/app/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /androidlibrary/app/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jan 25 21:08:20 CST 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip 7 | -------------------------------------------------------------------------------- /androidlibrary/app/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS= 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | 53 | :win9xME_args 54 | @rem Slurp the command line arguments. 55 | set CMD_LINE_ARGS= 56 | set _SKIP=2 57 | 58 | :win9xME_args_slurp 59 | if "x%~1" == "x" goto execute 60 | 61 | set CMD_LINE_ARGS=%* 62 | 63 | :execute 64 | @rem Setup the command line 65 | 66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 67 | 68 | @rem Execute Gradle 69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 70 | 71 | :end 72 | @rem End local scope for the variables with windows NT shell 73 | if "%ERRORLEVEL%"=="0" goto mainEnd 74 | 75 | :fail 76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 77 | rem the _cmd.exe /c_ return code! 78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 79 | exit /b 1 80 | 81 | :mainEnd 82 | if "%OS%"=="Windows_NT" endlocal 83 | 84 | :omega 85 | -------------------------------------------------------------------------------- /androidlibrary/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 | -------------------------------------------------------------------------------- /androidlibrary/app/src/androidTest/java/com/androidlibrary/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.androidlibrary; 2 | 3 | import android.content.Context; 4 | import androidx.test.InstrumentationRegistry; 5 | import androidx.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.androidlibrary", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /androidlibrary/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /androidlibrary/app/src/main/java/com/androidlibrary/AppContext.java: -------------------------------------------------------------------------------- 1 | package com.androidlibrary; 2 | 3 | import android.app.Application; 4 | import com.android.commonlibrary.app.LibraryConfig; 5 | 6 | public class AppContext extends Application { 7 | 8 | private static AppContext instance; 9 | 10 | public static synchronized AppContext getInstance() { 11 | return instance; 12 | } 13 | 14 | @Override 15 | public void onCreate() { 16 | super.onCreate(); 17 | instance = this; 18 | 19 | //初始化AndroidLibrary 20 | LibraryConfig.getInstance().init(this) 21 | //开启log调试,默认为关闭状态 22 | .setDebug(true) 23 | .setShowScreenInfo(true); 24 | } 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /androidlibrary/app/src/main/java/com/androidlibrary/activity/MainContract.java: -------------------------------------------------------------------------------- 1 | package com.androidlibrary.activity; 2 | 3 | import com.android.commonlibrary.interfacer.frame.struct.mvp.PrePresenter; 4 | import com.android.commonlibrary.interfacer.frame.struct.mvp.PreView; 5 | 6 | /** 7 | * Title:登录功能接口层 8 | * description: 9 | * autor:pei 10 | * created on 2019/12/16 11 | */ 12 | public class MainContract { 13 | 14 | public interface View extends PreView { 15 | void loginSuccess(); 16 | void loginFail(String msg); 17 | } 18 | 19 | public interface Presenter extends PrePresenter { 20 | //登录 21 | void login(); 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /androidlibrary/app/src/main/java/com/androidlibrary/activity/MainPresenter.java: -------------------------------------------------------------------------------- 1 | package com.androidlibrary.activity; 2 | 3 | import android.content.Context; 4 | 5 | import com.android.commonlibrary.interfacer.frame.struct.mvp.PreView; 6 | 7 | /** 8 | * Title:登录功能通讯逻辑层 9 | * description: 10 | * autor:pei 11 | * created on 2019/12/16 12 | */ 13 | public class MainPresenter implements MainContract.Presenter { 14 | 15 | private Context mContext; 16 | private MainContract.View mView; 17 | 18 | public MainPresenter(Context context, PreView view) { 19 | this.mContext = context; 20 | this.mView = (MainContract.View) view; 21 | } 22 | 23 | @Override 24 | public void attachView() {//可以用来注册RxBus 25 | 26 | } 27 | 28 | @Override 29 | public void detachView() {//可以用来注销RxBus 30 | 31 | } 32 | 33 | @Override 34 | public void login() { 35 | //以下写通讯代码 36 | //...... 37 | 38 | mView.loginSuccess(); 39 | } 40 | 41 | } -------------------------------------------------------------------------------- /androidlibrary/app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /androidlibrary/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 19 | 20 |