您的位置:首页 > 编程语言 > Java开发

从Eclipse迁移到Android Studio

2015-11-25 16:00 411 查看
本博客与RayXXZhang的博客保持同步更新,转载请注明来自RayXXZhang的博客-从Eclipse迁移到Android Studio

Android Studio发布正式版后,Google的重心转向AS,以后可能也会逐步停止对Eclipse的支持,而且目前开源项目有很多以及不支持Eclipse。因此决心将项目转到Android Studio进行开发。

安装

Android Studio的安装需要联网并且下载Android SDK和gradle等等才能使用。

同时AS的使用需要配合相应位数的JDK,并且JDK的路径需要设置到JAVA_HOME环境变量。

AS的安装包大约300-400MB,但安装好后加上SDK等等其他依赖,占用空间可能达到8GB以上。

因此如果能获取到AS安装后的文件也可以直接复制使用。复制时需要复制Android Studio安装文件夹,SDK文件夹,以及个人目录下的.gradle和.androidstudiox.y文件夹,其中x.y为AS的版本号,其中存放着AS的配置。

导入

Eclipse项目迁移到AS的第一步是更新Eclipse的AJDT插件,然后在文件菜单选择导出,将Eclipse工程导出成AS工程。导出后会在目录下生成build.gradle文件,

然后在AS选择导入非AS工程的选项即可导入,第一次使用由于需要分析构建整个项目,所以速度会比较慢。

注意事项

so库的支持

如果是纯java的项目,导入后就基本能编译运行了,如果项目中还依赖so库,

可以通过在build.gradle文件中添加jniLibs.srcDirs = [‘so文件的目录’]来导入so库

android {
// 其他配置
sourceSets {
main {
//其他配置
jniLibs.srcDirs = ['libs']
}
}
}


META-INF中文件重复的问题

有些第三方库会在META-INF文件夹中放一些版权说明的文件,如果不止一个库在放了同名的文件,

在打包时gradle就无法决定应META-INF文件夹中应该使用哪个文件。

这种情况下,可以通过在build.gradle文件中排除这些文件来解决。

版权文件的文件名通常是LICENSE, NOTICE, license.txt, notice.txt之一。

因此可以通过如下配置排除:

android {
// 其他配置
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/license.txt'
exclude 'META-INF/notice.txt'
// 还可添加其他要排除的文件
}
}


该方法也可以用于排除其他不想被打包到APK里的文件。

小技巧

动态设置编译版本号

build.gradle文件中可以设置编译出的APK的版本号,如果设置了版本号,则会覆盖Manifest.xml中设置的版本号。

这样,就给我们提供了一个动态修改编译版本号的方法。如果版本控制使用了SVN,就可以通过编写如下函数来实现动态获取SVN版本号和编译时间:

def getVersionCode = {
try {
def code = new ByteArrayOutputStream()
exec {
commandLine '用于获取版本号的命令'
standardOutput = code
}
return Integer.valueOf(code.toString().split("\r\n")[0])
}
catch (ignored) {
return 0;
}
}
def getVersionName = {
try {
def code = new ByteArrayOutputStream()
exec {
commandLine '用于获取版本号的命令'
standardOutput = code
}
def date = new ByteArrayOutputStream()
exec {
commandLine '用于获取编译时间的命令'
standardOutput = date
}
return code.toString().split("\r\n")[0] + "." + date.toString().split("\n")[0]
}
catch (ignored) {
return "";
}
}

android {
updateSVNInfo()
defaultConfig {
versionCode getVersionCode()
versionName getVersionName()
minSdkVersion 8
targetSdkVersion 23
}


APK签名配置

在Eclipse里debug版本的签名只能使用默认的签名,而在Android Studio中可以通过build.gradle来配置签名所使用的证书:

android {
// 其他配置
signingConfigs {
debug {
storeFile file("签名密钥路径")
keyAlias '密钥Alias'
keyPassword '密钥密码'
storePassword '存储密码'
}
// 可以指定其他编译类型的配置,如release
}
}


配置debug和release使用一样的签名就避免了在debug和release混合安装的时候出现签名错误需要重新卸载后再安装的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息