- 博客(12)
- 收藏
- 关注
原创 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关注的人