android studio使用详解

        我一直android开发以来使用的都是eclipse开发的,在android studio刚出来的时候,尝鲜了一下,发现并没有想象中的好用,而且一些开发习惯很难改过来,所以就又继续用eclipse了,直到最近,发现github上很多开源项目都是用的gradle开发的,我才想起了android studio,经过一周的练习使用,从下载安装到现在的APP签名发布,基本算是流程走了一遍,虽然关于gadle的配置还有很多不了解的地方,但是总算对之也有了一些全面的认识,特此把其中遇到的问题记录下来。

  1. 新建项目或者导入项目的时候会遇到提示android studio building gradle project info,一直卡在这里很久,这是因为studio需要下载gradle,这个比较耽误时间,我不晓得它选择的从哪下的,但是很慢。解决方法:到电脑的C:\Users\Administrator\.gradle\wrapper\dists目下会看到studio下载的版本,点一个进去,看下studio下载的哪个版本,然后到gradle官网下载当前版本的gradle,放到文件夹下就OK。如下图:

    android studio使用详解
     
  2. 快捷键习惯问题,在eclipse转到android studio的时候,快捷键很不顺手,影响开发进度,很简单,打开studio, File->settings->keymap如下图设置:

    android studio使用详解
     选中eclipse后,我们就可以使用像eclipse一样的快捷键了
  3. 项目配置问题,使用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进行打包。
  4. 引用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.** { *; }
     

    以上问题是让我纠结时间比较久的问题,特分享出来

相关推荐