自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java异常体系结构

在Java编程中,异常处理是一个重要的概念。理解Java的异常体系结构以及如何捕获和处理异常,对于编写健壮的程序至关重要。本文将详细介绍Java异常体系结构的组成部分,以及异常的捕获和处理机制。

2024-11-06 18:31:16 547

原创 Android IPC机制(三)进程间通信方式

在Android中有以下几种进程间通信方式。1.Bundle2.文件共享3.Messenger4.ContentProvider5.AIDL

2024-11-03 21:02:37 1283

原创 Android IPC机制(二)Binder

在Android开发中,进程间通信(IPC)是一个重要的概念,而Binder则是Android系统中实现IPC的核心机制。本文将详细介绍Binder的工作原理、其在Android中的重要性以及与其他IPC机制的对比。

2024-11-02 21:34:18 1066

原创 Android IPC机制(一)多进程模式

在Android开发中,进程和多进程的概念是非常重要的。本文将深入探讨什么是进程、如何在Android中开启多进程、查看多进程的方法,以及多进程带来的进程隔离问题。

2024-11-02 21:14:13 745

原创 自定义view实现历史记录流式布局

在 Android 开发中,流式布局是一种常见的 UI 设计模式,尤其适用于展示动态内容,如标签、历史记录等。本文将介绍如何通过自定义 View 来实现一个历史记录的流式布局。

2024-10-30 16:14:34 469

原创 kotlin协程入门

可以简单地将它理解成一种轻量级的线程。我们之前所学习的线程是非常重量级的,它需要依靠操作系统的调度才能实现不同线程之间的切换。而使用协程却可以仅在编程语言的层面就能实现不同协程之间的切换,从而大大提升了并发编程的运行效率。为什么使用协程?简洁性:协程使得异步代码看起来像同步代码,减少了回调地狱的问题。轻量级:协程比线程更轻量,可以在同一线程中运行多个协程。易于管理:协程可以通过结构化并发来管理生命周期,避免内存泄漏和资源浪费。

2024-10-20 16:30:40 1064

原创 使用Okhttp-服务器不支持缓存的解决办法

通过以上步骤,你可以确保在网络请求中优先使用缓存数据,无论网络状态如何。这种方法可以提高应用的响应速度,并在网络不稳定时提供更好的用户体验。

2024-09-22 20:52:17 576

原创 Android 汉字转拼音(两行就够了)

在这个示例中,我们使用了Transliterator.getInstance("Han-Latin")方法来获取一个将汉字转换为拼音的Transliterator实例。请注意,Transliterator类是在Android 4.4(API级别 19)中引入的,所以如果你的应用需要支持更早的Android版本,你可能需要使用其他的库或方法来实现汉字转拼音的功能。在Android中,我们可以使用Android自带的Transliterator类来实现汉字转拼音的功能。

2024-06-14 10:07:02 967

原创 Android studio配置Flutter(看这一篇就够了)

Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart 语言开发 App,一套代码同时运行在 iOS 和 Android平台。Flutter 提供了丰富的组件、接口,开发者可以很快地为 Flutter 添加 Native(即原生开发,指基于平台原生语言来开发应用,flutter可以和平台原生语言混合开发) 扩展。

2024-04-22 18:00:24 24508 4

原创 Android详细介绍POI进行Word操作(小白可进)

poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库,你可以非常方便的加入到你的项目中,并且拥有着让人喜悦的特性。

2024-04-07 17:25:35 2398 1

原创 Android学习使用GitLab(保姆级)

图文结合,详细介绍了Git Lab的使用,内容如下:一、注册你的GitLab账号 二、安装Git 三、在Android studio中配置Git 四、GitLab账户配置SSH Keys 五、GitLab账号创建项目 六、将Android项目上传到GitLab 七、从GitLab上clone项目 八、 分支管理 九、标签(Tag)管理

2024-03-17 18:52:08 1622 1

原创 自定义View示例

第一步:在values目录下面创建自定义属性的XML在XML中声明了一个自定义属性集合“CircleView”,在这个集合里面可以有很大自定义属性,这里只定义了一个格式为“Color”的属性“circle_color”,这里的格式color指的是颜色。第二步:在View的构造方法中解析自定义属性的值并做出相应的处理。init();

2024-01-12 17:03:55 727

原创 自定义View之View的工作原理

