前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android高频面试专题 - 架构篇(一)AS项目架构

Android高频面试专题 - 架构篇(一)AS项目架构

作者头像
Android扫地僧
发布2020-03-19 16:10:37
1.3K0
发布2020-03-19 16:10:37
举报
文章被收录于专栏:Android进阶Android进阶

日常开发中AS与Gradle架构使用技巧的高频面试问题。更多其他完整面试专题,请关注公众号获取.

1、project和module的关系

一个project是指一个工作区间,所以一个project可以有多个module,module是模块的意思,每一个module都是可独立运行的程序,而一个project可以关联多个module。

2、Gradle是什么

  • Gradle是一个自动化构建工具
  • 兼容Maven等仓库
  • 基于Groovy的特定领域语言来声明名目设置

3、Gradle常用命令

  • gradlew clean: 清除app目录下的build文件夹
  • gradlew check: 执行lint检查
  • gradlew assemble:打release和debug包
  • gradlew build : 执行check和assemble
  • gradlew assembleRelease/gradlew assembleDebug:打全部渠道的Release或者debug包

4、几种依赖的区别

  • compile:我们最常用的依赖,编译时提供并打包进apk
  • provided:编译时提供但不打包进apk
  • 在gradlew 3.0 中complie过期了,用implementation和api替代,api = compile
  • implemention:将该依赖隐藏在内部,而不对外部公开

5、解决依赖冲突,排除依赖传递

  • exclude: 设置不编译指定的模块,排除指定模块的依赖
  • transitive:用于自动处理子依赖项,默认为true,gradle自动添加子依赖项。设置为false排除所有的传递依赖
  • force:强制设置某个模块的版本

6、Gradle打包时的混淆

  • 通过在buildTypes中配置minifyEnable来开启和关闭proguard
  • 通过proguardFiles 来配置混淆参数与keep的内容
  • 通过shrinkResources 去除没有用到的资源文件

7、Gradle依赖统一配置管理

  • 在根目录下创建自定义名字的.gradle文件,例如:config.gradle
  • 打开项目根目录下的build.gradle, 在最顶上依赖我们刚刚创建的配置文件apply from: "xxx.gradle"
  • 在app模块下的build.gradle中引用即可:compile rootProject.ext.dependencies["appcompat-v7"]

8、Jenkins+Git+Gradle实现CI自动打包

  • 安装Jenkins,安装需要的插件(比如说git插件、Gradle插件),配置JDK,Git,Gradle等编译环境
  • 创建新的Jenkins项目,配置Git代码仓库地址、配置构建时的Gradle版本,和需要执行的Gradle Task
  • 配置Jenkins项目的构建参数,比如Gradle Task的参数、渠道参数
  • 配置邮件通知
  • 开始构建

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Android扫地僧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档