android mvp快速创建,学习MVPArms历程之Android Studio快速创建ArmsComponent组件化项目
一、前言
继JessYan大神推出MVPArms项目框架后,他的又一杰作ArmsComponent组件化项目诞生了,该项目仍然以MVPArms框架为基础,把不同的功能模块拆分成不同的组件,然后通过一个宿主模块将所有功能模块组装在一起,形成一个app应用,这个思路真的是太棒了,我决心继续学习一下!
二、学习历程
1、准备工作
1)准备工作,将大神提供的"一键搭建 MVPArmsModule模版",保存到AndroidStudio Module模版目录下面,具体方法点击链接查看:https://github.com/JessYanCoding/MVPArms-Module-Template
2)准备工作,将大神提供的"一键搭建 MVPArmsPage模版",保存到AndroidStudio Activity模版目录下面,具体方法请点击链接查看:https://github.com/JessYanCoding/MVPArmsTemplate
*注意:以上两步操作完成之后,要重启一下AS
3)准备工作,将大神提供的“MVPArms 官方快速组件化方案”源码下载下来,在我创建新项目时会用到,下载地址请点击链接查看:https://github.com/JessYanCoding/ArmsComponent
2、解压ArmsComponent源码的压缩包,并重名已解压的文件夹名称(不想重命名可忽略此步骤),如下图:
3、使用Android Studio打开该项目(此时项目已经被重命名为文件夹的名称),如下图:
4、将app模块的包名,修改为我们自己的包名,
1)具体方法请看我的另一篇文章:https://www.jianshu.com/p/5f99092f192e,介绍了如何使用android studio 修改包名,更改包名结构,减少层级的具体操作步骤,如下图:
5、添加混淆
6、新建一个Library模块
*这里推荐使用大神提供的"一键搭建 ArmsComponent 快速组件化方案的整体组件架构"来快速创建模块,下载"ArmsComponent-Template",并将其保存到AndroidStudio Module模版目录下面,具体方法点击链接查看:https://github.com/JessYanCoding/ArmsComponent-Template
如果你想通过老方法新建模块,那么请你继续往下看:
7、解决新建Library模块的问题
1)将原有的module-gank模块中的build.gradle文件,覆盖新建的module-contacts的build.gradle(记住:资源名限制符要改成自己的),如下图:
2)在新建的module-contacts中的main文件夹下面新增debug和release两个文件夹,并将原有的module-gank中相应文件夹下的AndroidManifest.xml文件,复制到新建的module-contacts相应文件夹下(记住:包名要改成自己的,删除无用的activity节点),删除新建的module-contacts的原有的AndroidManifest.xml文件,如下图:
3)根据根据原有的module-gank模块中res文件夹下的资源文件,删除不需要的问题,增加需要的文件,如下图:
3)根据原有的module-gank模块中的app包名下的文件,修改新建的module-contacts对应的文件,不需要的文件删除掉,如下图
4)编译一下,此时应该已经编译成功了,如果不通过,请根据提示修改,一般都是资源文件找不到的问题
8、实现宿主调启module-contacts模块中的activity页面
1) 修改项目根目录下的gradle.properties文件中的 isBuildModule=false,如果已经是false请忽略
2)依照原来的app模块,在新建的appmain宿主模块中添加module-contacts模块的调启入口
3)依照module-gank模块,在新建的module-contacts模块中,暴露相关的服务
4)依照module-gank模块,在新建的module-contacts模块中,暴露页面,如果没有页面,请新建页面,如下图:
4)在新建的appmain宿主模块的build.gradle中,增加module-contacts模块的编译配置,如下图:(*注意:该步骤一定不要忘记,否则一直提示路由无法匹配,我就被坑了)
5)编译运行,如果报错,一般是资源文件的问题,根据提示修改即可
9、单独运行module-contacts模块
1) 修改项目根目录下的gradle.properties文件中的 isBuildModule=true
2)设置module-contacts模块中debug目录下的manifest文件,将某个activity为启动页面,如果没有页面需新增页面并设置为启动页面,如果有页面直接设置为app的启动页面即可,如下图:
3)重新编译,估计会报错,根据提示更改,一下即可
android mvp快速创建,学习MVPArms历程之Android Studio快速创建ArmsComponent组件化项目相关推荐
- Android组件化实践2——经典组件化项目架构
Android组件化实践2--经典组件化项目架构 京东的采用aab( Android App bundles)之后的架构图 安居客项目架构演化 参考:https://zhuanlan.zhihu.co ...
- android mvp 利弊,android mvp模式有什么弊端 - 什么是android mvp模式,android mvp模式有什么弊端...
android mvp模式有什么弊端 才开始学习使用MVP时,看到大家说了很多MVP的优点,代码复用,条理清晰等等.不过我改下来发现,MVP在我看来,最大的优点还是代码解耦,逻辑清晰,至于代码复用,暂 ...
- 什么是Android逆向?如何学习安卓逆向?Android逆向自学笔记入门到实战
简单地来说,安卓逆向是对已经打包好的APP进行反编译.源码分析了解APP实现逻辑的一门技术.我们可以把安卓安装时用到的APK文件看作一个加密后的压缩包,逆向就是要最大程序地还原出APK打包之前的源码. ...
- android两个项目依赖关系图,关于android:Android组件化项目搭建遇到的问题记录
1. ARouter 的依赖问题 What went wrong: Execution failed for task ':app:kaptDebugKotlin'. A failure occurr ...
- android 组件导出,阳光沙滩-android组件化项目,build生成的文件重复的情况
1.最近弄一个组件化的项目练手.项目第一次run可以跑起来,等我杀死stop项目后,过一段时间在再次run想跑项目,就会报如下错误 这个component_base_back 3.xml文件是第二次r ...
- JAVA的学习心路历程之JDK基础入门(上)
任务需要,需要我学java调用linux下的动态库,于是搜寻java知识更新这篇. 从我上大学起我就听别人说JAVA,不不,应该是初中,那时候流行带键盘的智能手机,里面有好些个游戏都是JAVA写的,可 ...
- visual 创建c语言程序吗,visual studio怎么创建c语言
visual studio创建c语言程序的方法:首先打开VS主程序,选择创建新项目:然后在菜单栏中选择C++:接着进入VS主界面,在右边的解决方案管理器中找到源文件,右键添加,并选择新建项:最后选择添 ...
- 前端学习(2886):如何短时间内实现v-for 组件化设计方案
- android mvp模式例子_关于Android市场这件事,没有饱和的市场只有饱和的思维
前言 早在几年之前,我们就一直在讨论Android程序员已经饱和的这个问题,直到2020年,Android程序员也没有饱和,相反对高级程序员的需求越来越大. 为什么会有Android程序员已经饱和的错 ...
- android module中获取 app_Android组件化架构 - 4. 动态创建
Android 组件化中使用动态创建的作用是解耦: 1. 反射机制 反射有两个作用:1.反编译:.class->.java;2.通过反射机制访问java对象中的属性,方法,构造器等: 实现反射, ...
最新文章
- Windows Server 2003 服务应用大全之DNS服务使用详解
- 【错误记录】Android 文件分享 FileProvider 设置错误
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第1节 异常_8_Throwable类中3个异常处理的方法...
- asp.net验证码图片生成示例
- node中的Stream-Readable和Writeable解读
- 【转】Azure 命令行工具大混战,都是什么,该选哪个?
- “此网站使用的安全性配置已过时,这可能会导致您的信息(例如密码、消息或信用卡卡号)”
- DEEPNOVA 技术荟系列公开课回顾:释放海量数据价值,尽显数据智能之美
- C# 9.0 新功能一览!
- 为避免攻击,研究员把严重的比特币漏洞详情焐了两年
- 发行版,distutils,setuptools和distutils2之间的区别?
- python列表生成式和map效率_Python列表生成式12个小功能,你常用哪几个?
- Log4net PatternLayout 参数
- 【工作技巧】防止电脑睡眠,让鼠标自动周期性的点击屏幕
- 51单片机入门教程(2)——流水灯的实现
- Windows设置自己的程序开机自动启动
- 关于使用 Connect-Busboy 实现文件上传 优化说明
- 【Pytorch】测试单张图片(调用transforms)
- 怎么判断二阶导数是否异号_二阶导数判断凹凸性 二阶导数怎么判断凹凸
- 计算机考研复试之KY122 找出直系亲属(c++)