View的绘制流程是从ViewRoot的performTraversals方法开始的,它经过measure、layout和draw三个过程才能最终将一个View绘制出来。 如图所示,performTraversals会依次调用performMeasure、performLayout和performDraw三个方法,这三个方法分别完成顶级View的measure、layout和draw这三大流程,其中在performMeasure中会调用measure方法,在measure方法中会调用onMeasure方

2024-01-08 16:51:44 1089

原创 自定义View之重写onMeasure

重写 onMeasure0) 把尺寸计算出来把计算的结果用 resolveSize() 过滤一遍后保存@Override...onMeasure()方法的两个参数 widthMeasureSpec和heightMeasureSpec是父View对子View的尺寸限制,子View在计算自己尺寸的时候,需要遵守这两个参数所包含的限制MeasureSpec。理解MeasureSpec。

2024-01-07 13:05:32 1305

原创 [Android]RadioButton控件

与普通按钮不同的是,RadioButton控件多了一个可以选中的功能,能额外指定一个android:checked属性,该属性可以指定初始状态是否被选中。其实也可以不用指定,默认初始状态都不被选中。RadioButton控件是单选按钮控件,它继承自Button控件,可以直接使用Button控件支持的各种属性和方法。RadioButton控件必须和单选框RedioGroup控件一起使用。

2024-01-03 21:40:38 1429

原创 自定义View之理解测量onMeasure和布局onLayout过程

首先一个View的measure()方法会被它的父View调用,这个方法的作用是让这个View进行自我测量,不过真正进行自我测量的不是measure()方法,而是在measure()方法内部调用的onMeasure()方法,measure()是一个调度方法,它会做一些测量的预处理工作,然后去调用onMeasure()来进行真正的自我测量,这个自我测量包含什么内容呢?如果它是一个ViewGroup是有子View的,ViewGroup会先调用它的所有子View的measure()方法,让它们都进行自我测量。

2024-01-03 14:45:28 718

原创 自定义View绘制基础之Canvas

Canvas(画布)是一个用于绘制图形的重要类,它提供了一组绘图操作的方法,允许你在屏幕上绘制各种形状、图像和文本。功能:设置画布的裁剪区域为矩形。功能:设置画布的裁剪区域为路径。功能:在画布上绘制指定的路径。功能: 在画布上绘制一个椭圆。功能:在画布上绘制一个圆形。功能:在画布上绘制一个矩形。功能:在画布上绘制一条直线。功能:在画布上绘制一个弧形。:用于指定绘制效果的画笔。:用于指定绘制效果的画笔。功能: 在画布上绘制文本。:用于指定绘制效果的画笔。功能: 在画布上绘制位图。:用于指定绘制效果的画笔。

2023-12-29 16:51:24 1236

原创 APP启动流程

system_server 进程的 AMS 在 bindApplication 后,会调用 ActivityStackSupervisor.attachApplicationLocked, 之 后经过一系列操作,在 realStartActivityLocked 方法通过Binder IPC 向 App 进程发送scheduleLaunchActivity 请求;system_server 进程收到请求后,向 Zygote 进程发送创建进程的请求;

2023-12-28 21:20:27 600

原创 回溯算法练习题

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。偷窃到的最高金额 = 1 + 3 = 4。

2023-12-24 14:10:45 562 1

原创 动态规划算法练习题

其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。从下标为 0 跳到下标为 1 的位置,跳 1步,然后跳 3步到达数组的最后一个位置。是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。整个序列均为摆动序列,各元素之间的差值为 (6, -3, 5, -7, 3)。不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。注意,你可以重复使用字典中的单词。重新上传取消转存失败重新上传取消。

2023-12-24 14:10:37 1041

原创 贪心算法练习题

