diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..916b245 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.iml +.gradle +/local.properties +/.idea +.DS_Store +/build +/captures \ No newline at end of file diff --git a/AndroidComponent.iml b/AndroidComponent.iml deleted file mode 100644 index cdd69fd..0000000 --- a/AndroidComponent.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/AndroidComponentnew.iml b/AndroidComponentnew.iml deleted file mode 100644 index ef51b06..0000000 --- a/AndroidComponentnew.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ComponentDemo.iml b/ComponentDemo.iml deleted file mode 100644 index b84e3c9..0000000 --- a/ComponentDemo.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/DDComponentForAndroid.iml b/DDComponentForAndroid.iml deleted file mode 100644 index 8db4d4e..0000000 --- a/DDComponentForAndroid.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 6fa2be8..0000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -   Copyright 2017  luoJiSiWei - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..4ca4dc2 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,7 @@ +Copyright (c) 2018 Beijing logicreation Information & Technology Co., Ltd + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/MyApplication.iml b/MyApplication.iml deleted file mode 100644 index 6ffdfe3..0000000 --- a/MyApplication.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/README.md b/README.md index 8358e9a..c6283a4 100644 --- a/README.md +++ b/README.md @@ -1,76 +1,88 @@ -## AndroidComponent -原理解释请参考文章[Android彻底组件化方案实践](http://www.jianshu.com/p/1b1d77f58e84) +## DDComponent -demo解读请参考文章[Android彻底组件化demo发布](http://www.jianshu.com/p/59822a7b2fad) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/luojilab/DDComponentForAndroid/pulls) +[![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg)](https://github.com/luojilab/DDComponentForAndroid/blob/master/LICENSE) ### 实现功能: - 组件可以单独调试 +- 杜绝组件之前相互耦合,代码完全隔离,彻底解耦 - 组件之间通过接口+实现的方式进行数据传输 -- 使用schme和host路由的方式进行activity之间的跳转 +- 使用scheme和host路由的方式进行activity之间的跳转 +- 自动生成路由跳转路由表 - 任意组件可以充当host,集成其他组件进行集成调试 - 可以动态对已集成的组件进行加载和卸载 -- 杜绝组件之前相互耦合,代码完全隔离,彻底解耦 +- 支持kotlin组件 ### 使用指南 #### 1、主项目引用编译脚本 在根目录的gradle.properties文件中,增加属性: + ```ini mainmodulename=app ``` 其中mainmodulename是项目中的host工程,一般为app 在根目录的build.gradle中增加配置 + ```gradle buildscript { - repositories { - maven { - url uri('./repo') - } - } dependencies { - classpath 'com.mrzhang.andcomponent:build-gradle:0.0.1' + classpath 'com.luojilab.ddcomponent:build-gradle:1.2.0' } } ``` -注意:demo中使用本地的repo文件夹来充当maven库地址,请更换为自己的公司maven库 + +为每个组件引入依赖库,如果项目中存在basiclib等基础库,可以统一交给basiclib引入 + +```gradle +compile 'com.luojilab.ddcomponent:componentlib:1.3.0' +``` #### 2、拆分组件为module工程 在每个组件的工程目录下新建文件gradle.properties文件,增加以下配置: + ```ini isRunAlone=true debugComponent=sharecomponent -compileComponent=com.mrzhang.share:sharecomponent +compileComponent=sharecomponent ``` 上面三个属性分别对应是否单独调试、debug模式下依赖的组件,release模式下依赖的组件。具体使用方式请解释请参见上文第二篇文章 #### 3、应用组件化编译脚本 在组件和host的build.gradle都增加配置: + ```gradle apply plugin: 'com.dd.comgradle' ``` -不需要在引用com.android.application或者com.android.library + +注意:不需要在引用com.android.application或者com.android.library 同时增加以下extension配置: + ```gradle combuild { - applicatonName = 'com.mrzhang.reader.runalone.application.ReaderApplication' - isRegisterCompoAuto = false + applicationName = 'com.luojilab.reader.runalone.application.ReaderApplication' + isRegisterCompoAuto = true } ``` -有关isRegisterCompoAuto的解释请参见上文第二篇文章 +组件注册还支持反射的方式,有关isRegisterCompoAuto的解释请参见上文第二篇文章 -### License +#### 4、混淆 +在混淆文件中增加如下配置 +``` +-keep interface * { + ; +} +-keep class com.luojilab.component.componentlib.** {*;} +-keep class com.luojilab.router.** {*;} +-keep class com.luojilab.gen.** {*;} +-keep class * implements com.luojilab.component.componentlib.router.ISyringe {*;} +-keep class * implements com.luojilab.component.componentlib.applicationlike.IApplicationLike {*;} +``` -   Copyright 2017  luoJiSiWei +关于如何进行组件之间数据交互和UI跳转,请参看 [Wiki](https://github.com/luojilab/DDComponentForAndroid/wiki) - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 +### License - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +DDComponentForAndroid 使用的 MIT 协议,详细请参考 [LICENSE](https://github.com/luojilab/DDComponentForAndroid/blob/master/LICENSE.md)。 diff --git a/UIRouterTable/AppRouterTable.txt b/UIRouterTable/AppRouterTable.txt new file mode 100644 index 0000000..c8bce69 --- /dev/null +++ b/UIRouterTable/AppRouterTable.txt @@ -0,0 +1,7 @@ +auto generated, do not change !!!! + +HOST : app + +首页 +/main + diff --git a/UIRouterTable/KotlinRouterTable.txt b/UIRouterTable/KotlinRouterTable.txt new file mode 100644 index 0000000..35cca0e --- /dev/null +++ b/UIRouterTable/KotlinRouterTable.txt @@ -0,0 +1,9 @@ +auto generated, do not change !!!! + +HOST : kotlin + +分享杂志页面 +/shareMagazine +author:com.luojilab.componentservice.share.bean.AuthorKt +bookName:String + diff --git a/UIRouterTable/ShareRouterTable.txt b/UIRouterTable/ShareRouterTable.txt new file mode 100644 index 0000000..2a1176c --- /dev/null +++ b/UIRouterTable/ShareRouterTable.txt @@ -0,0 +1,9 @@ +auto generated, do not change !!!! + +HOST : share + +分享书籍页面 +/shareBook +author:com.luojilab.componentservice.share.bean.Author +bookName:String + diff --git a/app/app.iml b/app/app.iml deleted file mode 100644 index 9ad8818..0000000 --- a/app/app.iml +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ee009a6..a5731d2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,22 @@ apply plugin: 'com.dd.comgradle' android { - compileSdkVersion 25 - buildToolsVersion "25.0.2" + compileSdkVersion 26 + buildToolsVersion "26.0.1" defaultConfig { - applicationId "com.mrzhang.androidcomponent" + applicationId "com.luojilab.androidcomponent" minSdkVersion 15 targetSdkVersion 14 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + + javaCompileOptions { + annotationProcessorOptions { + arguments = [host: "app"] + } + } + } buildTypes { release { @@ -18,18 +25,28 @@ android { } debug { + signingConfig signingConfigs.debug minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + + lintOptions { + checkReleaseBuilds false + // Or, if you prefer, you can continue to check for errors in release builds, + // but continue the build even when errors are found: + abortOnError false + } + } dependencies { compile project(':componentservice') + annotationProcessor project(':router-anno-compiler') } combuild { - applicatonName = 'com.mrzhang.component.application.AppApplication' + applicationName = 'com.luojilab.componentdemo.application.AppApplication' isRegisterCompoAuto = true } diff --git a/app/gradle.properties b/app/gradle.properties index 95a5887..d9730a6 100644 --- a/app/gradle.properties +++ b/app/gradle.properties @@ -12,7 +12,7 @@ org.gradle.jvmargs=-Xmx1536m # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true isRunAlone=true -debugComponent=readercomponent,com.mrzhang.share:sharecomponent -compileComponent=readercomponent,sharecomponent +debugComponent=readercomponent,sharecomponent,sharecomponentkotlin +compileComponent=readercomponent,sharecomponent,sharecomponentkotlin diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 8415401..db62c18 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -23,6 +23,34 @@ # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile --keep class com.mrzhang.component.componentlib.** {*;} --keep class * implements com.mrzhang.component.componentlib.applicationlike.IApplicationLike {*;} +-ignorewarnings +-dontoptimize +-keep class !android.support.v7.view.menu.*MenuBuilder*, android.support.v7.** { *; } +-keep class android.support.v4.** { *; } +-keep interface android.support.** { *; } +-keepattributes Signature +-keepattributes SourceFile,LineNumberTable +-keep public class * extends android.support.** +-keep public class * extends android.app.Fragment +-keep public class * extends android.app.Activity +-keep public class * extends android.app.Application +-keep public class * extends android.app.Service +-keep public class * extends android.content.BroadcastReceiver +-keep public class * extends android.content.ContentProvider +-keep public class * extends android.app.backup.BackupAgentHelper +-keep public class * extends android.preference.Preference +-keep public class * extends com.netease.ntespmmvp.** {*;} +-keep enum * { *;} + +-keep interface * { + ; +} +-keep class com.luojilab.component.componentlib.** {*;} +-keep class com.luojilab.router.** {*;} +-keep class com.luojilab.gen.** {*;} +-keep class * implements com.luojilab.component.componentlib.router.ISyringe {*;} +-keep class * implements com.luojilab.component.componentlib.applicationlike.IApplicationLike {*;} +-dontwarn okio.** +-dontwarn okhttp3.** +-dontwarn com.squareup.** diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eceebb8..99b06f4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,10 +1,10 @@ + xmlns:tools="http://schemas.android.com/tools" + package="com.luojilab.componentdemo"> - + - + - + diff --git a/app/src/main/java/com/mrzhang/component/MainActivity.java b/app/src/main/java/com/luojilab/componentdemo/MainActivity.java similarity index 52% rename from app/src/main/java/com/mrzhang/component/MainActivity.java rename to app/src/main/java/com/luojilab/componentdemo/MainActivity.java index 16d052e..2f598e4 100644 --- a/app/src/main/java/com/mrzhang/component/MainActivity.java +++ b/app/src/main/java/com/luojilab/componentdemo/MainActivity.java @@ -1,16 +1,21 @@ -package com.mrzhang.component; +package com.luojilab.componentdemo; +import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; -import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; -import com.mrzhang.component.componentlib.router.Router; -import com.mrzhang.componentservice.readerbook.ReadBookService; +import com.luojilab.component.basiclib.ToastManager; +import com.luojilab.component.basicres.BaseActivity; +import com.luojilab.component.basicres.BaseApplication; +import com.luojilab.component.componentlib.router.Router; +import com.luojilab.componentservice.readerbook.ReadBookService; +import com.luojilab.router.facade.annotation.RouteNode; -public class MainActivity extends AppCompatActivity implements View.OnClickListener { +@RouteNode(path = "/main", desc = "首页") +public class MainActivity extends BaseActivity implements View.OnClickListener { Fragment fragment; FragmentTransaction ft; @@ -23,13 +28,14 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - installReadBookBtn = (Button) findViewById(R.id.install_share); - uninstallReadBtn = (Button) findViewById(R.id.uninstall_share); + installReadBookBtn = findViewById(R.id.install_share); + uninstallReadBtn = findViewById(R.id.uninstall_share); installReadBookBtn.setOnClickListener(this); uninstallReadBtn.setOnClickListener(this); showFragment(); } + private void showFragment() { if (fragment != null) { ft = getSupportFragmentManager().beginTransaction(); @@ -49,11 +55,22 @@ private void showFragment() { public void onClick(View v) { switch (v.getId()) { case R.id.install_share: - Router.registerComponent("com.mrzhang.share.applike.ShareApplike"); + Router.registerComponent("com.luojilab.share.applike.ShareApplike"); + Router.registerComponent("com.luojilab.share.kotlin.applike.KotlinApplike"); break; case R.id.uninstall_share: - Router.unregisterComponent("com.mrzhang.share.applike.ShareApplike"); + Router.unregisterComponent("com.luojilab.share.applike.ShareApplike"); + Router.unregisterComponent("com.luojilab.share.kotlin.applike.KotlinApplike"); break; } } + + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (data != null) { + ToastManager.show(BaseApplication.getAppContext(), data.getStringExtra("result")); + } + } } diff --git a/app/src/main/java/com/luojilab/componentdemo/application/AppApplication.java b/app/src/main/java/com/luojilab/componentdemo/application/AppApplication.java new file mode 100644 index 0000000..3e3860d --- /dev/null +++ b/app/src/main/java/com/luojilab/componentdemo/application/AppApplication.java @@ -0,0 +1,24 @@ +package com.luojilab.componentdemo.application; + +import com.luojilab.component.basicres.BaseApplication; +import com.luojilab.component.componentlib.router.ui.UIRouter; + +/** + * Created by mrzhang on 2017/6/15. + */ + +public class AppApplication extends BaseApplication { + + @Override + public void onCreate() { + super.onCreate(); + + UIRouter.getInstance().registerUI("app"); + + //如果isRegisterCompoAuto为false,则需要通过反射加载组件 +// Router.registerComponent("com.luojilab.reader.applike.ReaderAppLike"); +// Router.registerComponent("com.luojilab.share.applike.ShareApplike"); + } + + +} diff --git a/app/src/main/java/com/mrzhang/component/utils/Utils.java b/app/src/main/java/com/luojilab/componentdemo/utils/Utils.java similarity index 91% rename from app/src/main/java/com/mrzhang/component/utils/Utils.java rename to app/src/main/java/com/luojilab/componentdemo/utils/Utils.java index 790977a..9127034 100644 --- a/app/src/main/java/com/mrzhang/component/utils/Utils.java +++ b/app/src/main/java/com/luojilab/componentdemo/utils/Utils.java @@ -1,4 +1,4 @@ -package com.mrzhang.component.utils; +package com.luojilab.componentdemo.utils; import android.content.res.Resources; diff --git a/app/src/main/java/com/mrzhang/component/application/AppApplication.java b/app/src/main/java/com/mrzhang/component/application/AppApplication.java deleted file mode 100644 index 2fc73df..0000000 --- a/app/src/main/java/com/mrzhang/component/application/AppApplication.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.mrzhang.component.application; - -import android.app.Application; - -/** - * Created by mrzhang on 2017/6/15. - */ - -public class AppApplication extends Application { - - @Override - public void onCreate() { - super.onCreate(); - - //如果isRegisterCompoAuto为false,则需要通过反射加载组件 -// Router.registerComponent("com.mrzhang.reader.applike.ReaderAppLike"); -// Router.registerComponent("com.mrzhang.share.applike.ShareApplike"); - - } - - -} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index fb57783..5497e93 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,4 +1,5 @@ +