当前位置:首页 » 安卓系统 » androidgradle源码

androidgradle源码

发布时间: 2023-05-13 14:09:22

⑴ Gradle获取源码sourceSets

在写gradle插件时可能会使用到源码文件,如作源码文件的版本对比,源旅余码分析等,但源码如何来获取呢?一般gradle项目的源码默认都是在固定的位置,如project/app/src/main/java 。但源码的位置并非一定要在此,这只是一个 默认位置 ,在Gradle的配置文件build.gradle里是可以配置源码的位置的,下面可以看下在Android和Java项目中是如何配置的。

Android源码配置是在android下面的sourceSets参数里进行配置。

Java项目sourceSets与Android项目的不同,它在最外层直接配置。

我们知道在gradle的配置文件中,每个名称都是一个Extension,每个Extension可以配置指定的参数列表。如android{},是由AppPlugin通过project.getExtensions().create("android",AppExtension)来创建的,而AppExtension类的成员变量定义了gradle参数,如defaultConfig,proctFlavors,buildTypes,signingConfigs等老培。然而事实并非如何,gradle里还有一种配置自定义参数的方式,即Convention。Convention方式侍镇唯中每个成员变量对应的是一个extension。其中Java项目中的sourceSets即是使用如何方式进行配置的。
下面看一下如何获取获取项目的源码。既然源码是通过自定义参数配置的,那么获取的时候通过拿到自定义的参数对象,获取其sourceSets字段即可。

android使用的是BaseExension对象配置的参数,所有通过Plugin获取到extension对象,取其中的sourceSets字段。

Java项目是通过Convention配置的,所以需要找到Convention对象,即JavaPluginConvention。通过此对象来获取Java项目的源码文件

注意Java项目创建了Jar任务用来打包,而Jar也有一个getSource方法,此方法获取的并不是源码文件,而是编译过的class文件。

⑵ 初学android studio如何保存项目源码全部保存也太大了,有40左右mb!

从Eclipse中导出1.将你的ADT插件版本升级到22.0以上。2.在Eclipse中,选择File-->Export。3.在弹出的导出窗口中,打开Android的文件夹,选择“GenerateGradleBuildFiles”。4.选中你想要导入到AndroidStudio中的项目,Finish。PS:导出的项目将会和原来的项目在同一目录,覆盖原来的同时,会新增一个叫build.gradle的文件,导入AndroidStudio时将首先读取这个文件。导入到AndroidStudio1.在AndroidStudio中,首先关掉你当前的打开的项目。2.在欢迎界面,点击ImportProject(注:也是可以直接在菜单选择Importproject的)3.选中你在Eclipse中导出的项目,目录,点击build.gradle文件,然后OK4.在之后的弹出对话框中,会要求你选择Gradle的配置,选中Usegradlewrapper.(注:也可以自定义你本机装的Gradle)PS:如果没有Gradebuild文件,也是可以将普通的安卓项目导入到AndroidStudio中,它会用现有的Antbuild.但为了更好地使用之后的功能和充分使用构建变量,还是强烈地建议先从ADT插件中生成Gradle文件再导入AndroidStudio~~~

⑶ 如何用Android Studio查看build.gradle源码

build.gradle 里的每一行代码基本都是在调用一个方法,既然是这样,我们就可以用 android studio(下面简称as) 去查看它源码的方法注释说明,这样就可以理解每个方法是做什么的了,就算猜历是在大神的 build.gradle 遇见一些没看懂的代码,也可以点进去看方法介绍来理解。就像我们在查看 SDK 里的各种方法一样。
但是有个问题,应该也有小伙伴跟我一样吧,每次在大神的 build.gradle 看到一堆不懂的代码时,按住 Ctrl 键后,鼠标移到代码上时有个跳转的手势时总是很开心,总是心想原来可以看源码啊,那就点进去看看介绍,看这个是干嘛的吧。可是每次一点进去,打开的却是 class 代码文件,顶多就只有方法名,一点注释都没有,而且方法参数命名还混淆过,也猜不出来是干嘛的。又不懂怎么去官方文档里查找,只能去网上用关键字查找,找出来的又跟自己碰到的问题不一样,越找越气干脆不找了,放一边去穗租搜,以后再说。
是吧,如果可以直接通过 as 看源码的注释该多好。好了,废话到这,下面开始正型咐文。
https://www.cnblogs.com/dasusu/p/6650782.html?utm_source=tuicool&utm_medium=referral

⑷ github上的android源码没有gradle怎么运行

Android Studio 使用Gradle构建系统。如果你下载的Android项目中有Gradle,那应该是用Android Studio开发的项目,你用Android Studio导入就好了。

⑸ 如何用Android Studio查看build.gradle源码

我们来举个例子,就像系列一的博客里介绍的 build.gradle 里有这样一段代码:

借助 as,我们甚至可以很容易的查到 android{...} 这个括号里能使用的喊败方法都有哪些,如果要看各自的作用是干什么的,再继续点进去查看注释就行了。是不是发现,我们在 build.gradle 里的 android{...} 使用过的标签名原来都在这里的啊。

以后就算是再碰到大神的 build.gradle 文件里各种没看见过的标签名,不用再担心看不懂了。不懂就看源码注释嘛,so easy!

当然,大神的 build.gradle 文件里还是会出现一些 groovy 代码或者是 task 之类的,这些就不是 gradle 源码里能够查到的了,需要稍微了解一下 groovy 和 gradle 语言的基础,有兴趣的可以继续阅读下我写的这个系列里的相关博客,当然能力不够,如果你希望更好的学习,网上资料也很多。

