- 博客(13)
- 资源 (2)
- 收藏
- 关注
原创 Android JNI开发记录
上面表示JNIEnv跟每个线程是捆绑的,无法在线程B访问到线程A的JNIEnv,所以通过保存g_env的方式去使用是不行的。所谓函数签名,简单点的理解可以理解成一个函数的唯一标识,一个签名对应着一个函数的签名。不过通常标准情况下生成的so库需要放在单独的jniLibs文件夹下,再配置build.gradle文件指定加载的so库地址,这样才算比较完整的jni开发流程。c、注意如果jni方法是通过static方式调用的话,这边的jobject表示的是jclass对象,需要进行强转,并不表示一个独立的对象。
2025-04-17 19:32:24
755
原创 Android Bluetooth蓝牙从机模式
在 Android 中开发蓝牙从机(Peripheral/Server)功能,通常指通过 蓝牙低功耗(BLE) 协议让设备作为 服务端(GATT Server) 提供数据服务,供其他设备(如手机、平板)连接和交互。前段时间一直忙于开发无时间梳理相关逻辑,先阶段根据代码对蓝牙从机模式做出梳理,以备后面使用。开启蓝牙需要蓝牙、位置、蓝牙广播、读写等相关权限,以下是部分权限。应用在后台时,广播可能被系统限制,需使用前台服务。(2) 检查设备支持。(1) 配置广播参数。(2) 处理生命周期。
2025-04-09 16:43:22
377
原创 Android AIDL传递体积较大数据
在 Android 中,直接通过 AIDL 传递超过 2MB 的数据会触发 Binder 传输限制(默认上限约 1MB~1.5MB,不同系统版本有差异),导致 TransactionTooLargeException 异常。MemoryFile:利用 Android 的匿名共享内存(Ashmem)创建内存映射文件,通过传递 ParcelFileDescriptor 实现跨进程访问。方案 1:共享内存(Ashmem)传递文件描述符。优点:高效(直接内存共享)、避免拷贝大块数据。(2) 服务端实现分块获取。
2025-03-18 16:49:40
349
转载 Android DiskLruCache完全解析,硬盘缓存的最佳方案
这倒不必担心,DiskLruCache中使用了一个redundantOpCount变量来记录用户操作的次数,每执行一次写入、读取或移除缓存的操作,这个变量值都会加1,当变量值达到2000的时候就会触发重构journal的事件,这时会自动把journal中一些多余的、不必要的记录全部清除掉,保证journal文件的大小始终保持在一个合理的范围内。其实最简单的做法就是将图片的URL进行MD5编码,编码后的字符串肯定是唯一的,并且只会包含0-F这样的字符,完全符合文件的命名规则。感兴趣的朋友请继续阅读。
2025-03-18 11:51:53
90
原创 RecyclerView性能优化策略总结
当数据集发生变化时,使用 DiffUtil 来计算新旧数据集的差异,并只更新发生变化的部分,而不是调用 notifyDataSetChanged(),后者会导致所有 item 重新绑定。如果 RecyclerView 的 item 大小固定不变,调用 setHasFixedSize(true) 可以避免不必要的布局计算。如果不需要 item 的动画效果,可以将 ItemAnimator 设置为 null,以减少不必要的动画计算。RecyclerView常见应用层次性能优化简单概括。
2025-02-20 15:54:35
567
转载 android控件(选择按钮)
包括:如何使用复选框CheckBox及其勾选监听器、如何使用开关按钮Switch、如何借助状态列表图形实现仿iOS的开关按钮、如何使用单选按钮RadioButton和单选组RadioGroup及其选中监听器。借助状态列表图形StateListDrawable,分别定义已选中时候的“开”图形,以及未选中时候的“关”图形。setChecked:设置按钮的勾选状态。checked:指定按钮的勾选状态,true表示勾选,false表示未勾选。setButtonDrawable:设置左侧勾选图标的图形资源。
2024-10-24 10:10:17
398
原创 Ble低功耗蓝牙开发基础与实践
通过定义不同的服务和特征值,设备可以提供不同的功能和操作,如传感器数据、控制命令等。通过BLE广播,设备可以宣布自身的存在、提供基本的信息和服务,以便其他设备发现和与之进行进一步的通信。通过广播,BLE设备可以以一种无连接的方式向周围的设备发送信息,以便其他设备能够发现它们并建立连接。需要注意的是,同一个设备在不同的场景下可能同时扮演中央设备和外围设备的角色,例如智能手机可以作为中央设备连接传感器设备,但也可以作为外围设备提供服务给其他设备连接。描述符是可选的,并提供关于特征值的元数据,如单位、权限等。
2024-02-24 15:24:19
2677
1
原创 Gitblit本地化搭建
打开gitblit.properties文件,D:\gitServer\gitblit-1.9.3\data\gitblit.properties(本人地址)配置完成之后,返回上一层目录,双击gitblit.cmd 弹出启动信息dos窗口,即可查看启动gitblit服务,关闭窗口则关闭gitblit服务。其他的用户需要下载仓库已上传的东西,将地址改为对一个的账号发给他们并告知密码即可。创建仓库的时候红框标注的最好直接构上,省的用命令在初始化添加了。下载gitblit安装版压缩包,直接解压。
2023-09-08 11:47:09
494
1
原创 Room使用的坑
(3)切记不是Android studio自带的DB brower,android studio自带的DB brower插件只可以编辑db库,不会生成、更新db-shm\db-wal文件,所有即使用它更改了数据,从/data/data目录下导出db\db-shm\db-wal文件,作为其他app的数据源,你更改的数据也不会添加到库里面,因为db-shm\db-wal这两个文件没有改变;1、用其他的数据源作为初始化数据并修改的时候。2、自己项目的数据库需要更新、添加数据的时候。此处仅为记录出坑环节。
2023-09-07 16:54:09
241
RSA加解密实测成功demo.zip
2020-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人