gradle脱离AS编译打包生成apk调研二_apk不使用as,如何编译-程序员宅基地

技术标签: gradle配置  Android基础  Gradle打包  

版权声明:本文为博主原创文章,未经博主允许不得转载。

https://blog.csdn.net/ZhangQiang_0/article/details/79786874

继上周五研究学习gradle脱离Android Studio命令行打包成apk的问题:
"然后在SRC文件夹下创建main main\java文件夹,把res资源文件和Androidmanifest.xml文件放置main文件夹下,把src路径下的com整个文件夹放置在main\java路径下:
(经测试发现,只有这样按照AS创建出来的android项目结构放置,才能正常打包,不然在执行gradle任务时,会报错,应该是生成task时,gradle配置好了读取固定格式的路径)"
继续调研发现:
AS编译打包生成apk的过程,其实就是调用gradle中的application插件中的代码,然后按照代码逻辑执行下去。
网上查找资料发现:
  “
Gradle插件和Androd插件
在提供了基本的流程控制之后,接下来是具体的要做什么,构建什么。Gradle提供了针对语言的插件如java,groovy等负责编译,集成插件如application,war等生成java可执行程序,web程序的WAR文件。Android根据APK生成的过程,编写了自己的插件,其中也使用了java插件。
(1)自定义插件的插件名称在resources/META-INF/gradle-plugins
在resources/META-INF/gradle-plugins目录下有后缀为properties文件,该文件的命名就是你在build.gradle中使用插件的名字,里面声明了该插件的实现类。在Android插件的源码中可以看到android.properties和com.android.application.properties中两个插件名称,因此在build.gradle中,应用工程使用Android插件需要apply plugin: 'android'(已是deprecated)或者apply plugin: 'com.android.application'
(2)Android插件中application的实现类是AppPlugin,继承自com.android.build.gradle.BasePlugin ,调用apply方法,相应的configureProject(),解析local.properties,获得sdk位置,创建AndroidBuilder,应用JavaBasePlugin,而后createExtension() 关联BuildType,ProductFlavor,SigningConfig,最后createTasks(),完成各个Task的创建

在gradle的android插件中,application的实现类是AppPlugin,继承自com.android.build.gradlePlugin,调用apply方法,相应的configureProject(),解析local.properties,获得SDK位置,创建AndroidBuilder,应用JavaBasePlugin,而后createExtension(),关联BuildType,ProductFlavor,SigningConfig,最后createTasks(),完成各个Task的
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ZhangQiang_0/article/details/79786874

智能推荐

淘宝/天猫自定义API操作 API接口,custom-自定义API操作-程序员宅基地

文章浏览阅读887次,点赞24次,收藏23次。淘宝/天猫平台本身并不直接提供“自定义API操作”的官方API接口。API接口通常是由平台方定义和提供的,用于开发者与平台进行数据交互。然而,淘宝/天猫开放平台允许商家和开发者通过其提供的官方API进行一系列的操作,这些API覆盖了商品管理、订单处理、用户信息、物流查询等多个方面。您可以利用淘宝/天猫开放平台提供的官方API,通过组合多个API调用,来实现您自定义的业务逻辑。这可能需要一定的编程能力和对平台API的深入理解。

Ubuntu 16.04简易安装Nginx-rtmp-module_libnginx-mod-rtmp_1.22.0-1ubuntu3_amd64.deb-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏5次。Ubuntu 16.04简易安装Nginx-rtmp-modulelibnginx-mod-rtmp是18.04上自带的,可以通过apt-get install libnginx-mod-rtmp进行安装,在16.04上如果想要安装,直接下载libnginx-mod-rtmp_1.14.0-0+xenial1_amd64.deb安装的话会被告知nginx版本过低,依赖有问题,需要16.04自带的..._libnginx-mod-rtmp_1.22.0-1ubuntu3_amd64.deb

mysql 字符 1024个字符限制 cast转为varchar 不限制字符长度 最大字符长度 group_concat长度限制_mysql 改变输出字符串最大长度-程序员宅基地

文章浏览阅读1.1k次。设置group_concat的最大长度然后再运行。_mysql 改变输出字符串最大长度

使用 Vite 和 Electron 进行开发 - 解决问题与经验分享_electron vite 原生模块处理-程序员宅基地

