Android从零撸美团(一) - 统一管理 Gradle 依赖 提取到单独文件中

【Android从零撸美团一】统一管理 Gradle 依赖 提取到单独文件中 前言 从今天开始带大家一起从零开始撸一个美团Android版App。 【从零撸美团】这个专题将持续更新,用以详细记录分享开发过程,欢迎关注。 源码地址:https://github.com/cachecats/LikeMeiTuan 专题的第一篇文章本来想按惯例讲项目介绍、整体架构、代码规范之类的。但今天有点躁动,不想讲那么正经深奥的东西,定的最低计划又是周三和周日每周两更,所以就暂且讲构建项目... 阅读详情

butterKnifeVersion = “8.8.1”
bannerVersion = “1.4.10”
loggerVersion = “2.1.1”
baseRecyclerViewAdapterHelperVersion = “2.9.30”
dbflowVersion = “4.2.4”

app = [
recyclerView : “com.android.support:recyclerview-v7:recyclerViewVersion",rxjava:"io.reactivex.rxjava2:rxjava:{recyclerViewVersion}", rxjava : "io.reactivex.rxjava2:rxjava:recyclerViewVersion",rxjava:"io.reactivex.rxjava2:rxjava:{rxjava2Version}”,
rxandroid : “io.reactivex.rxjava2:rxandroid:rxandroidVersion",dagger:"com.google.dagger:dagger:{rxandroidVersion}", dagger : "com.google.dagger:dagger:rxandroidVersion",dagger:"com.google.dagger:dagger:{daggerVersion}”,
daggerCompiler : “com.google.dagger:dagger-compiler:daggerVersion",glide:"com.github∗∗《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源徽信搜索公众号【编程进阶路】∗∗.bumptech.glide:glide:{daggerVersion}", glide : "com.github **《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】** .bumptech.glide:glide:daggerVersion",glide:"com.github∗∗《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源徽信搜索公众号【编程进阶路】∗∗.bumptech.glide:glide:{glideVersion}”,
glideCompiler : “com.github.bumptech.glide:compiler:glideVersion",buterKnife:"com.jakewharton:butterknife:{glideVersion}", buterKnife : "com.jakewharton:butterknife:glideVersion",buterKnife:"com.jakewharton:butterknife:{butterKnifeVersion}”,
butterKnifeCompiler : “com.jakewharton:butterknife-compiler:butterKnifeVersion",banner:"com.youth.banner:banner:{butterKnifeVersion}", banner : "com.youth.banner:banner:butterKnifeVersion",banner:"com.youth.banner:banner:{bannerVersion}”,
logger : “com.orhanobut:logger:loggerVersion",baseRecyclerViewAdapterHelper:"com.github.CymChad:BaseRecyclerViewAdapterHelper:{loggerVersion}", baseRecyclerViewAdapterHelper: "com.github.CymChad:BaseRecyclerViewAdapterHelper:loggerVersion",baseRecyclerViewAdapterHelper:"com.github.CymChad:BaseRecyclerViewAdapterHelper:{baseRecyclerViewAdapterHelperVersion}”,
dbflowProcessor : “com.github.Raizlabs.DBFlow:dbflow-processor:dbflowVersion",dbflowCore:"com.github.Raizlabs.DBFlow:dbflow−core:{dbflowVersion}", dbflowCore : "com.github.Raizlabs.DBFlow:dbflow-core:dbflowVersion",dbflowCore:"com.github.Raizlabs.DBFlow:dbflow−core:{dbflowVersion}”,
dbflow : “com.github.Raizlabs.DBFlow:dbflow:dbflowVersion",dbflowRx2:"com.github.Raizlabs.DBFlow:dbflow−rx2:{dbflowVersion}", dbflowRx2 : "com.github.Raizlabs.DBFlow:dbflow-rx2:dbflowVersion",dbflowRx2:"com.github.Raizlabs.DBFlow:dbflow−rx2:{dbflowVersion}”,
]

}

版本号和具体依赖地址也分开了,更加便于管理。 其中除了依赖的地址,所有的变量名都是随便取的。app 对应于项目module app 里的依赖,当然还有 data,domin,common 三个 module 的依赖,声明方式跟 app 一样,只是我还没用到所以没写。

2、声明创建的文件

