軟件需求:html
建立項目android
在Application name field輸入BuildSystemExamplewindows
項目結構 Android studio 項目包含一個默認的 app moduleapp
Component測試 |
Locationgradle |
Source filesui |
app/src/main/java/<package>/this |
Resource filesspa |
app/src/main/res/ |
Manifest file |
app/src/main/AndroidManifest.xml |
Build file |
app/build.gradle |
新增library modile
在window窗口中選擇 Android Library,而後next 3.保持默認不變,一直next,在Activity Name field 輸入LibActivity1,而後finish。
這個項目包含兩個modules,每一個module都含有一個Activity。
從一個library module打開Activity 在這個例子中,在app module中的MainActivity將打開lib module的LibActivity1'
打開愛app module的MainActivity,找到app/src/main/res/layout/activity_main.xml,對文件中的代碼進行替換,以下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.buildsystemexample.app.MainActivity"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button1" android:onClick="onButton1Clicked"/> </LinearLayout>
在這個文件中找到android:text="@string/button1",而後快捷鍵 Alt+Enter.,根據提示,在string resource 增長value "Open LibActivity1"。
一樣找到android:onClick="onButton1Clicked",快捷鍵 Alt+Enter.,根據提示,在MainActivity增長onButton1Clicked method.
public void onButton1Clicked(View view) { Intent intent = new Intent(this, LibActivity1.class); startActivity(intent); }
快捷鍵 Alt+Enter.,根據提示,對各個錯誤點進行import。
在libray module中增長dependency
... dependencies { ... compile project(":lib") }
構建項目
點擊build--Make Project
能夠經過查看在windows 窗口的右邊部分的Gradle Console,查看是否成功。
若是想查看可用的build tasks,能夠點擊在IDE 有窗口的Gradle,雙擊任意一個build task就能夠運行。 在app/build/apk會生成apk。
命令行 Gradle構建
On Windows
> gradlew.bat assembleDebug
On Mac OS and Linux platforms, type these commands:
$ chmod +x gradlew $ ./gradlew assembleDebug
查看一系列的build tasks,命令以下
$ ./gradlew tasks
Build release version
在IDE的右側,點擊Gradle,展開BuildSystemExample.而後在展開:app,雙擊assembleRelease。
基礎結構
apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 19 versionCode 1 versionName "1.0" } signingConfigs {//對apk進行簽名 release { storeFile file("myreleasekey.keystore") storePassword "password" keyAlias "MyReleaseKey" keyPassword "password" } } buildTypes {//混淆代碼,proguard-android.txt是Android sdk自帶的,proguard-rules.txt是新增的 release { runProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), \ 'proguard-rules.txt' signingConfig signingConfigs.release//簽名配置 } } } dependencies {'''聲明dependencies'''的3種方式 // 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']) }
參考資料:http://developer.android.com/sdk/installing/studio-build.html#configBuild