前言
什么是框架?
一个框架就是一个基石,那么基石就是地基的意思,
底层框架的强壮性,决定项目的开发的容易度。为什么需要框架呢?
不需要可以吗?可以,但开发时间较长。android开发中哪些内容可以做成框架呢?
- 网络模块
- 图片缓存模块
- 数据库模块
UI基础模块
- 开发框架给我们带来了哪些好处?
- 开发效率的提升
- 代码看起来更简洁
- 好统一管理
- 代码的复用性
正题:配置AndroidAnnotationes框架
AndroidAnnotationes框架:注解开元框架
比如:
我们经常会使用到findViewById这个方法来进行查找控件,
那么这里就使用一个注解
如:@ViewById
TextView tv;
这样就完成了找控件的工作,代码就变得简洁了。
还有一些注解比如给控件设置监听的,请求网络的等等。
配置步骤
AndroidAnnotationes的首页http://androidannotations.org/
可以看到简单的介绍和一个简单的对比案例,
另外有一个Documentation链接按钮,可跳转到Github上,这里是源码。
2.(主要是下载需要到jar包,或者源码)到Github上首先看到的是帮助文档,
点击 Get Started进行快速学习,
3.现在说一下在Android studio中配置AndroidAnnotationes框架
(1)首先是配置build.gradle
第一步:那么先在全局的build.gradle(也就是与项目同级的build.gradle)中进行配置
配置如下:
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'//这个是需要添加的
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
第二步:再到项目中的build.gradle中进行配置
配置如下:
apply plugin: 'com.android.application'
apply plugin: 'android-apt'//这个是需要添加的
def AAVersion='3.3.2'//这个是需要添加的,用于指定版本,可以指定全新版本
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.ceo.testaa2"
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
apt "org.androidannotations:androidannotations:$AAVersion"//添加
compile "org.androidannotations:androidannotations-api:$AAVersion"//添加
compile 'com.google.android.gms:play-services-appindexing:8.1.0'//添加
}
apt {//添加
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
}
}
第三步:同步配置
第四步:尝试使用框架
1.首先AndroidManifest.xml中每个使用androidAnnotations的Activity名字都要添加_
<activity android:name=".MainActivity_">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".InfoActivity_"></activity>
<service android:name=".MyService_"></service>
</application>
2.activity中的代码
package com.ceo.testaa2;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.ViewById;
@EActivity(R.layout.activity_main)//不用setContentView();
public class MainActivity extends AppCompatActivity {
@ViewById(R.id.text1)//初始化控件,不用findViewById();
TextView tv;
@ViewById(R.id.bnt)
Button bnt;
@Click(R.id.bnt)//为ID为bnt的控件添加监听事件
void startInfoActivity()
{
Intent it = new Intent(MainActivity.this,InfoActivity_.class);
startActivity(it);
}
@Click(R.id.bnt1)//开启服务
void startMyService(){
Intent it = new Intent(MainActivity.this,MyService_.class);
startService(it);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
列出常用的注释标签
@EActivity
@EService
@ViewById
@ViewsById
@AfterViews
@Extra
@Click
@LongClick
@ItemClick
@ItemLongClick
@Tounch
…还有很多,这里就不做多的列举了