作为一个单工程撸到底的开发人员,想试着将项目进行组件化改造,说动就动。毕竟技术都是写出来的,看着文章感觉懂了,但是实际开发中还是能遇到各种各样的问题,开始搞起来。
为市中等地区用户提供了全套网页设计制作服务,及市中网站建设行业解决方案。主营业务为成都网站制作、成都网站建设、市中网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
一直使用单工程撸到底,项目越来越大导致出现了不少的问题:
将 一个程序按照其功能做拆分,分成相互独立的模块 ,以便于每个模块只包含与其功能相关的内容,比如 登录模块 、 首页模块 等等。
组件指的是单一的功能组件,如 登录组件 、 视频组件 、 支付组件 等,每个组件都可以以一个单独的 module 开发,并且可以单独抽出来作为 SDK 对外发布使用。可以说往往一个模块包含了一个或多个组件。
组件化基于可重用的目的,将应用拆分成多个独立组件,以 减少耦合 :
组件依赖关系是上层依赖下层,修改频率是上层高于下层。先上一张图:
基础公共模块,最底层的库:
这只是个大概,并不是说必须这样,可以按照自己的方式来。比如:你觉得基础组件比较多导致project里面的项目太多,那么你可以创建一个lib_base,然在lib_base里面再创建其他基础组件即可。
这样尽可能的减少变动项,当然这仅仅是个建议,看个人习惯吧。
因为咱们创建的是一个module,所以在AndridManifest中添加android:exported="true"属性可直接构建一个APK。下面咱们看看如何生成不同的工程类型。
在 AndroidStudio 开发 Android 项目时,使用的是 Gradle 来构建,具体来说使用的是 Android Gradle 插件来构建,Android Gradle 中提供了三种插件,在开发中可以通过配置不同的插件来构建不同的工程。
独立调试 :设置为 Application 插件。
集成调试 :设置为 Library 插件。
isDebug = true 独立调试
根据上面动态配制插件的经验,我们也需要在build.gradle中动态配制ApplicationId 和 AndroidManifest 文件。
有什么不同?咱们一起看看具体内容。
isDebug = true
isDebug = false
当我们需要进行插件版本、依赖库版本升级时,项目多的话改起来很麻烦,这时就需要我们对Gradle配置统一管理。如下:
具体内容
Android 中的界面跳转那是相当简单,但是在组件化开发中,由于不同组件式没有相互依赖的,所以不可以直接访问彼此的类,这时候就没办法通过显式的方式实现了。
所以在这里咱们采取更加灵活的一种方式,使用 Alibaba 开源的 ARouter 来实现。
文档介绍的蛮详细的,感兴趣的可以自己实践一下。这里做个简单的使用。
先在统一的 config.gradl e添加版本等信息
因为所有的功能组件和业务组件都依赖lib_common,那么咱们先从lib_common开始配制
lib_common
其他组件(如collect)
你要跳转的 Activity
这里是用 module_main 的HomeFragment跳转至 module_collect 的CollectActivity界面,两个module中不存在依赖关系。 "/collect/CollectActivity" 在上面已注册就不多描述了。
效果如下:
这里是用 module_main 的MineFragment的Adapter跳转至 module_webview 的WebViewActivity界面,两个module中同样不存在依赖关系。
启动方
这里传了两个参数 url 和 name 到WebViewActivity,下面咱们看看WebViewActivity怎么接收。
接收方
上效果图:
搞定,更多高级玩法可自行探索。
W/ARouter::: ARouter::There is no route match the path
这里出现个小问题,配置注释都好好的,但是发送发无论如何都找不到设置好的Activity。尝试方案:
后来修改Activity名称好了。
界面跳转搞定了,那么数据传递怎么办,我在module_main中使用悬浮窗,但是需要判断这个用户是否已登录,再执行后续逻辑,这个要怎么办?这里我们可以采用 接口 + ARouter 的方式来解决。
在这里可以添加一个 componentbase 模块, 这个模块被所有的组件依赖 。
这里我们通过 module_main组件 中调用 module_login组件 中的方法来获取登录状态这个场景来演示。
lib_common
所有业务组件和功能组件都依赖lib_common,所以咱们直接在lib_common添加依赖即可
module_login
实现接口
运行结果:
本文介绍了组件化、组件分层、解决了组件的独立调试、集成调试、页面跳转、组件通信等。
其实会了这些后你基本可以搭建自己的组件化项目了。其实最大的问题还是分组分层、组件划分。这个就需要根据你的实际情况来设置。
本项目比较糙,后面会慢慢完善。比如添加Gilde、添加MMVK、添加Room等。
项目传送门
第一步,先打开eclipse。打开后的界面如如图所示,学过java的人肯定都熟悉这个编程环境,没学过java的请先去学习java,因为android使用的是java的语法。
点击左上角的filenewandroid application project , 以此开始新建一个android项目。
点击新建后悔出现如下所示的窗口。第一个红框是让你写你应用的名字,就是软件的名字;第二个红框是写这个项目的名字;第三个红框是写java代码包的名字。第四个大的红框是让你选择你要新建的android项目的一些信息,开发的sdk版本和面向的android版本和使用的主题。完成后,点击NEXT。
这个窗口是在询问你是不是创建一个自定义图标的软件,是否要创建activity等。完成后,点击NEXT
这个窗口允许你更换你软件的图标。和其它的一些信息。完成后,点击NEXT
这个窗口让你选择一种你软件activity要使用的样式。完成后,点击NEXT
这个窗口让你输入你想要的activity的名字和你想要的layout的名字。完成后,点击NEXT
好了一切设置好惦记finish后悔出现如下所示的窗口,最左侧是你项目的分层结构等信息,左上角大部分显示的是软件当前默认的layout和操作layout的工具栏等。到此为止,你已经成功的创建了一个android项目。
工具/材料
电脑
android studio
01
从网上下载并安装Android Studio然后打开它。现在,你准备好开始你的第一个Android应用程序!
首先是这个android项目的项目名,在这里进行输入即可
注意,这里我们使用的android studio的版本为2.2
一直下一步,等待一定的时间,这取决于你机器的配置,android studio最为谷歌官方唯一指定的android项目开发ide,具有超高度的功能集合性,同时后面我们会看到android studio采用和eclipse不同的编译方式,即Gradle编译,以及采用云资源模式(服务器全在海外,部分功能需要翻墙才能使用,醉了),所以,不要对其卡慢抱有不满情绪.
02
选择对应的android sdk版本,android像ios一样,也有很多分类版本了,从低到高,还有像android wear(手表), android TV(电视),android auto(车载)等各种版本,选择你要将这个项目跑到什么设备上边去,以及系统的版本,这里我们选择android手机项目,版本可以选择4.0,目前4.0基本就是最低版本,当然微信,qq,支付宝之类的都是一直支持到2.3版本的
03
这里是android项目的布局文件,目前因为我们这个项目只有一个主窗口,这个布局文件就是属于主窗口的,这里记录的这个窗口中有哪些控件,以及这些控件的位置和排列模式,像TextView就是一个文本控件,而RelativeLayout则是布局控件,用于控制控件的布局。
04
这就是穿着中的gradle编译的编译配置文件了,里面包含了编译中的各种配置选项,对于从eclipse中转过来的人来说,要搞懂这里的各种配置可是要费不少脑子的哈!
05
这是android项目的清单文件,这里包含了这个应用程序的图标设置,以及activity等,activity是android四大组件之一,可以直观理解为我们看到的一个个的窗体,凡是需要显示出来的activity,都需要在这里注册写明
06
这里是窗口的java主类,android的主要编程语言是java语言,当然也有支持c++编程的ndk,以及现在很火的前端脚本编写android项目的方法,这个类表示主窗口,OnCreat()方法会在这个界面被启动的时候执行。
07
点击这里即可运行这个由系统为我们编写好android项目了,没错,这已经是一个完成的android项目,只是比较简单而已,但主要部件都不少。
08
我们启动的应用就是跑在这里的模拟器当中的,我们可以创建自己的模拟器,自由的对模拟器的配置进行自定义,包括模拟器的系统版本
09
完美,我们的第一个应用程序已经跑起来了,虽然只是显示了一个Hello World文本,不过怎们样都算完成了一个android应用程序,后续只要对其进行打包签名,混淆加密后即可发布到应用市场供别人下载使用.
网页名称:android开发的项目,android开发项目实战
网页网址:https://www.cdcxhl.com/article38/dssoppp.html
成都网站建设公司_创新互联,为您提供微信公众号、品牌网站制作、网站制作、微信小程序、网站维护、外贸建站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联