android包源码下载
⑴ 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系统是开源去哪里下载源代码
他这不是编程原代码对外公开,而是系统外部接口对外公开,简单说,开源就好比是,英特尔生产一个CPU 然后告诉你所有的脚都是干吗用的,这个告诉你干吗用的就等于是安桌的开源了, 你知道CPU那些脚干吗用的后,然后再根据这些脚的功能生产主板,针对这些脚所生产出来的主板就好比那些为因安桌开源后,别人针对安桌所编写出来的软件了,