Dagger2的简单使用
来源:互联网 发布:java list 对象去重 编辑:程序博客网 时间:2024/05/22 15:55
- Dagger2的优点
* 没有使用反射,图的验证、配置和预先设置都在编译的时候执行
* 容易调试,完全具体地调用提供和创建的堆栈
* 更高的性能,谷歌声称他们提高了13%的处理性能
* 代码混淆,使用派遣方法,就如同自己写的代码一样
第一步:在project/build.gradle 文件下添加 classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8’
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}
第二步:在app/build.gradle 文件下添加 apply plugin: ‘com.neenbedankt.android-apt’ ,compile ‘com.google.dagger:dagger:2.2’ 和apt ‘com.google.dagger:dagger-compiler:2.2’,provided ‘org.glassfish:javax.annotation:10.0-b28’,同步一下
apply plugin: 'com.android.application'apply plugin: 'com.neenbedankt.android-apt'dependencies { compile 'com.google.dagger:dagger:2.2' apt 'com.google.dagger:dagger-compiler:2.2' provided 'org.glassfish:javax.annotation:10.0-b28' ....
第三步:写一个要注入的类
/** * Created by Administrator on 2016/12/6. */public class User { public String name ; public int age ; public User(String name, int age) { this.name = name; this.age = age; }}
第四步:在MainActivity中添加注解
public class MainActivity extends AppCompatActivity { @Inject User user ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }}
第五步:写一个Moudle类,像仓库。使用@Moudle修饰类,使用@Provides修饰提供对象的方法。
import dagger.Module;import dagger.Provides;/** * Created by Administrator on 2016/12/6. */@Modulepublic class MainActivityModule { @Provides public User getUser(){ return new User("zhangsan",19); }}
第六步:写一个用@Component注解的接口,是连接@Inject和@Module的桥梁。
import dagger.Component;/** * Created by Administrator on 2016/12/6. */@Component(modules = MainActivityModule.class)public interface MainActivityComponent { void inject(MainActivity mainActivity);}
第七步:Rebuild Project一下,就可以调用。出现实现接口的类DaggerMainActivityComponent。
public class MainActivity extends AppCompatActivity { @Inject User user ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView viewById = (TextView) findViewById(R.id.tv); MainActivityComponent component = DaggerMainActivityComponent.builder().mainActivityModule(new MainActivityModule()).build(); component.inject(this); viewById.setText("姓名:"+user.name+" , 年龄"+user.age); }}
0 0
- Dagger2的简单使用
- Dagger2的简单使用
- Dagger2的简单使用
- Dagger2的简单使用
- Dagger2 的简单使用
- Dagger2的简单使用
- Dagger2的简单使用
- Dagger2 的简单使用 (一)
- Dagger2简单使用
- dagger2简单使用
- Dagger2简单入门使用
- Dagger2简单使用
- dagger2简单使用
- Dagger2 简单使用
- 简单使用Dagger2
- dagger2的简单入门
- Dagger2最简单注入使用
- 如何使用dagger2搭建简单清晰的android框架
- 生成libSVM的数据格式及使用方法总结
- 隐藏软键盘
- hdoj--【2045 不容易系列之(3)—— LELE的RPG难题】
- 安卓开发中非常炫的效果集合
- OpenCV - 最大间方差分割
- Dagger2的简单使用
- Java并发编程(二): Java并发机制的底层实现原理
- android读取写入SD卡文件夹和SharedPreferences数据
- ARM的成长历史
- 泛型
- datalist
- rman 备份默认路径小结
- DiyCode技术沙龙
- python 实践 print love