├── .gitignore
├── AndroidManifest.xml
├── META-INF
└── MANIFEST.MF
├── README.md
├── ant.properties
├── build.gradle
├── build.xml
├── library
├── androidInject_1.0.jar
├── androidInject_1.2.jar
└── androidInject_1.3.jar
├── libs
├── android-support-v4.jar
├── gson-2.3.jar
└── httpmime-4.2.3.jar
├── proguard-project.txt
├── project.properties
├── res
└── values
│ └── strings.xml
├── settings.gradle
└── src
└── com
└── wangjie
└── androidinject
└── annotation
├── annotations
├── base
│ ├── AIBean.java
│ ├── AIChecked.java
│ ├── AIClick.java
│ ├── AIFullScreen.java
│ ├── AIItemClick.java
│ ├── AIItemLongClick.java
│ ├── AILayout.java
│ ├── AILongClick.java
│ ├── AINoTitle.java
│ ├── AISystemService.java
│ └── AIView.java
├── dimens
│ └── AIScreenSize.java
├── mvp
│ └── AIPresenter.java
├── net
│ ├── AIDelete.java
│ ├── AIGet.java
│ ├── AIMapper.java
│ ├── AINetWorker.java
│ ├── AIParam.java
│ ├── AIPost.java
│ └── AIRaw.java
└── orm
│ ├── AIColumn.java
│ ├── AIPrimaryKey.java
│ └── AITable.java
├── cache
├── FieldCache.java
├── MethodCache.java
├── ProcessorCache.java
├── TypeCache.java
└── common
│ ├── Cacheable.java
│ ├── CommonCache.java
│ ├── cached
│ ├── CachedField.java
│ ├── CachedMethod.java
│ ├── CachedPresentFields.java
│ ├── CachedPresentMethods.java
│ └── CachedPresentType.java
│ └── generator
│ ├── CachedAnnotationProcessorGenerator.java
│ ├── CachedGenerator.java
│ ├── CachedPresentFieldsGenerator.java
│ ├── CachedPresentMethodsGenerator.java
│ └── CachedPresentTypeGenerator.java
├── core
├── base
│ ├── AnnotationManager.java
│ ├── ParticularAnnotation.java
│ ├── RealizeAnnotation.java
│ ├── RealizeFieldAnnotation.java
│ ├── RealizeMethodAnnotation.java
│ ├── RealizeTypeAnnotation.java
│ └── process
│ │ ├── AIAnnotationProcessor.java
│ │ ├── field
│ │ ├── AIBeanFieldProcessor.java
│ │ ├── AINetWorkerFieldProcessor.java
│ │ ├── AIPresenterFieldProcessor.java
│ │ ├── AIScreenSizeFieldProcessor.java
│ │ ├── AISystemServiceFieldProcessor.java
│ │ └── AIViewFieldProcessor.java
│ │ ├── method
│ │ ├── AICheckedMethodProcessor.java
│ │ ├── AIClickMethodProcessor.java
│ │ ├── AIItemClickMethodProcessor.java
│ │ ├── AIItemLongClickMethodProcessor.java
│ │ └── AILongClickMethodProcessor.java
│ │ └── type
│ │ ├── AIFullScreenTypeProcessor.java
│ │ ├── AILayoutTypeProcessor.java
│ │ └── AINoTitleTypeProcessor.java
├── net
│ ├── AINetWork.java
│ ├── NetInvoHandler.java
│ ├── RetMessage.java
│ └── SSLSocketFactoryEx.java
└── orm
│ ├── AIDatabaseHelper.java
│ ├── AIDbExecutor.java
│ └── AISqlCase.java
├── exception
├── AIBaseException.java
└── AINoSuchAnnotationProcessorException.java
├── listener
├── OnCheckChangedViewListener.java
├── OnClickViewListener.java
├── OnItemClickViewListener.java
├── OnItemLongClickViewListener.java
└── OnLongClickViewListener.java
├── present
├── AIActionBarActivity.java
├── AIActivity.java
├── AIAppCompatActivity.java
├── AIFragment.java
├── AIPresent.java
├── AISubLayout.java
├── AISupportFragment.java
├── AISupportFragmentActivity.java
└── common
│ ├── AnnoProcessorAlias.java
│ └── CallbackSample.java
└── util
├── AIDbUtil.java
├── AITextUtil.java
├── Params.java
└── SystemServiceUtil.java
/.gitignore:
--------------------------------------------------------------------------------
1 | # built application files
2 | *.apk
3 | *.ap_
4 |
5 | # files for the dex VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # generated files
12 | bin/
13 | gen/
14 |
15 | # Local configuration file (sdk path, etc)
16 | local.properties
17 |
18 | # Eclipse project files
19 | .classpath
20 | .project
21 |
22 | # Proguard folder generated by Eclipse
23 | proguard/
24 |
25 | # Intellij project files
26 | *.iml
27 | *.ipr
28 | *.iws
29 | .idea/
30 |
31 | # User define
32 | out/
33 | proguard_logs/*
34 |
35 | build/
36 | .gradle/
37 |
38 | local.properties
39 |
--------------------------------------------------------------------------------
/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/META-INF/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Manifest-Version: 1.0
2 |
3 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | androidInject
2 | =============
3 |
4 | ###使用注解来简化android开发
(Use annotations inject to simplify the development of android)
5 |
6 | ###注意:
7 | > 重要:需要添加Library[AndroidBucket项目](https://github.com/wangjiegulu/AndroidBucket)的支持(日志、线程、util等)
8 | >
9 | > 使用fragment的注解,需要android-support-v4.jar的支持(以兼容低版本)
10 | >
11 | > 使用网络请求的注解时,如果需要自动返回封装类,则需要[gson.jar](https://code.google.com/p/google-gson/downloads/list)的支持
12 | >
13 | > 使用文件上传的注解,需要[httpmime.jar](http://hc.apache.org/downloads.cgi)的支持
14 |
15 | ###Gadle([Check newest version](http://search.maven.org/#search%7Cga%7C1%7CAndroidInject))
16 | compile 'com.github.wangjiegulu:AndroidInject:x.x.x'
17 | ###Maven([Check newest version](http://search.maven.org/#search%7Cga%7C1%7CAndroidInject))
18 |
19 | com.github.wangjiegulu
20 | AndroidInject
21 | x.x.x
22 |
23 |
24 | ###例子1:Android注解
25 | @AIFullScreen
26 | @AINoTitle
27 | @AILayout(R.layout.main)
28 | public class MainActivity extends AIActivity{
29 |
30 | @AIView(id = R.id.insertBtn, clickMethod = "onClickCallback", longClickMethod = "onLongClickCallback")
31 | private Button insertBtn;
32 |
33 | @AIView(clickMethod = "onClickCallback", longClickMethod = "onLongClickCallback")
34 | private Button queryBtn;
35 |
36 | // @AIView(id = R.id.btn3)
37 | // private Button btn3;
38 |
39 | // @AIView(id = R.id.listView, itemClickMethod = "onItemClickCallback", itemLongClickMethod = "onItemLongClickCallbackForListView")
40 | @AIView(R.id.listView)
41 | private ListView listView;
42 |
43 | @AIBean
44 | private Person person;
45 |
46 | @AISystemService
47 | private AlarmManager alarmManager;
48 | @AISystemService
49 | private LocationManager locationManager;
50 | @AISystemService
51 | private LayoutInflater inflater;
52 | @AIScreenSize
53 | private Point sSize;
54 | @AINetWorker
55 | private PersonWorker personWorker;
56 |
57 | @Override
58 | public void onCreate(Bundle savedInstanceState) {
59 | super.onCreate(savedInstanceState);
60 | List