自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 HashMap

生成链表,如果链表的长度达到8并且数组长度大于64,链表会转化成红黑树。小于64会将数据扩容位原来长度的2倍,然后将链表中的元素重新分配到数组中(JDK1.7使用模运算,JDK1.8使用位运算,位运算得到的低位放到原来的位置,高位放的位置的下标是原来的下标加上数组长度),如果数组元素数量大于数组容量乘以0.75也会扩容。1.Hashmap由数组链表和红黑树组成,数组初始长度16,插入数据的时候如果产生hash冲突,会在冲突的地方。3.数组扩容为原来的2倍可以节约空间,减少hash冲突。

2025-08-26 16:27:36 359

原创 HTTPS请求,TCP,UDP

计算机网络-TCP和UDP总结(区别、优缺点、应用场景) - 秦羽的思考 - 博客园

2025-05-21 18:23:44 1676

原创 Mac完全卸载Android Studio

Users/用户名/Library/Application Support/Google/AndroidStudio2024.2。/Users/用户名/Library/Preferences/com.google.android.studio.plist。/Users/用户名/Library/Caches/Google/AndroidStudio2024.2。/Users/用户名/Library/Logs/Google/AndroidStudio2024.2。/Users/用户名/.android。

2025-04-22 13:13:44 612

原创 Android摄像头Camera2和Camera1的一些总结

例如:界面上有两个SurfaceView, 这两个SurfaceView不能同时预览或者录制音视频,只能有一个正常工作。下图在进行预览的时候只有一个SurfaceView有画面。Android 系统对同一个摄像头的同时使用有限制,不能同时使用同一个摄像头进行预览或者录制音视频。

2024-10-16 15:24:12 835

原创 MediaRecorder + Camera2循环录制视频

mediaRecorder + camera2循环录制视频5秒钟一段。

2024-10-13 10:41:31 315

原创 Android保存文件到SD

Application中添加。

2024-08-29 15:32:38 245

原创 Android 定位,GPS,Location的使用

【代码】Android 定位,GPS,Location的使用。

2024-08-29 14:38:01 291

原创 Android 判断应用在前台还是后台

2、创建AppLifecycleHandler文件。1、创建MApplication文件。

2024-08-29 14:32:08 258

原创 RxBus使用注意

在使用RxBus过程中,你会发现你订阅了某个事件后,在后续接收到该事件时,如果处理的过程中发生了异常,你会发现后续的事件再也接收不到了,除非你重新订阅!原因在于RxJava的事件序列机制,一个订阅事件是以或者onError()作为结束的,即:一旦订阅者的或onError()被调用,订阅者和被订阅者的订阅关系就解除了。这里说下onError()

2024-08-24 10:51:27 500

原创 Android studio 生成aar和jar

jar: 包含了class文件与清单文件.aar:包含了class文件与清单文件以及res资源文件。

2024-08-02 18:15:08 466

原创 Android ndk中abiFilters详解

只适配armeabi的APP可以跑在armeabi,x86,x86_64,armeabi-v7a,arm64-v8上只适配armeabi-v7a可以运行在armeabi-v7a和arm64-v8a只适配arm64-v8a 可以运行在arm64-v8a上。google play支持上传多个apk。目前来说,大多数的大厂APP用的都是armeabi或armeabi-v7a,只有像微信这种牛逼的APP,为了追求性能和用户体验,放弃了少部分设备,这也说得通吧,毕竟微信也不在乎苍蝇那点肉。A: 不会,但是反过来会。

2024-07-12 16:42:46 2415

原创 rtsp实时视频流测试地址

RTSP 测试地址 - Time Tick来源 RTSP 地址 延迟 Nordland rtsp://77.110.228.219/axis-media/media.amp 200ms Norwich rtsp://37.157.51.30/axis-media/media.amp 250ms Orlando rtsp://97.68.104.34/axis-media/media.am 350ms PriceCenterPlaza

2024-07-05 17:43:13 19961

原创 Android Studio 自定义打包出来的apk名字

build.gradle中增加以下配置。例如:输出的APK名字是。

2024-07-03 15:48:04 766

原创 Android studio 代码增加usage和作者提示

勾选 和 即可。

2024-05-30 16:29:03 450

原创 鸿蒙知识点总结

每个HarmonyOS应用可以包含多个.hap文件,一个应用中的.hap文件合在一起称为一个Bundle,而bundleName就是应用的唯一标识,在应用上架到应用市场时,需要把应用包含的所有.hap文件(即Bundle)打包为一个.app后缀的文件用于上架,这个.app文件称为App Pack(Application Package),其中同时包含了描述App Pack属性的pack.info文件;HAP是HarmonyOS应用安装的基本单位,包含了编译后的代码、资源、三方库及配置文件。

