自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

如何使用Binder。

2024-12-12 10:42:56 192

原创 深入解析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

原创 几种复合类型的数据结构的比较(数组/链表/二叉树/平衡二叉树/红黑树)

几种复合类型的数据结构的比较(数组/链表/二叉树/平衡二叉树/红黑树)

2024-12-05 10:50:26 447

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

原创 Android AMS介绍

位于应用框架层,负责系统中四大组件的启动、切换、调度,及应用进程的管理和调度工作

2024-09-29 11:00:55 1577

原创 ADB常用命令大全

adb的全称为Android Debug Bridge,就是起到调试桥的作用。adb是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的android设备。就是debug工具。协助我们分析处理问题,提高一定的工作效率。主要功能有:运行设备的shell(命令行)管理模拟器或设备的端口映射计算机和设备之间上传/下载文件将本地apk软件安装至模拟器或android设备。

2024-09-29 10:44:42 1282

原创 常用设计模式之单例模式、策略模式、工厂模式

单例模式属于创建型模式饿汉模式:立即加载懒汉模式,懒加载线程不安全线程安全双重锁静态内部类。

2024-09-29 10:31:53 1498

原创 vim/vi常用命令大全

vim/vi常用命令大全

2024-09-29 10:15:18 535

原创 Typora设置图片存储路径为相对路径-简单实用

在typroa中设置图片存储路径为相对路径,可以确保无论Markdown文件在哪里,都能正确显示笔记中的图片。3. 创建一个存放图片的空文件夹,我这里叫做nodeimg。2. 选择图像,点开右边的箭头,选择“复制到指定路径”1. 打开typroa,文件->偏好设置。

2024-09-26 17:37:56 2351

原创 IDEA或者Android studio设置Ctrl+鼠标滚轮调节字体大小,超方便实用

设置Ctrl+鼠标滚轮调节字体大小

2024-09-26 16:44:33 361

原创 设置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将秒数转换为时分秒格式

【代码】java将秒数转换为时分秒格式。

2024-06-30 16:00:06 807 1

原创 遇到java.net.ConnectException: Connection refused: no further information怎么解决?

这是连接异常,把你那些该启动的服务启动起来就行(比如redis-server、nginx)我在学习过程中遇到四次这个Bug,是可忍孰不可忍!

2024-04-06 16:59:56 1502 2

原创 在idea项目有错误的情况下,想忽略错误编译某一个单独的类

在idea项目有错误的情况下,想忽略错误编译某一个单独的类

2024-02-02 10:11:26 465

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

原创 MarkDown语法

【代码】MarkDown语法。

2023-12-04 10:15:01 939

原创 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关注的人

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