- 博客(443)
- 资源 (11)
- 收藏
- 关注

原创 这可能是最好的 Android/Kotlin日志输出方法
在编程调试和定位问题的时候,日志是一个最常用的工具。比如输出一些信息,确定执行轨迹。今天我们这里简单聊一聊打印日志的一些分析。通常,我们进行日志输出的时候都会限定在debug包下执行,对于非debug包,我们就不输出日志。那么如果是非debug,不同的日志输出方式可能存在一定的性能问题,本文将通过几个版本来对比着方面的差异。原始版这可能是最原始的版本打印日志了,判断是否是debug,然后决...
2019-11-24 18:53:28
5555
原创 巧用Kotlin反射实现按值取名,调试做到多快好省
痛点我们经常会定义一些常量,比如1234567public interface ItemType { public static final int TYPE_TEXT = 0; public static final int TYPE_IMG = 1; public static final int TYPE_VIDEO = 2; public ...
2020-05-31 20:55:00
790
原创 十个超级实用的git命令
git无疑已经成为了大家代码版本控制最多的工具了,这其中有不少人是使用终端来进行操作git。这里列出一些超级实用的git脚本,希望可以对大家开发有所帮助。建议大家讲下面的脚本内容,都保存成脚本,然后设置执行权限,将所在目录加入环境变量,这样使用起来更加方便。查看未合并到master的分支12#!/bin/bashgit branch --no-merged master列出最近修...
2020-05-19 12:32:00
649
原创 用好 Require,check,assert,写好 Kotlin 代码
在编码的时候,我们需要做很多的检测判断,比如某个变量是否为null,某个成员属性是否为true,执行某个操作结果是否成功。比如像下面的这段代码123456789101112131415161718192021var isDiskMounted = truefun createNewFile(file: File?): Boolean { re...
2020-05-10 21:09:00
1225
原创 解决Didn't Find Class java.lang.invoke.SerializedLambda 问题
问题表现在低于 Android 7(Android Nougat)以下出现错误的崩溃日志信息如下123456789Caused by: java.lang.ClassNotFoundException: Didn't find class "java.lang.invoke.SerializedLambda" on path: DexPathL...
2020-05-04 19:28:00
1677
原创 Invalid Byte Sequence in US-ASCII (Argument Error) 问题修复
在使用Octopress(rake命令时报错)invalid byte sequence in US-ASCII (Argument Error) when I run rake修复方法终端执行1export RUBYOPT="-KU -E utf-8:utf-8"或者将上面的代码内容放到.bashrc中。...
2020-05-04 19:26:00
1606
原创 树莓派修改 DNS 服务器配置
修改配置文件1sudo vim /etc/dhcpcd.conf增加如下内容,我们使用Google DNS(北京联通测试速度不错)1static domain_name_servers=8.8.8.8 8.8.4.4完整的示例文件部分1234interface eth0 static ip_address=192.168.1.3/24 s...
2020-05-01 14:18:00
3585
原创 Linux 下使用cut命令,实现更好切分数据
cut是什么一个Unix终端命令切割行内容,并进行标准输出可以按照字节,字符,分隔符进行切分能有什么用我们举一个简单的例子(非全部示例)来描述cut有什么用,可以做什么简洁输出,去除干扰冗余信息比如这个日志,可能会出现折行,另外假设04-19 18:26:55.605 22750 22883 W这些列的信息属于干扰信息12345678910111213...
2020-04-25 22:07:00
1314
原创 Linux 下按照文件大小查找文件
为什么需要这篇文章我想大概是这种情况,你的Linux 机器下磁盘满了,需要清理,然后就需要查找大的文件,确定是否有用进行删除。具体做法查找500M以上的文件1234567sudo find / -size +500M/swap.img/home/androidyue/file_server/ubuntu_18.04.tar/home/androidyue/bin/T...
2020-04-20 20:33:00
1085
1
原创 Centos(Linux)系统下实现挂载硬盘
背景团队的CI机器有两块硬盘,一块是256G SSD,另一块是1T 机械硬盘。系统安装到了SSD上,1T的机械硬盘处于闲置状态,需要挂载,用来存放一些文件。注意事项文章提到的/dev/sda和/mnthhd_my仅为示例说明需要根据自己的真实情况进行替换,尤其是格式化硬盘是要格外注意。确定新硬盘使用fdisk -l使用fdisk并且配合目标硬盘的容量1T,我们可以轻松的找...
2020-04-12 20:50:00
466
原创 The APK File xxxx.apk Does Not Exist on Disk问题修复
许久之前,用Espresso写过一些测试用例,但是执行的时候总是报这种错误12The APK file aaa-debug-4.2.8-886eda0d9d-400208.apk does not exist on disk.Error while Installing APK解决方法执行File -> Sync Project with Gradle Files 即可。...
2020-04-11 15:22:00
762
原创 修复Gradle因代理设置导致的超时问题
之前在项目中增加了一个项目依赖,可是配置的时候,怎么也无法下载下来。中终端执行gradle得到的错误日志如下123org.gradle.internal.resource.transport.http.HttpRequestException: Could not HEAD 'https://jcenter.bintray.com/com/google/code/findbugs/...
2020-04-11 14:58:00
1255
原创 未合并分支不怕丢,一个脚本快速搞定
我们使用 git 作为 版本控制工具,极大的提高了效率,但是随着业务的增多和自身对于提交内容原子性的要求,往往会产生很多的分支,这就难免有时候,在发版的时候,某些分支被遗忘提交,造成功能丢失等问题。因而如果保证分支多而且不忘记合并,是一个我们需要解决的问题。单纯靠人为挨个去看,肯定是不行的如果有程序化处理就靠谱多了是的,git有一个这样的功能呢,比如我们想要查看是否有分支没有合并进入...
2020-04-05 21:20:00
364
原创 INSTALL PARSE FAILED UNEXPECTED EXCEPTION 问题
顺手整理一个之前记录未文字输出的老问题,使用adb install爆出的问题123adb 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/a...
2020-03-30 20:59:00
5655
原创 树莓派 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...
2020-03-29 20:15:00
570
原创 一些关于微信分享的建议规范
实话讲,微信的文档真的是差强人意,除了让人难以忍受的代码使用截图展示外,其中关于一些分享的规范也不好找。还好借助Google,找到了一些规范,涉及缩略图和文字个数等。当然为了验证权威性,大家可以访问这两个地址的图片。http://wximg.qq.com/wxp/wxmoment-doc/images/2-4-2.pnghttp://wximg.qq.com/wxp/wxmomen...
2020-03-29 19:51:00
633
原创 修复ssh 首次登录树莓派失败的问题
默认情况下,树莓派不支持ssh登录,需要做一些简单的处理解决方法很简单在Mac或者linux电脑上,使用终端进入cd /Volumes/disk_of_raspberry创建一个文件,叫做ssh,touch ssh完整的代码大概是12cd /Volumes/disk_of_raspberrytouch ssh...
2020-03-29 19:46:00
932
原创 Nuc 设置断电后自动开机
步骤开机 看到启动界面后(多次)按 F2 进入BIOS进入Power Tab 向下滑动Secondary Power Settings区域找到 After Power Failure 选择Power On按 F10 保存并退出即可。相关图...
2020-03-29 17:18:00
11967
原创 KotlinTips asType 快捷转换
作用更加流畅地,一气呵成进行类型转换代码12345678910111213141516171819/** * 将一种类型转换为另一种类型,如果类型转换不允许,返回null * */inline fun <reified T> Any.asType(): T? { return if (this is T) { ...
2020-03-29 17:15:00
403
原创 KotlinTips Elvis 快速返回
作用在方法初始部分,对于值不符合预期,快速返回不再继续执行代码1234567891011private fun testElvisReturn(commands: List<String>?) { //如果值不符合预期(null),直接返回 val firstCommand = commands?.firstOrNull() ?: re...
2020-03-29 17:11:00
296
原创 KotlinTips: getValueSafely 安全取值
作用安全取值,增加稳定性规避繁琐的显式try-catch处理代码123456789101112/** * 安全的获取值的信息,其过程中发生异常会自动处理,返回null * getValueAction 取值操作,可能发生异常 * */inline fun <T> getValueSafely(getValueAction: () ->...
2020-03-22 18:52:00
326
原创 技术小黑屋投稿开放了
为了传播更好的有价值内容,本博客开放投稿功能.技术小黑屋的优势开发者头条(toutiao.io) 第一大非官方独家号维护者(4w+订阅者)掘金网站知名内容贡献者全网知名的安卓博主博客RSS 订阅 Feedly 中文技术博客订阅者较多受众广,以Java,Android,Kotlin语言使用者为主投稿者权益网站展示,转载文章底部增加公众号二维码曝光导流技术小黑屋公众号转发技...
2020-03-21 15:18:00
338
原创 Linux 下 Wget 设置代理
Linux进行网络下载,基本上是wget或者curl,比如我们这样去进行请求,如果没有代理,是访问不了的123456789[emailprotected]:/tmp$ wget google.com--2020-03-01 11:53:14-- http://google.com/Resolving google.com (google.com)... 46.82.17...
2020-02-29 20:41:00
4458
原创 树莓派安装jdk 8
执行12sudo apt updatesudo apt install openjdk-8-jdk openjdk-8-jre
2020-02-23 17:44:00
1892
原创 修复 LC_CTYPE LC_ALL 设置问题
错误日志12locale: Cannot set LC_CTYPE to default locale: No such file or directorylocale: Cannot set LC_ALL to default locale: No such file or directory修复方式第一步1sudo apt-get purge locales第二步1...
2020-02-23 17:12:00
1214
原创 Android Webview 后台播放音视频实现
问题我们使用WebView播放音乐或视频(比如油管视频)前台播放一直很正常,但是比较费电进入后台后就会暂停播放所以需求就是我们想要App在后台时同样播放音视频解决方法重写onWindowVisibilityChanged方法,让网页任然感觉像是在前台执行。关键代码123456override fun onWindowVisibilityChanged(visi...
2020-02-09 20:49:00
2078
1
原创 Mac下实现超快捷切换DNS
在有些情况下,我们需要切换DNS来实现一些处理。但是频繁的进入设置-网络 的确很麻烦,于是再次朝着脚本的思路想了想,发现还是可以实现的。下面的脚本就能便捷的实现切换WIFI的DNS并验证。changeToGoogleDns.sh该脚本的内容切换DNS为信用值很高的Google DNS 8.8.8.8。虽然Google被墙,但是这个DNS地址还是可以用的。而且这也算是我主要使用的DNS。对应...
2020-01-28 14:39:00
1371
2
原创 解决Checkstyle File Name 异常的问题
Checkstyle是一款很棒的工具,用来发现很多编码风格的问题。还不了解的同学可以移步这里Android代码规范利器: Checkstyle查看。但是在使用Checkstyle时,却出现了一些问题,就是file元素的name不是我们当前执行checkstyle任务的路径。举个例子,比如我们执行./gradlew checkstyle时项目的路径为~/Document/aProject...
2020-01-12 20:44:00
1191
原创 Kotlin 处理位操作Flag 快捷方法
一般涉及到标记位相关的操作,我们都会使用位运算,无论你是从Java转到Kotlin,还是全新使用Kotlin,进行位运算处理Flag都会感到疑问,该怎么处理呢。这里简单整理了几个方法,文件名为(FlagExt.kt)123456789101112131415161718192021@file:JvmName("FlagUtil")/...
2020-01-05 20:44:00
710
原创 创建Linux服务,轻松管理(自启动,恢复)进程
有这样一个场景,在一台服务器上,我们想要启动一个简单的网络文件服务器,用来提供给内网的用户下载。这里,我们使用ruby启动一个服务使用ruby -run -ehttpd /home/webbuild/easy_file_server/ -p8000启动文件服务器使用ruby -run -ehttpd /home/webbuild/easy_file_server/ -p8000 &...
2019-12-29 20:08:00
1749
原创 RxHttp 一款让你眼前一亮的 Http 请求框架
本文系 RxHttp作者不怕天黑 向本博客投稿,并授权在本站发表。1、前言RxHttp在今年4月份一经推出,就受到了广大Android 开发者的喜爱,截止本文发表在github上已有1100+star,为此,我自己也建个RxHttp&RxLife 的群(群号:378530627)目前群里也有将近120号人,里面有不少小伙伴提了很多有价值的创意,才使得RxHttp一直坚持走到了现在,在此...
2019-12-28 15:15:00
1583
1
原创 Kotlin 注解 第三篇 @JvmField 与 @JvmStatic
本文是既 JvmName 注解在 Kotlin 中的应用和JvmMultifile 注解在 Kotlin 中的应用的第三篇关于 Kotlin的注解文章。介绍的内容比较简单,主要是包含了JvmField和JvmStatic两个。@JvmField示例代码声明123package com.example.jvmannotationsampleclass Developer (@Jv...
2019-12-22 20:44:00
1054
原创 终端依赖者福利:终端也能实现翻译功能了
一直是终端重度依赖,现在发现了一个终端翻译的工具,更加爱不释手。本文介绍一下一个终端可以实现的工具,trans。是什么Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc一个终端翻译工具,利用Google翻译,Bing翻译,Yandex翻译等。效果12345...
2019-12-15 19:41:00
973
1
原创 Mac 下在终端直接查看图片
在开发的过程中,我们通常会遇到这样的情况,就是我们需要根据图片的url地址查看其对应的内容,通常的做法就是把这个图片链接贴到浏览器。不过一直好奇,能不能再终端中直接展示,于是做了一些搜索,发现了对应的实现方式。注意:此方式只适用于Mac,其他的Linux 发行版 需要自行按照如下的思路查找对应的工具。安装imgcat使用iTerm 2 执行如下的语句(或者是选择 iTerm2菜单 –>...
2019-12-08 20:02:00
3638
原创 在 Android 中如何确定 App(Activity) 的启动者
最近在帮忙定位一个问题,涉及到某个应用自动启动了,为了确定是谁调用的,使用如下的日志进行查看(注:为了简单考虑,下面的启动者为launcher)1234(pre_release|✔) % adb logcat | grep -E "ActivityManager: START" --color=alwaysI ActivityManager: START u0 {act...
2019-12-01 21:40:00
1378
原创 简简单单对比encodeURI与encodeURIComponent
encodeURI和encodeURIComponent 是两个很相近的方法,用来encode URI。但是他们之间也存在着细微的差异,如果不能很好的理解这个差异,可能会导致一些不必要的麻烦。本文将尝试用最简单的形式展示这个差异。encodeURIencode所有的字符,除了下面的字符Not Escaped: A-Z a-z 0-9 ; , / ? : @ & = + $ –...
2019-11-17 21:40:00
760
原创 GapWorker导致RecyclerView视频播放声音残留问题
场景描述App 有两个tab,每一个都是Fragment,以FragmentA和FragmentB 代称.切到FragmentA 视频播放(在RecyclerViewA 内部),然后切到FragmentB 视频暂停.就在此刻,滑动FragmentB 的recyclerView B ,来自FragmentA的视频播放出声音,而且声音是下一条视频的声音。这确实是一个非常奇怪的问题,不滑动...
2019-11-11 20:59:00
1128
原创 在终端使用脚本查看网站 SSL 证书信息
之前遇到过一次赛门铁克很久的证书被Chrome弃用的问题,涉及到了查看证书。当然第一个大家会想到的是在浏览器中查看,但是总是感觉不够极客。后来摸索找到了终端查看网站证书的方法脚本内容12#!/bin/bashecho | openssl s_client -showcerts -servername $1 -connect $2:443 2>/dev/null | openssl...
2019-10-27 18:23:00
961
1
原创 Android WebView 诊断与排查问题的方法和技巧
WebView,是安卓中很重要的一个组件,我们的应用中集成WebView后,可能会遇到各种各样的问题,这里简单介绍一些Android WebView 诊断与排查问题的方法,希望对于大家有这方面的问题的朋友有所帮助。开启DiagnosableWebViewClient日志输出1234567891011121314151617181920212223...
2019-10-20 21:13:00
1168
原创 使用脚本批量替换文本内容
很多时候,我们需要进行多个文件的查找并替换,虽然IDE有这样的可视化功能,但是偏爱终端的人还是想要尝试用脚本实现一把。如下是一个简单的脚本来实现多文件的查找替换处理。脚本内容12345678#!/bin/sh# $1 search_keyword# $2 replace_original# $3 replace_destination# $4 search file ...
2019-10-13 19:07:00
3480
Zend_Framework_zh.chm zend框架中文手册
2011-01-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人