AndroidAnnotations开发框架在Eclipse中的搭建和使用以及框架实现的原理
AndroidAnnotations是用來解決開發(fā)中繁瑣的初始化組件的一個(gè)開源的框架,開發(fā)中只需要配置一下相應(yīng)的注解標(biāo)簽就可以了,其他的工作AndroidAnnotations框架都會(huì)幫我們解決,是我們開發(fā)中沒有必要重復(fù)的寫一些沒什么技術(shù)含量的代碼,相信使用過這個(gè)框架的開發(fā)人員都比較喜歡這個(gè)框架。
使用AndoridAnnotations框架的理由:
1. 提高了開發(fā)的效率
2. 代碼看起來更加整潔
3. 方便統(tǒng)一管理
4. 提高了代碼的復(fù)用性
AndroidAnnotations框架官方網(wǎng)址:http://androidannotations.org
AndroidAnnotations框架jar包:https://github.com/excilys/androidannotations/wiki/Download
其實(shí),AndroidAnnotations框架只適合于開發(fā)一些中小型的app,比較復(fù)雜的一些項(xiàng)目建議不要使用這個(gè)框架,因?yàn)榭赡軙?huì)導(dǎo)致項(xiàng)目開發(fā)中應(yīng)用程序超支的情況,(一般一個(gè)應(yīng)用程序最多支持65536個(gè)方法)如果超出了就會(huì)導(dǎo)致打包成的apk沒法安裝到手機(jī)中使用。
下載下來的jar包:
配置方法:
1. 將androidannotations-api-3.3.1.jar放入libs目錄中
如圖:
2. 在項(xiàng)目中新建一個(gè)compile-libs文件夾,并將androidannotations-3.3.1.jar包c(diǎn)opy到該文件夾中
如圖:
3. 右鍵項(xiàng)目–》properties
4. 選擇Java Compiler項(xiàng),將level設(shè)置為1.6
如圖:
5. 將Annotations Processin項(xiàng)中的第一項(xiàng)勾上
如圖:
6.將Factory Path項(xiàng)的第一項(xiàng)勾上,并且點(diǎn)擊Add JARs按鈕
如圖:
7. 找到該項(xiàng)目之前創(chuàng)建的compile-libs文件中添加的jar包,OK
如圖:
8. 配置完成,可以在項(xiàng)目中測(cè)試一下配置是否成功,出現(xiàn)如下圖所示可用的注解,說明已經(jīng)配置成功,可以愉快的敲代碼了。
如圖:
AndroidAnnotations框架的使用方法:
1.當(dāng)使用@EActivity、@EService這些類注解標(biāo)簽的時(shí)候,要注意在 Manifest.xml文件中配置(類名+下劃線)的name。
如圖:
2.下面舉幾個(gè)簡(jiǎn)單的例子說明一下AndroidAnnotations框架中注解標(biāo)簽的使用的方法:
如圖:
這里的@Click注解標(biāo)簽要注意在聲明玩該button1之后才能正確使用。
3.一些其他注解標(biāo)簽的使用方法其實(shí)都差不多,使用都非常簡(jiǎn)單,具體可以查看官方網(wǎng)站(https://github.com/excilys/androidannotations/wiki/AvailableAnnotations)中列出了所有的標(biāo)簽的使用方法進(jìn)行學(xué)習(xí)使用。
4.在使用注解標(biāo)簽中需要注意的一些常見的問題:
編譯錯(cuò)誤:
1.要注冊(cè)同名Activity_(原因在下面進(jìn)行具體的解釋)
2.View的修飾符是不能使用private修飾(原因在下面進(jìn)行具體的解釋)
3.用注解注釋的方法是不能使用private修飾的方法(原因在下面進(jìn)行具體的解釋)
AndoridAnnotations框架的原理:
其實(shí)使用注解標(biāo)簽并不是java編譯器就識(shí)別這些注解標(biāo)簽,只不過AndroidAnnotations框架通過注解標(biāo)簽幫我們自動(dòng)生成了那些沒什么技術(shù)含量的代碼,標(biāo)簽本身并不能做什么事情,只不過標(biāo)簽背后通過代碼進(jìn)行了處理。
一.生成代碼的分析
其實(shí)我們可以看到該框架自動(dòng)生成的代碼,方法:
從這些自動(dòng)生成的代碼就可以懂得了前邊在使用中注意的原因:
1.自動(dòng)生成的類名中就是:自己創(chuàng)建的Activity類名+下劃線構(gòu)成的。所以在Manifest.xml文件中要將name改成加下劃線的形式的名稱。
2.View的修飾符和用注解注釋的方法是不能使用private的原因是:如果使用了private來修飾,那么其他的類就沒法使用這些屬性和方法,所以Annotations框架就沒法自動(dòng)生成相應(yīng)的代碼了。
如果要了解Annotations框架是如何自動(dòng)生成代碼的:
1.要下載Annotations框架的源碼地址:https://github.com/excilys/androidannotations
2.分析MainActivity_中主要的三個(gè)類:
如圖:
打開路徑:E:\源碼包\androidannotations-develop\AndroidAnnotations\androidannotations-api\src\main\java\org\androidannotations\api\view
二、java注解的處理:
1.分為兩種方式:
1.反射處理注解
2.編譯器編譯時(shí)處理注解(Annotations使用了這種方式):
使用到兩個(gè)重要的東西:
1.AbstractProcessor類(用來獲取注解標(biāo)簽,然后對(duì)相應(yīng)的標(biāo)簽進(jìn)行相應(yīng)的處理)
2.javax.lang.model.element包(對(duì)注解標(biāo)簽的描述,說明哪些是類上邊配置的注解標(biāo)簽,哪些是成員變量上配置的注解標(biāo)簽,哪些是方法上邊配置的注解標(biāo)簽)
注解的核心AbstractProcessor類的源碼打開地址:
E:\源碼包\androidannotations-develop\AndroidAnnotations\androidannotations\src\main\java\org\androidannotations下的AndroidAnnotationProcessor類
2.這兩種注解處理方式的區(qū)別:通過反射處理注解會(huì)影響效率,但是使用編譯器編譯時(shí)處理注解這種方式程序處理的性能是不會(huì)收到影響的,跟調(diào)用正常的方法的處理效率是相同的。
三、生成代碼
Annotations使用了第三方的Apache子項(xiàng)目Jcodemodel,官網(wǎng)地址:https://codemodel.java.net
eg:Activity中是怎樣自動(dòng)生成代碼的:首先在Annotations的源碼中找到EActivityHolder這個(gè)類,地址:E:\源碼包\androidannotations-develop\AndroidAnnotations\androidannotations\src\main\java\org\androidannotations\holder下的EActivityHolder類
總結(jié)
以上是生活随笔為你收集整理的AndroidAnnotations开发框架在Eclipse中的搭建和使用以及框架实现的原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVN版本管理工具使用中常见的代码提交冲
- 下一篇: Android学习资源网站