android studio使用详解
我一直android开发以来使用的都是eclipse开发的,在android studio刚出来的时候,尝鲜了一下,发现并没有想象中的好用,而且一些开发习惯很难改过来,所以就又继续用eclipse了,直到最近,发现github上很多开源项目都是用的gradle开发的,我才想起了android studio,经过一周的练习使用,从下载安装到现在的APP签名发布,基本算是流程走了一遍,虽然关于gadle的配置还有很多不了解的地方,但是总算对之也有了一些全面的认识,特此把其中遇到的问题记录下来。
- 新建项目或者导入项目的时候会遇到提示android studio building gradle project info,一直卡在这里很久,这是因为studio需要下载gradle,这个比较耽误时间,我不晓得它选择的从哪下的,但是很慢。解决方法:到电脑的C:\Users\Administrator\.gradle\wrapper\dists目下会看到studio下载的版本,点一个进去,看下studio下载的哪个版本,然后到gradle官网下载当前版本的gradle,放到文件夹下就OK。如下图:
- 快捷键习惯问题,在eclipse转到android studio的时候,快捷键很不顺手,影响开发进度,很简单,打开studio, File->settings->keymap如下图设置:
选中eclipse后,我们就可以使用像eclipse一样的快捷键了 - 项目配置问题,使用android studio,我们不需要再AndroidMainfest.xml里配置SDK版本,只用在build.gradle里配置就ok。以下算是一个简略的模板,仅供参考:
apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 19 versionCode 16 versionName "1.6" } signingConfigs { release { storeFile file("jclick") storePassword "xxxx" keyAlias "xxxx" keyPassword "xxx" } } buildTypes { release { runProguard true proguardFiles 'proguard-rules.txt' signingConfig signingConfigs.release } debug{ runProguard false proguardFiles 'proguard-rules.txt' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' }
以上配置支持我们在打包时候使用proguard进行代码混淆以及签名。jclick为我的keystore文件,proguard-rules.txt是我的代码混淆文件,它们都位于module的根目录下。打包发布的前提是安装gradle,具体安装方法为官网下载gradle然后把bin目录配置到环境变量path里,然后cmd执行gradle -v看是否配置成功,然后到cmd到module的根目录下,执行:gradle assembleRelease命令,就会在module的build目录下生成一堆文件,我们可以在apk文件夹里找到apk文件。另外一种打包方法:菜单Build->Generate Signed APK->选择打包的module->配置keystore信息->OK,这种打包方式我发现一个问题,就是它不会进行proguard代码混淆,直到现在也不清楚原因,所以我一直都是cmd进行打包。 - 引用library进行代码混淆时候出错,例如我在项目中用到了sherlock,它一直提示混淆失败,XXX BuildConfig,起初我一直不清楚什么原因,后来才发现是因为*.aar没有BuildConfig,所以在使用sherlock的时候,我的progurad文件里是这么配置的:
-dontwarn com.actionbarsherlock.** -keep class android.support.v4.app.** { *; } -keep class android.support.v4.view.** { *; } -keep interface android.support.v4.app.** { *; } -keep public class * extends android.support.v4.** -keep class com.actionbarsherlock.** { *; } -keep interface com.actionbarsherlock.** { *; }
以上问题是让我纠结时间比较久的问题,特分享出来
相关推荐
Nostalgiachild 2020-11-13
韩伟佳 2020-10-09
wuleihenbang 2020-09-16
zzqLivecn 2020-07-09
chenjinlong 2020-06-10
yinbaoshiguang 2020-06-09
sgafdsg 2020-06-04
ustcrding 2020-06-03
chenjinlong 2020-06-03
AndroidGA 2020-06-01
安辉 2020-05-27
绿豆饼 2020-05-26
CNETNews 2020-05-26
xilove0 2020-05-12
绿豆饼 2020-05-12
ChainDestiny 2020-05-07
doomvsjing 2020-05-07
hqulyc 2020-05-05
lyccsu 2020-04-30