Android Studio的Configuring高级配置

http://blog.csdn.net/u013278099/article/details/51130526
http://blog.csdn.net/u013278099/article/details/51130526 

Android Studio的Configuring高级配置----》屌炸了

标签: android studio
  265人阅读  评论(1)  收藏  举报
  分类:
 

目录(?)[+]

当我们在配置 Android Studio 的时候,下面的一些配置或许有一些帮助。 
原文 liukun.engineer

本文主要内容来自Dmytro Danylyk 在Medium 的文章Configuring Android Studio。在此感谢!虽然使用Android Studio 有一定的时间了,但文中的某几个设置之前还真不知道,且原文在长城外,因此在翻译原文的基础上作了一些补充,若有新的发现会即时更新。希望对大家尤其是刚接触Android Studio 的朋友有一点帮助。

前面的话

Android Studio 提供了一个非常方便的功能帮助我们导入或者导出设置。因此我们在安装一个新的Android Studio 的时候通常会导入一个之前的设置。但是,最近发生了一件操蛋的事情-我丢失了我的设置文件(幸灾乐祸点个赞~)。

我的建议:即时的备份你的设置文件到云盘等地方。

当我在配置我的Android Studio 的时候,下面的一些配置或许对你有一定的帮助。

显示行号

当我首次启动我的Android Studio 的时候,我想做的第一件事就是希望能看到文件中的行号,我一直很奇怪这个基本的配置为毛不是默认开启的?! 
对此我只想说四个字: 
这里写图片描述 
这里写图片描述 
未显示行号 
这里写图片描述 
显示行号

配置方法
  • File | Settings 打开设置
  • 选择Editor | General | Appearance
  • 勾选Show line numbers

这里写图片描述 
设置 
ps:在编辑区域最左侧右键选中Show line numbers 也可以让当前打开的文件显示行号,不过这是一个临时设置,当前文件关闭后便失效。

驼峰选择

Android 开发中,我们通常会使用驼峰命名法对变量进行命名,但是当我们通过Ctrl + Left / Right 键改变字符选择区域的时候Android Studio 默认不支持‘驼峰’单词的选择。 
这里写图片描述 
不支持驼峰选择 
这里写图片描述 
支持驼峰选择

配置方法
  • File | Settings 打开设置
  • 选择Editor | General | Smart Keys
  • 选中Use “CamelHumps” words

这里写图片描述

设置

注意: 如果你仍然希望当鼠标在单词上双击之后选中整个单词,需要作如下设置:

  • File | Settings 打开设置
  • 选择Editor | General
  • 取消选中‘Honor Camel Humps words settings when selecting on double click’

命名前缀

我们通常会遵循Android 官方关于编码风格的指导来进行字段命名。在Android 源码中我们可以看到通常成员变量都是以‘m’开始。其实Android Studio 可以自动在帮我们生成字段名称的时候加上自定义的前缀,如:

  • 非共有,非静态的成员变量以’m’开始
  • 静态成员变量以’s’开始

这里写图片描述

命名前缀

配置方法
  • File | Settings 打开设置
  • 选择Editor | Code Style | Java
  • 选择Code Generation 标签
  • 给普通Field 添加一个’m’前缀,给Static filed 添加一个’s’前缀

这里写图片描述 
设置

快速导包

在Android Studio 中,我们可以通过Alt + Enter 和Control + Alt + O 进行导包和清除无用导包,但我们都生活在2016年了,这些事情应当快速自动完成。 
这里写图片描述 
未开启imports on the fly 
这里写图片描述 
开启imports on the fly

配置方法
  • File | Settings 打开设置
  • 选择Editor | General | Auto Import
  • 勾选Optimize imports on the fly
  • 勾选Add unambiguous imports on the fly

这里写图片描述 
设置

Log 颜色

Darcula 主题中Logcat 的默认配色只有红白两种颜色,不太便于我们区分Log 的类型。 
这里写图片描述 
Darcula 主题配色 
我建议大家采用之前Android Holo 主题那种鲜明的配色 
这里写图片描述 
Holo 主题配色

配置方法
  • File | Settings 打开设置
  • 选择Editor | Color & Fonts | Android Logcat
  • 点击Click on Save As…按钮创建一个新的配色Scheme
  • 按照下面的表格修改对应的颜色(修改之前需要取消勾选Use inherited attributes)

这里写图片描述 
苍老师的事业线

下面是个人的一些补充:

代码配色

Android Studio 中默认的代码配色个人感觉已经很和谐,但这个东西仁者见仁。比如有的朋友会觉得Java 代码中局部变量的默认的白色不太便于快速与其它代码进行区分,这时候就需要自定义java 代码颜色,这里以局部变量为例。 
这里写图片描述 
默认配色 
这里写图片描述 
自定义配色

配置方法

  • File | Settings 打开设置
  • 选择Editor | Color & Fonts | Java
  • 点击Click on Save As…按钮创建一个新的配色Scheme
  • 展开下方的Variables 选择Local variable
  • 设置右侧的Foreground 颜色

    这里写图片描述 
    设置

