自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OpenCV下载安装教程(Windows)

OpenCV(Open Source Computer Vision Library)是一个广泛使用的开源计算机视觉库,旨在提供丰富的图像和视频处理功能。它最初由Intel于1999年开发,并演变成为一个全球性的开源项目,得到了众多开发者的贡献和支持。OpenCV可以通过C++、Python、Java等编程语言调用,使得开发者能够在不同平台上进行图像处理和计算机视觉应用程序的开发。作为一个全面且强大的计算机视觉库,OpenCV包含了数百个用于图像处理、特征检测、对象识别、视频分析等领域的函数和工具。

2024-04-20 10:16:25 999 2

原创 Android invalidate、postInvalidate、requestLayout的区别

invalidate方法用于在UI线程中请求重绘视图。当我们希望在主线程中更新UI时,可以在UI线程中直接调用invalidate()方法。内部实现:调用了invalidate方法后,为该View添加一个标记位,同时不断向父容器请求刷新,父容器通过计算得出自身需要重绘的区域,直到传递到ViewRootImpl中,最终触发performTraversals方法,开始View树重绘流程(只绘制需要重绘的视图)

2024-03-29 21:53:36 605 1

原创 Android冷启动优化

建议:一些三方的SDK,文件,设备,线程池,等等工具类不放在Application初始化,我们可以放到用到的地方才进行初始化操作。热启动是指应用程序在保留应用程序进程的情况下再次启动的启动方式,这种启动方式相对于冷启动要快得多,因为应用程序的许多资源和进程已经存在于系统内存中,不再需要重新创建和加载。**温启动:**温启动包含了冷启动的一些操作,由于app进程依然在,温启动只执行冷启动的第二阶段,这代表着它比热启动有更多的开销。2、推荐使用merge标签,可以减少一个层级。在manifest中使用。

2024-03-23 16:29:23 987 1

原创 数据结构-堆

堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆中某个节点的值必须大于等于或者小于等于子节点的值堆总是一棵完全二叉树。1大顶堆:结点的值大于等于子节点的值2小顶堆:结点的值小于等于子节点的值常见的堆有二叉堆、斐波那契堆等。

2024-03-10 11:31:40 1047 1

原创 针对哈希表的一些疑问

哈希表的内部是通过数组实现的,既然是数组就会有大小,当元素过多时就会导致数组大小不够承载这么多元素,就需要进行扩容,此外哈希表在存储大量元素时,可能会面临哈希冲突等问题,造成查找和插入操作的效率下降。聚集效应会导致哈希表的性能变得更差,因为它会增加哈希表查找和插入的时间,可能会降低哈希表的效率和吞吐量。链表的问题:链表在插入和删除元素时只需要调整相邻节点的指针,操作效率较高。总之,哈希表的扩容操作是一种优化哈希表性能的有效方法,需要综合考虑多方面因素,使用合适的算法和数据结构,并确保在线性时间内进行。

2024-03-09 10:00:53 961 1

原创 单链表插入为什么比数组插入删除效率高?

单链表插入操作比数组插入操作更高效,主要是因为单链表的结构特点。单链表是由一系列节点组成的,每个节点包含了数据和指向下一个节点的指针。插入操作只需要修改相邻节点的指针就可以完成,而不需要像数组一样移动大量的元素。具体来说,使用数组进行插入操作需要将插入位置后面的所有元素往后移动一位,这种操作的时间复杂度是O(n)。而对于单链表,只需要修改待插入元素的前驱节点的指针,使其指向新插入的节点,新插入的节点的指针指向原来前驱节点的后继,这种操作的时间复杂度为O(1)。同时,单链表也比数组更适合进行删除操作。对于数组

2024-03-04 19:58:52 408 1

原创 Android ANR产生的原因以及解决方式

ANR是Android系统中的一种错误状态,全称为Application Not Responding,中文翻译为“应用无响应”。当Android系统检测到应用程序在一段时间内未能响应用户输入或无法执行主要的UI线程操作时,就会触发ANR错误。ANR是一种系统保护机制,旨在确保应用的响应性,防止用户在使用应用时遇到卡顿或无响应的情况。

2024-02-27 20:46:22 1250

原创 java遍历Map的5种方式

【代码】java遍历Map的5种方式。

2024-02-26 20:01:00 333 1

原创 Android Service详解