2024-05-27 19:00:37 2006

原创 netty @Sharable 注解详解

总结一下,它其实就是为了共享的方面,然后为了提升一点性能。其用法很简单,两个情况:1 如果每次通过new 而不是共享的方式,那么加不加@Sharable 效果都是一样的。每个Channel使用不通的ChannelHandler 对象。如:ch.pipeline().addLast(new EchoServerHandler());

2024-05-24 17:54:53 1590

原创 Mac JDK、SDK和Git环境变量配置

在配置好JDK、SDK环境变量后,如果也遇到了每次需要执行:source ~/.bash_profile才能使JDK、SDK配置生效的问题,可以继续往下看,如果没有遇到这样的问题,可以忽略以下步骤。2.ANDROID_HOME的默认安装路径是:/Users/用户/Library/Android/sdk,如果安装的路径有修改,在配置的时候更换一下即可。2.在终端输入命令:open ~/.zshrc,打开.zshrc,在文件的最后位置添加:source ~/.bash_profile,如图。

2024-05-22 16:42:39 975

原创 四大组件,dialog,context,ANR

所以只要判断getActivity()为空,就可以不再执行下面的代码,这完全不影响业务的使用。3、广播不能弹出dialog,dialog的显示是需要依附于一个activity,如果需要在广播中显示dialog,需要把dialog设置成一个系统的dialog,即全局性的提示框,alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT 否则不会显示。getContext():获取到当前对象的上下文。

2024-04-25 11:54:06 426 2

原创 Java利器Jakarta Commons

Commons Lang这一组API主要是提供一些基础的、通用的操作和处理,如自动生成toString()的结果、自动实现hashCode()和equals()方法、数组操作、枚举、日期和时间的处理等等。

2024-03-05 18:35:51 327

原创 Android 操作剪切板

【代码】Android 操作剪切板。

2024-02-26 11:11:44 958

原创 Android新特性

5、App在后台运行时,如果需要获取心率、体温、血氧饱和度等传感器信息,将不仅需要向用户申请现有的BODY_SENSORS权限,还必须声明新的BODY_SENSORS_BACKGROUND权限。4、闹钟权限增加USE_EXACT_ALARM权限,一旦申请之后不可撤销,避免频繁打扰用户,能够更高效地为用户提供闹钟、日程提醒等服务。3、读取视频或图片增加了一个只允许访问部分图片或视频的权限(非强制),申请读取权限之后自动获取写入权限。5、动态加载的文件(Jar、Dex、Apk 格式)需要设置成只读的。

2024-02-20 08:49:45 674

原创 Android切换语言

【代码】Android切换语言。

2024-01-11 13:57:25 526

原创 dialog,window窗口类型,api文档

WindowManager.LayoutParams - Android中文版 - API参考文档

2023-11-17 13:21:34 155

原创 安卓离线点击第一条通知跳转正常,第二条失败或者通过URL Scheme唤起App指定页面第一次成功,第二次失败

2、尝试更改intent中设定的activity的启动模式为singleTask。1、服务端intent参数中设置为launchFlags=0x04000000。

2023-10-24 17:37:04 521

原创 Android 适配折叠屏

【代码】Android 适配折叠屏。

2023-10-08 11:08:40 10477

原创 Android Studio 将第三方依赖生成jar包

项目中使用了许多第三方的依赖,比如Gson,glide,retrofit等。这些依赖在本地磁盘的位置如图,这里边可以导出来jar包。

2023-08-08 14:12:29 168

原创 RecyclerView缓存机制

给用户的自定义扩展缓存,需要用户自己管理 View 的创建和缓存,可通过Recyclerview.setViewCacheExtension()设置。通过了解RecyclerView的四级缓存,我们可以知道,RecyclerView最多可以缓存 N(屏幕最多可显示的item数) + 2 (屏幕外的缓存) + 5*M (M代表M个ViewType,缓存池的缓存),只有RecycledViewPool找到时才会重新调用 onBindViewHolder。

2023-07-22 15:28:09 184

原创 Android studio 多渠道版本打包和flavors

2.资源文件:自定义flavor和main中可以有相同的资源文件,指定哪个flavor优先使用哪个flavor的资源文件,如果没有才使用main中的资源文件。3.清单文件:自定义flavor和main中可以有相同的清单文件,相同的清单文件会被合并。1.java文件:自定义flavor和main中不可以有相同的java文件。

2023-03-24 16:31:39 1088

原创 Android屏幕适配(命名不同资源文件夹w<n>dp)

