成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

AndroidApt之ActivityRoute的示例-創(chuàng)新互聯(lián)

前言

成都創(chuàng)新互聯(lián)公司-云計(jì)算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、服務(wù)器托管、等保安全、私有云建設(shè)等企業(yè)級(jí)互聯(lián)網(wǎng)基礎(chǔ)服務(wù),咨詢電話:13518219792

什么是Apt


APT從原理上講是一個(gè)編譯期的注解處理工具(Annotation Processing Tool)。一些主流的三方庫(kù)(ButterKnife,Glide)都用到了這個(gè)技術(shù)來(lái)生成代碼。

Apt有什么好處

  1. 自動(dòng)生成模板代碼,提高了開發(fā)效率
  2. 編譯期對(duì)注解的處理,相對(duì)于運(yùn)行期對(duì)注解的處理,性能上要好的多。

Gradle腳本中的apt和annotationProcessor


這兩個(gè)從廣義上說(shuō)都是編譯期的注解處理工具。只不過(guò)android-apt(其實(shí)是一個(gè)gradle插件,apt是插件命令)是早期的github的一個(gè)開源項(xiàng)目,annotationProcessor是gradle build tools 2.2之后自帶的編譯期注解工具(官方支持的,可替代開源的gradle插件android-apt)。android-apt的作者已經(jīng)發(fā)表聲明表示Android Studio插件已經(jīng)支持annotationProcessor,并且會(huì)警告和阻止使用android-apt。總的來(lái)說(shuō),看你的gradle build tools的版本,低版本用android-apt(需要引入插件),高版本用annotationProcessor(無(wú)需引入插件)

代碼設(shè)計(jì)

需求分析


這里將route模塊分成三部分(一個(gè)android library,兩個(gè)java library)
1、router-annotation(java library)


這里java工程里面只放注解的聲明類。這里只實(shí)現(xiàn)了兩個(gè)注解RouterActivity、RouterField。


2、router-compiler (java library)


這個(gè)工程是編譯期依賴的工程,作用是編譯期掃描代碼,根據(jù)RouterActivity、RouterField這兩個(gè)注解的使用,生成相關(guān)代碼。這里需要講下如何掃描代碼并且生成代碼的。這部分功能的實(shí)現(xiàn)主要依賴兩個(gè)庫(kù):Google的auto-service(掃描代碼),Squareup的javapoet(生成代碼)


3、router (android library)


主要邏輯代碼。在這個(gè)模塊中會(huì)定義一些功能類和接口。router-compiler模塊可以根據(jù)這些接口和功能類generate邏輯代碼。需要注意的是router-compiler是不需要依賴router的,router-compiler是根據(jù)包名+類名的方式獲取類的。


代碼實(shí)現(xiàn)

router-annotation

RouterActivity是一個(gè)注解,用此注解修飾的Activity根據(jù)指定的路由地址,會(huì)自動(dòng)添加到路由表中,當(dāng)系統(tǒng)掛載了路由表之后,就可根據(jù)指定的路由地址來(lái)訪問(wèn)特定的Activity了。代碼如下:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface RouterActivity {
  String[] value();
}

本文題目:AndroidApt之ActivityRoute的示例-創(chuàng)新互聯(lián)
路徑分享:http://jinyejixie.com/article10/gihdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站關(guān)鍵詞優(yōu)化、企業(yè)建站網(wǎng)站收錄、品牌網(wǎng)站建設(shè)服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)
饶河县| 柳河县| 清镇市| 墨江| 保靖县| 环江| 左权县| 玛沁县| 浦江县| 虹口区| 海宁市| 英超| 屏山县| 保靖县| 辉南县| 闻喜县| 彭山县| 黑山县| 汉源县| 西藏| 广州市| 华池县| 信宜市| 太白县| 含山县| 松溪县| 兴山县| 招远市| 四会市| 沁阳市| 宜昌市| 凤城市| 康平县| 阳原县| 清河县| 乐都县| 荔波县| 山东省| 衢州市| 元谋县| 潜江市|