作為一個移動應用開發者,随着需求的日益增多,Android項目的越來越臃腫,代碼量越來越大,
現在冷靜下來回頭看看我們的代碼,有多少代碼跟業務邏輯沒什麼關系的
是以,本人自不量力,在github上建了個開源項目,希望能一定程度地簡化我的代碼-。-
現在第一個版本完成,希望有興趣的朋友能加入一起完善。
本人才疏學淺,代碼中有寫得不妥的地方希望大家不吝賜教哈!
github位址:
<a href="https://github.com/wangjiegulu/androidInject">https://github.com/wangjiegulu/androidInject</a>
androidInject_1.0.jar:
<a href="http://pan.baidu.com/s/1rcSiy">http://pan.baidu.com/s/1rcSiy</a>
主要的思想就是通過注解的方式,把我們要做的事情直接注入進來給我們,“不是我去調用對象,而是對象自己來找我”
現在剛寫完了10個注解:
@AINoTitle, @AIFullScreen, @AILayout, @AIView, @AIBean, @AISystemService, @AIClick, @AIItemClick, @AILongClick, @AIItemLongClick
使用方法如下:
Activity中使用:

View Code
Fragment中使用:

具體注解如下:
@AINoTitle: 類注解, 隻适用于Activity(需繼承于AIActivity), 設定Activity不顯示Title
@AIFullScreen: 類注解, 隻适用于Activity(需繼承于AIActivity), 設定Activity全屏
@AILayout: 類注解
value[int]: 用于設定該Activity的布局 ---- setContentView(resId);
@AIView: 屬性注解
id[int]: 用于綁定控件 ---- findViewById(resId);(default identifier[R.id.{field name}] if did not set id)
clickMethod[String]: 用于設定控件點選事件的回調方法, 可選, 方法名稱任意, 參數必須為(View view)
longClickMethod[String]: 用于設定控件長按的回調方法, 可選, 方法名任意, 參數必須為(View view)
itemClickMethod[String]: 用于設定控件item點選的回調方法, 可選, 方法名任意, 參數必須為(AdapterView, View, int, long)
itemLongClickMethod[String]: 用于設定控件item長按的回調方法, 可選, 方法名任意, 參數必須為(AdapterView, View, int, long)
@AIBean: 屬性注解, 為該屬性生成一個對象并注入, 該對象必須有個預設的不帶參數的構造方法
@AISystemService: 屬性注解,為該屬性注入系統服務對象
@AIClick: 方法注解
value[int[], 所要綁定控件的id]: 用于綁定控件點選事件的回調方法, 方法名稱任意, 參數必須為(View view)
@AIItemClick: 方法注解
value[int[], 所要綁定控件的id]: 用于綁定控件item點選事件的回調方法, 方法名稱任意, 參數必須為(AdapterView, View, int, long)
@AILongClick: 方法注解
value[int[], 所要綁定控件的id]: 用于綁定控件長按事件的回調方法, 方法名稱任意, 參數必須為(View view)
@AIItemLongClick: 方法注解
value[int[], 所要綁定控件的id]: 用于綁定控件item長按事件的回調方法, 方法名稱任意, 參數必須為(AdapterView, View, int, long)