开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))

时间:2021-08-24 05:22:54

本篇文章项目github地址:MVPCommon
本博客原地址:http://www.jianshu.com/p/d0fee882a0fe
开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))
在好友的推荐下,准备开始在简书发表博客。停止在csdn那边更新博客。也会将之前在那边写的不错的博客做一个搬家。
在写这个系列文章之前,就希望能从成熟的开发框架中引用和编辑的方式来构建一个android应用端的开发框架。这里的开发框架的意思是,搭建出一个以后的项目都可以应用的library库。

(1)本博客系列文章目的:

1.1 这里面包含了大多数app都需要的一些操作,以后开发的app都可以使用。
1.2 利用这里面的思路可以进行自己公司和团队的android客户端框架的搭建

(2)搭建框架的思路:

2.1 利用成熟的开源库,开源jar包作为项目的依赖。
2.2 将成熟的开源库引入本地库文件,并作出适当的修改。(有时候为了满足项目需求,必须对开源项目作出一定的自定义修改)
2.3 利用以往项目经验对分模块分类别封装出一些父类,完成公共操作,后续开发只需要继承这些父类就可以完成大部分操作,并且可以做出适当修改。
2.4 为一些常用操作提供模板代码,可以作为后续开发的参考
进入正题:

(3)项目目录结构:

开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))可以看出整个工程分为四个部分。没看懂上面第一张图片的意思?那么换一种方式可能更好理解,请继续往下看。android studio的目录结构中,我们需要添加项目依赖,依赖开源库或者依赖我们自己写的库。具体的依赖关系是如下面两张图片:
3.1 library依赖各种开源jar包,开源库,可自定义修改的开源库等:
开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))
可以看到我们直接将所有的复杂的开源库jar包,以及可自定义修改的开源库都放到了library的依赖中,分别对应上图的1,3, 2。自己的项目(可以是我们以后编辑的任何的项目)都可以使用library了。如
3.2 app(具体的项目)依赖框架library
开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))这样以后我们依赖的什么v4,v7还是网络上的无论各种网络请求,还是图片加载,都放在library中。我们也只需要整理好library。在后面的项目开发中将会省心很多。

(4)如何编辑library里面的框架内容:

4.1 对于开源库,我们可以通过library下面的gradle文件进行修改,以 compile ‘XXX.xxx.xxx’ 这种形势,开源库里面的内容不可更改,开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))当然我们也可以在android studio中直接进行引入,也可以按照下图的步骤123进行添加:
开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))
4.2 对于开源jar包,就直接放在library-libs文件夹下了。同样支持gradle文件和project structure中编辑的形式。开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))
4.3 对于可自定义修改的开源库。这里直接上github下载最新版本的各种开源库,添加到ThirdPart 文件夹中,同样支持上面的两种编辑方式。开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))

(5) android studio注意事项:

5.1 使用本地jar没能编译的问题在AS中使用本地jar非常简单,只需要将jar文件放到libs目录下,然后点下工具栏中的Sync Project with Gradle Files图标即可。刚放到libs目录下,尚未编译
开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))按下工具栏中的Sync Project with Gradle Files图标,同步项目
开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))编译好之后如下图所示:开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))有没有正确编译的标志就是有没有出现三角箭头
5.2 怎么让一个module成为library module的问题从github上面复制的项目过来可能不会有左边那个带有三个柱形图的小符号,而是普通文件夹的形式。所以需要做出两个配置,看下面两张图片开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))(在setting.gradle 中进行如图的配置)
开篇介绍和工程目录结构-(从零开始搭建android框架系列(1))(在每个开源库的library中的gradle文件中,进行配置)apply plugin参数的值是com.android.application,就说明这是个app。如果apply plugin参数的值是com.android.library,就说明这是个library。
5.3 关于maven库,jar包,开源包,aar的区别。
请参考这篇文章,点击这里好了,项目的目录结构就介绍到这里,在这里再返回去看一下第一张图片,是不是瞬间明朗很多了。