- 博客(340)
- 资源 (28)
- 收藏
- 关注
原创 git 随笔
今天在群里看到有人问,怎么查看一天提交的次数。我记得 git log里面是有很多参数的,但是具体的也不记得了。先是想到用这个:git log --oneline --since="2019-3-28" --before="2019-3-29" --branches | wc -l但是好像不对,统计的次数不对。通过查看log一个一个数的,发现数字对不上。于是,又想到另一个:git lo...
2019-04-08 22:37:19 121
原创 mac下配置 Jenkins 编译Android apk
一般而言,编译 apk直接用 android studio就可以了。不过如果是希望自动编译,可以使用 Jenkins这个开源工具。官网:https://jenkins.io/然后安装的话,官网也提供的好几种方式。推荐使用Docker容器。不过这个玩意我没有使用过。大致步骤可以参考这个:【转】Mac中jenkins的使用——自动构建主要说一下需要注意的地方:首先是环境:本地需要配置 ...
2019-03-24 11:44:08 723
原创 android: HandlerThread 源码浅析
HandlerThread该对象其实系统内部使用的比较多,比如IntentService。而调用者一般不会去直接使用。不过HandlerThread源码非常简单。实现也谈不上有太多技巧性。不过还是蛮实用的。简化了子线程Handler的使用。一般的场景下也用不上。Handler的使用场景是,需要在某个时候,让子线程去完成某个逻辑。类似于后台任务。而且,不会有结果回调处理,需要把结果回调出来的话,...
2019-03-17 19:02:25 191
原创 android: 源码浅析系列[Handler,Looper,Message,MessageQueue]
对之前的分析做一个整理:android: Handler 源码浅析 [Handler,Looper,Message,MessageQueue][android: Looper 源码浅析 [Handler,Looper,Message,MessageQueue]](https://blog.csdn.net/DucklikeJAVA/article/details/88615379)...
2019-03-17 12:09:43 272
原创 android: Message 源码浅析 [Handler,Looper,Message,MessageQueue]
其中Message源码是最简单的。首先,该类实现了接口Parcelable,也就表示,Message是一个可序列化对象。然后构造方法里面没有任何逻辑,仅仅是构造出一个Message对象。Message里面还有一个很常用的方法obtain()。 /** * Return a new Message instance from the global pool. Allows us...
2019-03-17 12:04:28 177
原创 android: Handler 源码浅析 [Handler,Looper,Message,MessageQueue]
在 android中,Handler是非常重要且常用的对象。往往用来处理异步回调。很多系统实现都使用到了Handler。比如AsyncTask,IntentService,HandlerThread 等。先给出一个简单是使用示例:// Handler 使用示例 ### // MyActivity.java private Handler mainHandler = new Handl...
2019-03-17 11:55:03 214
原创 android: Looper 源码浅析 [Handler,Looper,Message,MessageQueue]
其实Looper的源码比较短,看起来还是比较容易的。首先是构造方法。不过私有化了。private Looper(boolean quitAllowed) { mQueue = new MessageQueue(quitAllowed); mThread = Thread.currentThread();}通过构造方法可以清晰的见到,这里创建了一个很重要的对象,也就是Mes...
2019-03-17 10:52:42 183
原创 Kotlin: 一门丑陋的语言
Java 不会真的被Kotlin 取代了吧,看到这种代码真的感觉恶心。import android.content.Contextimport android.os.Bundleimport android.widget.Toastimport androidx.appcompat.app.AppCompatActivityimport androidx.recyclerview.wid...
2019-01-27 21:07:33 7051 11
原创 回顾 2018
2018年,我记得是比较清楚的。毕竟才刚刚结束,而且这一年,我过得比较平稳,算是没有颠沛。这一年,我也没有换房子,一直住在我的南次卧。偶尔,老刘会来探望一下。应该是1.15号开始,我去做了一下 SCM 的工作。对我而言,这份工作让我熟悉了 git 的一些常规操作,并且能让我运用一下自学的 python 以及 shell 编程。总体而言,这份工作对我并没有带来什么挑战。当然,我也没有去深入了解这份...
2019-01-02 20:37:58 289 2
原创 android 自定义控件中的测量和布局
上一篇:android onMeasure 实现上一篇中其实对测量讲解的比较清楚了,对布局没有说。不过对于 viewGroup而言,测量完成了,也就意味着着,知道怎么布局了。其实知道了怎么测量和布局就可以实现很多沙雕的控件了。比如流布局。当然了,如果想提供很方便的调用方式,还需要搞一些便捷的自定义属性才行。这里展示一下,通过测量和布局实现的沙雕布局。通过效果图可以看出来,这就是流布局了...
2018-12-23 02:59:37 413
原创 java pull 解析 xml
由于现在一般都是使用 json进行数据传递了,很少用到 xml格式的,所以,突然遇到,感觉特TM费劲。痛定思痛,决定记录一下,以免下次抓瞎。**大神镇楼: ** 【Android】PULL解析XML文件【其实里面的示例代码有错误。】我来:import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserEx...
2018-12-20 20:47:29 306
原创 android cookie 使用
膜拜大神先:https://blog.csdn.net/lizhengwei1989/article/details/75570954其实上面这篇已经写的非常清楚了。简单总结就是,在第第一次请求的时候,比如登录。服务器返回的数据报文的 响应头里面会包含一些:Set-Cookie:xxxx;aa=bb;cc=ddSet-Cookie:yyyy;mq=qw;kk=zx这样的数据。然后下次请...
2018-12-16 23:24:25 624
原创 java 代理模式
代理模式听起来特别唬人,如果你不知道的话。几个月前,我去面试。面试官出来。(我一看,哇,这人是程序员?吊儿郎当的样子)然后他就开始问我一些问题。让我一直记住的一个问题是:静态代理模式与装饰模式有什么区别?我当然没有回答上来了。我TM根本不知道代理模式要怎么弄,只是知道有这么个东西。以上是前言。不过实话说,代理模式是我一直想了解但是一直没有了解的东西。然后在我脑中就有一个印象:这玩...
2018-12-13 23:04:11 147
原创 Java 注解实战
Java 中提供了注解的功能。涉及到的包有:java.lang.annotation,java.lang.reflect 。也就是说,实际上包含两点:注解和反射。注解q:为什么需要反射?因为仅仅自定义注解的话,几乎没有任何作用,除非是基于第三方框架。而不依赖任何第三方框架的话,就必须使用到反射来解析自定义的注解。(似乎也有其他的方式来解析)这里就使用反射的方式来解析。关于自...
2018-12-09 21:34:50 761
原创 git clean 小记
有时候写了一大堆代码,发现写的全是垃圾, 怎么回退?git reset --hard HEAD #当然是可以的如果只想删除新增的,对原有代码的改动不想回退怎么办?到source tree里面一个个选中删除? 太麻烦,而且容易误删。(虽然误删有办法恢复)那就执行 git clean不过 默认git clean 不会直接把新增的未追踪的文件直接删掉。要输入git clean -f/-i....
2018-12-01 20:21:16 1059
原创 python3 自定义颜色输出工具
先看效果:格式化输出 字典,元祖,字典等。[对长度大于5的可迭代对象,显示长度]各种颜色都有,调用简单,参数和print()完全一致。代码很少,只是涉及到一个颜色输出的问题,以及 格式化打印的问题。#!/usr/bin/env python3# -*- coding: utf-8 -*-"""<a href="https://www.jetbrains.com/he...
2018-11-24 23:48:48 1177
原创 android textview 部分文字变色以及可点击
部分参考:https://blog.csdn.net/mq2553299/article/details/78033581原理什么的就不说了,我也不知道。用法就是下面的两个方法。// 推荐使用这个方法private void showAppend(@NonNull View view) { TextView tvAppend = view.findViewById(R.i...
2018-11-22 16:43:42 1366
原创 android sqlite3 数据库升级,加字段
数据库升级,添加字段。比如原本的表结构是这样的:CREATE TABLE group ( _uid NVARCHAR NOT NULL PRIMARY KEY _member NVARCHAR);对应的代码是:@Overridepublic void onCreate(SQLiteDatabase db) { db.e...
2018-11-21 16:45:38 3203
原创 android activity onCreate 里面弹出对话框不显示的诡异问题追踪
最近有一个需求,是在某个 activity的onCreate里面弹出一个对话框,等点了确认之后,才能进行后续的逻辑。至于产品为什么有这种奇怪的想法,不得而知了…但是奇怪的是,我按照正常的逻辑去写,发现总是弹不出来。然后我换一个 activity的onCreate 里面去弹,又能正常弹出来。至此,我知道了,不是弹出对话框这部分的逻辑有问题,而是其他地方的逻辑出了问题。然后,我发现在当前...
2018-11-20 16:44:08 2173
原创 android.database.ContentObserver#onChange(boolean, android.net.Uri) 多次回调的妥协处理方案
android.database.ContentObserver#onChange(boolean, android.net.Uri)在调用数据库监听的方法的时候发现,该方法会被多次触发。比如,只是增加或者删除了一条数据,但是实际上,无论是增加还是删除,每次该方法都会被回调两次。对于既定的事实,尚不清楚此设计的初衷。不过,我们并不想做重复的逻辑。解决方案是:?在收到回调之后,立即反注册...
2018-11-16 21:56:42 1673
原创 git 操作难题
base--|--|--|-|---|-|--|--|--|-- | a|--|--|--|--|----| | c|-|--|---|--| 应该把 a 全部合入到 base。但实际操作步骤是:1. git checkout base2. git rebase c现在怎么 让 base 回到 执行 [ git rebas...
2018-11-13 17:05:48 146
转载 CSDN:欢迎使用CSDN-markdown编辑器
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2018-11-08 21:06:30 236 1
原创 android:浅谈 mvvm 模式中的 ViewModel
不同于 mvp , mvvm 与不使用框架的写法非常的类似,而且理解起来也相对简单很多。简单的说,就是 界面上需要展示的数据,不是直接写在 View/Fragment/Activity这些界面组件里面,也不是写在Service这些系统组件里面。是放在 ViewModel里面的。然后,并不是所有的数据操作相关的代码全部放在 ViewModel里面,比如数据库的增删改查,那是放在Dao里面的,但是...
2018-11-08 21:02:58 2033
原创 android 自定义Toast 实践
android 原生Toast源码并不多,照虎画猫的难度并不大。刚好最近有一个需求是弹出的 toast需要上面有一个图标,下面是文字。在屏幕上居中显示。其实代码很少。就两个文件,一个是自定义的布局,一个是.java文件。custom_toast_layout.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout...
2018-11-04 17:36:07 391
原创 android Glide 4.8 使用
implementation 'com.github.bumptech.glide:glide:4.8.0'annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'Glide4.8 版本相对之前的版本,也没有什么差别。很久没有使用过这个库了。猛然发现,用法好像有点变化。出现了一个GlideApp类。但是导入库之后,又找不到。...
2018-11-02 15:05:47 3502
原创 android SharedElement recyclerView 2 viewPager
实现共享元素,从RecyclerView的 item到ViewPager的大图中。之前,先弄了 从RecyclerView到 单个 ImageView里面可以正常切换。但是不能滑动查看,不是很好。于是准备弄一个这个玩意。坑超级多。致谢:这位大佬的博客帮助了我这是 ViewPager所在的 activity ,是现实大图片的public class PagerActivity exte...
2018-10-30 23:49:21 648
原创 android:cookies 的浅使用
对于 http ,我算是比较陌生的。一般开发都是 参照原来的代码,或者 网上的博客,或者咨询后台。也勉强凑合,小需求也能解决。在 wan android api 中,有一篇关于 使用 postman 模拟请求的,然后里面说了关于 cookies 的。Postman 模拟带 cookie 的请求 。我看了之后没有明白到底是怎么弄的。于是下载了几个 wan adnroid 的 app 源码,看了好几...
2018-10-29 10:24:34 308
原创 android studio gradle 下载,使用阿里云和163镜像
灰常感谢阿里云和 163.maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }maven { url 'http://mirrors.163.com/maven/repository/maven-public/' }放置的位置参考项目原有的maven,jenter(),google()的位置即可。...
2018-09-20 23:19:32 3720
原创 我的 oh-my-zsh 的故障故事
都说oh-my-zsh好,我就下载了一个。有一段时间了。用着感觉很不错的样子。但是里面的主题,没有一个我喜欢的。接下来,我并不是自己写了一个主题,然后使用了。因为我根本不会写这个玩意啊。然后,我不知道在那看到一段PS1的代码。就把这段代码方到 ~/.zshrc里面的。大致是这样的。export PS1='╭─%{$terminfo[bold]$fg[green]%}%n@%m%{...
2018-09-16 01:41:02 448
原创 android PopupWindow 点击外部,让pop消失,但是并不响应外部 view
关于popupWindow的细节:请看这个链接:从源码剖析PopupWindow 兼容Android 6.0以上版本点击外部不消失// 我的代码// findLayout(); 是一个自定义的方法,返回一个 xml 中的 布局final LinearLayout va = findLayout(); if (mPopupWindow == null) { ...
2018-09-04 15:37:15 5366 3
原创 android sqlite 非法字符处理速记
如果是针对sqlite3写sql语句的话,一般是这样子:create table aa(id integer); # ok这句命令没有任何的问题,可以正常创建。但是,如果你的表名中有非法字符,就不行了:create table xx-yy-zz(id integer); # fail改进:create table 'xx-yy-zz'(id integer); # ok...
2018-09-03 16:53:07 672
原创 android AbsListView.RecycleBin 分析
RecyclerBin分析 /** * The RecycleBin facilitates reuse of views across layouts. The RecycleBin has two levels of * storage: ActiveViews and ScrapViews. ActiveViews are those views which...
2018-08-29 17:21:49 476
原创 android AdapterView 关键方法分析
AdapterView 关键方法解析:AdapterView 关键方法解析:setEmptyViewrememberSyncStateAdapterDataSetObservercheckFocusSelectionNotifierdispatchOnItemSelectedgetPositionForViewselectionChangedsetEmp...
2018-08-24 17:09:44 1525
原创 android sqlite 批量插入数据效率优化
将批量的db.insert(xxxx)放在事物里面。(减少 io操作次数)如果是执行db.execute("insert into xxx")这样的sql语句,并放在事物里面,比上一条方式更快。一次事物里面只使用一个db对象,不要在事物期间,再次获取一个其他的db对象。(比如插入到book_table的同时,要更新count_table表。这时候就应该使用同一个db对象。) 在插...
2018-08-24 14:02:20 1530
原创 android Adapter,AdapterView,AbsListView,ListView
ListView完全解析ListView完全解析Adapter分析在android中,列表控件之前一直是ListView,现在是RecyclerView。 关于ListView, 关联的类(或接口)有Adapter,AdapterView,AbsListView,ListView。首先看一下最简单的Adapter.Adapter分析既然和Adapte...
2018-08-22 18:25:58 418
原创 android PopupWindow 浅析
弹出框 PopupWindow是android中的一个控件,可以显示给用户看到。不过,它并不是View的子类,是一个独立的类,没有父类,或者说是继承自Object。这个类提供了很多构造方法,但是大体是两类,一类是需要传入view的,一类是需要传入Context的。public PopupWindow(View contentView, int width, int height, bool...
2018-08-20 21:32:50 515
原创 android popupWindow 底部弹出与消失
最近刚好遇到一个这样的需求,于是就写了这样的代码。// show popup windowfindViewById(R.id.btn_pop_show) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(final Vi...
2018-08-19 19:51:38 1107
原创 android RadialTimePickerView 浅析
RadialTimePickerView浅析RadialTimePickerView浅析上来就一个静态代码块preparePrefer30sMap();snapOnly30s();setCurrentHourInternal()setCurrentMinuteInternal()上来就一个静态代码块 关于角度与弧度:看这个链接 . 从...
2018-08-13 23:43:17 721
ClearCache(5.0)
2016-03-22
混淆打包的小DEMO
2016-02-29
As的初使用
2016-01-05
混淆打包SmsCheck
2015-12-29
短信验证加强
2015-12-28
SmsReadDemo
2015-12-27
YYYY短信验证
2015-12-23
基于云之讯sdk的语音通话app Demo
2015-12-06
自定义View的学习使用
2015-11-18
导入导出Demo
2015-10-25
Husband看门狗
2015-10-08
MoocBmob云服务使用
2015-10-07
高仿微信5.3界面,Android版
2015-10-05
微信5.3界面的高仿|Adnroid版
2015-10-05
AsyncTask加载ListView的Item图片完整版
2015-10-03
AsyncTask加载ListView的Item图片
2015-10-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人