bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

AndroidApt之ActivityRoute的示例-創新互聯

前言

成都創新互聯公司-云計算及IDC服務提供商,涵蓋公有云、IDC機房租用、服務器托管、等保安全、私有云建設等企業級互聯網基礎服務,咨詢電話:13518219792

什么是Apt


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

Apt有什么好處

  1. 自動生成模板代碼,提高了開發效率
  2. 編譯期對注解的處理,相對于運行期對注解的處理,性能上要好的多。

Gradle腳本中的apt和annotationProcessor


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

代碼設計

需求分析


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


這里java工程里面只放注解的聲明類。這里只實現了兩個注解RouterActivity、RouterField。


2、router-compiler (java library)


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


3、router (android library)


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


代碼實現

router-annotation

RouterActivity是一個注解,用此注解修飾的Activity根據指定的路由地址,會自動添加到路由表中,當系統掛載了路由表之后,就可根據指定的路由地址來訪問特定的Activity了。代碼如下:

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

本文題目:AndroidApt之ActivityRoute的示例-創新互聯
路徑分享:http://vcdvsql.cn/article10/gihdo.html

成都網站建設公司_創新互聯,為您提供靜態網站關鍵詞優化企業建站網站收錄品牌網站建設服務器托管

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

營銷型網站建設