欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Eclipse 和Android Studio 本地工程自动编译APK,可以实现远程依赖

程序员文章站 2022-05-16 10:22:36
...

一、配置 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 和Android Studio 本地工程自动编译APK,可以实现远程依赖

二、Eclipse 工程结构进行编译

1、编译需要哪些文件

  新建一个Android Studio 工程,把.gradlegradle/gradlewgradlew.batbuild.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'
          }
      }

  其中keyAliaskeyPasswordstoreFile filestorePassword都要替换成签名文件本身的内容,并且在buildTypesrelease 中添加

  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'
          }
      }

  其中keyAliaskeyPasswordstoreFile filestorePassword都要替换成签名文件本身的内容,并且在buildTypesrelease 中添加

 signingConfig signingConfigs.release  //添加release签名

3、进行编译

  打开命令行,在工程根部目录下执行以下命令进行编译,编译成功后会在app 文件夹下出现一个build文件夹,在工程根部目录下依次打开outputs > apk > release,可以找到打包的apk

./gradlew assembleRelease

  在windows 下可以执行

gradlew assembleRelease