AndroidStudio使用教程(第五弹)

AndroidStudio使用教程(第五弹)

Create and Build an Android Studio Project

接下来是以下这四个部分:

- Create projects and modules.

- Work with the project structure.

- Eidt build files to configure the build process.

- Build and run your app.

关于如何创建Project这里就不说了, 默认创建的Project中有一个appModule

Add a library module

接下来的部分说一下如何在Project中创建一个library module并且把该library变成程序的一个依赖module

Create a new library module

  • 点击File菜单后选择New Module或在Project上右键选New Module.
  • 展开页面下方的More Modules选择Android LibraryNext.
  • 输入名字这里为了演示方便名字叫做mylibrary后一直Next即可.

    完成之后打开该Module中的build.gradle你会看到apply plugin: ‘com.android.library‘说明这是一个library.

Add a dependency on a library module

上一步我们创建了mylibrary module, 现在我们想让app module依赖与mylibrary module, 但是构建系统还不知道,

我们需要修改app module下的build.gradle文件添加mylibrary module就可以了。

...
dependencies {
    ...
    compile project(":mylibrary")
}

Build the project in Android Studio

Android Studiobuild project点击上面导航栏中的Build菜单然后选择Make Project, 这时窗口底部的状态栏就会显示build的进度。

点击窗口右边底部的图标来显示Gradle Console.

在窗口右边栏点击Gradle窗口可以看到当前所有可用的build tasks, 双击里面的task即可执行。

Build a release version

点击Gradle tasks页面, 展开app中的task然后双击assembleRelease即可。

Configure the Build

接下来以MyApplication Project说明以下几个部分:

- Use the syntax from the Android plugin for Gradle in build files.

- Declare dependencies.

- Configure ProGurad settings.

- Configure signing settings.

- Work with build variants.

Build file basics

Android Studio projects中包含一个build file,每个module中也有一个build file名字为build.gradle.

下面是Projectapp modulebuild.gradle文件

apply plugin: ‘com.android.application‘

android {
    compileSdkVersion 19
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "com.charon.myapplication"
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
        }
    }
}

dependencies {
    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
    compile project(":mylibrary")
}

apply plugin: ‘com.android.application’ 声明了Gradle的类型为Android应用程序,这样会在最高级的build tasks中添加

一个Android程序特有的build任务并且创建android {…}来声明Android程序特殊的build配置。

android {…}部分配置了所有Android程序的build配置:

- compileSdkVersion表明了编译的目标SDK版本。

- buildToolsVersion 声明了当前 build的版本, 可以使用SDK Manager来下载多个build版本。

注意:最好使用高版本的build工具或者是和编译是目标SDK版本对应的build版本。

- defaultConfig配置了AndroidManifest.xml中的重要设置。

- buildTyppes部分控制着如何去build和打包你的程序,默认时会定义两种build类型:debug 和 release. debug类型带有默认的

debugging标示,用debug key进行签名, release版本默认时没有签名,上面的配置中release时没有使用ProGuard.

dependencies部分是在android之外,该部分声明了依赖的module

注意:当修改项目中得build files时,Android Studio需要进行项目同步来导入相应的build配置变化, 点击Android Studio中黄色通知部分的Sync Now

来进行变化的导入。

Declare dependencies

dependencies {
    // Module dependency
    compile project(":lib")

    // Remote binary dependency
    compile ‘com.android.support:appcompat-v7:19.0.1‘

    // Local binary dependency
    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
}
  • Module dependency

    为本地依赖的Module.

  • Remote binary dependency

    为远程依赖的二进制文件, 例子中为Android SDK仓库中所有的support v7包。

  • Local binary dependency

    为本地项目中依赖的jar包,这些jar包是在项目中的libs目录中。

Run ProGuard

构建过程中可以使用ProGuard进行代码混淆, 修改build文件中的runProGuard选项为true即可。


...
android {
    ...
    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
        }
    }
}
...

getDefaultProguardFile(`proguard-android.txt`)包含了Android SDK安装时默认的ProGuard设置。Android Studiomodule的根目录中

添加了proguard-rules.pro文件,可以在这里配置相应的ProGuard规则。

Configure signing settings

debug版本和release版本的应用区别在于应用程序能不能在一些稳定的设备上进行debugAPK是怎样进行签名的。 构建系统对debug版本使用默认的签名并且使用已知的

证书以便在构建过程中不会进行代码提示。如果你不指定签名配置时构建系统不会对release版本进行签名。

下面是如何让程序在release版本进行签名

- 拷贝签名文件到app module的根目录。

这样就可以保证当你在其他机器上构建项目的时候可以找到你的签名文件, 如果你没有签名文件,可以先创建一个。

- 在app module中的build file中配置签名选项。

java

...

android {

...

defaultConfig { ... }

signingConfigs {

release {

storeFile file("myreleasekey.keystore")

storePassword "password"

keyAlias "MyReleaseKey"

keyPassword "password"

}

}

buildTypes {

release {

...

signingConfig signingConfigs.release

}

}

}

