🔥🔥🔥A powerful componentized framework.一个强大、100% 兼容、支持 AndroidX、支持 Kotlin并且灵活的组件化框架
2.x 纯 Kotlin 开发已经完成了. 由于文档啥的不想对老的进行更改. 所以新创建了一个仓库:KComponent 如果你的项目是纯 Kotlin 项目. 还请移步 KComponent
Component
一定以最快的速度解决您的 issue
, 提供解决方案.
可以说到目前为止, 基于 URI
方面的所有路由框架中(ARouter
、WMRouter
、ActivityRouter
...) Component
是最强大和完善的组件化框架.
选择一个更好、更全面的、更稳定、更有发展前景的框架更是你们技术团队或者技术负责人要做的事情!
一个功能强大的组件化框架,极度注重用户体验,带给你使用上不一样的享受.欢迎大家使用,在使用的过程中发现任何问题,欢迎下方的 QQ群
里问或者提 issue
给我
扫码下载组件化 Demo. 或者点击链接去体验一个开源的成品 App, 是个记账 App
https://github.com/xiaojinzi123/TallyApp
Intent
的地方使用了解更多请看 wiki 更多功能等你来发现 **有关的文章 到底什么是组件化 **
组件化方案真的有很多,那么这个组件化方案优秀在哪里?相比于 ARouter
、WMRouter
、ActivityRouter
、CC
、DDComponent
等开源的组件化框架, 有哪些一样或者更加优秀的点
Module
Google App Bundle 架构
Flutter
, H5
等混合项目androidx
, 几乎没有其他组件化框架支持 androidx
的Idea Plugin
方便快速浏览,持续会更新此 插件
RxJava2
(使用rx
库)URI
的使用H5
H5
只需利用 URL
即可任意路由到任何界面(只需下面一段统一的跳转. 完全不需要关心目标界面是否需要登陆、定位、权限等.)
@JavascriptInterface
public void openUrl(final String url) {
Router.with(this).url(url).forward();
}
H5
发起路由不需要关心目标界面需要做的先决条件(框架的页面拦截器已经帮您做完)Fragment
(也就是跨组件获取Fragment
)90%
代码都是在主线程的,UI
、弹框等操作.Callback
机制可以在拦截器中做任何耗时的任务异步
的,而且拦截器中能像平常一样写实现的代码Fragment
或者 Activity
销毁的时候会取消URI
Intent
, 你可以给任意一个 Intent
标记路由, 这个功能很强大!Retrofit
接口编程式跳转Idea Plugin
强势支持跳转代码和目标界面的来回导航,也支持拦截器的代码使用和声明处的来回导航ActivityResult
, 很多框架不支持或者需要入侵 BaseActivity
. 绝对的优势
Context
是 Application
或者 Service 的 Context
或者 ContentProvider 的 Context
的时候, 不支持获取ActivityResult, 如果真的有需要, 你可以使用栈顶的 Activity
来充当 Context
Context
, 其他的情况都是支持的,包括 Dialog
中获取到的 Context
.注解驱动器
不支持增量更新, 暂时不知道怎么去做Idea Plugin
Android Studio
中搜索插件名称:RouterGo, 即可下载对应的插件
RouterGo 源码地址:帮助你快速导航到目标界面或者目标拦截器,你值得拥有!
Component
项目结构(Demo + 库源码)demo
示例代码
app
--> 壳工程Module1
--> Java
业务模块Module1run
--> Module1
业务模块单独运行的 Application
应用Module2
--> Kotlin
业务模块ModuleHelp
--> Help
业务模块, 一些有关通用的或者系统相关的放这里ModuleUser
--> User
业务模块ModuleBase
--> 各个业务模块的基础模块, 上述的每一个业务模块都需要依赖ComponentApi
--> Api
库ComponentCompiler
--> 注解驱动器库ComponentImpl
--> 实现库ComponentRxImpl
--> 实现库 RxJava
的扩展ComponentPlugin
--> 配套的 Gradle
, 功能有两个
new
对象的方式, 利用字节码修改技术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.