zoukankan      html  css  js  c++  java
  • 第四篇:Eclipse Android app 工程迁移到 Android Studio

    前言:这种问题当然在所难免,所幸android studio的project 工程目录远比 Eclipse 要了然。

    目录对比

    我们在Eclipse中创建一个EclipseDemo的Android项目,在Android Studio中创建一个 My Application 的 Android项目,里面的Module命名为app.

    IDE Eclipse Android Studio
    管理器目录
    文件目录

      看的出来这两种IDE组织代码的方式是不一致的,eclipse 中有一个workspace的概念,所谓工作目录,目录下就是一个个的project,但是project之间的代码是可以复用的,比如android library的使用。程序员通过IDE来配置依赖关系。在project中,每一个文件夹的作用也是固定的,不能配置。在android studio中,没有workspace的概念,直接就是project的目录,project 下有各个Module,project负责组织module目录和编译环境(settings.gradle和build.gradle),module则负责自己的编译配置(本目录下的build.gradle),如:源码路径,编译工具版本等等,相对eclipse更加灵活,而且都有gradle配置文件支持,可读性十分的好。

      看得出来Eclipse 和 AS(打字太烦)的源码路径是不一样的,不过想想我们上一篇的BaseExtension.groovy把,改改配置就OK了,就不要移动文件夹了。

    第一步:在eclipse的工程目录中添加build.gradle

      我们把我们的My Application中的 app 的build.gradle拷贝到EclipseDemo目录就可以了,增加 源码路径配置

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 21
        buildToolsVersion "21.1.1"
    
        defaultConfig {
            applicationId "suning.com.myapplication"
            minSdkVersion 15
            targetSdkVersion 21
            versionCode 1
            versionName "1.0"
        }
    
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        //添加eclipse源码路径
        sourceSets {
            main {
                manifest {
                    srcFile 'AndroidManifest.xml'
                }
                java {
                    srcDir 'src'
                }
                res {
                    srcDir 'res'
                }
                assets {
                    srcDir 'assets'
                }
                resources {
                    srcDir 'src'
                }
                aidl {
                    srcDir 'src'
                }
            }
        }
        
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
    }
    

     如果你迁移的是android library,那么第一行的要改成:

    apply plugin: 'com.android.library'
    

      而且不能加 applicationId "suning.com.myapplication",要去掉。

    第二步:修改My Application 的Setting.gradle

    这个Setting.gradle在第二篇中已经说过了,可以增加Project 的依赖配置,现在我们只要加一个Module就可以了

    include ':app',':EclipseDemo'
    

    重启 Android Studio 就可以了。

    假设在项目的文件结构是这样的:一个统一的workspace目录下,有一个android studio项目 project,一个module 目录 app2 和他平行。在project的目录下,有一个目录library,里面一个android library的module lib1。

    |-----workspace

      |-----app2

      |-----project

          |-----app1

          |-----library

                |--lib1

          |-----setting.properties

          |-----build.gradle

    配置如下:

    include ':app1',':app2',':lib1'
    project(':app2').projectDir = new File(settingsDir, '../app2')
    project(':lib1').projectDir = new File(settingsDir, '/library/lib1')
    

      

    总结下各个配置文件: 

    主project文件夹中:

      Settings.gradle:负责配置这个project在android Studio中到底需要显示几个Module,各个Module的实际的文件路径。

      build.gradle:负责配置这个project使用gradle的版本和maven库等,主要是配置整个编译环境。

      local.properties:负责配置这个project本地sdk和ndk的位置。这个与eclipse是一致的。

      gradle.properties:负责配置代理等。

    每个Module文件夹中:

      build.gradle:负责这个Module的各个编译配置,如SDK,和BuildTool的版本,以及各个源码的位置。如果不配置各个源码的位置,那么就要按照默认的位置存放。

     后记:

    1.gradle.properties 中配置代理配置代理:

    systemProp.http.proxyHost=10.19.110.31
    systemProp.http.proxyPort=8080
    
    systemProp.https.proxyHost=10.19.110.31
    systemProp.https.proxyPort=8080
    
    #systemProp.http.proxyUser=User
    #systemProp.http.proxyPassword=password
    #systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost
    

      

      

  • 相关阅读:
    选项卡自动切换(定时器demo)
    JS基础——选项卡套选项卡(函数传参)
    JS基础——修改文本框的值(函数传参)
    JS基础——选项卡列表显示隐藏缩略图(函数传参)
    js基础——图片切换实例(函数传参)
    JS 获取元素的属性值,非内联样式
    css position 定位
    ie6-7 overflow:hidden失效问题的解决方法
    Vue自带的过滤器
    Vue数据绑定
  • 原文地址:https://www.cnblogs.com/chenjie0949/p/4779064.html
Copyright © 2011-2022 走看看