Service是Android四大组件之一,它可以在后台执行长时间运行操作而没有用户界面的应用组件。Service的启动方式有两种:startService启动和bindService启动。Service是在main Thread中执行,Service中不能执行耗时操作(网络请求,拷贝数据库,大文件)。可以在xml中设置Service所在的进程,让Service在另外的进程中执行。Service执行的操作最多是20s,BroadcastReceiver是10s,Activity是5s。

2024-02-25 10:07:56 916

原创 java多线程之sleep()、yield()、join()、wait()、notify()、notifyAll()、守护线程用法概率解析

上面三个方法都是Thread类提供的方法sleep()是一个静态方法,只能控制当前正在运行的线程休眠,而不能控制其他线程休眠,sleep方法有个参数用于控制线程的休眠时间,当休眠时间结束后线程就返回到就绪状态,而不是立即开始运行。sleep()会释放cpu资源,但是不会释放同步锁(类锁和对象锁)yield()方法是停止当前线程,让同等优先权的线程运行。如果没有同等优先权的线程,那么yield()方法将不会起作用。yield()方法不会阻塞该线程,它只是将线程状态转换为就绪状态,让系统重新调度一次。

2024-02-24 10:04:30 793 1

原创 Http长链接、长轮询、连接复用等概率解析

Socket(套接字)是一种用于网络通信的编程接口,它提供了一组用于在不同计算机之间进行数据传输的方法和协议。Socket可以用于在客户端和服务器之间建立连接,并在连接上进行数据交换。通过Socket,不同计算机上的程序可以通过网络进行通信,实现数据的传输和交互。它可以在不同的网络层级上工作,如物理层、传输层和应用层。使用Socket进行网络通信通常涉及两个主要组件:服务器端和客户端。服务器端绑定一个特定的IP地址和端口号,并监听来自客户端的连接请求。客户端则发起连接请求,并与服务器建立连接。

2024-02-23 14:45:51 1020

原创 Android广播详解

在Android系统粘性广播一般用来确保重要的状态改变后的信息被持久保存,并且能随时广播给新的广播接收器,比如电源的改变,因为耗电需要一个过程,前一个过程必须提前得到,否则可能遇到下次刚好接收到的广播后系统自动关机了,随之而来的是kill行为,所以对某些未处理完的任务来说,后果很严重。如果想要接受这些广播,就需要使用广播接收器。顾名思义,一种有序的,同步的广播,它是按照次序来传递,先被优先级高的接收器接收到,响应完成后再传递给接收器B然后C,同时可以进行截断,比如在A处截断,后续B和C就无法接收到广播。

2024-02-22 14:24:13 995 1

原创 Android任务栈和返回栈完全解析

Android任务栈返回栈概率解析

2024-02-22 09:16:03 1167 1

原创 Android Handler知识点大汇总

一、Message(消息)Message.class位于android.os.包中。Message的构造函数为无参构造方法,且只有一个构造方法;

2024-02-21 16:07:11 874

原创 Android intent传递数据和bundle传递数据有何区别

总的来说,Intent更适合在不同组件之间传递数据和激活组件,而Bundle更适合在Activity之间传递数据。Intent可以传递数据以外的信息,如Action、Category等,而Bundle只能传递数据。Android中,Intent和Bundle都可以用来在不同的组件之间传递数据,但它们有一些区别。Intent可以在不同的组件之间传递数据,而Bundle主要用于在Activity之间传递数据。Intent传递数据和Bundle传递数据是一回事,Intent传递时内部还是调用了Bundle。

2024-02-21 15:47:52 383

原创 史上最全Android代码混淆详解

optimizationpasses 5 # 代码混淆的压缩比例,值介于0-7,默认5-verbose # 混淆时记录日志-dontoptimize # 不优化输入的类文件-dontshrink # 关闭压缩-dontpreverify # 关闭预校验(作用于Java平台,Android不需要,去掉可加快混淆)-dontoptimize # 关闭代码优化-dontobfuscate # 关闭混淆-ignorewarnings # 忽略警告。

2024-02-21 15:44:42 1949

原创 Android apk反编译教程

assets:静态资源文件主要存放一些附件,例如,一些音频文件,其它的用户业务需求定义的配置文件等,可以以文件的方式被读取或访问。META-INF:签名文件所在的目录。Android apk文件只有在正式签名后,才可以发布到应用市场。res:即资源文件。程序写在开发时用到的字体,图片,布局文件等,都在这个目录中。AndroidManifest.xml:就是项目的配置文件。

2024-02-21 14:49:10 982

空空如也

空空如也

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

TA关注的人

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