一個用於幫助 Android App 進行組件化改造的框架 —— 支持模塊間的路由、通信、解耦
1.新建一個Android項目 "ARouterDemo"
2.添加依賴和配置
android { defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments = [AROUTER_MODULE_NAME: project.getName()] } } } } dependencies { // 替換成最新版本, 需要注意的是api // 要與compiler匹配使用,均使用最新版可以保證兼容 compile 'com.alibaba:arouter-api:x.x.x' annotationProcessor 'com.alibaba:arouter-compiler:x.x.x' ... } // 舊版本gradle插件(< 2.2),可以使用apt插件,配置方法見文末'其他#4' // Kotlin配置參考文末'其他#5'
3.添加注解
// 在支持路由的頁面上添加注解(必選) // 這里的路徑需要注意的是至少需要有兩級,/xx/xx @Route(path = "/test/activity") public class YourActivity extend Activity { ... }
4.在Application 中初始化sdk
if (isDebug()) { // 這兩行必須寫在init之前,否則這些配置在init過程中將無效 ARouter.openLog(); // 打印日志 ARouter.openDebug(); // 開啟調試模式(如果在InstantRun模式下運行,必須開啟調試模式!線上版本需要關閉,否則有安全風險) } ARouter.init(mApplication); // 盡可能早,推薦在Application中初始化
5.發起路由操作
// 1. 應用內簡單的跳轉(通過URL跳轉在'進階用法'中) ARouter.getInstance().build("/test/activity").navigation(); // 2. 跳轉並攜帶參數 ARouter.getInstance().build("/test/1") .withLong("key1", 666L) .withString("key3", "888") .withObject("key4", new Test("Jack", "Rose")) .navigation();
6.如果發起startActivityForResult() 傳入context和requestCode
執行setResult(12)