Android RoboGuice开源框架、Butter Knife开源框架浅析

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(http://www.imobilebbs.com/download/android/roboguice/javadoc/)

    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‘
    时间: 2024-10-09 18:53:14

    Android RoboGuice开源框架、Butter Knife开源框架浅析的相关文章

    [轉]Android Libraries 介紹 - Butter knife

    原文地址 Butter Knife 簡介 Butter Knife - Field and method binding for Android views.助你簡化程式碼,方便閱讀. 使用方法 開發 andriod app 的時候,一定有寫過類似的 code: class ExampleActivity extends Activity { TextView title; TextView subtitle; TextView footer; @Override public void onC

    Android roboguice 开源框架使用

    Android roboguice 应用 开源的roboguice是一个依赖注入框架,如果你用过Spring 应该知道其好处. 减少程序员的负担,代码变的更加简洁. 地址:https://github.com/roboguice/roboguice 工具用的是Android Studio 因为Gradle可以自动添加第三方库. Gradle部分内容: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile

    Android图片加载与缓存开源框架:Android Glide

    <Android图片加载与缓存开源框架:Android Glide> Android Glide是一个开源的图片加载和缓存处理的第三方框架.和Android的Picasso库类似,个人感觉比Android Picasso好用.Android Glide使自身内部已经实现了缓存策略,使得开发者摆脱Android图片加载的琐碎事务,专注逻辑业务的代码.Android Glide使用便利,短短几行简单明晰的代码,即可完成大多数图片从网络(或者本地)加载.显示的功能需求. 使用Android Gl

    Android 开源框架 ( 四 ) Afinal --- Android 里的 ORM IOC聚合型框架

    Afinal 是一个android的sqlite的 orm 和 ioc 框架.是一种聚合型框架, 大而全.所以不推荐使用,只做了解即可.应付手头临时项目. 推荐阅读,这么多开源框架,该用哪个好?: 一.引言 Afinal是一个开源的android的orm和ioc应用开发框架.在android应用开发中,FinalActivity模块通过Afinal的ioc框架,诸如ui绑定,事件绑定,通过注解可以自动绑定.Afinal的orm框架,很轻松的就可以对android的sqlite数据库进行增删改查操

    THINKPHP框架的优秀开源系统推荐

    众所周知,国内众多优秀的开源框架, ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性.并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性.扩展性和性能方面不断优化和改进,众多的典型案例确保可以稳定用于商业以及门户级的开发.在thinkphp发展的同时也诞生了一批基于thinkphp的优秀系统,在这里我们看看都有哪些. 1.移动应用::wemall 用户易于操作,极易上手,云商店拥有大量的第三方的插件和应用模块.模板主题,方面下载使

    《Andorid开源》greenDao 数据库orm框架

    一 前言:以前没用框架写Andorid的Sqlite的时候就是用SQLiteDatabase ,SQLiteOpenHelper ,SQL语句等一些东西,特别在写SQL语句来进行 数据库操作的时候是一件很繁琐的事情,有时候没有错误提示的,很难找到错误的地方,即费力又花时间. 现在使用greenDao就可以避免那些繁琐的SQL文了,极大的简化了对Sqlite的操作. greenDao官方网址是:http://greendao-orm.com/ greenDao官方demo下载地址:https://

    Butter Knife:一个安卓视图注入框架

    2014年5月8日 星期四 14:52 官网: http://jakewharton.github.io/butterknife/ GitHub地址: https://github.com/JakeWharton/butterknife JavaDocs地址: http://jakewharton.github.io/butterknife/javadoc/ 注:本随笔翻译自官网,做了一些整理和注释.来自我的OneNote笔记 大纲: @InjectView (Activity,Fragment

    微博轻量级RPC框架Motan正式开源:支撑千亿调用

    支撑微博千亿调用的轻量级 RPC 框架 Motan 正式开源了,项目地址为https://github.com/weibocom/motan. 微博轻量级RPC框架Motan正式开源 Motan 是微博技术团队研发的基于 Java 的轻量级 RPC 框架,已在微博内部大规模应用多年,每天稳定支撑微博上亿次的内部调用.Motan 基于微博的高并发和高负载场景优化,成为一套简单.易用.高可用的 RPC 服务框架. Motan 功能特点:简单.易用.高可用 无侵入集成.简单易用,通过 Spring 配

    云适配将推出中国首个开源 HTML5 跨屏前端框架 - Amaze UI

    云适配,这是一家能以一行代码将你的网站移动化,实现网址不变且内容实时自动同步的服务提供商.云适配所采用的技术是一项基于云计算.利用html5进行网站跨屏适配,它为目标网站开发一行JS代码,并嵌入PC网站,这个JS代码通过对PC网站目标网页数据的分析和抓取,在云端完成用户当前设备的网页最佳展现方式的计算,最后在浏览器端实现html结构的重排及CSS的重新渲染,以适应移动端用户的浏览习惯. 在他们用一行代码做适配的过程中,积累了一套跨屏的前端常用网页组件,而最近,他们想把这套组件开源出来,将这套组件