⑹ gradle可以编译android源码吗

方法/步骤

1
(可以省略)通过cmd命令行下载gradle源码:
git clone https://github.com/spring-guides/gs-gradle-android.git
2
下载最新的gradle安装包,地址:
http://gradle.org/downloads
点击下载二进制文件

3
解压到d盘,路径为:D:\gradle-2.4
4
打开“计算机”-“右键”-“属性”-“更改设置”-“高级”-“环境变量”,
在系统变量中,点击新建,属性名为GRADLE_HOME,属性值为"D:\gradle-2.4"

5
打开“计算机”-“右键”-“属性”-“更改设置”-“高级”-“环境变量”,
在系统变量中,找到Path,将";D:\gradle-2.4\bin"加入到Path中

6
打开cmd命令行,执行gradle,如果出现如图所示,则说明gradle安装成功

7
打开cmd命令行,进入android工程目录,找到build.gradle文件,在目录执行执行
gradle build
既可开始使用gradle打包apk,在成功后会在同目录生成build文件夹,

⑺ gradle解压源码,重新打包

这几天工作上遇到一个问题,三方的jar包在liunx下解压不了,用gradle又能正常编译,我们的apk是在liunx下用mk进行编译的,编译的过程中需要对jar包进行解压,这样就导致编译失败。
错误信息如下:以后再遇到这个错误,可能就jar包的问题。
FAILED: /bin/bash -c "(mkdir -p out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res ) && (unzip -qo /home/x/xx/xxx/APK92_GNBJ_EDO/code/libs/xxx-sdk-java20171027120314.jar -d out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res ) && (find out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res -iname \"*.class\" -delete ) && (JACK_VERSION=3.36.CANDIDATE out/host/linux-x86/bin/jack @build/core/jack-default.args --verbose error -D jack.import.resource.policy=keep-first -D jack.import.type.policy=keep-first -D jack.android.min-api-level=1 --import /home/x/xx/xxx/APK92_GNBJ_EDO/code/libs/xxx-sdk-java20171027120314.jar --import-resource out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res --output-jack out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack ) && (rm -rf out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res )" warning: stripped absolute path spec from / mapname: conversion of failed ninja: build stopped: subcommand failed. build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed

解决方法:对jar包源码重新打包

解压jar包源码,注意,是带源码的jar包,如果是编译过的jar,是不能重新打包的。
步骤:
1.新建build.gradle文件,因为gradle会默认找到当前目录下的build.gradle下的文件去执行;
2.在终端执行gradle unzip,执行这个task
以下命令将这个目录 app/libs/xxx-sdk-java20171027120314.jar 下的jar包解压到了 unpacked/dist 目录。

解压之后的源码就是文件夹,重新打包的时候需要注意,包名和源码的路径名一致。现在利用Android studio进行打包。
步骤:
1.新建lib mole,选择Android Libeary/Java Library;
2.注意修改包名与jar包路径相同,eg:jar包解压之后的路径 dist/com/example/api ,那么为了确保新生成的jar包里的Java文件import路径相同,mole的包名也要命名为 com.example.api ;
3.将解压之后的源码java文件复制到lib model中;
4.在 app mole 下添加 lib mole 依赖。这是一种取巧的方法,当你添加了lib mole依赖之后,项目会重新rebuild,这个过程会将mole依赖编译成jar包,存放在lib mole的 build/libs 目录下,由于Android Studio版本不同,这个目录可能有有所不同,但是都在build目录下,找新的jar包就可以了。
这一部可能会报jar包找不到,或者lib mole中的import失败,可能是因为lib mole依赖的jar包没导入,导入之后在lib mole的build.gradle里配置一下就可以了。

这个时候,其实直接用这个jar包也可以了,如果向修改jar包名字,可以执行下面的gradle命令:

想了解更多可以参考 这里
然后在项目里测试一下jar包就可以了。
重新打包之后就可以在liunx下解压了,正常编译通过。

最后记录一下mk编译的一个错误 # [ERROR: Dex writing phase: classes.dex has too many IDs. Try using multi-dex](https://stackoverflow.com/questions/45472852/error-dex-writing-phase-classes-dex-has-too-many-ids-try-using-multi-dex) 在stackoverflow上找到了解决方法。

在mk文件中添加

参考:
https://stackoverflow.com/questions/39457116/gradle-build-hanging-when-jackoptions-is-enabled-for-java-1-8
https://stackoverflow.com/questions/45472852/error-dex-writing-phase-classes-dex-has-too-many-ids-try-using-multi-dex

⑻ Android gradle打包涉及task源码解析(六)

所以 packageDebug 任务就是打apk包的。

热点内容
捷达方向机安全登录密码是多少 发布:2025-07-19 00:57:37 浏览:688
夜魔迅雷下载ftp 发布:2025-07-19 00:39:29 浏览:94
增值税票安全接入服务器地址 发布:2025-07-19 00:20:45 浏览:481
solidworkspcb服务器地址 发布:2025-07-18 22:50:35 浏览:816
怎么在堆叠交换机里配置vlan 发布:2025-07-18 22:42:35 浏览:625
java调用别人的接口 发布:2025-07-18 22:37:35 浏览:435
服务器四个节点如何联网 发布:2025-07-18 22:36:02 浏览:273
华强北什么地方休安卓手机 发布:2025-07-18 22:24:56 浏览:736
数据库的根本目标 发布:2025-07-18 21:37:50 浏览:941
压缩机的流速 发布:2025-07-18 21:37:40 浏览:409