自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 android Html.fromHtml支持的标签

Android文档中没有明确说明支持的html标签,用的时候机会靠经验和猜测

2022-12-25 15:12:14 656 1

原创 mysql5.7 macOS The server quit without updating PID file

今天用Mac安装mysql的时候,出现了各种问题:mysql无法启动mysql无法关闭报的错误也很多,基本都是和pid相关的:ERROR! The server quit without updating PID file (/usr/local/mysql/data/tim.pid).ERROR! Multiple MySQL running but PID file could not be found (1007 2495 2582 )ERROR! MySQL server PID

2020-06-18 16:14:28 290

原创 红黑树原理以及java实现

红黑树原理学习红黑树之前,你首先要有查询二叉树的知识储备,和平衡二叉树(AVL)的知识储备。红黑树是基于AVL树的一种改良。红黑树平均来看和AVL树一样深,所以从而查找时间一样接近最优。红黑树的有点事执行插入操作所需要的开销相对较小,另外在执行中发生的旋转较少。红黑树有以下几个条件:1.每一个节点是红色或黑色(废话)2.根节点是黑色3.如果一个节点是红色,子节点必须是黑色4.从一个节...

2020-04-14 09:39:26 968

原创 RecyclerView 缓存原理

RecyclerView 缓存原理通常认为RecyclerView有四级缓存,RecyclerView的缓存是通过Recycler类来完成的,方法的入口:public View getViewForPosition(int position) { return getViewForPosition(position, false);}缓存的内容是ViewHolder,缓存的地方,...

2020-03-22 13:39:39 245

原创 Android UI渲染

1. 过度绘制优化什么是过度绘制?Overdraw(过度绘制)描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次重叠的UI结构里面,如果不可见的UI也在做绘制的操作,会导致某些像素区域被绘制了多次。这样就会浪费大量的CPU以及GPU资源。从开发者选项可以设置看到过度绘制区域,红色是过度绘制最严重的区域。优化方式:1. 移除布局中多余的背景 2. 减少层级嵌套,使用约束布局...

2020-03-20 10:20:36 164

原创 Activity启动过程 (以及Activity ActivityThread Window WindowManager viewRootImpl View 之间的关系)

ActivityThread是程序的入口,在其main函数中,初始化looper,并开启loop函数,以及new出自身的实例,调用了attach方法,部分代码如下Looper.prepareMainLooper();ActivityThread thread = new ActivityThread();thread.attach(false, startSeq);Looper.lo...

2020-03-20 10:18:59 211

原创 Centos mysql5.7 安装问题:修改默认密码,修改编码,启动异常

mysql 安装后修改默认密码mysql5.7 安装好之后,会生成一个随机密码,随机密码在mysql的错误日志里,或者通过这个命令查看grep 'temporary password' /var/log/mysqld.log ##会显示如下A temporary password is generated for root@localhost: wcjSqexWh6&T其中w...

2019-06-24 00:44:11 273

原创 C程序设计语言,练习1-13,编写一个程序,打印输入单词的直方图(垂直方向)