这个后缀的使用方式和wdp一样,随着屏幕横纵向的变化,屏幕高度也会变化,根据变化后的高度值来判断是否使用hdp ,但这种方式很少使用,因为屏幕在纵向上通常能够滚动导致长度变化,不像宽度那样基本固定,因为这个方法灵活性不是很好,google官方文档建议尽量少使用这种方式。带这样后缀的资源文件的资源文件制定了屏幕宽度的大于Ndp的情况下使用该资源文件,但它和swdp不同的是,当屏幕横向纵向切换时,屏幕的宽度是变化的,以变化后的宽度来与N相比,看是否使用此资源文件下的资源。

2023-03-10 13:39:05 240

原创 Android操作assets中的资源

【代码】Android操作assets中的资源。

2023-03-06 18:03:02 488

原创 git忽略某个文件(.gitignore 和.git/info/exclude 的区别)

能够在团队成员中共享,因此当某个文件被公认为“无需版本控制”,那么最好就把它放在。文件则是供个人专用的,仅当自己觉得这个文件不用版本控制时,才把它放在。都能实现相同的功能,能够让Git忽略它们标记的文件。

2023-03-03 09:17:10 1299

原创 系统日志、ANR日志路径

data/system/dropbox:会保留历史上发生的所有ANR时的信息,保存时长3天。

2022-12-14 16:38:54 201

原创 Android混淆笔记

不混淆某个类 -keep public class name.huihui.example.Test { *; }不混淆某个包所有的类 -keep class name.huihui.test.** { *; }不混淆某个类的子类 -keep public class * extends name.huihui.example.Test { *; }不混淆所有类名中包含了“model”的类及其成员 -keep public class .model. {*;}不混淆某个接口的实现 -keep class *

2022-06-28 10:44:13 762

原创 git命令

git fetch : 从远程获取最新版本到本地,不会git mergegit pull : git fetch+git mergeupdate project : git fetch +git merge或者git rebase(android studio 界面自己选择)

2022-05-20 15:46:04 146

原创 Windows JDK和SDK环境变量配置

(1)新建系统变量->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_05"(即JDK的安装路径)(2)编辑系统变量->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”(3)新建系统变量->变量名“CLASSPATH”,变量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”.........

2022-05-10 16:11:07 939

原创 不用第三方工具给apk签名

1.给apk签名:java -jar apksigner.jar sign --ks 签名文件 --ks-key-alias 签名文件的alias --ks-pass pass:密码 --key-pass pass:密码 --out 签名后的APK 签名前的APK"例如:D:\sdk\build-tools\28.0.3\lib>java -jar apksigner.jar sign --ks D:/qdkey.jks --ks-key-alias qdkey --ks-pass pass

2022-05-08 16:46:03 1511

原创 Android危险权限

android.permission.READ_CALENDAR允许程序读取用户日历数据android.permission.WRITE_CALENDAR允许一个程序写入但不读取用户日历数据android.permission.CAMERA,允许访问摄像头进行拍照android.permission.READ_CONTACTS允许程序读取用户联系人数据android.permission.WRITE_CONTACTS允许程序写入但不读取用户联系人数据android.permission.

2022-02-11 09:54:56 2452

原创 ADB常用命令,Android无线调试

连接手机: adb tcpip 5555 切换到WIFI无线调试(adb tcpip和adb connect的端口号5555可以随意指定,但要保持一致) adb connect 172.31.2.25:5555 连接手机(adb tcpip和adb connect的端口号5555可以随意指定,但要保持一致)ADB命令: adb install -r E:\SDR.apk 安装apk adb shell rm /sdcard/Android/data...............

2022-02-11 09:44:50 7238 1

原创 Handler基础知识

Handler消息机制原理:在主线程创建handler,在构造方法中传入当前线程的looper并重写handleMessage方法。子线程通过handler的sendMessageAtTime发送消息,在sendMessageAtTime方法中获取主线程的消息队列,并将当前handler赋值给message中的target属性并通过消息队列的enqueueMessage方法将message插入到消息队列中。looper通过for死循环不断的访问消息队列中的next方法获取message,如果messag

2021-11-09 14:54:49 1066

原创 外部类,静态内部类详解

外部类 普通方法 外部类的普通属性+静态属性; 静态内部类的静态属性外部类 静态方法 外部类的静态属性 静态内部类的静态属性静态内部类 普通方法 静态内部类的普通属性+静态属性 外部类的静态属性静态内部类 静态方法 静态内部类的静态属性...

2021-10-28 10:34:01 317

typora历史版本(不收费版,1.0之前的版本)

typora历史版本(不收费版,1.0之前的版本)

2022-05-10

空空如也

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

TA关注的人

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