Arrow--轻量级的Android DI 库

Arrow 是一个轻量级的Android DI 库,没有额外的引用。

为什么

最流行的Android DI框架中,Roboguice已经不再维护了,Dagger2使用有点复杂,需要写component interface(所以我写了一个自动生成component interface的库Dagger2Plus),而且Dagger2使用代码生成,对于有代码洁癖的人来说不太喜欢。Arrow使用反射,在目前动不动就8核10核2G3G的硬件环境下,反射带来的性能缺陷不再明显,作为个人来说还是能接受的。

特性

1、@Inject
对象注入

2、@Singleton
单例对象注入

3、Provider 接口
处理循环依赖
例如:

public class A {
    final B b;

    @Inject
    public A(B b) {
        this.b = b;
    }

    public String print() {
        return "I am A";
    }
}

public class B {
    Provider<A> a;

    @Inject
    public B(Provider<A> a) {
        this.a = a;
    }

}

4、Application注入
后续加入各种Service Manager的注入

5、@OnClick
View点击事件处理

6、@ContentView
支持Activity和Fragment setContentView

7、@OnPostInject
Inject 结束后触发该函数

8、@InjectExtra
支持Activity和Fragment 注入Bundle

Arrow+DataBinding

使用DataBinding替代butterknife
Object的注入使用Arrow

源代码

https://github.com/MasonLiuChn/Arrow

用法

repositories {
    maven {
        url "https://jitpack.io"
    }
}
dependencies {
    compile 'com.github.MasonLiuChn:Arrow:1.0.0'
}
Arrow.init(Application application);
Arrow.inject(Object object);
Arrow.injectContentView(Object fragment, LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)

其他

之前一直有个做App热更新的想法,是基于DroidPlugin是的全量插件化,最近终于有时间把代码写好了,见另一篇文章FullPlugin

Contact me:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值