AS设置
恢复默认设置
- 首先关闭AndroidStudio,注意一定要关闭哦,不然删除不了在使用的保存设置的文件;
- 删除C:\Users\本机用户名\ 目录下的**.android**目录;
- 删除C:\Users\用户名\AppData\Local\Google下的AndroidStudio4.1文件夹
- 删除C:\Users\用户名\AppData\Roaming\Google目录下的AndroidStudio4.1文件夹
- 重新打开AndroidStudio简单设置一下即可使用,比在哪找半天原因简单直接;
AS设置多行tab
setting–》Editor–》General–》Editor Tabs
勾掉“Show tabs in single row”
Tab limit:10
AS 设置代码、控制台背景色
颜色:#FCF5D8 (252,245,216)
- Windows:
更改代码区域背景色:
File》Settings》Editor》Color Scheme》General》Text》Default text 更改Background
更改输出区域(控制台)背景色:
File》Settings》Editor》Color Scheme》Console Colors》Console 更改Background
更改Project View背景色:
File》Settings》Appearance&Behavior》File Colors》Local colors 添加Project Files
- Mac:
Preferences>Editor>Color Scheme>General>Text>Default text:更改background
更改输出区域(控制台)背景色:
Preferences>搜索Console Colors:更改background
更改Project View颜色:
Apperance & Behavior>File Colors>Local colors:添加Project Files,颜色选择
打开设置>Editor>Colors&Fonts>General>
AS设置字体大小
AS整体的字体大小
File》Settings》Appearance & Behavior 》Appearance
勾选Override default fonts by(not recommended):Consolas,Size14
AS代码区的字体大小
File》Settings》Editor》Font 更改Font为Consolas,Size为14
设置ctrl+w关闭当前标签页
File》Settings》Keymap:搜索close,找到ctrl+F4快捷键的,移除它并替换成ctrl+w
设置注解不换行
File》Settings》Editor》Code Style》Java》切换到Wrappgin and Braces选项:Field annotations内勾选”Do not wrap after single annotation“
全局变量和局部变量竖向对齐
File》Settings》Editor》Code Style》Java》切换到Wrappgin and Braces选项:Group delcarations内勾选“Align fields in columns”和“Align variables in columns”
设置代码标准线
File》Settings》Editor》Code Style,找到General,更改Hard wrap at的值(默认120)
设置格式化换行
File》Settings》Editor》Code Style》Java》切换到Wrappgin and Braces选项:勾选Line breaks和Ensure right margin is not exceeded
Line breaks 选中表示保持断行
Ensure right margin is not execeeded选中表示代码超过标准线就自动换行
更改JDK、SDK 的路径
File–Other Settings–Default Project Structure…
新版AS的JDK更改:
Settings>Build,Execution,Deployment>Build Tools>Gradle中更改
更改工作空间编码
File–Settings–Editor–File Encodings:右侧 Project Encoding 选择 UTF-8 即可
AS 缓存文件移出 C 盘(windows)
C:\Users\YourName\ **
路径下:
这三个文件夹分别是:
- AndroidStudio 配置与插件缓存文件夹
- gradle 这个文件夹一般不会增长太多,其中存储的是本地的gradle全局配置文件
- m2 这个是本地仓库地址,也就是你使用的所有的远程库都会先缓存到这里然后再添加到你的项目中进行使用;如果你用的插件越多这个文件夹将会持续增大
- AS 安装路径bin 下
idea.properties
1 | #idea.config.path=${user.home}/.AndroidStudio/config |
版本更新不小心点了 ignore(windows)
不小心点了 ignore 后 check 版本就找不到了
找到C:用户\Administrator\.Android2.1\config\options\updates.xml
把红框中的内容(有ignore…)删除
重启 AS 即可
如果有安装git环境,则会有
C:\Users\Andministrator\.gitconfig
记录全局的账户配置
AS设置默认浏览器
File--Settings--Tools--Web Browsers
Default Browser
选择First listed
AS调整项目堆大小
使用的是64位
系统,且不少于5GB
的RAM,可以手动调整项目的堆大小:
File-->Settings-->Appearance&Behavior-->System Settings-->Memory Settings
:调整IDE max heap size
、Gradle daemon max heap size
、Kotlin daemon max heap size
显示实时内存
File--Settings--Appearance & Behavior--Appearance
:勾选Window Options
下的Show memory indicator
使得gradle编译速度加快
在根目录下找到gradle.properties
加入:
1 | #让你编译时使用守护进程 |
AS上双击进行打包
File -> Settings -> Experimental -> 取消勾选 “Do not build Gradle task list during Gradle sync”
AS取消打开项目时是默认打开新窗口
File》Settings》Appearance & Behavior》System Settings
,右侧找到 “Project Opening”》勾选“Confirm window to open project in”
AS 自动导包
File》Settings》Editor》General》Auto Import,勾选上“Add unambiguous imports on the fly”
AS 配置阿里云镜像地址
背景:安卓项目(因下载依赖资源包导致的)编译过慢
解决:
全局配置
在
用户目录/.gradle
(如:C:/用户/Administrator/.gradle
)【Mac的Users/名字/.gradle
】下新增文件init.gradle
init.gradle
内容1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48allprojects{
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') || url.startsWith('http://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/') || url.startsWith('http://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
}
}
buildscript{
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') || url.startsWith('http://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/') || url.startsWith('http://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
}
}
}
}
对指定项目配置
修改项目根目录下的
build.gradle
内容,增加如下信息1
2
3
4maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }完整样例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20buildscript {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
}
allprojects {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
}
}新的
1
2
3
4
5
6
7
maven { setUrl("https://maven.aliyun.com/repository/central") }
maven { setUrl("https://maven.aliyun.com/repository/jcenter") }
maven { setUrl("https://maven.aliyun.com/repository/google") }
maven { setUrl("https://maven.aliyun.com/repository/gradle-plugin") }
maven { setUrl("https://maven.aliyun.com/repository/public") }
maven { setUrl("https://jitpack.io") }
AS2022.1.1显示每行代码谁修改的
File》Settings》Editor》Inlay Hints:Code vision更改
新版AS的日志过滤
按包名过滤
1 | //输入package:(输入一个p就会有提示的) ,然后后面跟上你的包名 |
按日志等级过滤
1 | // 输入level: ,后面加上等级,如info,debug,warning等 |
按Tag过滤
1 | // 输入tag: ,后面跟上你要过滤的TAG 字符 |
按关键字过滤
1 | // 输入message: , 后面跟上你要过滤的关键字 |
组合过滤 (包名+TAG+等级+关键字)
1 | // package tag message 可多次使用进行组合 |
正则表达式过滤
1 | // 只有这些字段支持正则表达式:tag、package、message、line |
过滤不想看的日志 (针对快速打印且扰乱我们观察的日志)
1 | // 如果你的日志中有很多无用的且快速打印的日志,影响我们观察日志输出,那我们可以过滤掉他们 |
按时间过滤日志 (只看多长时间内的日志)
1 | // age是过滤最近时间段内的日志,s 表示秒,m 表示分钟,h 表示小时,d 表示天。 |
当然了,你也可以过滤其中的几项。按自己需求过滤
提高AS运行速度
电脑内存一定要大于等于16G
提高AS的运行内存
AS》Help》Edit Custom VM Options
1 | # custom Android Studio VM options, see https://developer.android.com/studio/intro/studio-config.html |
如果这个值太大导致的无法启动AS
- 那么去
C:\Users\Administrator\AppData\Roaming\Google\AndroidStudio2020.3\studio64.exe.vmoptions
修改这里面的值- 然后找到AS安装目录的bin目录,双击studio.bat看看运行内容(可以在这个bat后价格pause看)
studio64.exe.vmoptions
在AS安装目录的bin里面(注意区分32和64位)
建议只修改前四行
1 | # -server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.原因是: |
-server # 服务器模式
加上这句会出现”If you already have a 64-bit JDK installed, define a JAVA_HOME variable in Computer>System Properties>System Settings>Environment Variables. Failed to create JVM. JVM。。。”
修改idea.properties
找到AS安装路径,打开bin目录,找到idea.properties
打开idea.properties文件,找到idea.max.intellisense.filesize,默认是2500,改为25000(数值仅供参考,具体数值根据自己文件大小来定)
gradle.properties
- 项目的 gradle.properties 文件(针对当前项目)
- C:\Users\username.gradle\gradle.properties 这个文件是对所有项目都生效
gradle.properties 内容如下:(如果C盘用户目录下没有这个文件,则新建)
1 | #jvmargs默认配置 |
项目设置
打开dex增量编译
在Module的build.gradle中添加如下代码
1 | dexOptions { |
修改gradle设置
在Project的gradle.properties中添加:
1 | # 下面注释掉的两项在实际编译的时候,不一定能正常,因此我们暂时不启用 |
使用本地gradle
在Android Studio
的Gradle
每次编译的时候,每次都会联网检查依赖库,如果网速比较慢,会比较耗时。我们可以暂时禁用Gradle
的联网检查,如下图:
启用 Gradle Caching
Gradle Caching 是 Gradle 3.5 的新特性,顾名思义能通过缓存来加速 build 过程。
在 Android Studio 3.0 中更据此做出了许多优化,因此我们可以这样来启用:
gradle.properties
中:
1 | # Set this in gradle.properties |
分析出包慢在那儿(分析构建性能)
使用gradle-profiler,官网文档:https://developer.android.google.cn/studio/build/profile-your-build
对于较大的项目或者实现大量自定义构建逻辑的项目,您可能需要更深入地了解构建流程才能找到瓶颈。为此,您可以分析 Gradle 执行构建生命周期的每个阶段和每个构建任务所需的时间。例如,如果构建分析结果显示 Gradle 在配置项目上花费了过多时间,则表明您需要将自定义构建逻辑移出配置阶段。此外,如果 mergeDevDebugResources
任务占用了大量构建时间,则表明您需要将图片转换为 WebP 格式或停用 PNG 处理。
如果您使用的是 Android Studio 4.0 或更高版本,则最好使用 Build Analyzer 来调查构建性能问题。
此外,您还可以通过以下两种方式在 Android Studio 之外对构建性能进行分析:
- 独立的
gradle-profiler
工具,这是一款用于深入分析构建的强大工具。 - Gradle
--profile
选项,这是一款可从 Gradle 命令行启动的便捷工具。
使用独立的 gradle-profiler
工具
为找到能够提供最快构建速度的项目设置,您需要使用 Gradle 性能剖析器,这是一款用于收集 Gradle 构建的性能分析和基准化分析信息的工具。借助 Gradle 性能剖析器,您可以创建构建场景并多次运行这些场景,以防止结果出现过大差异,并确保结果的可重现性。
基准化分析模式应用于收集干净构建和增量构建的相关信息,而性能分析模式则可用于收集更细化的运行相关信息,包括 CPU 快照。
基准化分析的部分项目设置配置包括:
- 插件版本
- Gradle 版本
- JVM 设置(堆大小、永久代大小、垃圾回收等)
- Gradle 工作器数量 (
org.gradle.workers.max
) - 按插件选项进一步优化性能
使用入门
- 按相关说明安装 gradle-profiler
- 运行:
gradle-profiler --benchmark --project-dir <root-project> :app:assembleDebug
这将对已完全更新的构建进行基准化分析,因为 --benchmark
会多次运行该任务,且在两次运行之间不会更改项目。然后,它会在 profile-out/
目录下生成显示构建时间的 HTML 报告。
此外,还有其他场景可能更适合进行基准化分析:
- 在某个类(您在其中完成大部分工作)中的方法正文中进行代码更改。
- 在贯穿整个项目的模块中进行 API 更改。虽然这比更改您自己的代码的频率要低,但它的影响更大,因此针对此项的检测会很有帮助。
- 修改布局,以模拟界面工作迭代。
- 修改字符串,以模拟转换工作处理。
- 干净构建,以模拟对构建本身的更改(例如,更新 Android Gradle 插件、更新 Gradle 或修改
buildSrc
下您自己的构建代码)。
要对这些用例进行基准化分析,您可以创建一个能够推动 gradle-profiler
执行的场景,用于对源代码文件应用相应的更改。您可以检测下面的一些常见场景。
注意:Gradle 性能剖析器可能会运行较长的时间,具体取决于多种因素。这些因素包括您的代码库的大小,以及您正在运行的构建的类型,例如,干净构建的用时通常比其他类型的构建更长。
针对不同的内存/CPU 设置执行性能分析
要针对不同的内存和 CPU 设置执行基准化分析,您可以创建使用不同 org.gradle.jvmargs
值的多种场景。例如,您可以创建以下场景:
1 | # <root-project>/scenarios.txt |
运行 gradle-profiler --benchmark --project-dir <root-project> --scenario-file scenarios.txt
即可运行这三种场景,并且,您还可以比较在上述每种设置下 :app:assembleDebug
的用时。
针对不同的 Gradle 插件版本进行性能分析
要了解更改 Gradle 插件版本会对构建时间产生什么影响,可以创建一个场景来对此进行基准化分析。为了能够从场景注入插件版本,您需要完成一些准备工作。更改您的根 build.gradle:
1 | # <root-project>/build.gradle |
现在,您即可在场景文件中指定 Android Gradle 插件和 Kotlin Gradle 插件的版本,还可以让场景向源代码文件添加新的方法:
1 | # <root-project>/scenarios.txt |
对增量构建进行性能分析
大多数构建都是增量构建,因此该场景是您要进行性能分析的最重要的场景之一。Gradle 性能剖析器可为对增量构建进行性能分析提供广泛支持。可以通过更改方法正文、添加新方法、更改布局或字符串资源等方式,自动将更改应用于源代码文件。例如,您可以创建类似如下的增量场景:
1 | # <root-project>/scenarios.txt |
运行 gradle-profiler --benchmark --project-dir <root-project> --scenario-file scenarios.txt
会生成包含基准化分析数据的 HTML 报告。
您可以结合其他设置来分析增量场景(如堆大小、工作器数量或 Gradle 版本):
1 | # <root-project>/scenarios.txt |
对干净构建进行性能分析
要对干净构建进行基准化分析,您可以创建一个推动 gradle-profiler 执行的场景:
1 | # <root-project>/scenarios.txt |
如需运行此场景,请使用以下命令:
1 | gradle-profiler --benchmark --project-dir <root-project> --scenario-file scenarios.txt |
使用 Gradle --profile
选项
如需从 Gradle 命令行生成和查看构建性能分析报告,请按以下步骤操作:
在项目根目录下开启一个命令行终端。
输入以下命令,以执行干净构建。在剖析 build 性能时,您应该在剖析的每个 build 之间执行干净构建,这是因为如果某个任务的输入内容(例如源代码)未发生更改,Gradle 就会跳过它。因此输入内容未发生更改的第二个 build 始终会以更快的速度运行,因为任务不会重复运行。在 build 之间运行
1
clean
任务可以确保您能够剖析完整的构建流程。
1
2// On Mac or Linux, run the Gradle wrapper using "./gradlew".
gradlew clean使用以下标记为您的某个产品变种(例如“dev”变种)执行调试 build:
1
gradlew --profile --offline --rerun-tasks assembleFlavorDebug
--profile
:启用性能剖析。--offline
:禁止 Gradle 提取在线依赖项。这样可以确保因 Gradle 尝试更新依赖项而导致的任何延迟都不会干扰您的性能剖析数据。您应该已将项目构建一次,以确保 Gradle 已经下载和缓存您的依赖项。--rerun-tasks
:强制 Gradle 重新运行所有任务并忽略任何任务优化。
-
图 1. 指示性能剖析报告所在位置的 Project 视图。
构建完成后,使用 Project 窗口转到
project-root/build/reports/profile/
目录(如图 1 所示)。 右键点击
profile-timestamp.html
文件,然后依次选择 Open in Browser > Default。报告应与图 2 中显示的类似。您可以查看报告中的每个标签页以了解您的构建,例如,Task Execution 标签页显示了 Gradle 执行各个构建任务所花费的时间。图 2. 在浏览器中查看报告。
可选:在对您的项目或构建配置进行任何更改之前,请重复执行第 3 步中的命令,但请省略
--rerun-tasks
标记。由于 Gradle 会尝试通过不重复执行输入未发生变化的任务来节省时间(这些任务在报告的 Task Execution 标签页中标记为UP-TO-DATE
,如图 3 中所示),您可以确定哪些任务在不必要的时间执行了工作。例如,如果:app:processDevUniversalDebugManifest
未标记为UP-TO-DATE
,可能表明您的构建配置会随每次构建动态更新清单文件。不过,有些任务(例如:app:checkDevDebugManifest
)需要在每次构建期间都运行。图 3. 查看任务执行结果。
现在,您已经有了一份构建性能剖析报告,可以通过查看报告中每个标签页下的信息发现优化机会。有些 build 设置需要进行实验,因为其优势在不同项目和工作站之间可能有所不同。例如,包含大型代码库的项目可能会受益于通过代码缩减移除不使用的代码并缩减应用大小。但是,项目越小,完全停用代码缩减功能带来的益处就越多。此外,增加 Gradle 堆的大小(使用 org.gradle.jvmargs
)可能会对内存较小的机器的性能产生负面影响。
对构建配置进行更改后,请重复上述步骤并生成新的构建性能剖析报告,以观察更改的结果。例如,图 4 显示了同一示例应用在采纳本页介绍的一些基本优化后的报告。
图 4. 查看优化构建速度后的新报告。
AS使用技巧
AS断点技巧
logcat
- 旁边的
Logcat Header
可以设置只显示某些内容 - 上方的搜索框内可以过滤内容,如果过滤条件经常用可以把它设置到右上角的
Edit Filter COnfiguration
内 - 选中一些 log 内容,右键选择
Fold lines Like This
可以折叠
断点
条件断点
右键点击红点,Condition
框中可以输入 Kotlin 表达式断点某个线程
右键红点,Suspend
选择Thread
在Condition
框中输入线程直接输出,不需要在代码中添加输出语句
右键点击红点,勾选掉Suspend
,在展开的框中:Evaluate and log
可输入要打印出来的条件;"Breakpoint hit" message
可以只输出断点的日志;多个断点分组
右键点击红点,选择more
,选择几个断点后右键创建新的组。可以快速选择某个组来断点(适用于不同 bug 归类)丢帧功能(Android10 以上才有)
适用于断点跑过头了的情况,点击Drop Frame
,再点击Resume Program
来重新进入上面的断点断点拖动位置
断点可以拖动到别的行watch 变量设置标记
选中几个watch
内容,右键Mark Object...
可以添加标记。在 watch 窗口中点”+”输入我们的标记(会自动补全)。可以跟随单一实例来看它在做什么。
与上面的条件断点结合使用特别好用:条件输入“item == 刚刚的标记”
适用于有多个项的情况,我们只想看自己的项,就可以把这些项标记起来Evaluate Expression...
输入框的右侧点击可展开,在Code fragment
内可以输入任何表达式。
适用于实时监控变量的变化bug栈的日志关联到具体代码
拷贝bug 栈的日志,选择Analyze Stack Trace...
,贴入复制的,点击 ok 就可以关联到具体代码了。临时断点:按住alt+断点(只会停一次便自动消失)
断点的时候点击随机位置,都可以跳到那个方法
Attach Debugger to Android Process
可以快速关联断点Apply Changes And Restart Activity
适用于更改了 onCreate 中的代码或布局文件。还需要配合上面的丢帧功能Apply Code Changes
适用于只更改了逻辑片段无断点暂停:在很长的循环时不知道运行到哪了,在调试窗口左侧点“Pause Program”可以暂停到当前执行的地方
idea断点技巧 http://qinghua.github.io/intellij-idea-debug/
快速找到设备上显示页面是哪个activity
法1:借助AS的Layout Inspector
功能
(此法在AS3.6.1之前可用,发现在AS4.0.1没用了)
Tools--Layout Inspector
,在打开的窗口总选中当前运行项目的进程,再看其罗列出的**Activity
法2:使用ActView
插件(推荐)
安装插件:File--Settings--Plugins
:搜索ActView
进行安装
使用:插上真机;打开app;AS上Help
右侧多了个ActView
,选择Which Activity
法3:使用ADB命令
查看当前Activity
1 | adb shell "dumpsys window w | grep name=" |
查看当前栈顶的Activity
1 | adb shell "dumpsys activity | grep mFocusedActivity" |
查看当前栈顶的Activity
的Fragment
1 | adb shell "dumpsys activity your.package.name" |
在Ubuntu或mac上可以配置环境变量来简化命令
1 | //配置环境变量 |
1 | //使用简短的命令 |
AS4.0以上加guideline无法弄成百分比的问题
手动添加 app:layout_constraintGuide_percent="0.11"
属性,并且去掉 app:layout_constraintGuide_begin="20dp"
属性。如此就能按百分比拖动了(垂直和水平辅助线都适用)
完整:
1 | <androidx.constraintlayout.widget.Guideline |
IDEA注释
// TODO
表示尚未完成的待办事项。
// XXX
表示被注释的代码虽然实现了功能,但是实现方案有待商榷,希望将来能改进。
// FIXME
表示被注释的代码需要被修正。
自定义标签
window–>preferences–>java–>compiler–>Task tags
AS插件
AS插件推荐
插件名称 | 说明 |
---|---|
GsonFormat | json字符串自动生成对应Java对象 |
Alibaba Java Coding Guidelines | 代码规范 |
Android ButterKnife Zelezny | 配合ButterKnife自动生成注解 |
FindViewByMe | 生成findViewById |
RemoveButterKnife | 从注解改回findviewbyid |
快速定位到当前Activity/Fragment(AS4以上用不了了) | |
Codota–》TabNine | 代码智能提示 |
CodeGlance | 在右侧预览代码 |
Translation | 翻译插件 |
SQLDelight | SQLDelight是一个著名的Kotlin多平台数据库 库。它通过SQL生成Kotlin API,并负责根据架构本身创建数据库。 |
JSON To Kotlin Class | 将JSON字符串转换为Kotlin数据类。还支持: 一系列JSON注解库- Gson ,Jackson ,Fastjson ,Moshi ,LoganSquare 等。使用默认值初始化属性,并使它们可以为空。 将属性名称重命名为驼峰样式,并将类生成为内部或单个类。 如果JSON字符串有效,则从本地文件/ Http URL加载JSON。 |
Rainbow Brackets | 成对括号加不同颜色![idea插件–Rainbow Brackets.jpg](./AndroidStudio相关/idea插件–Rainbow Brackets.jpg) |
Material Theme UI | 眼睛舒适的主题 |
Name That Color | 对颜色命名。 |
Gradle Killer | 后悔开始Gradle构建或只是希望立即将其关闭。您可以运行ps命令 或在任务管理器中四处寻找Java.exe ,但这会很麻烦。现在只要点一下按钮即可 |
Kotlin Fill Class | 快速创建具有默认属性的Kotlin类。此IntelliJ插件就是用于此目的。它为空的构造函数 和函数 提供了意图操作,使您可以快速初始化参数。 |
NR Null Oject介绍 | 空对象判断 项目中还需要引入 dependencies { compile 'com.google.guava:guava:27.0-jre' // or, for Android: api 'com.google.guava:guava:27.0-android' } |
File Expander | 可直接打开jar包看代码。(平时能看jar代码 是因为它们在classpath内了) |
Atom Material ICons | 一款ICON插件【并不好看,但装上它有使得idea在mac上拖动滚动条或鼠标中键滚屏不卡顿的buff~】 |
GitToolBox | 可以提示还有多少文件没提交,远程还有多少文件未更新下来,会提示每一行代码上次提交的时间 |
p3c | 阿里巴巴出品的java代码规范插件 |
ARouter Helper | 使用ARouter写的代码,会在左侧有跳转按钮 |
TemplateBuilder | 生成模板 |
SimpleUMLCE | 查看类图 下载 说明 |
findBugs-IDEA | 查找bug的插件,Android Studio也提供了代码审查的功能(Analyze-Inspect Code…) |
Grep Console | 自定义设置日志不同颜色 |
RestfulToolkit | 定位某URL对应Controller代码,快速测试Controller接口 |
MyBatis Log Plugin | 拿出Mybatis的某个具体SQL查询语句 |
Free Mybatis plugin | 方便地在Mybatis地mapper Java接口方法和mapper XML文件之间切换 |
Statistic | 项目全局代码统计 |
Lombok | 这个插件的好处在于可以让我们的代码更简洁,减少一些重复的工作,最常用的就是@Data注解,比如在实体类上使用@Data注解,实体类的各个属性就不需要书写get和set方法。 |
LeakCanary(不是插件,需要在gradle中引入) | 在开发阶段方便的检测出内存泄露 |
TemplateBuilder | 选中模板文件,按下【ALT + T】(或在Tools下选择Generate Template),配置模板信息 |
1.Android Parcelable code generator 2.android-parcelable-intellij-plugin |
JavaBean序列化,快速实现Parcelable接口。 |
Lifecycle Sorter | 可以根据Activity或者fragment的生命周期对其生命周期方法位置进行先后排序,快捷键Ctrl + alt + K |
ADB WIFI | 使用wifi无线调试你的app,无需root权限 |
Android Drawable Importer | 批量导入Drawable ,多源导入Drawable |
AndroidProguardPlugin | 一键生成项目混淆代码插件(可能有些第三方项目的混淆还未添加完全) |
Markdown Navigator | markdown插件 |
Android Studio Prettify | 将代码中的字符串写在string.xml文件中 |
.ignore | 生成各种ignore文件,一键创建git ignore文件的模板,免得自己去写 |
WakaTime | 记录你在IDE上的工作时间 |
AndroidLocalizationer | string 资源自动翻译为其他语言的 |
TranslationPlugin | 又一翻译插件,可中英互译。 |
Matchmaker | 这是一款专为微信小程序开发的插件,目前可在 IntelliJ IDEA 中使用。它可以帮你完成重复机械无趣麻烦的绑定方法的过程,自动的将需要新建的方法注入到 js 文件中去。 |
Android Drawable Importer | 批量导入图片 用法:右键 res--New--Batch Drawable Import |
GenerateAllSetter | 一键调用一个对象的所有set方法并且赋予默认值 在对象字段多的时候非常方便 |
Material Theme UI | 超多的主题插件,各种颜色、模式 |
idea zookeezper | 可以图形化的查看zk 节点信息 |
Generate Module From Template | 制作模板 |
Key Promoter X | 当你在IDE内,把鼠标放按钮上时,Key Promoter X会提示你应该使用的快捷键 。 |
Clear Cache Plugin | 通过使用Clear Cache 插件,我们可以检索具有给定前缀的所有软件包,并删除不再需要的软件包。 |
SQLScout | 对Android Studio和IntelliJ IDEA极好的SQLite支持,可让您实时管理数据库。这使得在调试应用程序时轻松实时执行SQL查询以更新表。还支持Room 持久性库-从现有数据库模式自动生成Room 实体 ,DAO ,Migration 和Database类 。数据库图表,带有语法突出显示工具的SQL编辑器,可导出schema 为Excel等不同格式。 |
Material Design Icon Generator | 这个插件可以帮助你在Android应用程序中添加Material设计图标。导入assets,指定颜色 ,大小 和密度 非常简单。 |
Nyan Progress Bar | 有趣的彩色进度条。可让您在Gradle构建和重建过程中始终陪伴着您。 |
-
还没用上。。
GitToolBox 可以看每一行代码都是谁改的
AS SVN插件配置(windows)
Settings 里找到 Version Control–Subversion
svn.exe 是安装 TortoiseSVN 时有个选项安装command line client tools
问题
控制台中文输出乱码
idea中设置
- idea安装目录,进入bin目录
idea.exe.vmoptions
和idea64.exe.vmoptions
最后面添加
1 | -Dfile.encoding=UTF-8 |
- 更改
Settings-Editor-File Encoding
编码:更改成UTF-8编码
OutOfMemoryError
Settings--Build,Execution,Deployment--Compiler
右侧找到Build process heap size:改成2048
Settings--Build,Execution,Deployment--Compiler--ActionScript&Flex Compiler
右侧找到Compiler heap size
:改成2048
PermGen space内存溢出
Settings--Build,Execution,Deployment--Build Tools--Maven--Runner
修改右侧VM Options内容:-XX:MaxPermSize=4096M
Build窗口的中文字符乱码
问题描述:AS升级到3.6.2后Build窗口出现中文乱码
解决:打开studio64.exe.vmoptions
(在AS安装目录的bin下),在最后添加一行-Dfile.encoding=UTF-8
代码报红色错误,但是可以运行的问题
尝试以下步骤:
- 使用自带的清除缓存功能
AS–》File–》Invalidate Caches/Restart…
- 删除工程目录下
.gradle
和.idea
关闭 AS,进入工程根目录,删除.gradle
、.idea
,重新打开 AS
- 如果 1、2 不起效,那么删除
.AndoridStudio
下除了config
外的所有目录
路径C:\Users\Administrator\.AndroidStudio3.1\system
,删除system
- 删除 user 目录下
.gradle
路径C:\Users\Administrator\.gradle
,删除.gradle
- 如果上面的步骤还是不行。删除项目重新checkout一份(项目名称改成不一样的)
javaCompileOptions.annotationProcessorOptions
问题:AS Plugin3.0.0 Gradle-javaCompileOptions.annotationProcessorOptions
在 app 的 build.gradle
中:在 android–》defaultConfig 内添加以下
1 | javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true |
AS3.5以上格式化xml时布局错乱问题
设置 > code style > XML 右上角 Set from然后选择Predefined Style…>Android即可
AS运行报找不到apk,导致无法正常安装到真机(实际找的是前一天的apk)
在AS右侧,点击Gradle,选择整个项目,点击“Refresh All Gradle Projects”或者“Refresh Gradle Dependencies”
如果断点了但跳不到对应的源码,那就是被混淆了
minifyEnabled:false关闭混淆
bash: gradlew: command not found(Mac)
打开环境变量文件
1 | open -e ~/.bash_profile |
配置 gradle
1 | export GRADLE_HOME=/usr/local/Cellar/gradle/6.1.1 |
1 | export PATH=${PATH}:/Applications/Android Studio.app/Contents/gradle/gradle-2.14.1/bin |
ctrl + shift + f 不能用
其他快捷键没有问题,这种情况很大可能是输入法占用了ctrl + shift + f
Warning:JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore …
用新版AS(4.0+)新建签名文件时会有警告
解决:使用提示内的命令
打开模拟器报错:Error while waiting…… process for AVD Pixel_XL_API_29 was killed
重装HAXM
方法一:Settings–>System Settings–>Android SDK–>切换到SDK Tools页签:找到Intel x86 Emulator Accelerator(HAXM installer)
卸载,重启AS再重装它
方法二:打开控制面板的程序,找到HAXM卸载(记得要关闭掉已经打开的模拟器)
Your project path contains non-ASCII characters
SSL peer shut down incorrectly
解决方案:
网上的一个解决方法是把配置文件gradle-wrapper.properties
中的distributionUrl
参数从https://services.gradle.org/distributions/
换成http://
。
但这个解决方法已经不行了,因为gradle
把服务部署在cloudflare
上,如果使用http访问会报错:
1 | Error 1020 Ray ID: 55f3e39ffd4aa2ca • 2020-02-03 10:58:20 UTC |
解决方法1:到官网手动下载压缩包:Gradle Distributions,解压到目录%USERPROFILE%/.gradle/wrapper/dists
解压后重启 Android Studio即可。
解决方法2:把URL直接改成本地已经下载的 gradle
plugin error: Plugin “xxx”is incompatible (supported only in IntelliJ IDEA).
打开C:\Users\Administrator\AppData\Roaming\Google\AndroidStudio4.1\plugins
找到对应名字”xxx”的plugin,删除掉即可
Gradle sync failed: Connection refused
解决:用户/.gradle/gradle.properties,删除该文件【C:\Users\Administrator\.gradle\gradle.properties
】
写模板的时候,项目报Kotlin not configured
![kotlin not configured](./AndroidStudio相关/kotlin not configured.png)
解决:卸载掉错误的plugin;关闭AS,删除.gradle
、.idea
、build
,重新打开AS
Could not resolve commons-io:commons-io:2.6
1 | Could not resolve commons-io:commons-io:2.6. |
在C:/用户/Administrator/.gradle
添加了init.gradle
,配置了阿里云镜像导致的
解决:暂时去掉了全局配置的init.gradle
。若有需要可在特定项目中添加对指定项目配置
Plugin [id: ‘org.jetbrains.kotlin.jvm’, version: ‘1.4.0’] was not found in any of the following sources
升级AS4.2的坑
Execution failed for task ‘:app:compileDebugJavaWithJavac’
1 | Execution failed for task ':app:compileDebugJavaWithJavac'. |
Android Studio 右侧的Gradle不显示Task的问题
- File》Experimental,不勾选“Do not build Gradle task list during Gradle sync”
- 然后点击“Sync Project”即可
打开Profiler,app闪退
解决:
方法一:打开AS
》Device File Explorer
,找到 /data/data/pacakge_name/codecache
文件夹,删除它
方法二:打开AS
》Device File Explorer
,找到 /data/local/tmp/perfd
文件夹,删除它,即可。如果怕删除有问题,可以先把它备份下,再删除。
Profiler的Capture heap dump用不了
按上面的方法一二删除了相应文件夹后,不闪退了,但是Capture heap dump依然是灰色不可用状态。
解决:开发者模式中(调试位置不要选应用)【不确定是不是它】
Capture heap dump自动断开
运行flutter doctor –android-licenses时报错
1 | java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recog |
解决:
未解决,但Settings》Android SDK》SDK Tools:“Android SDK Command-line Tools”改成“8.0”,可以解决flutter doctor的一个错误
Unable to find bundled Java version.
flutter doctor后出现:
1 | Android Studio (version 2023.2) |
解决: https://blog.csdn.net/woshidanoob/article/details/128779709
AS安装目录下的jbr下的所有文件复制一份到jre中
HTTP Host availability check is taking a long time…[!] HTTP Host Availability
1 | HTTP Host availability check is taking a long time...[!] HTTP Host Availability |
解决: https://blog.csdn.net/qq_41602125/article/details/127407360
- 找到Flutter SDK下“packages》flutter_tools》lib》src》http_host_validator.dart”:修改
将https://maven.google.com/ 修改为https://dl.google.com/dl/android/maven2/ - 关闭所有打开了flutterSDK的程序,找到flutter\bin目录下的flutter_tools.snapshot文件,永久删除。
- 配置国内的pub插件镜像地址,参数如下
1
2
3
4
5PUB_HOSTED_URL
https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL
https://storage.flutter-io.cn上面的我只做了第3步,1的检查了已经改过了,还是不行。所以删除了flutter sdk 重装flutter sdk 可以了。