其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。编号为 4 的人身高为 4 ,有 4 个身高更高或者相同的人排在他前面,即编号为 0、1、2、3 的人。因此 [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 是重新构造后的队列。编号为 3 的人身高为 6 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。编号为 1 的人身高为 7 ,没有身高更高或者相同的人排在他前面。

2023-12-24 14:10:30 1085

原创 数据交换技术

在通信过程中,分组是作为一个独立的实体,各分组之间没有任何联系,既可以断续地传送,也可以经历不同的传输路径。当A用户欲向 B用户发送数据时,A用户并不需要先接通至B用户的整条电路,而只需与直接连接的交换机接通,并需要发送的报文作为一个独立的实体,全部发送给该交换机。然后该交换机将存储着的报文根据报文中提供的目的地址,在交换网内确定其路由,并将该报文送到输出线路的队列中排队,一旦该输出线路空闲,就立即将该报文传送给下一个交换机。图中,由发信端HS发送的报文M 经由路径N1-N3-N6,传送到收信端HD。

2023-12-23 16:21:54 591 1

原创 信道复用技术

为提高时隙利用率,可以采用按需分配(或动态分配)时隙,一避免每帧中出现闲置时隙的现象,此时复用器传输的数据只来自正在工作的设备,这种动态分配时隙方式的工作TDM称为统计时分多路复用STDM。由此可见,STDM帧的长度是不固定的,事先并不知道哪个数据源产生的数据会占用哪个位置的时隙,为使接收端的复用器能正确分离各路数据,必须在每一时隙中带有地址信息。当 A 站发送数字1时,它就发送序列 (-1-1-l+1+1-1+1+1),而当 A 站发送数字为 0 时,就发送(+1+1+1-1-1+1-1-1)。

2023-12-23 16:17:52 2016 3

原创 力扣面试经典题之哈希表

每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。中的每个非空单词之间存在着双向连接的对应规律。中的字符可以按某种映射关系替换得到。中每个字符出现的次数都相同,则称。,那么这两个字符串是同构的。整数,并返回它们的数组下标。,判断它们是否是同构的。

2023-12-22 14:37:48 574

原创 [Android]CheckBox复选框

在上面的代码中,我们获取了id为checkBox1的CheckBox控件,并设置了它的监听器。在Android开发中,复选框(CheckBox)是一种常用的控件,用于让用户在多个选项中进行选择。在上面的代码中,我们定义了一个id为checkBox1的CheckBox控件,并设置了它的宽度、高度和显示的文本内容。接下来,我们需要在Java代码中获取CheckBox控件,并设置它的监听器,以便在用户点击时进行相应的操作。除了设置监听器,我们还可以通过代码来获取CheckBox的状态,并进行相应的操作。

2023-12-22 14:21:57 3578

原创 力扣面试经典题之二叉树

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。是指从根节点到最远叶子节点的最长路径上的节点数。,编写一个函数来检验这两棵树是否相同。,翻转这棵二叉树,并返回其根节点。,请构造二叉树并返回其根节点。给你两棵二叉树的根节点。给你一棵二叉树的根节点。给你一个二叉树的根节点。, 检查它是否轴对称。

2023-12-22 13:51:55 1292

原创 力扣面试经典题之数组/字符串(二)

随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

2023-12-20 11:50:34 991

原创 力扣面试经典题之数组/字符串

例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为 0, 0, 1, 1, 2, 3, 3。函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。的前五个元素被修改为 0, 1, 2, 3, 4。,返回其中的多数元素。

2023-12-20 11:39:56 1382

原创 【Android】百度地图 获取开发密钥,创建应用(保姆级教程)

keytool -list -v -keystore 存放key的文件路径加扩展名 -storepass 打包密码。获取包名,在项目的build.gradle(Module:app)里面的applicationId。输入keytool -list -v -keystore debug.keystore,输入cd .android,定位到.android文件夹下。在创建应用里,应用类型选择Android SDK。点击 应用管理->我的应用->创建应用。运行控制台输入cmd,输入命令。运行控制台输入cmd。

2023-12-19 10:49:38 1735

原创 Android开发,使用kotlin学习多媒体功能(详细)

获得PendingIntent对象,第一个参数是Context,第二个参数用不到,传入0,第三个参数是一个Intent对象,第四个参数是确定PendingIntent的行为,行为有FLAG_ONE_SHOT,FLAG_NO_CREATE,FLAG_CANCEL_CURRENT和FLAG_UPDATE_CURRENT四种可选。(9)右击res目录->New->Directory,创建一个xml目录,接着右击xml目录->New->File,创建一个file_paths.xml文件。

2023-12-19 10:26:15 1871

原创 Android的启动模式

我们的程序中有一个Activity,这个Activity允许其他程序调用的,那么这个Activity会有一个单独的返回栈来管理,这样不管是哪个应用程序来访问这个Activity,都共用的同一个返回栈,也就解决了共享Activity实例的问题。每启动一个Activity,会判断返回栈的是否存在这个Activity的实例,如果发现已经存在就直接使用这个实例,并把在这个Activity实例以上的所有Activity实例都出栈,如果没有发现就会创建一个新的Activity实例。

2023-11-30 17:43:30 388

原创 [Android]AlertDialog对话框

是Android中常用的对话框组件之一,用于在应用程序中显示一些提示信息、警告、确认信息或者提供用户进行选择的界面。通常用于与用户进行交互,例如要求用户确认某个操作、输入一些信息或者从一组选项中选择一个。,您可以方便地与用户进行交互,并在应用程序中显示各种提示信息和选择界面。来设置对话框的标题、消息、按钮以及其他属性。以下是一个简单的示例,演示如何创建一个简单的。

2023-11-30 17:41:02 438

原创 Android异步之旅:探索IntentService

IntentService是Android中的一个Service类,用于在后台执行耗时操作,而不会阻塞UI线程。它封装了HandlerThread和Handler,使得我们可以方便地在后台执行任务,而不需要自己管理线程和消息处理。以下是 IntentService 的主要特点和用法:自动停止:当所有的请求都被处理完毕后,IntentService 会自动停止,无需手动调用 stopSelf() 方法。

2023-11-30 17:38:44 305

原创 Android异步之旅:探索HandlerThread

当我们在Android应用程序中需要执行一些耗时的任务,比如网络请求、数据库操作或者其他需要在后台线程中执行的操作时,我们通常会使用异步任务来完成这些任务。在Android中,有多种方式来实现异步操作,其中之一就是使用HandlerThread。在本篇博客中,我们将探索HandlerThread,了解它的工作原理以及如何在Android应用程序中使用它来进行异步操作。HandlerThread是Android中的一个类,它继承自Thread类,并且内部包含一个Looper和一个Handler。

2023-11-22 18:11:03 610 1

原创 Android异步之旅:探索AsyncTask

AsyncTask是一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和最终的结果传递给主线程并在主线程中更新UI。两个线程池+HandlerAsyncTask是一个抽象的泛型类,它提供了ParamsProgress和Result这三个泛型参数。其中,🟨Params表示参数的类型🟨Progress表示后台任务的执行进度和类型🟨Result表示后台任务的返回结果AsyncTask类提供了四个核心方法(按照执行顺序介绍):1️⃣在主线程中执行,用于。

2023-11-22 17:52:04 861 1

原创 【Java】集合(三)Map

1.Map接口实现类的特点1)Map与Collection并列存在。用于保存具有映射关系的数据:Key-Value2)Map 中的 key 和 value 可以是任何引用类型的数据,会封装到HashMap$Node对象中3)Map 中的 key 不允许重复4)Map 中的 value 可以重复5)Map 的key 可以为 null,value 也可以为null ,注意 key 为null,只能有一个value 为null ,可以多个6)常用String类作为Map的 key。

