强制重新下载依赖库
./gradlew --refresh-dependencies
在测试和正式构建中使用不同的包名
android {
buildTypes {
debug {
applicationIdSuffix '.debug'
versionNameSuffix '-DEBUG'
}
release {
// ...
}
}
}
停止运行 gradle 构建进行
./gradlew -stop
不要在 build.gradle文件中共同包含 jcenter() & mavenCentral()仓库
jcenter中包含MavenCentral
使用 dryrun 直接运行项目
只需要运行 dryrun REMOTE_GIT_URL
使用一个抽象的 Logger 类
https://github.com/imuhao/android-tips-tricks/blob/develop/Logger.java
使用一个代码样式
你应该使用一个标准的代码样式
AOSP Codestyle
Square IntelliJ Codestyle
使用 Android Studio 内置的控制台
Working with Embedded Local Terminal
使用 Android Studoi 中的Memory/Network/CPU Monitor 提升你 App 性能
配置 Android Studio
在 Android Studio 中直接运行一个方法
在build.gradle 中定义一个编译时期的变量
android{
defaultConfig {
...
buildConfigField "String", "SERVER_ENDPOINT", '"http://www.myendpoint.com"'
buildConfigField "int", "FOO", "52"
buildConfigField "boolean", "LOG", "false"
...
}
}
在代码中使用它BuildConfig.SERVER_ENDPOINT,BuildConfig.SERVER_ENDPOINT
基于 git 信息,自动的计算版本名和版本号
在你的app 的 build.gradle
// Version code is calculated as the number of commits from last commit on master
def getVersionCode = { ->
try {
def code = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-list', 'HEAD', '--count'
standardOutput = code
}
return Integer.parseInt(code.toString().trim())
} catch (exception) {
return "1";
}
}
// Version name is Last Tag Name + No. of commits form last Tag + short git sha
def getVersionName = { ->
try {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'describe', '--tags', '--dirty'
standardOutput = stdout
}
return stdout.toString().trim()
} catch (exception) {
return "0.0.0.1";
}
}
// Use
android{
defaultConfig {
...
versionCode getVersionCode()
versionName getVersionName()
...
}
}
在 build.gradle中得到一个构建时间的变量
// Get the date of build
def getDateOfBuild = { -> // ISO 8601 time format
return new Date().format("yyyy-MM-dd'T'HH:mm'Z'").toString().trim()
}
// then use it as a variable in BuildConfig
android{
defaultConfig {
...
buildConfigField "String", "DATE_OF_BUILD", "\"${getDateOfBuild()}\""
}
}
使用Bettert Historian
分析 Android 手机的电池状态
使用 Proguard
学习一些像 MVP 这样的架构或代码简洁
Activity 生命周期
