Skip to content

Latest commit

 

History

History
188 lines (154 loc) · 7.57 KB

AndroidStudio使用教程(第五弹).md

File metadata and controls

188 lines (154 loc) · 7.57 KB

AndroidStudio使用教程(第五弹)

本文为转载文章:原文地址:https://github.com/CharonChui/AndroidNote

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的进度。
点击窗口右边底部的Image图标来显示Gradle Console.
Image

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

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 来进行变化的导入。
    Image

###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中配置签名选项。

    ...
    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可以很简单的进行多渠道打包会在以后专门讲解, 这里先到此为止了。