2023-11-14 16:18:51 140

原创 【Java】集合(二)Set

HashSet:无序、不重复、无索引LinkedHashSet: 有序、不重复、无索引TreeSet: 可排序、不重复、无索引 ,HashSet 底层是数组+链表+红黑树2)添加一个元素时,先得到哈希值值-会转成-> 索引值(int index=(数组长度-1)&哈希值)3)找到存储数据表table,看这个索引位置是否已经存放的有元素4)如果没有,直接加入5)如果有 , 调用 equals 比较,如果相同,就放弃添加,如果不相同,则添加到最后在6)

2023-11-13 21:49:42 194

原创 【Java】集合(一)单列集合List

List接口是Collection接口的子接口List集合类中元素有序可重复支持索引,List容器中的元素都对应一个整数型的序号,可以根据序号存取容器中的元素。List 集合里添加了一些根据索引来操作集合元素的方法1) void add(int index,Obiect ele):在index位置插入ele元素2)boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来。

2023-11-13 12:08:19 808

原创 深入了解JVM和垃圾回收算法

JVM是Java虚拟机(Java Virtual Machine)的缩写,是Java程序运行的核心组件。JVM是一个虚拟的计算机,它提供了一个独立的运行环境,可以在不同的操作系统上运行Java程序。

2023-11-12 21:16:05 766

原创 【Java】注解(Annotation)

就是自己定义注解特殊属性名: value如果注解中只有一个value属性,使用注解时,value名称可以不写!!自定义注解的基本使用:使用上面的自定义注解:就是判断类上、方法上、成员变量上是否存在注解,并把注解里的内容给解析出来。如何解析注解?指导思想:要解析谁上面的注解,就应该先拿到谁比如要解析类上面的注解,则应该先获取该类的Class对象,再通过Class对象解析其上面的注解。

2023-11-12 15:50:57 175

Android详细介绍POI进行Word操作(小白可进)

POI的jar包

2024-03-22

Android实现的word单词表APP

Android实现的word单词表APP

2023-12-18

空空如也

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

TA关注的人

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