- 博客(33)
- 收藏
- 关注
原创 深入解析Handler消息机制(源码解析)
postXXX()和sendMessageXXX(),都是发送一个 Message对象到原线程,只不过postXXX()发送的是一个只有Runnable callback属性的Message。发现不管什么方式发送消息,真正调用的都是sendMessageAtTime(),里面核心方法是Handler的enqeueMessage()这些postXXX()就是构造了一个只有Runnable callback的Message对象,然后走正常发送消息的方法,2)内存泄露的解决方法。
2024-12-17 15:06:41
478
原创 深入解析Binder源码
Linux鼻祖LinusTorvalds曾说过的一句话:Read The Fucking Source Code。注:以下记录需对照着源码看。
2024-12-11 17:21:36
323
转载 实例,Binder机制在Android中的具体实现原理
实例说明:Client进程需要调用 Server进程的加法函数(将整数a和b相加)即:1、Client进程 需要传两个整数给 Server进程2、Server进程 需要把相加后的结果 返回给Client进程。
2024-12-05 18:08:21
80
原创 adb remount报错:remount of the / superblock failed: Permission deniedremount failed
第一步:使用adb disable-verity命令第二步:adb reboot重启
2024-11-25 15:19:15
427
原创 报错:Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.8.0-.....
在项目的gradle.properties文件里面加上。通常项目自带第一句,只需要加第二句。
2024-11-21 17:32:01
359
原创 快速入门kotlin编程(精简但全面版)
如果你掌握了Java再来学习Kotlin,你将会学得更好。如果你没学过Java,但是学过其他编程语言,那么直接学习Kotlin也是可以的,只是可能在某些代码的理解上,相比有Java基础的人会相对吃力一些。
2024-10-30 18:08:11
3700
2
原创 解决:使用高德地图SDK获取定位数据时,AMapLocation对象不为空,但是区域信息比如aMapLocation.getDistrict()为空
当我确定网络已连接,定位权限也打开了,key也对了,AMapLocation对象也不为空,我又查看Android 定位SDK获取定位数据的教程,发现我的高德Key和官网使用的高德key不一样??
2024-09-30 16:22:37
555
原创 Linux常用命令大全
cp -rp [目录名或文件1] [目录名或文件2] [目录名3] 将目录1和目录2拷贝到目录3。chmod [{ugoa}{+-=}{rwx}] [文件或目录]cp -r [目录名1] [目录名2] 将目录1拷贝到目录2。mkdir [目录名] [目录名] 递归创建。mkdir -p [目录名] 创建新目录。[mode=421 ] [文件或目录]ln -s [原文件] [目标文件]格式:命令 [-选项] [参数]按下 / 后可以搜索 会反显高亮。详见vim常用命令.md。rmdir [目录名]
2024-09-29 17:54:04
584
原创 Android-Handle消息传递和线程通信
Android应用通常会涉及到多个线程的并发执行,通过Handler,在不同线程间发送消息和处理消息,实现线程间的通信,比如主线程和后台线程之间的通信。
2024-09-29 17:49:38
1322
原创 Git常用命令大全和repo介绍
repo管理git使用格式初始化工程//初始化项目,会在当前目录下新建一个.repo隐藏子目录参数说明:-u:指定manifests这个远程git库的URL,manifests库是整个项目的清单。默认情况,这个git库只包含了default.xml一个文件-m:–manifest-name:指定所需要的manifests库中的清单文件。默认情况下,会使用maniftests/default.xml。
2024-09-29 17:30:06
765
原创 Binder跨进程通信
中文即 粘合剂,意思为粘合了两个不同的进程。binder是一种Android 实现跨进程通信(IPC)的方式,即Binder机制模型作用是实现跨进程通信。是一种虚拟的物理设备驱动,即binder驱动作用是连接service进程、client进程、service manager进程从Android代码的实现角度来说:是一个类,实现了IBinder接口,即Binder类作用是将binder机制模型以代码的形式实现。
2024-09-29 11:12:23
1127
原创 ADB常用命令大全
adb的全称为Android Debug Bridge,就是起到调试桥的作用。adb是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的android设备。就是debug工具。协助我们分析处理问题,提高一定的工作效率。主要功能有:运行设备的shell(命令行)管理模拟器或设备的端口映射计算机和设备之间上传/下载文件将本地apk软件安装至模拟器或android设备。
2024-09-29 10:44:42
1282
原创 Typora设置图片存储路径为相对路径-简单实用
在typroa中设置图片存储路径为相对路径,可以确保无论Markdown文件在哪里,都能正确显示笔记中的图片。3. 创建一个存放图片的空文件夹,我这里叫做nodeimg。2. 选择图像,点开右边的箭头,选择“复制到指定路径”1. 打开typroa,文件->偏好设置。
2024-09-26 17:37:56
2351
原创 设置Android studio或者IEDA自动导包
File --> Setting --> Editor --> Auto Import ,如果是java,就把java对应的勾选上。
2024-09-26 16:35:12
385
原创 解決:控制台中文乱码问题-详细步骤
2. 找到Android studio安装路径,bin里面的后缀.vmoptions的文件。(如果没有编辑权限,可右键->属性去修改权限)4. 保存后重启Android studio。(如果这一步修改后无效,继续下一步)
2024-09-26 10:48:07
430
原创 遇到java.net.ConnectException: Connection refused: no further information怎么解决?
这是连接异常,把你那些该启动的服务启动起来就行(比如redis-server、nginx)我在学习过程中遇到四次这个Bug,是可忍孰不可忍!
2024-04-06 16:59:56
1502
2
原创 mybatis中$和#号区别
使用`#`符号时,MyBatis会将`#{}`内的内容当作一个占位符,并在生成最终的SQL语句时,将占位符替换为参数的值。这种方式被称为预编译。使用`$`符号时,MyBatis会将`${}`内的内容直接替换为参数的值,生成最终的SQL语句。使用`$`符号可以方便地进行动态SQL拼接,但也存在一些潜在的风险,比如可能导致SQL注入攻击。使用`#`符号可以有效防止SQL注入攻击,因为参数值会被自动进行参数绑定和转义处理。在MyBatis中,`$`符号和`#`符号是用于参数替换的两种不同的方式。
2024-01-23 14:50:09
398
1
原创 MySql数据库中datetime 与timestamp的区别?
范围是 1000-01-01 00:00:00.000到 9999-12-31 23:59:59.999。范围是1970-01-01 00:00:01 到 2038-01-19 03:14:07。会根据服务器的时区设置进行存储,并在读取时转换为当前时区的时间。没有指定值时,默认值会自动设为当前时间。没有时区信息,存储的是本地时间。没有指定值时,默认值可以为空。
2024-01-18 09:46:05
605
1
原创 Address localhost:1099 is already in use
netstat -aon | findstr 端口号。taskkill -f -pid PID号。win+r --> 输入cmd --> 确定。
2024-01-16 16:08:04
603
1
原创 设置IDEA代码提示不区分大小写
File --> Setting --> Editor --> General --> Code Completion ,将 Match case取消勾选。
2024-01-16 14:46:29
784
1
原创 Error running ‘Tomcat 10.1.17‘: Address localhost:8080 is already in use
打开任务管理器->右键选择结束进程。
2024-01-16 12:48:43
504
1
原创 java中,什么是反射?
这种动态获取的信息以及动态调用对象的方法的功能成为java语言的反射机制。对于任意一个对象,都能调用它的任意一个属性和方法;对于任意一个类,都能够知道这个类的属性和方法;
2023-11-22 16:11:10
65
原创 JAVA基础阶段面试题(01)
1、在JAVA中,如何跳出当前多重嵌套循环?2、JDK和JRE有什么区别?3、=、==、和equls的区别4、string是基础数据类型吗?基础的数据类型有哪些?5、如何实现数组和List之间的转换?6、Java 中操作字符串都有哪些类?它们之间有什么区别?
2023-11-17 19:37:13
59
原创 IDEA设置ctrl+/注释时顶格与不定格
这个设置在File -> Settings -> Editor-> Code Style-> Java(或其他相应语言)中找到。
2023-11-17 17:06:47
592
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人