android 组件路由框架,XRouter:组件化路由框架
添加jitpack倉庫
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
添加依賴:
dependencies {
//kotlin 使用kapt編譯時依賴注解,Java使用annotationProcessor
kapt 'com.github.roger1245.XRouter:xrouter-compiler:1.0.2'
api 'com.github.roger1245.XRouter:xrouter-core:1.0.2'
}
添加配置:
android {
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName: project.getName()]
}
}
}
初始化SDK:
public class XRouterApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
XRouter.Companion.init(this);
}
}
添加注解:
@Route(path = Config.Module1Activity)
class Module1Activity : AppCompatActivity() {
...
}
發起路由操作:
//1.路由內通過path跳轉另一個Activity
XRouter.sInstance.build(Config.Module1Activity).navigation()
通過aop方式獲取服務
val hello: HelloService = XRouter.sInstance.build(Config.HELLO_SERVICE).navigation() as HelloService
hello.sayHello(this)
//實現接口
@Route(path = Config.HELLO_SERVICE)
public class HelloService implements IProvider {
@Override
public void init(Context context) {
Toast.makeText(context, "HelloService init successfully", Toast.LENGTH_SHORT).show();
}
public void sayHello(Context context) {
Toast.makeText(context, "HelloService: Hello", Toast.LENGTH_SHORT).show();
}
}
通過接口的方式發現服務:
val userService: IUserService? = XRouter.sInstance.navigation(IUserService::class.java)
userService?.login(this)
//實現接口
@Route(path = Config.USER_SERVICE_IMPL)
public class UserServiceImpl implements IUserService {
@Override
public void init(Context context) {
Toast.makeText(context, "UserServiceImpl init successfully", Toast.LENGTH_SHORT).show();
}
@Override
public void login(Context context) {
Toast.makeText(context, "UserServiceImpl login successfully", Toast.LENGTH_SHORT).show();
}
}
//實現IProvider接口
public interface IUserService extends IProvider {
public void login(Context context);
}
為了加快第一次進入應用的速度,可以通過gradle插件的方式利用ASM插入字節碼,替代原來的運行時反射查找類文件的方式,如何引入:
根build.gradle引入:
buildscript {
...
dependencies {
....
classpath "com.github.roger1245.XRouter:xrouter-gradle-plugin:latestversion"
}
}
項目build.gradle引入:
apply plugin: 'xrouter'
即可。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的android 组件路由框架,XRouter:组件化路由框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql md5函数_【学习笔记】常见漏洞
- 下一篇: php淘客发单_如何使用PHP的curl