自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Flutter_web加Java Spring 整站前后台开发经验梳理

Flutter_web加Java Spring 整站前后台开发经验梳理 这段时间开发了一个公司内部使用的网站,本着提前探索熟悉(踩坑)未来的全栈UI框架-Flutter的愿望,使用了Flutter for Web作为前端框架,后台部分则循规蹈矩的用了java Spring。目前已经开发完成,在此简...

2019-08-19 16:05:51 1362 0

原创 android studio编译和命令行调用gradle编译的区别

android studio编译比命令行调用gradle编译快很多 从Android Studio 2.3版本之后,通过Android Studio打包普遍比通过命令行调用gradle编译要快很多。这是因为Android Studio增加了一项功能。通过Android Studio打包是,检测到连...

2019-06-17 20:53:38 943 0

原创 AddTryCatch gradle plugin 编译期给代码加try catch的插件

AddTryCatch插件,可以通过简单的配置,在编译期向指定方法中加入try catch! 因为是在编译期在字节码的层面上修改,所以不管是自己写的代码,还是引用的第三方库中的代码,都可以加入try catch。 项目地址:https://github.com/xingchenxuanfeng...

2019-03-29 09:50:16 464 0

原创 一步步实现AddTryCatch插件 —— Gradle Transform和ASM实践

在上一篇AddTryCatch gradle plugin 编译期给代码加try catch的插件中介绍了AddTryCatch插件的使用方法,这一篇来一步步实现一下AddTryCatch插件。 参考这篇文章,可以快速开发一个gradle插件,包含了我很多的探索和踩坑,看完这篇文章直接就可以上手开...

2019-03-28 11:18:49 1077 4

原创 Firebase Crashlytics Sdk接入流程(Android)

Firebase Crashlytics Sdk接入流程 考拉刚刚把crash统计平台迁移到了firebase上,在此记录一下接入Firebase Crashlytics Sdk的流程,以供大家参考。 接入一个新的SDK,最重要的文档就是官方手册,Firebase Crashlytics的官方手册...

2019-01-27 19:05:03 4529 15

原创 最简洁的Handler、Looper、Message源码级原理分析

每一个Android开发者,基本都能把Handler、Looper、Message的原理说上一通,最基本的面试题答案“每个线程里可以创建一个Looper,Looper里维护一个消息队列,handler可以往这个消息队列发消息,Looper又不停的从消息队列里取出消息分发给对应的handler”。然...

2017-09-26 13:57:26 207 0

原创 android 最近任务多进程调度逻辑分析

android自从把最近任务改为一个activity后,最近任务的内部逻辑的复杂程度就在不停地快速增长着。android是支持多用户的,最近任务在每个用户空间都有一个单独运行的进程。而只有主用户空间的SystemUI进程才能收到PhoneWindowManager发过来的事件,比如showRece...

2017-09-08 15:47:40 1263 0

原创 git 同步超大仓库失败的解决办法

git 同步超大仓库的时候,会报如下错误 git fetch error: git upload-pack: git-pack-objects died with error.iB/s fatal: git upload-pack: aborting due to possible reposit...

2020-05-13 19:32:36 173 0

原创 用find命令查找最近修改过的文件

用find命令查找最近修改过的文件 查找最近一分钟内修改过的文件 find . -mmin -1

2020-04-22 20:14:54 70 0

原创 Flutter PageView 嵌套 Swiper时嵌套滚动冲突问题解决

在Flutter中,如果 PageView 嵌套 Swiper时,默认是很正常的,内层Swiper优先消费滚动事件。 但是当Swiper的layout设为自定义:SwiperLayout.CUSTOM 时,则会出现Swiper无法消费滚动事件的问题。 这个问题是因为PageView和Swiper的...

2020-04-14 15:27:10 294 0

转载 以普通用户启动的Vim如何保存需要root权限的文件

在Linux或mac上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行:wq保存退出,突然蹦出一个错误: E45: 'readonly' option is set (add ! to override) 这表明文件是只读的,按照提示,加上!强制保...

2020-02-27 15:50:50 79 0

转载 emacs操作简介

emacs操作简介 文件编辑 emacs是由GNU组织的创始人Richard Stallman开发的一个功能强大的全屏文本编辑器,它支持多种编程语言,具有很多优良的特性。有众多的系统管理员和软件开发者使用emacs。 语法 emacs(选项)(参数) 选项 +<行号>:...

2020-01-21 16:05:00 70 0

原创 通过ContentProvider的onCreate自动初始化Sdk

ContentProvider的onCreate的调用时机介于Application的attachBaseContext和onCreate之间。 利用这个机制,可以在ContentProvider的onCreate中做某些初始化逻辑,这样写的sdk,就不需要app方主动调用初始化也可以完成自动初始...

2019-12-14 15:49:22 98 0

转载 Android Studio Debug 的 9 个小技巧