...

  • Android Studio中的build task页面运行assembleRelease

    app/build/apk/app-release.apk下的包现在就是使用签名文件签过名的了。

    注意:把签名密码等写到build文件中不是很安全, 可以把密码配置到环境变量中或者是让其在构建的过程中提示输入密码。 这里我们就先不介绍如何配置了,可以自己搜索下。

至于开始所说利用Gradle可以很简单的进行多渠道打包会在以后专门讲解, 这里先到此为止了。


  • 邮箱 :[email protected]
  • Good Luck!
时间: 2024-08-30 01:48:44

AndroidStudio使用教程(第五弹)的相关文章

AndroidStudio使用教程(第四弹)

AndroidStudio使用教程(第四弹) Gradle 讲解到这里我感觉有必要说明一下Gradle. Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具.它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML. 更多介绍请直接参考Gradle或Google搜索. 以下是为什么Android Studio选择Gradle的主要原因: - 使用领域专用语言(Domain Specific Language)来描述和处理构建逻辑.(以下

AndroidStudio使用教程(第六弹)

AndroidStudio使用教程(第六弹) Debug Andorid Studio中进行debug: - 在Android Studio中打开应用程序. - 点击状态栏中的Debug图标. - 在接下来的选择设备窗口选择相应的设备或创建虚拟机, 点击OK即可. Android Studio在debug时会打开Debug工具栏, 可以点击Debug图标打开Debug窗口. 设置断点 与Eclipse十分相似, 在代码左侧位置点击一下即可, 圆点的颜色变了. Attach the debugge

AndroidStudio使用教程(第三弹)

AndroidStudio使用教程(第三弹) 熟悉了基本的使用之后,可能关心的就是版本控制了. SVN 下载Subversion command line 方法一 下载地址是Subversion里面有不同系统的版本. 以Windows为例,我们采用熟悉的VisualSVN. 进入下载页后下载Apache Subversion command line tools, 解压即可. 方法二 Windows下的Tortoise SVN也是带有command line的,但是安装的时候默认是不安装这个选项

AndroidStudio使用教程(第一弹)

AndroidStudio使用教程(第一弹) Android Studio是一套面世不久的IDE(即集成开发环境),免费向谷歌及Android的开发人员发放.Android Studio以IntelliJ IDEA为基础, 旨在取代Eclipse和ADT(Android开发者工具)为开发者提供更好的开发工具. 运行相应速度.智能提示.布局文件适时多屏预览等都比Eclipse要强,但也不能说全部都是有点现在Studio中无法在一个窗口管理多个Project, 每个Project都要打开一个窗口,或

AndroidStudio使用教程(第二弹)

AndroidStudio使用教程(第二弹) 迁移Eclipse工程到Android Studio 官方文档中说Android Studio可以兼容Eclipse的现有工程,但需要做一些操作: Eclipse进行项目构建 首先升级ADT到最新版本, 好像是22之后,选择需要从Eclipse导出的工程,右键选择Export并选择Android下的Generate Gradle Build Files, 运行完成之后你会发现在项目目录中多了一个build.gradle, 这就是Android Stu

无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]

无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一定要用到非常熟练才可以,今天我们会通过一个员工信息表实例,再把这些组件串一下. (1)TextField  (2)Botton  (3)NumberField (4)Hidden (5)DataFiedl (6)RadioGroup (7)CheckBoxGroup (8)Combobox (9)F

Adafruit的树莓派教程第五课:使用控制电缆

Adafruit的树莓派教程第五课:使用控制电缆 时间 2014-05-09 01:11:20 极客范 原文 http://www.geekfan.net/9095/ 主题 Raspberry PiMacOSLinux 本文由极客范-Boyd Wang翻译自 Adafruit.com .欢迎加入 极客翻译小组 ,同我们一道翻译与分享.转载请参见文章末尾处的要求. 概览 这节课你将学习到如何使用控制电缆控制你的树莓派. 用这种方式连接的一大好处是它可以直接为小派供电并且你也不需要连接键盘鼠标或显示

Photoshop入门教程(五):滤镜

学习心得:滤镜通常用于摄影行业,是安装在相机镜头前用于过滤自然光的附加镜头,从而获得一些特殊的效果.同理,Photoshop的滤镜也是为了产生特殊的效果.Photoshop滤镜分为两类:一种是内部滤镜,即安装Photoshop时自带的滤镜:另外一种是外挂滤镜,需要我们进行安装后才能使用.随着Photoshop版本的更新,滤镜的种类也随之增加,变得非常丰富,通过各种滤镜的组合,产生出无穷无尽的效果.加上强大的外挂滤镜,更能高效快速的处理图像. 在CS6版本中,"风格化""素描&

(译)Windsor入门教程---第五部分 添加日志功能

介绍 现在我们已经有了基础的框架了,是时候添加内容了,那么我们首先应该考虑的就是在应用程序中添加日志功能.我们会使用Windsor来配置,在这一部分,你将学习Windsor之外的其他功能. Logging Facility 在上一部分说过,Windsor有很多自带的可选的功能组件,他们扩展了Windsor的即用性.在这一部分,我们将在程序中添加日志功能. Logging Facility提供了一些常用的日志框架比如Log4net.Nlog,以及mvc内置的日志框架Trace.Logging Fa