zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Android Studio开发环境设置汇总

2023-04-18 14:29:26 时间

1. 前言

        最近在ubuntu18.04环境下开发,需要重新搭建AS的开发环境,记录一下设置的参数和配置,做个笔记,方便查阅。

2. Android Studio配置

官网地址:Android Studio 下载文件归档  |  Android 开发者  |  Android Developers

这里有AS不同的版本,尽量下载稳定版本, 前几天下载了最新版本的,在导入源码过程中一直出问题,然后卸载后重新安装一个4.1.3低版本。

2.1 配置桌面图标

        安装过程比较简单,直接解压后,打开bin目录下的studio.sh文件,启动AS,此时,是没有桌面快捷图标的,接下来第一步配置桌面应用图标

  第一步: 打开终端,在root权限下执行

sudo gedit /usr/share/applications/Studio.desktop

  第二步: 在 Studio.desktop 文档中配置如下信息

[Desktop Entry]
Type=Application
Name=Android Studio
Exec="配置你的Andriod sudio路径,直到bin目录下/studio.sh" %f
Icon=配置你的Andriod sudio路径,直到bin目录下/studio.png
Categories=Development;IDE;
Terminal=false
StartupNotify=true
StartupWMClass=jetbrains-android-studio
Name[en_GB]=android-studio.desktop

其中 Exec 和 Icon 两个选项,写入自己 Android studio 对应的安装路径,其他选项和对应的内容可直接复制,然后保存退出即可。

第三步: 文件管理器进入/usr/share/applications/目录下 ,可以看到AndroidStudio图标(之前失败就是这里不能看到图标)。


   然后给予执行权限,在该目录下打开终端。
   输入命令:sudo chmod +x Studio.desktop

第四步:在桌面左下角“显示应用程序”中可以找到AS图标 ,添加到收藏夹中

图标就显示在左侧快捷栏中了,完成。

2.2 优化AS编译速度

新建一个工程,待工程自动初始化编译完成,成功后会自动下载好对应版本的gradle插件

为了以后新建的项目工程编译快一点,我们不使用google下载,我们给AS配置国内的阿里云镜像,加速工程依赖的包的下载

第一步:单个项目配置

首先你需要确认你已经在 Settings -> Appearance&Behavior -> System Settings -> HTTP Proxy 中选中了 No Proxy。

第二步:然后找到项目根目录下的 gradle.properties 文件,打开查看该文件中是否有关于 proxy 设置(代理的地址和端口)的相关语句,删除这些内容。如果没有这些语句,可以跳过此步骤

第三步:同样在 /home/用户名/.gradle/路径下删除  gradle.properties文件中的proxy设置相关的语句,如果没有,可以跳过此步骤

第四步:在工程项目根目录下的build.gradle中添加阿里的镜像,这样虽然说能解决下载依赖包慢的问题,但是每次都这么搞一次也是很浪费时间,修改如下:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        // 改为阿里云的镜像地址
        maven { url 'https://maven.aliyun.com/repository/central' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        //google()
        //jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.3"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        // 改为阿里云的镜像地址
        maven { url 'https://maven.aliyun.com/repository/central' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        //google()
        //jcenter()
    }
}

上面这个方法了对于单个工程有用,这样子每次都要设置一次,肯定不是我们希望了,所以需要全局配置,方法如下:

第五步:在 /home/用户名/.gradle/ 路径下新建一个init.gradle的文件,配置如下内容

allprojects{
    repositories {
        def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
        def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                    remove repo
                }
                if (url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                    remove repo
                }
            }
        }
        maven {
            url ALIYUN_REPOSITORY_URL
            url ALIYUN_JCENTER_URL
        }
    }
}

第六步:设置离线模式编译

设置方法 : Settings--->Build,Execution,Deployment--->Compiler

 添加参数:--offline          在不访问网络资源的情况下编译运行。

上面的选项根据电脑性能配置决定是否勾选:并行编译独立模块(可能需要较大的堆大小)

第七步:清理缓存重启(invalidate and restart)验证配置后的编译速度

2.3 优化AS启动速度

第一步: 在使用AS开发安卓应用程序的时候经常会遇到Gradle build running一直在运行甚至卡死的情况,解决方法如下:

在studio安装目录bin文件夹下找到idea.properties文件最后一行加入:

disable.android.first.run=true

