遷移項目到Android Studio

由於公司項目需要多包名APK的支持,所以把公司的項目從eclipse遷移到了Android Studio.

以下是一些遷移經驗:

遷移準備

  • Android Studio對代碼檢查比較嚴格,代碼中如果存在一些重複ID和重複String,儘量都使用lint處理掉。
  • Android Studio對於JAR包重複會導致編譯失敗,如果引用的項目中有相同的jar包,先清理掉,只保留一份。

開始遷移

目前Android Studio支持兩種方式遷移

  • 如果想保持原有的目錄結構,
    在eclipse繼續開發,我們採用通過eclipse導出gradle文件的方式,
    在Studio中再import gradle文件的方式加進來
  • 如果不準備保留原有結構,直接用Android Studio打開eclipse項目,會提示遷移,該方式是通過拷貝的方式,新生成一份新結構的代碼。

完成遷移

在導入gradle文件後,每個Module都有一個build.gradle文件,
在setting.gradle中會include所有需要Module。
導入完成後,嘗試編譯運行一下,首次運行編譯較慢,需要耐心等待。

lint配置

Android Studio中的Lint檢測需要在build.gradle中配置,在Settings裏面修改並不能生效,如果想暫時忽略的話,可以加入

android{
    lintOptions {
        abortOnError false
    }
}

JNI問題

Android Studio對eclipse導入的項目,打包時會少打入so文件,需要在Gradle的sourceSets加入

sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

配置多渠道打包

  • 第一步 在AndroidManifest.xml裏配置PlaceHolder
    <meta-data
    android:name="UMENG_CHANNEL"
    android:value="${UMENG_CHANNEL_VALUE}" />
  • 第二步 在build.gradle設置productFlavors
android {  
    productFlavors {
        xiaomi {}
        _360 {}
        baidu {}
        wandoujia {}
    }  
    productFlavors.all { 
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] 
    }
}

支持多包名APK

支持多包名比較簡單,比如我新增一個google的渠道包,
在其中指定一個特殊的packageName

android {  
    productFlavors {
        google {
            packageName "com.example.google"
            versionCode 1
        }
    }  
}

本文作者: 陽春麪
本文出處:http://www.aswifter.com/2015/06/12/eclipse-to-android-studio/
轉載請在開頭註明本文出處。

歡迎關注我的微信公衆號,分享Swift開發,Android 開發和互聯網內容
微信號:APP開發者

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章