博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android RoboGuice开源框架、Butter Knife开源框架浅析
阅读量:5973 次
发布时间:2019-06-19

本文共 1658 字,大约阅读时间需要 5 分钟。

Google Guice on Android(RoboGuice)

今天介绍一下Google的这个开源框架RoboGuice, 它的作用跟之前讲过的Dagger框架差点儿是一样的,仅仅是Dagger比它的功能更强大一些。

Dagger通过专注于一种简化的功能集以一种不同的方式达到了更好的性能。有人觉得RoboGuice节约了大量的时间。较少的代码意味着较少的错误。较少的样板代码意味着能够把很多其它的时间放到应用的核心逻辑上。所以这就是为什么我们要使用这些开源框架来开发的原因。

     以下我们来说说RoboGuice的使用:
Views Injection: 我们要想取得一个xml文件里的某个控件对象时,不再採用findViewById(R.id...)这样的方式了,而是用@InjectViews注解来实现, 如: @InjectView(R.id.textView1) TextView textView1; //这样我们就得到了这个TextView对象实体                                                                 
Resources Injection: 相同也提供了资源的注入方式,也不再是传统的getResources().getDrawable(R.id.ic_launcher)这样的方式, 而是用 @InjectResources注解来做, 如: @InjectResource(R.id.ic_launcher) Drawable icLauncher;                                                                          
System services Injection: 获取一些系统级服务对象, 不会再沿用原来的
locManager = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);的方法了,而是运用@Inject注解来实现,如:
@Inject LocationManager locManager;
POJO object Injection: 注入一个简单JAVA对象(POJO)也是用注解@Inject, 如: @Inject Student student;
事实上非常多人都觉得RoboGuice的效率非常低,所以事实上非常少人愿意用这个,而很多其它人倾向于用AA (Android Annotation)。
当然RoboGuice中另一些其它的注解:
如:
@ContentView(R.layout.layout_main) 取代 setContentView(R.layout.layout_main);
@ContextSingleton 来设计一个单例的类。(在dagger中事实上都有)
假设网友有兴趣。再去深入研究它的Java Doc()

Butter Knife

这个框架跟RoboGuice框架的用法机会一样。顺带略微记录一下。
样例:
class ExampleActivity extends Activity {
@InjectView(R.id.user) EditText username; @InjectView(R.id.pass) EditText password; @OnClick(R.id.submit) void submit() {
// TODO call server... } @Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.simple_activity); ButterKnife.inject(this); // TODO Use "injected" views... }}
Gradle中的配置:
compile 'com.jakewharton:butterknife:5.1.1'

转载地址:http://rjbox.baihongyu.com/

你可能感兴趣的文章
JavaScript 周报
查看>>
MySQL 中 update 修改数据与原数据相同会再次执行吗?
查看>>
JVM的类加载(为面试做准备)
查看>>
浅析三大图书回收平台,如何最优(gui)的回收二手图书
查看>>
数据结构 第1讲 基础知识
查看>>
飞冰 2.0 正式发布并支持 Vue 项目开发
查看>>
多线程面试必备基础知识汇总
查看>>
JavaScript实现在线MD5、SHA、AES、Rabit 、RC4、TripleDES Ripemd160 加密解密工具-toolfk程序员在线工具网...
查看>>
vuex入门篇 -- state和getters
查看>>
美国国际消费电子展“牵动”中国产业链
查看>>
iOS学习笔记04 视图切换
查看>>
武汉区块链软件技术公司:区块链和比特币
查看>>
锚链接加动画
查看>>
学习笔记(3.27)
查看>>
比特币Cash Hard Fork辩论在压力测试后重新召开
查看>>
发布你的第一个 React 组件到 npm
查看>>
国内第一家资讯机器人的Giiso,为何能被各类创投资金看好?
查看>>
你的项目应该如何分层?
查看>>
Android 开发最佳实践
查看>>
TypeScript 类
查看>>