周末看 Android Dev Summit '19 的视频的时候,看到一章关于 Android Studio Debug 的介绍,有很多日常非常有用的小技巧,学习了这些小技巧能很大程度的降低我们 Debug 的成本,快速定位问题的本质,今天就向大家介绍一下 Android Studio...

2019-11-26 01:32:20 157 0

转载 一些好用的python代码片段

以下文章来源于读芯术,作者读芯术 读芯术 专注年轻人的AI学习与发展平台 Python是一种非BS编程语言。设计简单和易读性是它广受欢迎的两大原因。正如Python的宗旨:美丽胜于丑陋,显式胜于隐式。 记住一些帮助提高编码设计的常用小诀窍是有用的。在必要时刻,这些小诀窍能够减少你上网查...

2019-11-26 01:18:32 61 0

原创 GCP VM实例磁盘扩容,修改cpu和内存,修改IP地址 步骤

查看原有VM实例信息 首先打开https://console.cloud.google.com/compute/instances查看我们GCP中的VM实例 点击实例名进入详情 可以看到我们的CPU 内存 磁盘 等信息。 ssh上去,用df和lsblk查看的输出如下。 创建快照 在调整配置...

2019-10-18 23:39:55 2196 0

原创 热点分析平台

最近找了几个比较大的热点分析平台,试用对比了一下。 谷歌趋势https://trends.google.com/trends/?geo=CN 蝉大师https://www.chandashi.com/aso/keywordrank.html 百度搜索风云榜http://top.baidu.com...

2019-09-02 15:34:57 121 0

原创 无须注册的云盘平台anonfile

最近发现一个匿名的云盘平台 anonfile。感觉说不定什么时候可能就用得着,在这里记录一下。 https://anonfile.com/ 匿名上传您的文件,并在AnonFiles上免费上传 我们为您提供20 GB的文件大小限制和无限带宽 虽说官网写的是20GB的大小限制,但是既然是匿名的,那...

2019-09-01 23:24:32 1063 0

原创 git 忽略已提交文件的修改

我们在使用git中,经常会遇到这样的情况: git仓库中有某个必要的配置文件,这个文件应该存在,但是在每个开发人员的本地都要对他进行修改。这就导致这个文件要被反复修改,容易冲突。要想不冲突,就要每个人提交前,都刻意不提交该文件,很是麻烦。 一般我们这时候就会想到,用.gitignore来忽略这...

2019-07-29 11:52:41 990 2

原创 万能json to code 在线工具

万能json to code 在线工具 支持各种语言 最近找json to dart的时候发现的,试了其他工具,不好用,还有bug,这个就好多了。 https://app.quicktype.io/

2019-07-15 00:46:57 698 0

转载 高效程序员的45个习惯

《高效程序员的45个习惯》总结 转载自:https://www.open-open.com/blog/5035948179128506506.html 一、敏捷——高效软件开发之道 敏捷的精神:它要求团队中的每一个人(包括与团队合作的人)都具备职业精神,并积极地期望项目能够获得成功。它并...

2019-06-04 15:45:40 254 0

原创 遍历一个简单的android工程中gradle编译时的所有task,打印其依赖和输入输出

