Android开源框架之androidannotations

Posted zhangjinhuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android开源框架之androidannotations相关的知识,希望对你有一定的参考价值。

android开源框架之androidannotations

Android Annotations是一个开源的框架,用于加速android应用的开发,可以使开发者把注意力都集中在功能模块的实现上,简化了代码,提升了可维护性。

如果开发者想使用Android Annotations,可以在https://github.com/excilys/androidannotations这个网址上下载,下载解压后目录结构如下图所示:

 

如果想要在eclipse开发的项目上使用的话可以选择examples目录下的HelloWorldEclipse

 

然后将其目录下的compile-libs整个文件夹如下图所示拷贝到自己的项目工程下,同时将libs目录下的androidannotations-api-3.2.jar拷贝到自己项目工程下的libs目录下。

 

整个操作完成后的项目工程的结构如下图所示:

 

此时选中项目工程中的androidannotations-api-3.2.jar并通过Build Path-->Add To Build Path将其加到Libraries中,此外还需要选中项目右键选择Properties后会弹出如下界面:

 

此时打开Java Compiler,选中Enable project specific settings设置Compiler compliance level 1.6以上,如下所示:

 

接着,选中Java Compiler下的Annotation Processing并勾选右边的Enable project specific settings选项,如下图所示:

 

点击右下角的Apply按钮会弹出下图所示界面:

 

此时点击“Yes”按钮即可,然后继续选择Annotation Processing下的Factory Path,然后勾选中间上面的Enable project specific settings选项,如下图所示:

 

此时再选择右边的Add JARs...按钮会弹出如下对话框,此时选择项目工程下combile-libs目录下的androidannotations-3.2.jar,然后点击OK即可,如下图所示:

 

最后在上一步OK操作后的界面中点击Apply按钮会弹出如下所示界面,选择“Yes”后点击下面的OK按钮即可。

 

此时使用androidannotations开源框架前的一些基本配置就已经完成了,接下来将会通过一些小demo来演示如何使用androidannotations并且也会跟正常代码做一个比较。

正常代码:

package com.example.test3;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends Activity 
 
private TextView content;
private Button btn;
 
@Override
protected void onCreate(Bundle savedInstanceState) 
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
 
content = (TextView) findViewById(R.id.content);
btn = (Button) findViewById(R.id.btn);
 
btn.setOnClickListener(new OnClickListener() 
 
@Override
public void onClick(View v) 
Toast.makeText(MainActivity.this,
"content:" + content.getText().toString(),
Toast.LENGTH_SHORT).show();

);
 

 

使用androidannotations后的代码:

package com.zjh.aap.activity;
 
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.ViewById;
 
import android.app.Activity;
import android.widget.TextView;
import android.widget.Toast;
 
@EActivity(R.layout.activity_main)
/**
 * EActivity表示是一个Activity,如果Fragment的话则用EFragment表示
 * R.layout.activity_main为布局文件
 *
 */
public class MainActivity extends Activity 
 
@ViewById(R.id.content)
/**
 * ViewById(R.id.content)表示的是取得id为content的组件类似于findViewById(R.id.content)
 * 另外属性也不能使用private权限
 */
TextView content;
 
@Click
/**
 * click表示这是一个点击事件
 * btn表示的是Button按钮的id
 * 另外需要注意的是方法不能使用private权限
 */
public void btn() 
Toast.makeText(this, "content" + content.getText().toString(),
Toast.LENGTH_LONG).show();

 

 

由上面的代码不难看出,使用androidannotations开源框架的确可以省去很多代码,开发者也可以把更多的时间花在功能模块的实现上。

另外有一点需要注意的是如果使用androidannotations开源框架的话还需要在AndroidManifest.xml清单文件中做一些修改,就是在每一个注册的Activity后加一个“_”下划线,如下所示:

<activity
            android:name="com.zjh.aap.activity.MainActivity_"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>

以上是关于Android开源框架之androidannotations的主要内容,如果未能解决你的问题,请参考以下文章

NoHttp开源Android网络框架1.0.0之架构分析

Android编程入门--开源框架OKHttp

Android网络请求框架之Retrofit

ContentProvider之通过ContentResolver获取图像视频音频举例

ContentProvider之通过ContentResolver获取图像视频音频举例

Android UI-开源框架ImageLoader的完美例子