当前分类 / 技巧 / 总共4篇

Debug 判断不再用 BuildConfig

本文转载自:https://www.trinea.cn/android/android-whether-debug-mode-why-buildconfig-debug-always-false/

Android 开发中一般会通过 BuildConfig.DEBUG 判断是否是 Debug 模式,从而做一些在 Debug 模式才开启的特殊操作,比如打印日志。这样好处是不用在发布前去主动修改,因为这个值在 Debug 模式下为 true,Release 模式下为 false。

问题

如果应用只有一个 Module 没有问题,Debug 模式下 BuildConfig.DEBUG 会始终为 true。如果现在有两个 Module,分别为 App 和 Lib,且 App 依赖 Lib,在 Lib 内有工具类 LogUtils,代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
package cn.trinea.android.lib.util;
 
import android.util.Log;
import cn.trinea.android.lib.util.BuildConfig;
 
public class LogUtils {
 
    public static void d(String log) {
        if (BuildConfig.DEBUG) {
            Log.d("trinea-debug", log);
        }
    }
    //……
}

当我们在 App Module 内调用 LogUtils 时我们会发现始终无法打印日志,因为上面的 BuildConfig.DEBUG 会始终为 false。为什么呢?

阅读更多

Win10 家庭版安装 Ubuntu 子系统

我的笔记本的系统是 Win10 家庭版,本来打算启动 Hyper-V 虚拟机服务,无奈的是家庭版没有此服务支持,那就退一步吧,还好家庭版支持 Linux 子系统服务,那就装个命令行的 Ubuntu 吧,也是不错滴!

其实吧,整个过程很简单!

第一步:点击搜索图标(win10的这个功能很好用)然后搜索关键字 功能 得到如下结果:

阅读更多

清除Chrome浏览器Favicon图标的方法

一般当我们遇到浏览器缓存的时候可以使用浏览器的清除缓存功能,但是很多时候你会发现修改了 favicon 后怎么清除都不起作用,这个时候就需要去浏览器对应的缓存目录删除 Favicon 文件。

在开始下面操作之前,首先你要确保你的 favicon.ico 文件的路径是可以访问的,而且配置正确,例如:

1
<link rel=icon href="https://<youraddress>/favicon.ico">

打开文件夹:

1
C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default

阅读更多

Android开发中的一些技巧

前言

我们在开发过程中有时候会遇到一些比较棘手的问题,经过不懈搜索后发现原来是这么简单,自己却想的异常复杂,这些知识需要归纳整理起来方便大家使用,所以你有什么好的技巧也分享出来吧。

EditText不自动获取焦点

问题描述:有时候EditText会自动获取焦点,导致软键盘直接跳出。有时候这么做很方便,但是大部分时候我们还是希望在点击EditText的时候软键盘才弹出来。

解决方法:在EditText的父Layout中,加入下面的两个属性。

1
2
android:focusable="true"
android:focusableInTouchMode="true"

负dp布局

问题描述:有时候需要做提示小圆点,方式有很多,但是这个方式也是比较简单的一种。

1
2
android:layout_marginTop="-3dp"
android:layout_marginRight="-3dp"

运行时忽略

问题描述:很多时候我们在写xml界面的时候需要预览数据,但是数据又不能在实际运行中被显示出来。

在跟布局中添加:

1
xmlns:tools="http://schemas.android.com/tools"

然后使用 tools: 开头的属性:

1
tools:text="测试内容"

或者使用 layout_widthlayout_height 来约定适配器item的宽度和高度。

1
2
tools:layout_height="370pt"
tools:layout_width="220pt"

还有种情况也很实用,就是使用 showIn 属性将item布局预览展示到某个布局内部。

1
tools:showIn="@layout/activity_main"

阅读更多