我们开发中如果涉及到gradle的开发,经常需要查看各个task的输入输出。我在这里创建了一个空的android项目,然后遍历了它的所有task,及其依赖和输入输出。 遍历的代码非常简单: project.afterEvaluate(new Action<Project>() { ...

2019-05-04 18:10:28 1906 0

原创 Gradle进程调试方法

开发gradle插件和排查某些问题的时候,偶尔需要调试gradle进程。这时候可以用如下方法来开启调试。 在原本的编译命令后加-Dorg.gradle.debug=true --no-daemon, -Dorg.gradle.debug=true表示gradle进程启动后等待调试器attach...

2019-05-04 15:27:17 546 0

原创 tldr ! 比 man 简单好用的命令手册

tldr ! 比 man 简单好用的命令手册 使用Linux或者Mac时,经常会忘记某些命令的用法,这个时候经常就需要去百度或者谷歌搜索命令的使用说明。其实系统自带了man命令来查看手册,但是man显示的使用手册往往又臭又长,我仅仅需要临时用一个命令,为什么非要看这么长的说明书? tldr是简化版...

2019-04-19 13:39:29 677 0

转载 代码的坏味道

代码的坏味道 代码坏味道:是指在代码之中潜在问题的警示信号。并非所有的坏味道所指示的确实是问题,但是对于大多数坏味道,均很有必要加以查看,并作出相应的修改。 1.重复的代码 如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好。 同一个class内的两...

2019-03-08 14:14:13 217 0

原创 修改firebase、google等网站语言的方法

一般网站上有设置页面的,直接在设置页面里选择语言就好了,比如youtube 但是某些网址上没有设置页面,或者设置页面里找不到设置语言的选项,这是可以试试在链接最后面加上hl后缀,Zh-cn表示中文,en表示英文 …… 就可以切换语言了。 url?hl=Zh-cn //切换为中文 url?h...

2019-01-30 11:21:37 970 0

转载 Linux磁盘相关-分区与修复

转自:http://balistardut.github.io/2016/01/30/Linux%E7%A3%81%E7%9B%98%E7%9B%B8%E5%85%B3-%E5%88%86%E5%8C%BA%E4%B8%8E%E4%BF%AE%E5%A4%8D/   Linux磁盘相关-分区与...

2019-01-07 11:31:32 1694 0

转载 ubuntu上安装搜狗输入法

首先安装fcitx 一、检测是否安装fcitx 首先检测是否有fcitx,因为搜狗拼音依赖fcitx &gt; fcitx 提示: 程序“fcitx”尚未安装。 您可以使用以下命令安装: &gt; sudo apt-get install fcitx-bin   二...

2019-01-02 18:29:13 205 0

原创 (initramfs)unable to find a medium containing a live file解决办法

帮同事装ubuntu时,遇到下面这个错误,试了各种设置都无法安装好。 (initramfs)unable to find a medium containing a live file 最后找到一个神奇的办法,就是在打开ubuntu安装界面前,走进度条时,快速把U盘拔出来再插进去,这样电脑就可...

2018-12-11 12:53:44 8226 16

原创 RecyclerView的canScrollVertically方法踩坑

这个canScrollVertically方法有两个坑 /** * Check if this view can be scrolled vertically in a certain direction. * * @param direction Neg...

2018-12-04 16:20:41 5684 1

转载 Kotlin 操作符:run、with、let、also、apply 的差异与选择

转自原文链接 Kotlin 操作符:run、with、let、also、apply 的差异与选择 Kotlin 操作符:run、with、let、also、apply 的差异与选择 Kotlin 的一些操作符非常相似,我们有时会不确定使用哪种功能。在这里我将介绍一个简单的方法来清楚地区分他们...

2018-11-22 21:13:56 167 0

转载 vim 操作命令大全

1. 关于Vim vim是我最喜欢的编辑器,也是Linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vi...

2018-11-21 16:50:10 75 0

转载 ProGuard简介

本文出自:链接 深入学习ProGuard之:ProGuard简介与android的应用 什么是ProGuard 在ProGuard的官网中,关于ProGuard的描述是这样的: ProGuard is a Java class file shrinker, optimizer, obfu...

2018-11-19 16:14:05 653 0

原创 在java中抛出native crash的方法

    最近要接入firebase crashlytics,一个crash分析平台,要测一下native crash能否正常统计上报,找了半天才找到一个可以简单的抛出native crash的方法。 代码如下,用java调下面这个方法就可以抛出native crash。 public...

2018-11-14 21:34:09 758 0

转载 【入门篇】Kibana 查询表达式

本文出自:原文 1、要搜索一个确切的字符串,即精确搜索,需要使用双引号引起来:path:”/app/logs/nginx/access.log” 2、如果不带引号,将会匹配每个单词:uid token 3、模糊搜索:path:”/app/~” 4、* 匹配0到多个字符:*oken 5、...

2018-11-11 17:42:29 360 0

转载 ssh详解

本文转自:https://www.cnblogs.com/f-ck-need-u/p/7129122.html,在此记录一下,如有需要请点击链接查看原文。   本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不...

2018-09-19 13:15:07 3792 0

原创 Host文件转换为Charles可识别的DnsSpoofing Xml配置文件

charles本身带有DNS Spoofing Settings的功能,在Tools菜单里,使用这个,就不需要在搭配其他Host修改工具使用了,我们项目中,开发时需要频繁改host,这个功能对我来说十分有用。 但是charles自带的这个功能,只能导入charles本身导出的xml配置,不能直接...

2018-08-15 19:17:43 785 3

原创 终端里写循环的方法

很多时候想要执行某些命令,并且又不想写脚本,就想直接在终端里执行。 这个是非常常见的,比如cat echo ls 等命令,没必要再去写个shell或者python来执行。 但是遇到一些负责的逻辑就很麻烦了,最常见的就是循环。 在终端里写循环也可以用for和while。 输出1到9,9个数字...

2018-08-08 16:49:25 2420 0

原创 用adb shell 获取当前手机所有features

用adb shell 获取当前手机所有features adb shell pm list features 在写测试脚本的时候会有用   这是从google的cts测试里找出来的,androidxref上可以搜索到 :androidxref 。 cts测试真是集合了Google工程师奇...

2018-08-08 15:33:54 2081 0

转载 GPU呈现模式分析中颜色的意义

google官方解释中文版:链接 google官方解释英文详细解释:链接 下表介绍了使用运行 Android 6.0 及更高版本的设备时分析器输出中某个竖条的每个区段。 竖条区段 渲染阶段 说明 交换缓冲区 表示 CPU 等待 GPU 完成其工作的时间。 如果此...

2018-07-23 10:58:53 4666 0

提示
确定要删除当前文章?
取消 删除