技术小黑屋

十个超级实用的git命令

git无疑已经成为了大家代码版本控制最多的工具了,这其中有不少人是使用终端来进行操作git。这里列出一些超级实用的git脚本,希望可以对大家开发有所帮助。

建议大家讲下面的脚本内容,都保存成脚本,然后设置执行权限,将所在目录加入环境变量,这样使用起来更加方便。

用好 Require,check,assert,写好 Kotlin 代码

在编码的时候,我们需要做很多的检测判断,比如某个变量是否为null,某个成员属性是否为true,执行某个操作结果是否成功。比如像下面的这段代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var isDiskMounted = true

fun createNewFile(file: File?): Boolean {
    return if (isDiskMounted) {
        if (file != null) {
            file.createNewFile()
            if (file.exists()) {
                true
            } else {
                println("Create file($file) failed")
                false
            }
        } else {
            println("File($file) is null")
            false
        }
    } else {
        println("Disk is not mounted")
        false
    }
}

修复Gradle因代理设置导致的超时问题

之前在项目中增加了一个项目依赖,可是配置的时候,怎么也无法下载下来。中终端执行gradle得到的错误日志如下

1
2
3
org.gradle.internal.resource.transport.http.HttpRequestException: Could not HEAD 'https://jcenter.bintray.com/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1-sources.jar'.
at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:96)
at org.gradle.internal.resource.transport.http.HttpClientHelper.performRawHead(HttpClientHelper.java:72)

未合并分支不怕丢,一个脚本快速搞定

我们使用 git 作为 版本控制工具,极大的提高了效率,但是随着业务的增多和自身对于提交内容原子性的要求,往往会产生很多的分支,这就难免有时候,在发版的时候,某些分支被遗忘提交,造成功能丢失等问题。

因而如果保证分支多而且不忘记合并,是一个我们需要解决的问题。

  • 单纯靠人为挨个去看,肯定是不行的
  • 如果有程序化处理就靠谱多了

INSTALL PARSE FAILED UNEXPECTED EXCEPTION 问题

顺手整理一个之前记录未文字输出的老问题,使用adb install爆出的问题

1
2
3
adb install -r -d "2.8.5-475.apk"
adb: failed to install 2.8.5-475.apk: Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION:
Failed to parse /data/app/vmdl981460948.tmp/base.apk: AndroidManifest.xml]

树莓派 Gitlab问题整理

E: Unable to locate package gitlab-ce

  • 不要使用sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/raspberry-pi2/script.deb.sh | sudo bash
  • 替换使用这个sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/raspberry-pi2/script.deb.sh | sudo os=raspbian dist=jessie bash
  • 然后执行sudo apt install gitlab-ce

一些关于微信分享的建议规范

实话讲,微信的文档真的是差强人意,除了让人难以忍受的代码使用截图展示外,其中关于一些分享的规范也不好找。

还好借助Google,找到了一些规范,涉及缩略图和文字个数等。

Nuc 设置断电后自动开机

步骤

  • 开机 看到启动界面后(多次)按 F2 进入BIOS
  • 进入Power Tab 向下滑动Secondary Power Settings区域
  • 找到 After Power Failure 选择Power On
  • 按 F10 保存并退出即可。

技术小黑屋投稿开放了

为了传播更好的有价值内容,本博客开放投稿功能.

技术小黑屋的优势

  • 开发者头条(toutiao.io) 第一大非官方独家号维护者(4w+订阅者)
  • 掘金网站知名内容贡献者
  • 全网知名的安卓博主博客
  • RSS 订阅 Feedly 中文技术博客订阅者较多
  • 受众广,以Java,Android,Kotlin语言使用者为主

Linux 下 Wget 设置代理

Linux进行网络下载,基本上是wget或者curl,比如我们这样去进行请求,如果没有代理,是访问不了的

1
2
3
4
5
6
7
8
9
[email protected]:/tmp$ wget google.com
--2020-03-01 11:53:14--  http://google.com/
Resolving google.com (google.com)... 46.82.174.69, 93.46.8.90
Connecting to google.com (google.com)|46.82.174.69|:80... connected.
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
Retrying.

--2020-03-01 11:53:15--  (try: 2)  http://google.com/
Connecting to google.com (google.com)|46.82.174.69|:80...

所以,我们想要实现一些功能,需要为wget设置代理.方法很简单

树莓派安装jdk 8

执行

1
2
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre

Android Webview 后台播放音视频实现

问题

  • 我们使用WebView播放音乐或视频(比如油管视频)
  • 前台播放一直很正常,但是比较费电
  • 进入后台后就会暂停播放
  • 所以需求就是我们想要App在后台时同样播放音视频