原文by Norman Peitek 翻译by Dexter0218
自动唤醒
开发时安装apk时,是不是经常要点击设备上的解锁按钮,然后滑动屏幕解锁,每天浪费大量时间,你是不是厌倦这样的调试?
Jake Wharton大神的Gist建议会让你的设备自动唤醒:
/**
* Show the activity over the lockscreen and wake up the device. If you launched the app manually
* both of these conditions are already true. If you deployed from the IDE, however, this will
* save you from hundreds of power button presses and pattern swiping per day!
*/
public static void riseAndShine(Activity activity) {
activity.getWindow().addFlags(FLAG_SHOW_WHEN_LOCKED);
PowerManager power = (PowerManager) activity.getSystemService(POWER_SERVICE);
PowerManager.WakeLock lock =
power.newWakeLock(FULL_WAKE_LOCK | ACQUIRE_CAUSES_WAKEUP | ON_AFTER_RELEASE, "wakeup!");
lock.acquire();
lock.release();
}
译者注:还需要在AndroidManifest.xml里添加权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
,才能自动唤醒设备。
如果你想要看一个完整的集成例子,看一下这个来自androidfu的fork
配置一下花费少于5分钟,但未来可以节省很多小时!
检查是不是Debug版本
上面提到的Gist还演示了一块很不错的代码:
if (BuildConfig.DEBUG) {
// do something you only want to do in debug builds (logging, ...)
}
如果当前构建是一个Debug版本,BuildConfig.Debug
变量会返回true。当你经常需要在调试时,添加一些代码,但提交仓库时,又要删除它们时,由于它不包含在产品级构建,只要添加这个if语句,可以避免小错误。
高级Debug日志
更大的Android应用程序通常有一个代码组件,它不断让开发人员头疼。小bug和错误不断出现。大多数开发人员现在必须添加一些日志记录所有的功能和它们的参数,以及记录时间看到某些功能的性能。
所有这些可以简单地用hugo自动化。hugo将记录函数的参数和性能,只需添加一个声明。
@DebugLog
public String getName(String first, String last) {
SystemClock.sleep(15); // Don't ever really do this!
return first + " " + last;
}
在日志里,你将会看到下面的结果:
V/Example: ⇢ getName(first="Jake", last="Wharton")
V/Example: ⇠ getName [16ms] = "Jake Wharton"
具体怎么配置呢?
在Project的根目录下的Build.gradle里对应位置下添加一下下面的代码:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.jakewharton.hugo:hugo-plugin:1.2.1'
}
}
在Module目录下的Build.gradle顶部对应位置添加下面的代码:
apply plugin: 'com.android.application'
apply plugin: 'com.jakewharton.hugo'
如果想要在运行时调整开启和关闭,可以在代码里使用Hugo.setEnabled(true|false)
。
再啰嗦一下,一个5分钟设置的结果,会节约你每次添加Log调用的时间。
新的Android工具
我们最后一个建议是喊出Android工具团队。他们正努力工作提供给我们开发者更好的工具去开发更好的app。
如果你没有准备好,花费些时间去看一下新的网络和GPU分析器在当前Android Studio1.4版本的构建里。