文章浏览阅读145次。Vite 是一个现代化的前端构建工具,它通过利用 ES 模块原生支持(ES Module)来提供快速的冷启动时间和热模块替换(HMR)能力。Electron 是一个流行的桌面应用程序开发框架,它允许使用 Web 技术(HTML、CSS 和 JavaScript)构建跨平台的桌面应用程序。结合使用 Vite 和 Electron 可以带来许多好处,例如快速的开发周期、模块化的架构和跨平台的能力。然而,在使用这两个工具时,可能会遇到一些挑战和问题。接下来,我们将讨论一些常见的问题,并提供相应的解决方案。_electron vite 原生模块处理

智能视频监控平台EasyCVR级联后,上级平台如何获取下级的云端录像?_视频监控 上级域 下级域 啥意思-程序员宅基地

文章浏览阅读78次。在上级平台获取直播录像目录,下发播放指令_视频监控 上级域 下级域 啥意思

【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏1(附项目源码)_unity 单词城堡垒游戏源码-程序员宅基地

文章浏览阅读661次,点赞6次,收藏4次。关于使用TileMap生成随机2D地图,其实之前已经有做过类似的,感兴趣可以看看但是随着学习深入,发现之前做的比较粗糙和不够全面,最近又在外网看到_unity 单词城堡垒游戏源码

随便推点

ARC/OC对象自动管理内存_arc oc-程序员宅基地

文章浏览阅读1w次。ARC是一个编译器特征,它提供了对OC对象自动管理内存。ARC让开发者专注于感兴趣的代码和对象的关系,而不用考虑对象的retain和release。转自hherima的博客原文:Transitioning to ARC Release Notes(苹果官方文档) ARC是一个编译器特征,它提供了对OC对象自动管理内存。ARC让开发者专注于感兴趣的代码和对象的关系_arc oc

JAVA设计模式(09):结构型-代理模式(Proxy)_pengzhile 是谁-程序员宅基地

文章浏览阅读5.8k次。代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。根据代理模式的使用目的不同,代理模式又可以分为多种类型,例如保护代理、远程代理、虚拟代理、缓冲代理等,它们应用于不同的场合,满足用户的不同需求。1 代理模式概述近年来,代购已逐步成为电_pengzhile 是谁

C语言:结构体,枚举,联合_c语言使用枚举结构体实现计算器程序-程序员宅基地

文章浏览阅读347次。一.结构体类型创建结构体是一些值的集合,这些值称为成员变量。结构体的每一个成员可以是不同类型的变量。结构体的声明struct tag{ member-list;}variable-list;举例: 描述一个学生:struct Stu{ char name[20];//名字 int age;//年龄 char sex[5];//性别 cha..._c语言使用枚举结构体实现计算器程序

【图解UDS】UDS汽车诊断标准协议(ISO 14229)带你入门到精通_uds诊断协议-程序员宅基地

文章浏览阅读8.3w次,点赞285次,收藏1.8k次。【图解UDS】UDS汽车诊断标准协议(ISO 14229)带你入门到精通目录0 前言1 诊断的基本概念2 UDS诊断诊断协议2.1 诊断服务的概念2.2 诊断会话控制0x10服务2.3 会话访问0x27服务2.4 用于读/写的DID的0x22/0x2E服务2.5 故障存储相关的0x19和0x14服务..._uds诊断协议

Mysql数据库渗透及漏洞利用总结_利用mysql注入可以获取到phpmyadmin权限吗-程序员宅基地

文章浏览阅读3.9k次。Mysql数据库是目前世界上使用最为广泛的数据库之一,很多著名公司和站点都使用Mysql作为其数据库支撑,目前很多架构都以Mysql作为数据库管理系统,例如LAMP、和WAMP等,在针对网站渗透中,很多都是跟Mysql数据库有关,各种Mysql注入,Mysql提权,Mysql数据库root账号webshell获取等的,但没有一个对Mysql数据库渗透较为全面对总结,针对这种情况我们开展了研究,虽然..._利用mysql注入可以获取到phpmyadmin权限吗

python工程师年薪多少万_Python工程师工资待遇一般是多少-程序员宅基地

文章浏览阅读1.9k次。很多朋友想知道Python工程师工资一般是多少,下面就让我们来看看吧。按照工作经验分:应届生无工作经验的Python工程师,薪资大概8K-10K;1~3工作经验的Python工程师,薪资大概10K-15K;3~5年工作经验的Python工程师,薪资大概15K-25K;5~10年工作经验的Python工程师,薪资大概25K-50K。Python工程师是干什么的Python涉及的领域非常广泛,在处理方..._成都python5年平均薪资

推荐文章

热门文章

相关标签