将现有框架封装进module层
新建一个空项目
引入框架
在主module(app)的build.gradle中引入开源框架
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
//注解框架需要插件
def AAVersion = '3.2'
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
//ok网络框架
compile files('libs/okhttp-2.5.0.jar')
//同上
compile files('libs/okio-1.6.0.jar')
//gson
compile 'com.google.code.gson:gson:2.2.4'
//图片框架
compile 'com.github.bumptech.glide:glide:3.4.+'
//下拉列表框架
compile 'com.android.support:recyclerview-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:support-v4:23.3.0'
//autolayout
compile 'com.zhy:autolayout:1.4.3'
}
创建项目结构
1. 适配器包
2. 自定义view
3. dialogFragment封装包
3. okhttp框架封装包
4. 工具包
每个包分别导入代码
导入适配器代码
由于不涉及资源文件,注意把import中的包名个别修改就好
导入自定义view
目前只加入一个每个项目中通用的圆形图标控件CircleImageView,需要在资源包的attrs.xml中添加代码
<declare-styleable name="CircleImageView">
<attr name="civ_border_width" format="dimension" />
<attr name="civ_border_color" format="color" />
<attr name="civ_border_overlay" format="boolean" />
<attr name="civ_fill_color" format="color" />
</declare-styleable>
然后修改CircleImgeView的R调用
导入基本工具包
1. log管理类
2. 网络管理类
3. meta-data数据类
4. Toast管理类
5. 文字管理类
6. UI相关类
基本工具包直接复制粘贴,无耦合
后面考虑如何降低耦合加入版本升级和头像上传工具类
导入dialog
1.导入代码
1. DialogFragment抽象类
2. Dialog工厂类
3. 确认对话框
4. 加载对话框
2.在资源包中的styles.xml中添加
<!-- 自定义弹出对话框 -->
<style name="dialog" parent="android:style/Theme.Dialog">
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
</style>
3.在资源包中的layout中添加custom_dialog.xml和custom_loading_paogressbar.xml文件以及文件相关的图片颜色资源
在这里顺便把colors.xml里面的颜色值都扔上去
导入okhttp封装代码
有大量import代码需要修改
导入BaseActivity和BaseFragment
类里面只保留最基本的结构
项目基本框架完成
还需要在build中把当前module该为library状态
打开appmodule的build.grade
apply plugin: 'com.android.application'
改为
apply plugin: 'com.android.library'
并去掉defaultConfig中的applicationId
后续操作
1. 项目实践应用
2. 添加常用第三方框架,例如极光推送、百度统计、高德地图
3. 网络自有封装包考虑官方retrofit