int main(){ int c; int wordCount=0;//单词数量 int wordNum=0;//每个单词的字母数量 int addr[MAXNUM];//单词字母数量的数组 int index=0;//数组下标 int maxlength=0;//字母最多的一个单词的字母个数 int level=0;//打印的第几行

2017-12-23 18:08:03 737

原创 java 排序算法总结(冒泡,选择,插入,桶排序,快排)

这篇文章是对一些常见的排序算法的总结,会持续更新。代码写多了就知道,越是基础的东西越重要,只有掌握了这些最基本的排序算法,才能在遇到实际问题的时候,灵活变通,巧妙地解决。每一个排序的总结我都卸载代码注释里了,上代码

2017-09-19 00:04:58 434

原创 深入浅出,Handler机制外科手术式的剖析(ThreadLocal,Looper,MessageQueen,Message)(下)

此文是Handler机制的第二篇,第一篇没有看的小伙伴,可以戳上边看一看哟。上一篇我们对ThreadLocal和Looper进行了剖析,接着上篇,讲讲MessageQueen和Handler类。MessageQueen是存放Message的,翻译过来叫消息队列,但是它内部并不是一个消息队列,而是一个单链表的

2017-09-13 23:43:50 332

原创 深入浅出,Handler机制外科手术式的剖析(ThreadLocal,Looper,MessageQueen,Message)(上)

在Android中,所有的UI控件都是运行在主线程中的, 如果我们从子线程访问UI,系统会报异常。为什么不允许子线程访问UI呢?因为Android的UI控件不是县城安全的,为了防止UI控件处于不可控的状态,就禁止了。从Android2.3开始,主线程不允许做任何的网络请求了,那么请求回来的数据如何同步到UI呢。所以为了方便线程间通讯,就产生了andler机制,目的就是方便数据在线程间传递切换。而更新UI是我们用的最常

2017-09-09 00:58:18 661

原创 IntentService 详解(从使用到源码撸一遍)

为什么会有IntentService?我们知道,Service作为四大组件之一,也会是运行在主线程的,所以我们如果有耗时的操作,应该新开一个线程。 为此android专门提供了一个类,就是IntentService,它的里边包含了一个handler用于处理后台线程。 使用IntentService,首先继承它,然后实现onHandleIntent()方法。举个例子,模拟上传和下载文件的demo:

2017-09-02 15:12:53 442

原创 Android Service 浅析(生命周期,启动方式,前台Service)

Android Service 浅析Service是android中四大组件之一,重要性仅次于Activity,Android文档对他的描述如下: Service组件表示在不影响用户的情况下执行耗时操作或者提供其他应用使用的功能。在android中所有的组件都运行在主线程,使用service的时候,还需要吧耗时的操作另开启一个线程。但是使用Service,更适合管理耗时的操作,因为servic

2017-08-30 01:26:54 461

原创 Activity启动模式,任务栈以及taskAffinity属性

什么是任务栈一个application在启动的时候,能有很多个activity,我们在按下back键的时候,会回退到上一个activity,那么系统是如何来管理这些activity呢?答案是以栈(task)的形式,遵循先进后出的原则,默认情况下,一个app只有一个任务栈(task),如果需要,我们可以指定多个任务栈(task)。我们可以总结出以下几点:1.任务栈是app管理activity的一种容器

2017-08-01 21:43:12 1268 1

原创 Activity生命周期

Activity生命周期的方法横竖屏切换状态下生命周期

2017-07-31 21:31:06 257

原创 MediaPlayer+TextureView实现小视频居中(不拉伸)播放

引子:16年手机小视频功能可以说是井喷式发展,我们公司也有这样的需求,android自带的有VideoView可以实现视频的播放,但是封装的太死,有些业务需求不能满足,所以自己写一个,在这里记下来,权当练手。

2017-01-03 19:11:52 13130 4

原创 android 自定义view_圆形进度条

一:概述: android的自定义view提供了很多很丰富的画布操作,这几天公司的项目需要写一个圆形进度条,借着这个机会,说一下画布的基本操作 canvas可以画很多基本的图形:长方形,圆形,圆角长方形,扇形… 根据图片我第

2016-09-13 20:26:00 405

原创 自定义View,模仿音乐播放器音频条形图

这次写到的是自定义view的实现音乐滚动音频条的过程,笔者在这里有两点启发,记下来,以便以后复习。 其中用到了postInvalidateDelayed(long mil)方法来刷新view视图,其底层用的是handler机制,handler机制不在此次练习范围之内,不再赘述。 主要代码如下: private float offset = 5;//矩形条之间的间距 private

2016-03-17 11:55:11 3227

原创 DIY文字闪动效果的TextView

最近在看徐医生的android群英传,颇有感触,后续会吧学习过程写成笔记,一边复习。 今天看了一点自定义view,照着书中实现了带闪动效果的textview,实现过程如下: 1.写一个类,继承View 2.重写onDraw方法和onSizeChanged方法 3.代码如下: private Paint paint1; private Paint mPaint; priva

2016-03-16 21:38:00 453

转载 关于handler的用法(防止内存泄露)

今天看了一篇文章,讲的内存泄露的问题,其中提到了handler,讲的清晰明了,就把代码复制下来,贴在这里,以后用的时候直接拿来。。public class LeakAty extends Activity { private TextView tvResult; private MyHandler handler; @Override p

2016-03-16 13:18:49 369

原创 关于qq第三方登录总是报openid is invalid

关于qq第三方登录总是报openid is invalid刚来公司,给我分配的任务是集成第三方登录,我们公司需集成的平台是微博,微信和QQ。 微博和微信集成都很顺利,但是QQ调试了一天总是报openid is invalid。我们的工作流程是这样的,android端现货区openid和access_token,传给后台服务器,后台再拿着这些数据去QQ获取用户信息,晚上偶尔发现了,原来客户端和后台用

2016-03-08 21:04:42 4381

自定义view(圆形进度条)

自定义view(圆形进度条)

2016-09-21

自定义圆形进度条

自定义圆形进度条

2016-09-18

空空如也

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

TA关注的人

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