- 博客(226)
- 资源 (91)
- 收藏
- 关注
原创 okhttp xxx Android10Platform, sslSocketFactory is class com.android.org.conscrypt.OpenSSLSocketFact
Android 10平台下OkHttp出现SSL/TLS连接错误,主要与TrustManager配置和系统兼容性有关。可能原因包括自定义证书配置不当或OkHttp版本过旧。解决方案建议:1)升级OkHttp至最新版本(如4.10.0);2)正确配置信任管理器,使用系统默认证书或自定义实现。示例代码展示了如何通过SSLContext和TrustManagerFactory构建安全的OkHttpClient实例,处理TLSv1.2连接。
2025-07-19 10:24:11
165
原创 android studio libs.versions.toml 配置
本文介绍了Gradle项目中的两个重要配置:1) libs.versions.toml文件用于集中管理依赖版本,避免冲突并简化声明;2) 通过配置阿里云镜像解决Android应用插件下载慢的问题。文章提供了Groovy和Kotlin两种DSL的镜像配置示例,优先使用阿里云镜像,其次回退到Google官方仓库。这些配置优化了项目的依赖管理和构建效率。
2025-07-19 10:19:47
160
原创 android tabLayout 切换fragment fragment生命周期
摘要:TabLayout与Fragment结合使用时,通常通过ViewPager适配器(FragmentPagerAdapter或FragmentStatePagerAdapter)实现切换功能。FragmentPagerAdapter会保留所有Fragment在内存中,而FragmentStatePagerAdapter会销毁不可见Fragment的视图以节省内存。Fragment生命周期在切换时呈现不同状态:首次创建时执行完整生命周期,再次切换时仅触发onStart()和onResume()。示例代码展
2025-07-14 23:44:43
87
原创 MMKV 存储json list数据(kotlin)
摘要:本文介绍了使用MMKV存储JSON格式的List数据的方法。首先在Gradle添加MMKV依赖并在Application初始化,然后定义Person数据类并使用Gson进行JSON转换。通过封装JsonUtils工具类,实现了将List<Person>转换为JSON字符串存储到MMKV,以及从MMKV读取JSON并还原为List的操作。最后在Activity中演示了完整的存储和读取流程,将人员列表数据持久化后显示在TextView上。
2025-07-14 23:36:12
267
原创 android TabLayout 标题栏切换 事件拦截
摘要:在Android开发中,TabLayout与ViewPager组合使用时,可通过手动管理联动实现标题栏切换拦截。主要方法是:1)禁用setupWithViewPager的自动同步;2)为每个Tab设置点击事件,在事件中执行自定义验证逻辑(如权限检查);3)通过selectTab手动更新选中状态。这种方法避免了自动同步的干扰,允许开发者灵活控制Tab切换行为,典型应用场景包括表单验证和权限拦截等需求。
2025-07-10 22:57:13
216
原创 和风天气控制台的JWT身份认证(android 代码调用)
本文介绍了Android SDK开发中使用JWT认证和SSH密钥配置的简化流程。首先指出JWT认证官方教程看似复杂实则简单。其次详细说明通过git生成Ed25519密钥的方法:使用ssh-keygen命令连按3次回车生成无密码密钥,并获取公钥私钥路径。接着指导将公钥内容复制到服务器端,凭据名称可自定义。最后说明将生成的私钥直接配置到Android项目中即可运行。全文提供了从密钥生成到部署的完整操作指南,简化了开发者的配置流程。
2025-07-10 22:54:56
42
原创 使用git生成ssh的ed25519密钥
摘要:本文介绍了使用Git生成SSH密钥的步骤。首先执行ssh-keygen -t ed25519命令,连续按3次回车(不设密码、不改路径)即可生成密钥对。生成后,红色框会显示公钥和私钥的文件路径。公钥用于复制到服务器,而私钥则保存在本地供访问使用。操作简单明了,无需额外配置。
2025-07-08 22:14:56
305
2
原创 SSH密钥 与 Ed25519密钥 是什么关系
SSH密钥与Ed25519密钥的关系解析 摘要:Ed25519密钥是SSH密钥的一种高效现代实现,采用椭圆曲线加密算法。相比传统RSA密钥,Ed25519具有更短的密钥长度(32字节)、更快的运算速度和更强的安全性,同时避免了ECDSA的随机数依赖问题。自OpenSSH 6.5起被默认支持,成为SSH认证的首选方案。用户可通过ssh-keygen命令生成Ed25519密钥对,但需注意旧系统可能存在兼容性问题。建议优先使用Ed25519,同时保留RSA密钥作为兼容备用,并在服务器配置中禁用弱加密算法。 (14
2025-07-08 22:12:41
816
原创 android liveData observeForever 与 observe对比
LiveData是一个非常有用的组件,用于在数据变化时通知观察者。LiveDataobserve和。这两种方法在使用场景、生命周期感知以及内存管理等方面有所不同。observe。
2025-04-17 22:57:54
316
原创 android MutableLiveData setValue 响应速速 postValue 快
主线程更新:如果确定更新操作在主线程执行,优先使用setValue以确保数据更新的即时性和响应速度。后台线程更新:如果需要在后台线程中更新LiveData,使用postValue是必要的,尽管会有一定的延迟。性能敏感场景:在性能敏感或对响应速度要求较高的场景下,尽量使用setValue,并确保更新操作在主线程进行。
2025-03-19 22:10:10
261
原创 android 新闻客户端和springboot后台开发-后台代码(五)
android 新闻客户端和springboot后台开发(一)-CSDN博客android 新闻客户端和springboot后台开发(二)-CSDN博客android 新闻客户端和springboot后台开发-网络接口封装(三)-CSDN博客这篇是这个系列最后一篇,看看idea主要的后台代码。后台开发工具- Idea开发工具:2023.3.7- JDK的版本 : jdk-17后台存放新闻数据库,用户注册的数据库。数据库使用的是sqlite数据库。## 环境准备。
2025-03-16 20:43:43
191
原创 android 新闻客户端和springboot后台开发-新闻列表显示(四)
android 新闻客户端和springboot后台开发(一)-CSDN博客android 新闻客户端和springboot后台开发(二)-CSDN博客android 新闻客户端和springboot后台开发-网络接口封装(三)-CSDN博客这篇博文,到了新闻列表接口获取。技术方案使用TabLayout+ViewPager+Fragment显示新闻列表。最上面可以点击切换,中间的fragment也可以滑动切换。新闻列表实现效果如下,好看有整洁。二、实现代码。
2025-03-16 09:00:00
276
原创 android 新闻客户端和springboot后台开发-网络接口封装(三)
1、创建OkHttpClient对象并初始化的封装。在整个项目中我们只需要一个OkHttpClient对象,不同的网络请求只需要创建不同的Requset对象和Call对象。//ip地址,cmd用命令ipconfig看一下,ipv4地址填进去。2、发送网络请求的封装 每次执行网络访问的方法一样 传入的参数不一样 可以修改自己想传入的参数类型。一个注册用户的结构体,通过post方式,把json数据上传。这篇接前面,写android客户端接口这样方面的实现。只要是局域网都行,本地演示的。二、例如注册接口示例。
2025-03-15 09:13:00
336
原创 android 新闻客户端和springboot后台开发(二)
用户和密码输入不能为空,都是本地判断。两次密码输入是否一致,也是本地判断。然后调用注册接口,使用的是okhttp3简单封装,也很好用的。一般都是有标题栏,标题栏有返上一页箭头。然后是输入用户名,密码和确认密码。接上篇写注册界面功能。
2025-03-15 08:52:27
240
原创 android 新闻客户端和springboot后台开发(一)
android 新闻客户端appapp内容:1.创建一个注册页面,包含用户名和密码等输入框,注册成功后跳转到登录页面。2.创建登录页面,包含用户名和密码输入框,登录成功后跳转到主页面。3.主页面是一个新闻资讯类信息页面,采用多控件组合设计页面。4.新闻列表中每个新闻项包含标题、缩略图等信息。5.新闻详情页展示新闻标题、正文内容等。技术能够实现新闻列表的滑动切换,Tab和ViewPager联动.点击Tab也能切换到对应的新闻列表。
2025-03-14 22:18:24
244
原创 android 基于OpenCV4.8微笑检测自动拍照
1、基于OpenCV4.8微笑检测自动拍照存储2、左侧有一个预览小框,有人脸时候会有红色框框。3、当真人入境时候,微笑。相机预览捕捉到了人的微笑,自动拍照保存。opencv库的编译就不说了。android opencv导入进行编译_编译android opencv-CSDN博客。
2025-03-11 21:28:08
524
原创 android studio 使用JDK版本引起的报错
如果在 Bug Database (http://bugs.java.com) 中没有找到该错误, 请通过 Java Bug 报告页 (http://bugreport.java.com) 建立该 Java 编译器 Bug。请在报告中附上您的程序和以下诊断信息。在命令行使用命令:./gradlew compileDebugSources --stacktrace -info。项目当前jdk是1.8,但是报错,遂升级。使用jdk11版本,如果当前不存在的话,直接选择添加,自动下载即可。
2025-03-09 09:36:14
279
原创 Android 调用c++报错 exception of type std::bad_alloc: std::bad_alloc
c++代码long int类型在arm64-v8a 64位上会出现类型异常,也会溢出。long int在armeabi-v7a 32位是正常的。1、修改Android.mk文件配置,添加如下语句LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog。所以arm64-v8a上,c++代码long int类型改成int类型。3、使用方法#define LOG_TAG "debug"升级arm64-v8a编译引起的类型长度溢出的问题。2、在.c文件中修改为如下语句。
2025-03-09 09:35:07
520
原创 idea 创建springboot 项目,连接数据库,后台接口实现
使用spring boot maven方式构建项目真香,不用Tomcat。目前用的是自带的sqlite数据库。如果使用mysql数据库,需要装这个数据库环境,和相关配置。
2025-03-08 10:33:01
626
原创 Android Studio 创建项目同步失败
打开gradle-wrapper.properties这个文件,mirrors.cloud.tencent.com/gradle 替换services.gradle.org/distributions就行。这个版本默认创建时是下载插件gradle-8.0-bin.zip,但是基本都会失败。
2025-03-08 10:20:29
416
原创 非线性优化--NLopt算法(Android版本和Python示例)
通俗一点来说 非线性优化就是求函数的极值。我们想求一个 函数的极值问题的时候,线性函数是最简单的,因为是线性的嘛,单调增或者单调减,那么找到边界就可以求到极值。例如 f(x)=ax+b。但是对于复杂的非线性函数,或者复杂的数学模型,求导很困难或者无法求导的时候怎么求极值呢?那么就出现了很多非线性优化的算法。来解决对于复杂数学模型的求极值的问题。简单的非线性函数也是很容易求得极值的,例如f(x)=x*x.可以通过求导得到极值点,然后求得其极值。1、 COBYLA无导数局部优化算法使用 python版本。
2025-03-06 22:37:18
267
原创 android edittext 防止输入多个小数点或负号
有些英文系统的输入法,或者定制输入法。使用xml限制不了输入多个小数点和多个负号。所以代码来控制。:允许输入正负号;:允许输入小数点;:限制输入的字符为、和。java 代码如下如果是使用 kotlin代码如下:三、结合进行实时校验可以在文本变化时进行更复杂的校验和处理。java代码如下:如果使用kotlin代码:这三种方式一起使用。可以edittext 防止输入多个小数点或负号,可以自定义一个view继承edittext,来方便后面使用。
2025-03-06 22:30:11
523
原创 腾讯云物联网平台(IoT Explorer)设备端使用
sdk里面的地址默认是带着产品ID拼接的,咱们现在中铁没有泛域名解析,要改下这里。把+productID都去掉,然后地址里的.也去掉。json数据里面params里面是自定义参数,外面那一层json是固定的。$thing/up/property/ 代表属性上报。
2025-03-05 21:57:31
498
原创 AES/CBC/PKCS5Padding加密
解密,如果解密报错长度不够,也可以像加密那样自动加上补0长度。但是补的那部分会乱码。红色框里面要值得留意,需要加密字符串不够位数,自动补全。亲测可以用,跟硬件交互一样使用。
2025-03-05 00:08:58
305
原创 Springboot 后台,前端app访问不了,有可能是端口问题
分析如下:我们都知道后台默认端口是8080,那android显示端口是80,那肯定异常。有可能自动分配不了8080端口。这个时候需要android端ip地址加上指定端口8080。1、android前端报错如下。2、接口访问时候,报错信息。
2025-03-04 23:49:37
231
原创 android TabLayout设置tab的时候文字默认居中,选中文字加粗
TabLayout设置tab的时候文字默认居中,在TabLayout布局增加以上代码。tab选中文字加粗,需要重写TabLayout的customview进行设置。
2025-03-03 21:00:40
251
原创 android 横竖屏适配工作总结
3、还可以创建一个values-land资源文件夹,放dimens.xml。这样只要横竖屏布局没有变化,类似于recycleview控件的item布局,只需要修改控件高度和宽度的话。就不需要再创建一个布局在横屏。只需要dimens.xml控制竖屏和横屏控件高度或者宽度。2、最好使用kotlin语言编写和使用viewBinding绑定控件,可以使用?.判空控件是否存在,不至于缺少这个控件时候直接崩溃。1、创建一个横屏文件夹,复制一份竖屏的布局。只要布局id都有,其他想怎么改就怎么修改。项目资源文件夹一览。
2025-03-03 20:51:50
347
原创 android 资源selector写法注意
同样是使用color,但是drawble里面需要</item>标签里面有</shape>标签,shape标签里面可以写背景填充颜色,圆角,边框颜色,边框宽度等等信息,可以使用图片背景等。就是color文件夹和drawble文件夹下面都有一个同名的资源文件。或者drawble文件夹,写法是color资源文件写法。2、res文件夹下面drawble文件夹,放的xml。1、res文件夹下面color文件夹,放的xml。写法是这样的,都是指定color颜色。android 6.0机器上报错。解决办法就是规范写法。
2025-03-02 22:35:31
241
原创 is attempting to register while current state is RESUMED. LifecycleOwners must call register before
出现这个问题场景,activity里面有加载fragment,fragment里面有自定义view,自定义view里面init初始化使用了 registerForActivityResult,然后在注册registerForActivityResult崩溃了。registerForActivityResult需要在activity 的oncreate生命周期里面。如果自定义view里面没有办法注册,那么自定义view里面添加一个fragment,用来注册registerForActivityResult。
2025-03-02 22:28:36
202
原创 android ViewPager 管理 Fragment的预加载onCreate
ViewPager 来管理 Fragment时,adapter放在onViewCreated进行初始化,如果没有切换fragment进行onViewCreated,adapter直接刷新,那么adapter会是空值。因为有些数据需要提前加载,第一个方便后面数据使用,提前初始化。特别是使用 ViewPager 来管理 Fragment,可以通过设置 ViewPager 的 offscreenPageLimit 属性来控制预加载的页面数量。在此处进行数据的预加载相关的操作,例如初始化数据、预加载网络数据等。
2025-02-19 23:05:50
372
原创 kotlin Java 使用ArrayList.add() ,set()前面所有值被 覆盖 的问题
结构体的字段的属性为静态, 意味着该类的所有对象共享同一个属性,所以尽管集合里存的是不同的对象,但是对象的属性还是同一个值 修改其中任何一个,其他的也会“被修改”。使用kotlin语言时候,经常方便写,直接写字段,没有写构造函数。就会容易出现此问题。所以add或者set时候,重新new 一个结构体对象进行添加就可以解决。所以需要写上构造函数,然后重新new 一个对象,防止被修改。
2025-02-19 22:55:56
283
原创 Android - Handler使用post之后,Runnable没有执行
原因: 在主线程new一个Handler的时候,默认使用的是当前线程的Looper,就是系统为我们创建好的MainLooper。所以不需要自己在手动写prepare() 和 loop()函数。如果在子线程中创建了一个Handler,那么就必须做三个操作: prepare()、 loop()、quit()解决办法:只有主线程创建的,remove之后,还可以post。所以留意,new Handler时机,是否在主线程。
2025-02-18 22:49:19
334
原创 is attempting to register while current state is RESUMED. LifecycleOwners must call register before
android 使用kotlin写的自定义view里面的init函数报错如下:is attempting to register while current state is RESUMED. LifecycleOwners must call register before 出现这个问题场景,activity里面有加载fragment,fragment里面有自定义view,自定义view里面init初始化使用了 registerForActivityResult,然后在注册registerForActiv
2025-02-18 22:45:04
225
原创 android 自定义view时钟显示
1、圆形数字显示1到12,有指针,分针,秒针。2、使用自定义view,继承view实现。3、使用attr配置属性。java自定义view。
2025-02-16 23:32:54
341
原创 android 使用百度地图定位和地图显示
1、首先在百度地图开放平台申请应用的key2、引用百度的在线sdk3、manifest设置百度地图的key4、相关权限的申请5、使用百度地图显示,使用gps定位百度地图。以上就是大概的流程。
2025-01-09 23:11:37
603
原创 studio gradle下载失败,项目同步失败,使用国内镜像地址
打开gradle-wrapper.properties这个文件,mirrors.cloud.tencent.com/gradle 替换services.gradle.org/distributions就行。出现类似的问题Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-6.7.1-bin.zip。2、遇到仓库下载失败,换成阿里下载地址。最新的阿里云仓库,下载速度杠杠滴。
2025-01-09 22:41:30
899
原创 android 启动页倒计时页面编写
2、倒计时实现使用CountDownTimer。1、实现5,4,3,2,1启动页倒计时。三、简单的启动页xml文件。二、activity代码。
2025-01-07 23:24:24
519
原创 android ViewPager+Handler实现图片轮播
4、使用Handler的postDelayed定时刷新设置ViewPager第几个图片。1、使用ViewPager控件,写一个ViewPager适配器。搜索框下面的就是viewpage实现的图片轮播实现效果图。3、ViewPager绑定适配器。2、把图片数组放在适配器里面。
2025-01-06 23:21:23
283
原创 android sqlite 数据库简单封装示例(java)
使用单例封装这张表的增删改查,同时转换成字段对应的结构体。这样方便数据管理,插入,查询,更新等操作。首先继承SQLiteOpenHelper 使用sql语句进行创建一张表。sqlite 数据库简单封装示例,使用记事本数据库表进行示例。
2024-12-24 22:56:53
437
monkey测试文档
2017-06-18
android 代码主题背景
2017-01-22
android 开源库osmdroid绘制点线面(比例尺,缩小放大,导航图标等)
2017-04-26
android 模拟位置信息Location使用示例
2017-05-31
android 使用osmdroid 加载离线map格式数据以及地图网格
2017-02-25
android studio 编译aidl以及示例demo
2017-03-13
android asynctask的fragment更新UI(附线程管理)
2017-04-24
Android 水准仪(方向传感器)
2017-01-23
android osmdroid离线加载常用格式
2017-01-03
android 开源库上传FTP
2016-07-24
android actionbar网页在线生成资源一份
2016-06-25
osmdroid 加载geopackage离线底图
2017-07-23
android Account账户管理完整代码
2017-08-16
android 使用zxing开源库生成二维码,扫描二维码
2016-09-03
pc端与android udp 通信实例
2016-12-18
android 使用服务读取串口数据实例
2017-01-08
android location 数据标准输出,原始输出和卫星状态的变化
2017-09-01
android studio gson插件自动生成实体类
2017-04-17
为知笔记 Windows最新版本下载 (经典版)
2025-07-19
viewPageFragment(RadioGroup + viewpage + fragment 组合显示导航栏)
2025-03-19
Android 备忘录,记事本程序设计
2023-10-24
Android 自定义文件路径选择器
2018-08-19
arcgis for Android 100.2 常用测试项目
2018-06-16
android 使用Java库xstream示例
2017-10-09
android usb转串口数据通信示例
2017-09-14
proj4j库(Java版本)
2018-04-26
android studio 使用NDK和swig编译c++示例
2017-10-30
android swig编译工具下载
2017-10-31
android 生成wifi热点以及扫描连接wifi
2018-02-26
android activity生命周期示例代码
2017-09-21
osmdroid 在线加载谷歌瓦片
2017-12-22
android location 数据标准输出,原始mnea输出和GpsStatus卫星状态的变化
2017-09-05
android GreenDao3.2 版本示例程序
2017-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人