工程模板

Android Studio 创建Module 时并没有将Android 开发中常用的文件目录全部生成,比如默认只生成了一个drawable 文件夹,常用的drawable-hdpi 等文件夹需要我们自己创建。正如前文的作者所言,这都2016年了,这些事情应该自动完成,毕竟我们都很‘懒’! 
这里写图片描述 
默认结构 
这里写图片描述 
自定义结构

配置方法1
  • 进入Android Studio 安装目录
  • 依次进入plugins | android | lib | templates | gradle-projects |NewAndroidModule | root | res
  • 在res文件夹下创建drawable-hdpi 等文件夹(可选:从对应的mipmap文件夹中拷贝iclauncher.png到创建的drawable文件夹中)
  • 回到NewAndroidModule 目录,用编辑器打开recipe.xml.ftl文件 
    加入以下配置 
    这里写图片描述
配置方法2
  • 进入Android Studio 安装目录
  • 依次进入plugins | android | lib | templates | gradle-projects | NewAndroidModule
  • 用编辑器打开recipe.xml.ftl文件,并加入以下配置

这里写图片描述 
这两种方法的区别是,第一种方式可以在文件夹中加入相应的图片,但是配置稍显繁琐,第二种方式配置简单,但是只能创建目录,不能包含默认图片。

当然,通过类似的方式我们还可以在创建Module 的时候做很多事情,比如:

  • 在colors.xml 文件中生成常用颜色
  • 在build.gradle 文件中生成自定义配置
  • 在.gitignore 文件中生成自定义忽略配置
  • 等等…

活动模板

Android Studio 中默认提供了很多非常方便的活动模板(Live Templates),例如,我们输入sout 后按enter 键,Android Studio 会自动帮我们写入System.out.println(); 
这里写图片描述 
其实sout 就是AS自带的一个活动模板。 
这里写图片描述 
由此可以看出,活动模板就是我们常用代码的一个缩写。开发中有很多代码都会重复出现,因此自定义合适的活动模板能很大程度上避免我们很多重复的体力劳动。那么问题来了,如何自定义? 
这里我们以Handler 为例。下面是在Activity 中一个合格的Handler 该有的样子:

<code class="hljs java has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">static</span> <span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">class</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">MyHandler</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">extends</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">Handler</span> {</span>
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">private</span> WeakReference<MainActivity> activityWeakReference;

        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-title" style="box-sizing: border-box;">MyHandler</span>(MainActivity activity) {
            activityWeakReference = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> WeakReference<MainActivity>(activity);
        }

        <span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-box;">@Override</span>
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">handleMessage</span>(Message msg) {
            MainActivity activity = activityWeakReference.get();
            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (activity != <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">null</span>) {

            }
        }
    }
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li></ul>

至于原因我就不再重复了,网上有太多的文章有讲过。现在如果我只希望输入一个‘psh’ 就自动出现上面这段代码的话,我应该这么做:

配置方法
  • File | Settings 打开设置
  • 选择Editor | Code Style | Live Templates
  • 点击最右侧的加号并选择Template Group
  • 在弹出的对话框中输入一个活动模板分组的名称,如custom
  • 在左侧选中上一步中创建的custom 分组,点击右边的加号
  • 选择Live Template ,在Abbreviation 中对输入psh
  • 在Description 中输入这个活动模板的描述
  • 在Template text 中输入以下代码

    这里写图片描述

  • 点击下方的Define 按钮,选中java 表示这个模板用于java代码
  • 点击右侧的Edit variables
  • 选择Expression 下拉框中的className 并勾选Skip if…

这个操作的作用是,AS会自动将我们在上一步中用’$’符包裹的className自动替换为当前类不含包名的类名

至此,一个我们自定义的custom 模板组中的psh 活动模板就定义完成了。下面我们来验证一下,见证奇迹的时候到了: 
这里写图片描述

后面的话

由于互联网数据的分享性,如果本文部分内容来源于您的原创文章,且我没有注明(我相信本文中没有),请微博私信说明。 
欢迎转载,但最好请注明文章原始出处。 
身为一名老司机,没有福利不太合适。 
如果你正在办公室,不建议你阅读以下内容。