第二步:更改studio的VM大小, AS限制了Java虚拟机启动的内存大小,限制了最大堆内存,当AS运行越久,内存越不足的时候,就会频繁的触发GC,AS就自然会卡起来了,严重的直接黑屏,所以,我们把对应的所需内存都配置大一些,32位的系统打开studio.exe.vmoptions文件,如果是64位的话打开studio64.exe.vmoptions,改动以下配置,根据各自配置适当调节。

建议修改值:AS默认配置值  ×  4

-Xms512m
-Xmx4096m
-XX:MaxPermSize=2048m
-XX:ReservedCodeCacheSize=1024m


第三步:开启 gradle 单独的守护进程

当Android Studio 遇到错误的时候,往往会导致 Android Studio 挂掉,为了防止退出程序,则另外开启一个线程来守护 Android Studio 的进程,具体操作。 在 /home/用户名/.gradle 这个目录下,创建 gradle.properties 配置文件,复制以下配置进行优化。

# Project-wide Gradle settings.
org.gradle.daemon=true  
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=1024m  
-XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true  
org.gradle.configureondemand=true

第四步:重启AS 验证修改配置后的启动速度。

2.4 常规配置

1. 设置快捷键的风格,习惯用Eclipse的快捷键,设置如下:

        Settings--->KeyMap --->修改为Eclipse

2. 设置代码背景色

        颜色在这里向大家推荐豆沙绿,下面是维基百科的介绍:豆沙绿,是指一种类似豆沙的颜色色调。因其颜色观感柔和,故有网友称在电脑上阅读时采用此颜色为背景有利于保护视力(相较于白色等亮度、刺激性较高的颜色)。但此说法并未得到任何科学证实。

        豆沙绿的色调为85  饱和度:123    亮度:205

        网页颜色 : #C7EDCC

        RGB值 : (199, 237, 204)

设置方法如下:

Settings ---> Editor--->Color Scheme --->General--->Default text---> Background

        

3.  设置字体大小

设置方法如下: Settings ---> Editor--->Font  可以用来设置字体风格,大小 ,字体行间距

4. 设置编码UTF-8

设置方法如下: Setting--->Editor---->File Encoding 进行编码设置统一修改为UTF-8

IDE Encoding:IDE 的编码

Project Encoding:项目的编码

File or Director Encoding:各个文件或者目录的编码

5. 设置顶部Tab页文件排列行数

AS默认不管多少个文件都在顶部显示一行,当然我们也可以并行显示出来,这样子更加方便查看你打开过的文件,设置方法如下:Editor---> General --->Editor Tabs  

1. 不勾选 show tabs in one row 选项

2. Tab limit 是设置显示文件的最大个数,可以自己设置

效果如下:

 6. 主题设置

设置方法: Settings---> Appearance&Behavior---> Appearance--->Theme

7. 动画显示设置

为节约电脑性能可以禁止掉动画显示, 为了提升效率,可以不勾选Animate windows即可

设置方法: Settings---> Appearance&Behavior---> Appearance--->Animate windows

8. 取消自动检查更新

AS经常每隔一段时间去检测新版本,因为是做系统开发的,对AS新插件和新技术依赖的不多,不需要经常更新升级版本,所以可以去掉自动检查更新。

设置方法:Settings---> Appearance&Behavior---> Appearance--->Updates

 可以禁用自动检查更新,减少AS的检查更新内存消耗。

下拉列表为更新通道,主要有4种:

1)Stable Channel : 正式版本通道,只会获取最新的正式版本。

2)Beta Channel : 测试版本通道,只会获取最新的测试版本。

3)Dev Channel : 开发发布通道,只会获取最新的开发版本。

4)Canary Channel : 预览发布通道,只会获取最新的预览版本。

以上4个通道中, Stable Channel 最稳定,问题相对较少, Canary Channel 能获得最新版本,问题相对较多。

9. 显示方法间隔线和显示空格符

这个看个人喜好来设置,设置方法:Settings--->Editor--->General--->Appearance

显示方法间隔线:勾选 Show methods sparators

显示空格符:勾选 Show whitespaces

 效果图:

10. 修改java语句合并成一行

格式化代码的时候,会把些很短的语句合并成一行,这样影响代码可读性。

修改方法:Settings--->Editor--->Code Style--->Java

11. 配置AS识别成员变量的m前缀

java编程规范中对变量的命名规则如下:

Non-public, non-static field names start with m.

Static field names start with s.

Other fields start with a lower case letter.

Public static final fields (constants) are
ALL_CAPS_WITH_UNDERSCORES.

翻译过来:

非公有、非静态域的变量以m开头(其实就是protected,default, private成员变量)

静态变量以s开头

其它变量以小写字母开头

