android studio
AS User Guide代码自动完成
- 基本自动完成 Control+空格
显示对变量、类型、方法和表达式等的基本建议。 如果连续两次调用基本自动完成,将显示更多结果,包括私有成员和非导入静态成员。
- 智能自动完成 Control+Shift+空格
根据上下文显示相关选项。 智能自动完成可识别预期类型和数据流。 如果连续两次调用智能自动完成,将显示更多结果,包括链。
- 语句自动完成 Control+Shift+Enter
自动完成当前语句,添加缺失的圆括号、大括号、花括号和格式化等。
- 快速修复并显示建议 Alt+Enter
导航
样式和格式化
- 自定义代码样式设置 File > Settings > Editor > Code Style
- 重新格式化代码 Control+Alt+L
- 自动缩进所有行 Control+Alt+I
构建系统
library
工具属性
- Android技术文档翻译--工具属性(Tools Attributes)
- xmlns:tools="http://schemas.android.com/tools"
代码模板 Live Templates
- $ACTIVITY$ 当前所在的类名
- $CURSOR$ 代表当前鼠标的定位位置
- $$ 代表是一个变量
静态分析
Vector Asset Studio图像像素变换
Translations Editor
instant run
- android studio 2.0
classpath 'com.android.tools.build:gradle:2.0.0-alpha1' - Preferences -> Build,Execution,Deployment -> Instant Run
多渠道打包
//渠道信息 AndroidManifest.xml
<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
//设置productFlavors build.gradle
productFlavors {
wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}
xiaomi{
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
}
qq {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qq"]
}
_360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"]
}
}
//or
android {
productFlavors {
wandoujia{}
xiaomi{}
qq{}
_360 {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
//签名 build.gradle
signingConfigs{
release {
storeFile file("keystore路径")
storePassword "***"
keyAlias "***"
keyPassword "***"
}
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
//生成 Terminal , cmd
gradle assembleRelease
//根据渠道自定义apk的名称
android {
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(
output.outputFile.parent,
"xxxx(apk的名字)-${variant.buildType.name}-${defaultConfig.versionName}-${variant.productFlavors[0].name}.apk".toLowerCase())
}
}
}