自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 abc

博客到底是内容的分享,还是无知的暴露?

2018-11-22 10:03:44 177

原创 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修改主题添加全路径显示oh-my-zsh修改主题添加全路径显示这个很好。

2018-09-16 02:51:32 244

原创 我的 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

camera2preview-v1.0.zip

use camera2 api show preview in surfaceview

2021-09-05

Camera2easy.zip

用最少的代码实现 android camera2 调用相机预览。仅仅是简单的示例。

2021-06-27

工厂方法Demo

Java设计模式之“工厂方法模式”的学习 http://blog.csdn.net/DucklikeJAVA/article/details/50984194

2016-03-25

简单工厂模式

简单工厂模式的学习: http://blog.csdn.net/DucklikeJAVA/article/details/50976451

2016-03-25

ClearCache(5.0)

通过反射机制,调用系统隐藏的API,清除手机所有的app缓存. 关键方法:freeStorageAndNotify。前提:添加AIDL文件 参考博客:http://blog.csdn.net/DucklikeJAVA/article/details/50951668

2016-03-22

混淆打包的小DEMO

详情见http://blog.csdn.net/DucklikeJAVA/article/details/50762661 主要实现了一下内容:1.混淆的操作步骤,2.混淆时如何保留类名,3.混淆时如何保留一个类的类名和里面的全部方法属性4.混淆时如何保护内部类的类名和全部内容5.第三方jar包的最简单的混淆方式

2016-02-29

As的初使用

我上传的第一个AS工程。主要是练习AS的使用。 DEMO主要功能:扫描系统数据库,获取里面的音乐文件的信息,然后显示到UI上面。 blog:http://blog.csdn.net/DucklikeJAVA/article/details/50464227

2016-01-05

地图实现定位

利用百度地图SDK实现定位与在地图上显示当前位置的功能

2016-01-03

混淆打包SmsCheck

blog:http://blog.csdn.net/DucklikeJAVA/article/details/50428478 混淆打包apk攻略。以及通过云之讯SDK进行短信验证的请求,获取验证码之后,对比验证码,删除验证码短信

2015-12-29

短信验证加强

blog:http://blog.csdn.net/DucklikeJAVA/article/details/50421250. 通过第三方SDK,进行验证码的获取。 监听短信数据库,确认收到的短信就是验证码短信。 删除该验证码短信,发送广播通知验证成功或失败

2015-12-28

SmsReadDemo

在小米3手机测试正常。基于系统数据库进行短信数据库的查询和删除操作 blog: http://blog.csdn.net/DucklikeJAVA/article/details/50413369

2015-12-27

duckFileOperate

listviewItem刷新 根据ListView的Item进行对应的进度刷新

2015-12-23

YYYY短信验证

短信验证的简单实现,基于云之讯SDK.blog:http://blog.csdn.net/DucklikeJAVA/article/details/50379049

2015-12-23

YZX短信验证

基于云之讯的短信验证代码 blog: http://blog.csdn.net/DucklikeJAVA/article/details/50379049

2015-12-22

基于云之讯sdk的语音通话app Demo

需要注册云之讯的开发者帐号,以及自己的手机号码,以及两部android手机就可以实现语音通话了。是blog-->http://blog.csdn.net/ducklikejava/article/details/50194709对应代码

2015-12-06

自定义View的学习使用

Android自定义View的学习使用Demo。根据guolin,hongyang等大神的blog的指导,写了几个简单的自定义View的Demo。准备作为下一篇blog的资源。

2015-11-18

碎片相机--之前写的一个Demo

是一个很小的Demo。里面有关于软键盘的处理。然后就是拍照存储。到时候把这个链接挂到一个博客里面。

2015-11-02

导入导出Demo

是blog:http://blog.csdn.net/DucklikeJAVA/article/details/49395387 的Demo。这也是目前为止,我最满意的一个Demo。主要内容就是:如何在Service的子线程中去和UI通信。以及,如何去同时刷新GridView的多个Item进度,并且不出现进度错乱。

2015-10-25

Husband看门狗

是blog:http://blog.csdn.net/DucklikeJAVA/article/details/48959875 对应的代码。 程序锁功能并不是什么高大上的技术,也不是很难的技术点。 做一个程序锁功能所涉及到的知识点: Service组建的使用。 Broadcast组建的使用(当然,这个不是必须的,在实现这个功能上)。 Activity启动模式的了解。 ActivityManager的APi使用。 PackageManager的API的使用。 数据库SQLiteDatabase的使用。(这个也不是必须的) InputMethodManager的API的使用。(有些手机不主动打开软键盘,就需要使用这个类)

2015-10-08

MoocBmob云服务使用

MoocBmob云服务使用。对第三方开发平台提供的服务进行简单使用。这里主要是,将数据存放到云端数据库的操作。以及消息推送的简单使用 是blog:http://blog.csdn.net/ducklikejava/article/details/48948875 的代码。 今天有点背,老是上传不成功

2015-10-07

高仿微信5.3的界面,已上传N次了,就是不显示啊

是blog对应的项目源码。一直不显示。只是说上传成功,但是在我的资源里面又找不到,所以再上传一次...

2015-10-05

高仿微信5.3界面,Android版

是blog:http://blog.csdn.net/ducklikejava/article/details/48915925 所涉及的代码。 主要就是一个tab的滑动跟随。还包含:代码实现控件的宽高定义,动态改变tab字体颜色

2015-10-05

微信5.3界面的高仿|Adnroid版

是blog:http://blog.csdn.net/DucklikeJAVA/article/details/48915925 的代码。 通过对微信5.3界面的高仿,学习ViewPager的tab的滑动跟随制作。代码中,动态设置控件宽高属性;以及对开源控件BadgeView的使用。

2015-10-05

Android手势识别

Android手势识别 的简单使用。注意是几个api的调用,没用过可能不知道怎么调用

2015-10-04

Android 手势识别的API简单使用

对GestureOverlayView, GestureDetector,SimpleOnGestureListener的简单使用。

2015-10-04

AsyncTask加载ListView的Item图片完整版

使用AsyncTask去加载json,并通过json里面的Item的Url去加载ListView条目的图片。涉及知识点如下: 1. ListView显示内容 xml布局+adapter 2. 获取网络数据 URLConnection+I/O 3. 解析Json JsonObject+JsonArray 4. AsyncTask的正确使用 三个参数 + 两个方法 doInBackground,onPostExecute 5. Lrucache的正确使用 a.正确初始化LruCache mCache = new LruCache(maxSize) { @Override protected int sizeOf(String key, Bitmap value) { return value.getByteCount(); } }; b.添加和查找的方法 addBitmapToCache getBitmapFromCache 6. OnScrollListener a.获取当前屏幕的可见项,并针对性加载图片 b.在空闲状态才进行图片加载,其他时间取消异步任务(或者取消子线程任务) c.判断首次预加载的时机,进行首次预加载

2015-10-03

AsyncTask加载ListView的Item图片

是针对blog:http://blog.csdn.net/DucklikeJAVA/article/details/48864019 的。主要就是 使用AsyncTask加载ListView的Item图片。

2015-10-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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