Public static final变量(常量)以下划线连接全大写ALL_CAPS_WITH_UNDERSCORES

举个例子:

public class TestClass {

    public int publicField; //public 成员变量

    private static TestClass sSingleton; //private static 成员变量

    int mPackageDefault;    //default成员变量

    private int mPrivateField;  //private 成员变量

    protected int mProtectedField; //protected 成员变量

    public static final int FIELD_CONSTANT = 15; //常量
}

 知道如上规则后,按照上述规则在测试类中定义成员变量,并创建Setter 和 Getter方法

public class me {
    
    public char c;
    private int mAge;
    protected  String mName;
    private static int sLonger = 5;

    public char getC() {
        return c;
    }

    public void setC(char c) {
        this.c = c;
    }

    public int getmAge() {
        return mAge;
    }

    public void setmAge(int mAge) {
        this.mAge = mAge;
    }

    public String getmName() {
        return mName;
    }

    public void setmName(String mName) {
        this.mName = mName;
    }

    public static int getsLonger() {
        return sLonger;
    }

    public static void setsLonger(int sLonger) {
        me.sLonger = sLonger;
    }
}

有没有发现:Getter and Setter 方法多了一个 m 或s 如:  

getmAge()  setmName() getsLonger() 这一看就觉的很别扭,显然不符合java方法的命名规范

有没有办法让Android Studio 能自动识别出前缀呢?当然,设置方法如下:

 Settings--->Editor--->Code Style--->Java--->Code Generation

选择Fields行,添加m作为fields的前缀,然后添加s作为Static Fields的前缀

 设置完成后,我们在重新对上面的4个变量 生成Getter 和 Setter 方法

public class me {

    public char c;
    private int mAge;
    protected  String mName;
    private static int sLonger = 5;


    public char getC() {
        return c;
    }

    public void setC(char c) {
        this.c = c;
    }

    public int getAge() {
        return mAge;
    }

    public void setAge(int age) {
        mAge = age;
    }

    public String getName() {
        return mName;
    }

    public void setName(String name) {
        mName = name;
    }

    public static int getLonger() {
        return sLonger;
    }

    public static void setLonger(int longer) {
        sLonger = longer;
    }
    
}

好了,一看就符合编程语言规范,设置完毕.

11. 类模板注释

每次建新类的时候,在文件头都会自动加入一些文件说明信息。

设置方法: Settings--->Editor--->File and Code Templates--->Includes--->File Header

 编写如下模板:

/** 
  * @ProjectName:     ${PROJECT_NAME}  
  * @PackageName:     ${PACKAGE_NAME} 
  * @Description:     java类作用描述 
  * @Author:         作者名
  * @CreateDate:     ${DATE} ${TIME}
  * @Version:        1.0
 */

当你新建一个类,会自动填充类的相关信息,效果图如下:

 12. 自定义添加注释模板

Android Studio可以添加文档注释模板,当我们在想写注释的地方通过快捷键便捷地生成文档注释

设置方法:  Settings--->Editor--->Live Template

这是我自定义设置成功后的最终效果图:

实现步骤如下:

第一步:  点击 右侧 + 号,选择Template Group, 在对话框中输入自定义名称:MyChanged

第二步:  先选中MyChanged,  然后在点击右侧 + 号, 选择 Live Template ,如下图:

Abbreviation:图标注1 注释模板的缩写 ,就是你生成注释模板的快捷键  我写成cq  表示class quick 注释

Description:   图标注2   注释模板的简短描述

Template text: 图标注3  模板的内容,这个是自定义的格式

/**
 * author : me
 * date   : $date$ $time$
 * desc   : 类描述模板,可以自定义格式
 * version: 1.0
 */


/**
 * @description: 方法描述模板,可以自定义格式
 * @date:  $date$ $time$
 * @author: me
 * @param:
 * @return:   
*/

Change:              图标注4   表示注释模板生效的地方, 弹出对话框,选择 Java ----Declaration

其实到这里一步,注释模板就已经设置ok了,快捷键功能也可以生效了.

第三步: 当然你也可以对Template text的变量:     定义默认值  或者  通过Express来赋值:

 这样在代码中使用该模板生成注释时会自动用表达式的值替换变量。

第四步: 在java类中, 输入 cq   mq 快捷键就可以自动填充注释内容

3. 总结

        上述AS配置是基于4.1.3版本的, 在不同的版本上面会存在差别,也是把平时优化AS的细节列举出来, 供参考,希望你的AS运行也一如既往的丝滑.