在项目的 build.gradle 第一行加上这行代码: apply from: "buildsystem/dependences.gradle"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QMIvcxti-1651549340678)(https://user-gold-cdn.xitu.io/2018/11/3/166d7deec3c3dafb?imageView2/0/w/1280/h/960/ignore-error/1)]

声明之后即可在各个 module 中的 build.gradle 中愉快的引用啦。

3、在具体位置引用

打开 app 下的 build.gradle ,在需要用到的地方先声明一个变量:

def appDependence = rootProject.ext.app

rootProject 是什么意思我还不太明白,猜测应该是取到项目的根目录。 还记得 dependences.gradle 文件最外层是 ext 节点吗? rootProject.ext 相当于取到了我们提取文件的根节点,rootProject.ext.app 即取到了 app 节点声明的数组。然后再将它赋值给 appDependence 变量。

接下来就可以放心使用啦

implementation appDependence.recyclerView
implementation appDependence.rxjava

贴出 app/build.gradle 代码:

apply plugin: ‘com.android.application’

android {
compileSdkVersion rootProject.ext.androidCompileSdkVersion
buildToolsVersion rootProject.ext.androidBuildToolsVersion
defaultConfig {
applicationId “com.cachecats.meituan”
minSdkVersion rootProject.ext.androidMinSdkVersion
targetSdkVersion rootProject.ext.androidTargetSdkVersion
versionCode 1
versionName “1.0”
testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner”
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
}

lintOptions {
abortOnError false
}

//支持Java8特性
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}

dependencies {

def appDependence = rootProject.ext.app

implementation project(‘:common’)
implementation project(‘:data’)
implementation project(‘:domin’)
implementation fileTree(include: [‘*.jar’], dir: ‘libs’)
implementation ‘com.android.support:appcompat-v7:27.0.2’
implementation ‘com.android.support.constraint:constraint-layout:1.0.2’
testImplementation ‘junit:junit:4.12’
androidTestImplementation ‘com.android.support.test🏃1.0.1’
androidTestImplementation ‘com.android.support.test.espresso:espresso-core:3.0.1’

//denpendence
implementation appDependence.recyclerView
implementation appDependence.rxjava
implementation appDependence.rxandroid
implementation appDependence.dagger
annotationProcessor appDependence.daggerCompiler
implementation appDependence.glide
annotationProcessor appDependence.glideCompiler
implementation appDependence.buterKnife
annotationProcessor appDependence.butterKnifeCompiler
implementation appDependence.banner
implementation appDependence.logger
implementation appDependence.baseRecyclerViewAdapterHelper
implementation appDependence.dbflowCore
implementation appDependence.dbflowRx2
implementation appDependence.dbflow
annotationProcessor appDependence.dbflowProcessor
entation appDependence.dbflowRx2
implementation appDependence.dbflow
annotationProcessor appDependence.dbflowProcessor

Android组件化开发 阅读详情

相关推荐

Android技术深度探索:架构演进、性能优化与前沿实践

美团App研发团队招聘Android开发工程师,专注于客户端架构优化和用户体验提升。岗位职责包括基础设施搭建、架构设计、技术路线规划等。要求精通Android开发、设计模式、性能优化和插件化技术,优先考虑有开源贡献或跨端经验的候选人。该职位提供参与亿级用户产品开发、提升行业开发效率的机会,可与顶尖技术团队合作。文章还系统探讨了Android架构演进、性能优化、Gradle编译、动态化技术等核心内容,展示了美团在移动开发领域的技术深度和实践经验。

郑伟强dev的专栏 126

DBFlow(4.2)新版使用

DBFlow新版使用 一、DBFlow4.2.4介绍 DBFlow是一个基于AnnotationProcessing(注解处理器)的ORM框架。此框架设计为了速度、性能和可用性。消除了大量死板的数据库代码,取而代之的是强大而又简介的API接口。 二、特性: 1、无缝支持多个数据库; 2、使用annotation processing提高速度; 3、ModelCon...

weixin_30362083的博客 778

知识图谱-Neo4j-开始构建知识图谱-01

关系(Relationships):连接两个节点,具有方向(→ 或 ←)和类型(Type),可附加属性。 属性(Properties):键值对,存储节点或关系的详细信息(如 , )。 (2) Cypher 查询语言 直观语法:通过模式匹配直接描述图结构。 高效遍历:支持复杂关系路径查询(如最短路径、模式匹配)。 3. 核心优势 (1) 原生图存储 物理存储优化:数据以图结构直接存储,避免传统数据库的“表连接”开销。 高效遍历:通过指针直接访问相邻节点,时间复杂度接近 O(1)。 (2) 高性

寓教于乐。教己助人 1万+

Android中数据库操作框架DBFlow介绍与使用

首先添加依赖: annotationProcessor 'com.github.Raizlabs.DBFlow:dbflow-processor:4.2.4' compile 'com.github.Raizlabs.DBFlow:dbflow-core:4.2.4' compile 'com.github.Raizlabs.DBFlow:dbflow:4.2.4' 需要创建一

MG_ZXC的专栏 1404

散户逆袭神器:用通达信DIY指数发现下一个光伏储能(附龙头股筛选模板)

本文详细介绍了如何利用通达信软件的自定义指数功能,构建个人专属的行业监控工具,以发现类似光伏储能这样的潜力赛道。文章提供了从零开始的指数编制步骤、核心的龙头股筛选模板,以及五个关键的数据校验技巧,帮助散户投资者实现机构级的行业分析与机会挖掘,有效提升投资决策能力。

w3x4y的博客 483

多相机标定与单应变换:用OpenCV实现BEV俯视全景图

多路监控画面分散在不同屏幕,难以快速理解全局空间关系。通过相机标定与畸变校正,利用单应矩阵将各视角图像投影到统一的地面坐标系,即可合成BEV鸟瞰全景图。该技术是车载360°环视系统和自动驾驶BEV感知的雏形,也适用于场地安防与移动机器人导航。基于Python+OpenCV的四路相机实现,完整覆盖标定、投影变换、多路羽化融合与实时优化,为多视角拼接和俯视全景图项目提供可复现的工程参考。

weixin_29056865的博客 244

dbflow android,我喜欢 Android中好用又实惠的DBFlow

引入DBflow库1 添加仓库托管地址allprojects{repositories{google()jcenter()maven{url"https://jitpack.io"}//DBFlow}}2 在moudel的build.gradle中添加#定义DBFlow版本defdbflow_version="4.2.4"#androidstudio3.1版本compile...

weixin_32659481的博客 379

工业机器人抓取目标检测与抓取姿态估计系统:基于YOLOv12与Cornell Grasping Dataset

工业机器人抓取是自动化生产中的核心环节,而精确的目标检测和抓取姿态估计是实现高效抓取的关键。本文将详细介绍如何构建一个完整的工业机器人抓取系统,该系统结合了最新的YOLOv12目标检测算法和Cornell Grasping Dataset的抓取姿态估计,并提供了用户友好的UI界面。本文详细介绍了一个完整的工业机器人抓取系统,该系统结合了YOLOv12目标检测和基于Cornell Grasping Dataset的抓取姿态估计。我们将使用PyQt5构建一个用户友好的界面,集成目标检测和抓取姿态估计功能。

YOLO 574

DBFlow使用指南

DBFlow是一个强大且高效的Android数据库框架,由Raizlabs开发并维护。它采用了类型安全的方式以及强大的SQL语句生成功能,大大简化了Android应用中的数据库操作流程。DBFlow通过注解处理器在编译时生成必要的数据访问对象(DAOs),从而减少运行时错误,提升开发效率。它的设计初衷是为了提供一个更简洁、直观的方式来处理SQLite数据库。 ## 项目快速启动 ### 添加依...

gitblog_00548的博客 559

YOLOv11涨点改进 | Neck改进篇 | YOLOv11引入 BiFPN双向特征金字塔网络,显著提升了多尺度特征融合效率

本文介绍了基于BiFPN特征融合模块优化的YOLOv11目标检测模型。BiFPN通过双向跨尺度连接和加权特征融合机制,显著提升了多尺度特征融合效率。该方法在COCO数据集上实现了55.1AP的检测精度,同时大幅降低计算成本(减少13-42倍FLOPs)。文章详细解析了BiFPN模块结构、核心代码实现方法,并提供了YOLOv11-BiFPN配置文件的修改指导,为计算机视觉领域提供了一种高效的目标检测解决方案。

Ai缝合怪、助力小伙伴高效发论文 714

【银河麒麟服务器操作系统】安装英伟达4090D显卡驱动操作指南

本文详细介绍了在银河麒麟高级服务器操作系统V10SP3-2403-X86版本上安装NVIDIA RTX4090D显卡驱动的完整流程。主要内容包括:准备工作检查、开源驱动禁用、运行级别切换、依赖包安装以及交互式安装过程中的关键选项选择(32位库选Yes、X配置选No)。通过禁用nouveau驱动、重建内核引导等步骤确保驱动安装成功,最后通过nvidia-smi命令验证驱动安装情况。文档提供了操作检查表和安装流程图,帮助用户在银河麒麟系统上顺利完成显卡驱动部署。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 3104

DBFlow使用时,发生XXX_Table找不到

今天遇到一个比较神奇的问题,可能是之前使用DBFlow已经是很长时间了,但是目前DBFlow已经更新到了5.0.0-alpha2,但是我仍旧使用了4.2.4版本。

平哥的专栏 1265

Fiori Elements 表格之 Tree Tables:从数据建模到交互行为的全链路剖析

SAP Fiori elements的Tree Table组件将分层数据以表格形式展示,支持展开/折叠操作,适用于组织结构、物料清单等多级数据场景。该组件在List Report和Object Page中均可使用,支持懒加载、多选、列冻结等标准表格功能,并与OData V4服务层级注解深度集成。后端需通过RAP或CAP建模提供层级数据,前端通过清单配置切换表类型。需注意在草稿模式下仅显示活动实体,且展开状态在编辑时不保留。性能方面建议采用懒加载策略,避免全量加载树节点。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 159

MultiChannelPackageTool与美团Walle对比:如何选择最适合你的Android多渠道打包工具

在Android应用开发中,**多渠道打包工具**是每个开发者都需要面对的重要环节。面对国内众多的应用市场,如何高效、快速地为不同渠道生成专属的APK包,同时保证渠道信息的准确追踪,这是每个应用都需要解决的核心问题。本文将深入对比两款优秀的Android多渠道打包工具:**MultiChannelPackageTool**和**美团Walle**,帮助你做出明智的选择。 ## 📊 多渠道打包工

gitblog_00818的博客 487

前端技能树,面试复习第 54 天—— 手写代码:情景题

前端修罗场提供全网最专业的前端优质文章与社区服务,为应届生,初中级前端工程师提供全面、优质的面试服务、技能提升、职场解惑服务!内容包含:前端面试辅导,前端面试题,前端交流,前端答疑,前端基础知识,前端知识体系,技能树搭建,Javascript,CSS,CSS3,HTML,React,Vue,小程序,前端简历,职业交流,远程工作,英文交流,英文提升,外企,互联网,国企,大厂,牛客面试题,掘金面试题,面经,优质前端文章分享...

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 986

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

技术深度解析:美团Walle在Android多渠道打包架构优化中的应用实践

美团Walle作为Android多渠道打包的架构解决方案,通过创新的APK签名块技术重新定义了移动应用分发流程。该工具针对传统打包方案在效率、兼容性和维护成本方面的痛点,提供了完整的工程化实施路径,为技术决策者提供了可量化的ROI分析框架。 ## 技术背景与行业痛点分析 Android应用多渠道分发是移动互联网时代的核心需求,传统打包方案面临三大技术挑战: 1. **构建效率瓶颈**:基于G

gitblog_00337的博客 423

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

终极Android多渠道打包指南:美团Walle的10倍效率提升技巧 [特殊字符]

Walle是美团点评开源的一款革命性Android多渠道打包工具,在大型项目应用实践中展现出了惊人的效率优势。这款工具专为Android V2签名方案设计,通过创新的APK Signature Block区块写入技术,彻底改变了传统多渠道打包的低效模式。 ## 🤔 为什么Walle能实现10倍效率提升? 传统的多渠道打包方式需要重新编译整个APK,而Walle采用全新的渠道包生成方案。它直接

gitblog_00362的博客 430

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WMRouter:美团外卖Android开源路由框架(1)

由于本文罗列的知识点是根据我自身总结出来的,并且由于本人水平有限,无法全部提及,欢迎大神们能补充~将来我会对上面的知识点一个一个深入学习,也希望有童鞋跟我一起学习,一起进阶。提升架构认知不是一蹴而就的,它离不开刻意学习和思考。**这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家,**梳理了多年的架构经验,筹备近1个月最新录制的,相信这份视频能给你带来不一样的启发、收获。,第一时间获取最新知识点Android架构师之路很漫长,一起共勉吧!

2401_84149592的博客 868

2024年最全Android 快速发布开源项目到jcenter,2024年最新美团技术面试流程

由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!

2301_82241983的博客 351

Android面试全攻略:从Java基础到架构设计,助你斩获心仪Offer

在移动开发领域,扎实的技术基础和清晰的架构思维是开发者职业发展的核心。理解计算机基础原理,如JVM内存模型与垃圾回收机制,是构建高性能应用的基石。掌握Android平台核心技术,包括四大组件生命周期、View渲染流程及事件分发机制,能有效解决UI卡顿等性能问题。在工程实践中,性能优化和架构设计体现了开发者的综合能力,例如通过启动优化、内存管理及合理的组件化方案,可以显著提升应用质量与团队协作效率。这些技术最终服务于构建稳定、高效的大型应用,也是当前Android面试中的高频考点和深度考察方向。

weixin_33692284的博客 384

SignatureTools开源工具深度解析:Android APK签名与渠道管理的高效解决方案

在Android应用分发生态中,APK签名是确保应用完整性和安全性的关键环节。传统签名流程依赖复杂的命令行操作,开发者在面对多渠道打包、版本迭代和不同签名方案时,往往需要投入大量时间处理繁琐的配置和验证工作。SignatureTools作为一款基于JavaFx开发的开源APK签名工具,通过图形化界面将复杂的签名流程封装为直观的四步操作,为开发者提供了专业级的企业签名解决方案。 ## 1. 核心优

gitblog_00524的博客 437
上一篇: android——dialog对话框总结
下一篇: Android启动过程分析
Android_1314
博客等级 码龄5年 1粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值