Eclipse 和Android Studio 本地工程自动编译APK,可以实现远程依赖
文章目录
一、配置 ANDROID_HOME 环境变量
1、Mac 配置
在自动编译之前,需要完成ANDROID_HOME
环境变量的配置,运行终端,打开.bash_profile
文件
open .bash_profile
在文件的底部添加上以下内容,这里的ANDROID_HOME
地址要换成自己本地的Android SDK
地址
export ANDROID_HOME=/Users/smile/Android/SDK
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
关闭.bash_profile
后,执行指令,让设置生效
source .bash_profile
2、Windows配置
右击计算机 —> 属性 —> 高级系统设置 —> 环境变量 —> 新建系统变量ANDROID_HOME
—> 变量值为自己本地的Android SDK
地址
二、Eclipse 工程结构进行编译
1、编译需要哪些文件
新建一个Android Studio 工程,把.gradle
、gradle/
、gradlew
、gradlew.bat
、build.gradle
拷贝到工程根目录,如果需要进行签名文件的打包,还需要把签名文件
也放在根目录下
2、修改哪些内容
打开build.gradle 文件,把内容替换为以下的内容
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion '27.0.3'
useLibrary 'org.apache.http.legacy'
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
// // Move the tests to tests/java, tests/res, etc...
androidTest.setRoot('Eclipse')
//
// // Move the build types to build-types/<type>
// // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// // This moves them out of them default location under src/<type>/... which would
// // conflict with src/ being used by the main source set.
// // Adding new build types or product flavors should be accompanied
// // by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
defaultConfig {
applicationId "com.gizwits.commonapp"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1"
multiDexEnabled true
}
buildTypes {
release {
//是否开启混淆
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
signingConfig signingConfigs.debug
}
}
compileOptions {
sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_7
targetCompatibility org.gradle.api.JavaVersion.VERSION_1_7
}
//移除lint检查的错误error
lintOptions {
abortOnError false
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
-
根据自己的项目情况将
defaultConfig
中的包名,版本号等信息更改 -
在
dependencies
中增加要依赖的远程库或者本地jar 文件 -
如果有签名文件,需要更改
build.gradle
,在android
下增加
signingConfigs {
release {
keyAlias 'xxx'
keyPassword 'xxx'
storeFile file("./xxx.keystore")
storePassword 'xxx'
}
debug {
keyAlias 'xxx'
keyPassword 'xxx'
storeFile file("./xxx.keystore")
storePassword 'xxx'
}
}
其中keyAlias
、keyPassword
、storeFile file
、storePassword
都要替换成签名文件本身的内容,并且在buildTypes
的 release
中添加
signingConfig signingConfigs.release //添加release签名
3、进行编译
打开命令行,在工程根部目录下执行以下命令进行编译,编译成功后会出现一个build
文件夹,在文件夹下的打开outputs>apk>release,可以找到打包的apk.
./gradlew assembleRelease
在windows 下可以执行
gradlew assembleRelease
三、Android Studio 工程结构进行编译
1、编译需要哪些文件
Android Studio 本身工程就可以直接执行编译命令,不需要添加多余的文件
2、修改哪些内容
-
根据自己的项目情况将
build.gradle
中的applicationId
等更改成自己所需要的包名 -
如果有签名文件,需要更改在
app
文件夹下的build.gradle
,在android
下增加
signingConfigs {
release {
keyAlias 'xxx'
keyPassword 'xxx'
storeFile file("./xxx.keystore")
storePassword 'xxx'
}
debug {
keyAlias 'xxx'
keyPassword 'xxx'
storeFile file("./xxx.keystore")
storePassword 'xxx'
}
}
其中keyAlias
、keyPassword
、storeFile file
、storePassword
都要替换成签名文件本身的内容,并且在buildTypes
的 release
中添加
signingConfig signingConfigs.release //添加release签名
3、进行编译
打开命令行,在工程根部目录下执行以下命令进行编译,编译成功后会在app
文件夹下出现一个build
文件夹,在工程根部目录下依次打开outputs > apk > release
,可以找到打包的apk
./gradlew assembleRelease
在windows 下可以执行
gradlew assembleRelease