Repository navigation
安卓模拟自动注入 0.2.4
安卓模拟自动注入
源码位置 : https://github.com/kekxv/AndroidAutoWired
代码下载 : AndroidAutoWired.zip
引入方式: gradle:implementation 'com.github.kekxv:AndroidAutoWired:0.2.1' (不知道啥子情况,不起作用)
引入方式:
以下配置均在项目
build.gradle下方式一
- 生成 GitHub Token,教程点击本链接
- 配置
gradle,增加仓库https://maven.pkg.github.com/kekxv/JavaRepo/,github 的仓库需要授权(公开的也要),自己配置一下GITHUB_USER、GITHUB_PERSONAL_ACCESS_TOKEN,建议在家目录的gradle.properties进行配置。//配置gradle android { repositories { maven { name = "GitHubPackages" url = uri("https://maven.pkg.github.com/kekxv/JavaRepo/") credentials { username = System.getenv('GITHUB_USER') ?: project.properties['GITHUB_USER'] password = System.getenv('GITHUB_PERSONAL_ACCESS_TOKEN') ?: project.properties['GITHUB_PERSONAL_ACCESS_TOKEN'] } } } }
- 增加
dependenciesimplementation 'com.kekxv:autowired:0.2.3'(0.2.3为版本号,可更改为最新版本)方式二
直接下载前往 仓库 下载
autowired-0.2.3.aar导入到项目。
根据情况,可能需要将autowired-0.2.3.aar拷贝到libs目录并implementation fileTree(dir: "libs", include: ["*.jar"])更改为implementation fileTree(dir: "libs", include: ["*.jar","*.aar"])
更新记录
- 20210114 增加
Service内service标记,用于开启调用start()。- 20210114 自动注入后注入,可在更新之后自动注入之前未找到的注入字段。
- 20210114 在原有自动扫描的基础上,增加手动传入
Service类。- 20201226 增加
Sign标记,用于区分各个不一样的实例。- 20201226 增加
IAutoWired.registered手动注册,可用于自动注入Context之类。
原理说明:
- 扫描所有(或手动传入)带有
@Service的自动注入类 - 手动或继承
IAutoWired自动调用IAutoWired.inject(this);进行注入。 - 为保证
private也能注入成功;通过反射以及setAccessible(true);修改权限进行newInstance()以及赋值。