日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 组件路由框架,XRouter:组件化路由框架

發布時間:2024/7/23 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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:组件化路由框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。