去年写脱离Eclipse通过ant进行编译打包apk的脚本时,就想过要调研下gradle脱离AS经常编译打包的情况,后来各种原因吧,一直拖到现在刚好公司要自动化打包项目,才有时间好好调研下:
Android手动创建android项目,编译成apk;
Android手动创建android项目,编译成apk;
1 首先命令行创建android项目:
命令行创建一个Android应用:
android create project -n HelloWorld -t android-21 -p HelloWorld -k org.crazyit.helloworld -a HelloWorld
- -n 选项指定创建项目的名称,-t 指定项目针对的Android平台,-p 指定该项目的保存路径,-k 指定该项目的包名,-a 指定activity的名称。
项目目录结构:
2 根目录下:执行配置到环境变量中的gradle命令 gradle init
目录结构:
3 然后编辑build.gradle文件内容:因为当前测试demo只有一个模块,因此可以把全局build.gradle和模块下的build.gradle合并在一起:
格式如下:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.14.+'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
defaultConfig {
applicationId "com.zq.demo"
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.0.1'
}
4 然后在SRC文件夹下创建main main\java文件夹,把res资源文件和Androidmanifest.xml文件放置main文件夹下,把src路径下的com整个文件夹放置在main\java路径下:
(经测试发现,只有这样按照AS创建出来的android项目结构放置,才能正常打包,不然在执行gradle任务时,会报错,应该是生成task时,gradle配置好了读取固定格式的路径)
5 然后执行gradle build命令:
6 然后查看build目录中
debug版本的apk就可以直接安装运行。