androidbuild,android build system

android studio 里面build,clean区别

1、Make Project:编译Project下所有Module,一般是自上次编译后Project下有更新的文件,不生成apk。

创新互联建站成立于2013年,我们提供高端成都网站建设成都网站制作公司网站设计、网站定制、全网营销推广微信平台小程序开发、微信公众号开发、成都网站营销服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为咖啡厅设计企业提供源源不断的流量和订单咨询。

2、Make Selected Modules:编译指定的Module,一般是自上次编译后Module下有更新的文件,不生成apk。

3、Clean Project:删除之前编译后的编译文件,并重新编译整个Project,比较花费时间,不生成apk。

4、Rebuild Project:先执行Clean操作,删除之前编译的编译文件和可执行文件,然后重新编译新的编译文件,不生成apk,这里效果其实跟Clean Project一样。

5、Build APK:前面4个选项都是编译,没有生成apk文件,如果想生成apk,需要点击Build APK。6、Generate Signed APK:生成有签名的apk。

为了更清楚的知道clean和rebuild到底有什么区别,我把自己的一个小项目执行了一下这两个操作,并用对比软件对比了一下,红色部分是执行build操作的时候多出来的步骤。

大概意思:

:app:incrementalDebugJavaCompilationSafeguard

在incremental-safeguard目录下生成tag.txt,标识已经执行过task

:app:compileDebugJavaWithJavac

intermediates下生成classes文件夹,以及对应的dependency-cache文件夹,classes文件夹中包含之前已经解压的各个aar文件中的类,但是不包含libs下的jar包中的内容;同时还会生成一个tmp文件夹,内容为空;目录下不包括libs下的jar包内容

compile Debug Ndk UP-TO-DATE

编译调试NDK更新

:app:compileDebugSources

:app:incrementalDebugUnitTestJavaCompilationSafeguard UP-TO-DATE

编译调试单元测试的更新

:app:compileDebugUnitTestJavaWithJavac

:app:processDebugJavaRes UP-TO-DATE

res资源更新

:app:processDebugUnitTestJavaRes UP-TO-DATE

单元测试中res资源的更新

:app:compileDebugUnitTestSources

:app:incrementalDebugAndroidTestJavaCompilationSafeguard

:app:compileDebugAndroidTestJavaWithJavac

:app:compileDebugAndroidTestNdk UP-TO-DATE

单元测试NDK更新

:app:compileDebugAndroidTestSources

基本上build比clean多的就是会把NDK重新编译一遍,有更新的话就更新。以及一些资源文件的更新。基本上差不多。

这样看来,clean项目一般已经够用了,如果NDK以及资源文件有更改的话建议rebuild。

说的不对的地方,还希望大家包含。(不服来打)

android studio怎么使用Build工具进行签名打包

首先说一下Android studio如何进行打包:

博主测试新建了一个packaging的工程

还是先看一下目录结构,因为打包的时候和Eclipse不一样,可以自选的,最好不要用默认的目录结构

好,下面来看看如何进行打包

签名文件所要放的位置,帐号密码,以及别名

这里说一下,签名最好放在工程的根目录下,一个人开发的话,或者不是很保密的,其他的按照实际情况来

这里因为是新建的key,不能进行第二个选项

下面附图说明

没有的话是ok选项是不能点击的

点击create,会出现如下界面,英语不难,大家按照相应的填写就可以了

这里路径选择按照上面说的根目录就可以了

as貌似默认的是jks格式的,但是Eclipse貌似默认的keystore格式的,只是加密方式不一样,其他的不影响

确认后返回原来界面相应的都会进行自动补充

这里为了以后简便可以选择记录密码

到了这我要着重说一下,上面是apk包存放的位置,第二个是打包方式,第三个博主没用过

这个是默认的目录结构,大家可以对照第一张图片,就知道这个目录结构在哪了,它在as中是会进行加载的,不会隐藏,如果少的话还好,要是多的话这个会占目录结构的很大一部分,所以最好不要选择这个目录结构,那么选在哪呢?

其实as早就替你想到了,而且目录机构都给你构建好了

直接选在apk这就可以可,至于打包方式大家就按照默认的,release就可以,下面说为什么

好,选择ok,继续下一步,看出现的结果

这里出现了两个安装包,直接就是英文翻译就可以,一个是签名的一个是未签名的,未签名的话打包是不能进行使用的,然后就是说上面选择打包方式release,为什么不选择debug,debug默认不签名,而且对一些文件图片的格式校验比较松,还有就是一些string.xml文件或其他xml文件命名校验不是很严格,不必进行强制编译

反过来,看一下现在的目录结构

因为签名过了,并且博主记录了密码,以后打包就会方便了,来看看as比ec强大的地方

这里面很全,clean,debug,release等等,以后包多的话就知道好处了,现在就一个,但是相对也是比较方便的

双击release,打包,build successful打包完成

下面看一下如何获取签名,博主为了方便,把签名文件放在了根目录下了

这里要输入密码,而且没有光标显示

所有签名信息都可以查到了

Android 系统的build目录在哪里?

Android Studio下的编译工具gradle的安装路径在:

磁盘路径\Android Studio\gradle\m2repository\com\android\tools\build\gradle

而不是:

磁盘路径\Android Studio\gradle\

项目中配置gradle的位置是:项目目录下build.gradle文件中:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

repositories {

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:2.3.3'

}

}

allprojects {

repositories {

jcenter()

}

}

dependencies {

}

android中的build.gradle是干什么用的

 为什么要用Gradle?

Gradle是比较先进的构建系统,也是一个很好的构建工具,允许通过插件自定义构建逻辑

以下是为什么Android Studio选择Gradle的主要原因:

使用领域专用语言(Domain Specific Language)来描述和处理构建逻辑。(以下简称DSL)

基于Groovy。DSL可以混合各种声明元素,用代码操控这些DSL元素达到逻辑自定义。

支持已有的Maven或者Ivy仓库基础建设

非常灵活,允许使用best practices,并不强制让你遵照它的原则来。

其它插件时可以暴露自己的DSL和API来让Gradle构建文件使用。

允许IDE集成,是很好的API工具

需要准备:

Gradle 1.6 or 1.7

SDK with Build Tools 17.0.0 (released 5/16/2013)

Basic Project

在Gradle项目的根目录下,有个叫build.gradle的文件,它描述了这个项目的整体构建基础。

build文件

最基本的java程序,它的build.gradle文件就一句话:

apply plugin: 'java'

最基本的Android项目,它的build.gradle如下:

buildscript {

repositories {

mavenCentral()

}

dependencies {

classpath 'com.android.tools.build:gradle:0.5.6'

}

}

apply plugin: 'android'

android {

compileSdkVersion 17

}

我们一步步来分析一下上面三部分的内容。

buildscript{...} 配置了驱动build的代码,它声明将在Maven中央仓库,取一个classpath dependency,也就是Android plugin for Gradle v0.5.6

apply plugin 指明了用到的plugin是android,就像前面java程序中,用的plugin是java一样

android{...} 中配置了所有android构建的参数,这里也就是Android DSL的入口点。

默认的,只有目标编译环境是必要的,也就是compileSdkVersion这个属性。这和以前在project.properties中的target属性类似。

值得注意的是,如果你在Android项目中写 apply plugin:java 而不是apply plugin:android的话,将会build失败。


网站栏目:androidbuild,android build system
文章源于:http://pwwzsj.com/article/dsehdeo.html