自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 ThreadUtils

handler

2022-10-09 19:32:34 132 1

原创 【无标题】

android 的id爆红问题

2022-10-09 14:47:12 68

原创 Hashmap学习1

1.hashmap里面节点键值对:key和value hash值可以用来确定列表中的index,同时在查找时,通过hashcode来查找,如果通过key,若key是字符,就要一个char一个char查找,太慢了;next是因为哈希表主干是数组,分支是链表,若index一样,需要以链表形式存储,链表是为了解决哈希冲突。先判断hash是否一样,如果hash一样,在判断key。节省时间2.下面是如何解决闭环问题...

2021-03-15 15:11:52 95

原创 记录handler学习1

这里写自定义目录标题1.handler的send、post最后都会来到enqueueMessage这个函数,这个函数主要干了什么呢?首先需要知道Message是一个类似链表的类,他里面有Message next这个成员变量。mMessages是一个链表,他首先判断mMessages是否为空,或者新来的msg他的时间是不是比我这个链表更早,如果是,那么msg的next指针指向mMessages,也就是msg会插进队列的最前面。正常情况下,遍历mMessages链表,如果到了结尾,或者某个message

2021-03-11 22:35:54 89

原创 NotificationChannel

创建 NotificationChannel通过 NotificationManager 的 createNotificationChannel 方法来创建 NotificationChannel 。public void createNotificationChannel(String id, String name, int importance, String desc) {if (mNotificationManager.getNotificationChannel(id) != null)

2021-02-07 13:09:06 3029

原创 java String直接赋值和实例化区别

1.例:String str = “hello”;直接赋值实际上就是相当于一个匿名对象(“hello”)设置了一个名字(str),String类的匿名对象是由系统自动生成,不在由用户自己创建,产生了匿名对象就一定在堆内存在开辟了一块堆内存空间,并且由一块栈内存指向这块堆内存采用直接赋值的String类对象的内存地址完全相同,stra,strb,strc指向同一块内存地址public class StringDemo {public static void main(String[] args) {

2021-02-05 21:04:44 499

转载 android中的ellipsize

android中的ellipsize最近为了解决某个bug,textview中内容过长的话自动换行,但是调用measureText函数时发现返回值很不准确,单位也不确定,是 pixel还是dip,都不准。后来想起textview中有个内容过长加省略号的属性,即ellipsize,可以较偷懒地解决这个问题,哈哈~用法如下:在xml中android:ellipsize = “end”   省略号在结尾android:ellipsize = “start”   省略号在开头android:ellip

2021-01-14 22:38:55 3229

转载 java-thread

方法 说明void run() 执行操作任务的方法void start() 使该线程开始执行void sleep(long millis) 在指定的毫秒内让当前正在执行的线程休眠(暂停执行)String getName() 返回该线程的名称int getPriority() 返回该线程的优先级void setPriority(int newPriority) 更改该线程的优先级Thread.state getState() 返回该线程的状态boolean isAlive() 测试线程是否处于

2021-01-11 16:18:33 84 1

原创 输入子系统源代码跟读2

应用和驱动是如何交互在app中,fd = open("/dev/event1");于是调用驱动层的open。1.因为cdev是在drivers/input/input.c创建所以进入drivers/input/input.cstatic int input_open_file(struct inode *inode, struct file *file) | //取出evdev_handler,将evdev_handler的fops赋值给cdev的fops handler = input_ta

2020-12-25 13:55:25 96

原创 input子系统源代码跟读1

输入子系统的意义为驱动定义一个标准的编程格式,对于驱动,我们只需要关注input_register_device这个函数去注册设备,以及input_dev这个结构体去决定我们需要提交的事件type,code,value。为用户空间获取的数据格式是统一的(input_event的结构体),在app层,只需要判断type,code,从而获取value就可以知道输入设备的状态。针对输入设备: button, keyboard, mouse, ts, gsensor, joystick输入子系统整体框架

2020-12-25 13:20:46 174

转载 lcd屏幕是rgb565时 rgb24转rgb16

有许多朋友第一次使用16位彩色显示屏会遇到如何将24位RGB颜色转换为对应的16位RGB颜色的问题,通过查阅相关资料,就写一下其中的转换原理吧,希望对大家会有所帮助。我们知道24位RGB是分别由8位红色,8位绿色以及8位蓝色组成:RRRRRRRR GGGGGGGG BBBBBBBB例如:24位RGB红色表示方法为11111111 00000000 00000000 (十六进制表示为:0xFF0000)而对应的16位RGB颜色则是由5位红色,6位绿色以及5位红色组成:R

2020-12-21 16:11:27 1431

原创 基于Exynos4412的lcd驱动1

用于温故而知新,也希望能够帮到大家,当中也许会有错误,欢迎大家帮我纠错。驱动层(控制器层):一般由芯片原厂提供,实现了LCD控制器通用的操作接口和配置接口,本章用到的是三星提供的s3cfb_main.c和s3cfb_ops.c设备层:一般由单板厂商提供,本章用到的是arch/arm/plat-s5p/dev-fimd-s5p.c文件注意:有的开发板的驱动层可能是s3c-fb.c,这要取决于:drivers/video/Makefile中的约束条件,比如我的Makefile是obj-$(CONFIG

2020-12-21 15:43:32 471

空空如也

空空如也

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

TA关注的人

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