android应用开发框架+即时通讯IM app开发(1)-前言和工程目录结构

写这个博客的目的是对前面文章从框架到完整项目搭建,实战项目《约个球》系列文章的补充和完善。前面这个系列的文章处理的文章存在很多不足。在这个系列文章中都将进行修改。
在写那个系列文章之前,就希望能从成熟的开发框架中引用和编辑的方式来构建一个android应用端的开发框架。这里的开发框架的意思是,搭建出一个以后的项目都可以应用的library库。

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

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

(2)搭建框架的思路:

1.利用成熟的开源库,开源jar包作为项目的依赖。
2.将成熟的开源库引入本地库文件,并作出适当的修改。
3.利用以往项目经验对分模块分类别封装出一些父类,完成公共操作,后续开发只需要继承这些父类就可以完成大部分操作,并且可以做出适当修改。
4.为一些常用操作提供模板代码,可以作为后续开发的参考
进入正题:

(3)项目目录结构:

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

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

1 对于开源库,我们可以通过library下面的gradle文件进行修改,
以 compile ‘XXX.xxx.xxx’ 这种形势,开源库里面的内容不可更改,
android应用开发框架+即时通讯IM app开发(1)-前言和工程目录结构_第4张图片
当然我们也可以在android studio中直接进行引入,也可以按照下图的步骤123进行添加:
android应用开发框架+即时通讯IM app开发(1)-前言和工程目录结构_第5张图片
2 对于开源jar包,就直接放在library-libs文件夹下了。同样支持gradle文件和project structure中编辑的形式。
android应用开发框架+即时通讯IM app开发(1)-前言和工程目录结构_第6张图片
3 对于可编辑的开源库。
这里直接上github下载最新版本的各种开源库,添加到ThirdPart 文件夹中,同样支持上面的两种编辑方式。
android应用开发框架+即时通讯IM app开发(1)-前言和工程目录结构_第7张图片

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

你可能感兴趣的:(app开发系列)