想啥呢你们,全都是套路! 
这里写图片描述 
作者:liukun 
出处:http://liukun.engineer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Android Studio中打包jar文件,可以按照以下步骤操作: 1. 在项目的build.gradle文件中添加以下代码: ``` android { ... } // 添加以下代码 task createJar(type: Copy) { from('build/intermediates/bundles/release/') into('release/') include('classes.jar') rename('classes.jar', 'your_jar_name.jar') } // 添加以下代码 artifacts { archives createJar } ``` 2. 点击菜单栏中的Build -> Make Project,等待编译完成。 3. 在项目根目录下会生成一个release文件夹,里面包含了生成的jar文件。 4. 如果想要修改生成的jar文件名字,可以在build.gradle文件中修改rename('classes.jar', 'your_jar_name.jar')中的your_jar_name为自己想要的名字。 希望对你有帮助! ### 回答2: Android Studio 是一款非常流行的 Android 应用程序开发工具,其内置了许多有用的工具和功能,其中包括打包 JAR 文件的功能。下面是打包 JAR 的详细步骤。 步骤 1:创建 Java Library Module 在 Android Studio 中创建一个新项目或打开现有项目并使用以下步骤创建一个 Java Library Module: 1. 选择 File -> New -> New Module。 2. 在弹出窗口中,选择 Java Library,并单击 Next。 3. 输入模块名称,例如 mylibrary,并单击 Finish。 这将创建一个名为 mylibrary 的新 Java Library Module。 步骤 2:编写 Java 代码 在 mylibrary 模块中编写您的 Java 代码。请确保类和方法公开,以便使用该库时可以从您的应用程序中调用。 步骤 3:配置 Gradle 1. 在 Project 面板中,打开 build.gradle(Module: mylibrary)文件。 2. 将以下代码添加到文件的末尾: ``` task createJar(type: Jar) { from('build/classes/main/') archiveName = "mylibrary.jar" } ``` 此代码指定 Gradle 任务,该任务将创建名为 mylibrary.jar 的 JAR 文件,并将其保存在 build/libs 目录下。 3. 在菜单栏中,选择 Build -> Build Module 'mylibrary'以将项目编译为 JAR 文件。 步骤 4:使用您的 JAR 文件 1. 打开您的 Android 应用程序项目。 2. 将生成的 mylibrary.jar 文件复制到您的应用程序项目的 libs 目录中。 3. 在 Project 面板中,右键单击您的应用程序项目,并选择 Open Module Settings。 4. 在左侧面板中,选择您的应用程序模块。 5. 在右侧面板中,选择 Dependencies 标签。 6. 单击加号图标,然后选择 File dependency。 7. 选择您刚刚复制到 libs 目录的 mylibrary.jar 文件,并单击 OK。 8. 现在,您可以使用您的 JAR 文件中定义的任何类和方法来开发您的 Android 应用程序了。 总结 使用 Android Studio 打包 JAR 文件非常简单,只需要创建一个 Java Library Module、编写您的 Java 代码、配置 Gradle 和使用您的 JAR 文件。遵循上面的步骤,您可以轻松地将自己的库添加到 Android 应用程序中。 ### 回答3: Android Studio 是一个基于 IntelliJ IDEA 的 Android 应用程序开发工具,它提供了一系列的工具,用于方便应用程序的开发、测试和部署。Android Studio 可以打包.jar 文件。 打包.jar 是为了把编写的 Java 代码作为一个独立并可重用的代码库发布并运行在不同的平台上。而jar包具有高的可重用性和可扩展性,会出现在很多项目中。下面介绍如何在 Android Studio 中打包.jar: 第一步,配置 build.gradle。在 app 目录下,打开 build.gradle 文件,配置以下代码: ``` apply plugin: 'com.android.library' android { compileSdkVersion 26 defaultConfig { minSdkVersion 17 targetSdkVersion 26 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) } task deleteOldJar(type: Delete) { delete 'libs/your_project.jar' } task exportJar(type: Exec) { workingDir "${project.buildDir}/intermediates/classes/release/"//.class 文件所在目录 def jarName = "your_project.jar" // Jar 包名称 commandLine 'jar', 'cvf', "../../../../../libs/'$jarName'", "."//manifest 和 class 所在目录,"."意为当前目录 } exportJar.dependsOn(deleteOldJar, build) ``` 其中, apply plugin: 'com.android.library' 这句话意味着当前工程看做一个 library,而不是一个 application。 dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) } 这句话意味着查找 libs 文件夹中的所有.jar 文件,并引用其中的类。 task deleteOldJar(type: Delete) { delete 'libs/your_project.jar' } 这里的任务名叫做 deleteOldJar,它的作用是在执行 exportJar 任务之前,删除之前的 Jar 包,避免重复。 task exportJar(type: Exec) { workingDir "${project.buildDir}/intermediates/classes/release/" def jarName = "your_project.jar" commandLine 'jar', 'cvf', "../../../../../libs/'$jarName'", "." } 这里的任务名叫做 exportJar,它的作用是在将编译后的.class 文件打包成 Jar 包,具体实现关键在于 commandLine、workingDir 和 jarName。其中: commandLine 表示之后要执行的命令,'jar' 表示要打包成 Jar 包,'cvf' 表示创建新文件、给文件注释、打成压缩包的格式。 workingDir 表示在执行命令之前,切换到的目录。这里是指切换到编译好的.class 文件所在的目录。 jarName 表示要生成的 Jar 文件名称。 第二步,执行任务。这时,在 Android Studio 中,打开 Terminal(快捷键为 Alt + F12),然后执行以下命令: ``` ./gradlew exportJar ``` 运行完成后,在 app 目录下的 libs 文件夹中,就可以看到生成的.jar 文件。 总结一下,以上就是在 Android Studio 中打包.jar 的全部步骤,如需更多细节请阅读 Configuring Gradle Builds 文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值