自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个IT人的技术成长历程。创造未来的行为就发生在今天,没有明天的目标,今天的行动就是重复昨天的事情。

移动端知识共享,实践经验,前言技术分享、学习,职业生涯规划,五味杂陈的程序人生。

  • 博客(295)
  • 收藏
  • 关注

转载 Java基础—TCP通信

(多发多收:单线程,使用循环反复地发送消息)注意:目前的服务端不可以同时接收多个客户端的信息,因为目前服务端现在只有一个线程,只能与一个客户端进行通信。注意:目前的服务端不可以同时接收多个客户端的信息,因为目前服务端现在只有一个线程,只能与一个客户端进行通信。(线程池:处理多个客户端消息,解决多线程N-N的关系,导致资源浪费的问题)(线程池:处理多个客户端消息,解决多线程N-N的关系,导致资源浪费的问题)客户端(多发多收:单线程,使用循环反复地发送消息)(多发多收:单线程,使用循环反复的接收消息)

2024-02-29 16:16:44 46

转载 UDP通信实现一发一收

因为字节数组是64KB,如果客户端发送的数据没有那么大,会导致多倒一些东西出来,所以应该实现。发送端每次把要发送的数据(限制在64KB内)、接收端IP、等信息封装成一个。定义一个字符串,并使用getBytes()方法,转变成一个字节数组定义整形变量记录字节个数。另外,也可以获取客户端的IP地址和端口(最后释放一下资源)开始正式发送这个数据包的数据出去(最后可以释放一下资源)创建的端口一定要和客户端的端口一致,否则无法接收数据。参数一:封装要发出去的数据,转成字节数组。参数二:发送出去的数据大小(字节个数)

2024-02-29 15:57:27 66

转载 10个好用到爆的 Chrome 扩展程序推荐,尤其是第一个“真香”

Chrome 浏览器强大的很大一部分原因,也是依赖于它极为丰富的扩展程序。本文就给大家分享 10 个我珍藏的好用到爆的 Chrome 浏览器扩展插件。每个都很有特色又实用,让你的浏览体验提升 200%!而且由于 Edge 内核和 Chrome 相同,这些扩展也同样适用于 Edge 用户。三个国内可用的 Chrome 扩展下载网站推荐。

2024-02-29 11:07:29 588

转载 如何实现Android自定义日期段选择控件功能

这篇文章主要讲解了如何实现Android自定义日期段选择控件功能,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。开发中碰到个需求,需要在一个空间中选择完成开始和结束时间。实现的过程走的是程序员开发的老路子,找到轮子后自己改吧改吧就成了。当时做的时候有几个需求:1.当天为最大的结束日期,2.最大选择范围1年,3.开始时间和结束时间可以为同一天。如有其他需求实现,可以参考代码改进一下。先上效果图:视频点击后的虚影是屏幕录制的原因。实现步骤:(如有缺失什么资源,请告知。

2024-02-20 17:33:15 56

转载 Android实现可区间选择日历

Android实现可区间选择日历。

2024-02-20 17:21:42 25

原创 GSYVideoPlayer - 视频播放器(IJKplayer、ExoPlayer、MediaPlayer)

A、B普通版本支持263/264/265等,对于mpeg编码会有声音无画面情况。C 引入的so支持mpeg编码和其他补充协议,但是so包相对变大。

2024-02-18 17:26:08 601

原创 AgentWeb - 基于Android的WebView

AgentWeb 是一个基于的 Android WebView ,极度容易使用以及功能强大的库,提供了 Android WebView 一系列的问题解决方案 ,并且轻量和极度灵活,详细使用请参照上面的 Sample。

2024-02-18 16:19:34 433

转载 第一次使用Android Studio时你应该知道的一切配置

最近网上流行起了程序猿鼓励师的段子,鼓励师的报酬比程序猿还高,想想也确实是个不错的职位,什么?你没听说过?翻到本文最后面,爆图。使用Android Studio搭建Android集成开发环境(图文教程),之前的那篇可以凑合着看一下。当时Andriod Studio还处在测试版,现在Android Studio已经升级到稳定版了,决定还是重新写一下图文教程,让那些还在死抱着eclipse不放的人(包括自己)跨过这道坎。

2023-11-19 12:45:20 158

原创 ZBLibrary-Android快速开发框架

MVP 架构,提供一套开发标准(View, Data, Event)以及模板和工具类并规范代码。封装层级少,简单高效兼容性好。OKHttp 网络请求、Glide 图片加载、ZXing 二维码、沉浸状态栏、下载安装、自动缓存以及各种 Base、Demo、UI、Util 直接用。全新的手势,侧滑返回、全局右滑返回都 OUT 啦!用BaseView,自定义 View 竟然如此简单;用,两个变量的 Model/JavaBean 再也不用写了;用,几行代码搞定 HTTP 请求列表 加载和缓存;

2023-11-16 10:34:45 322

原创 AspectJX - Android开发平台的AOP框架

一个基于AspectJ并在此基础上扩展出来可应用于Android开发平台的AOP框架,可作用于java源码,class文件及jar包,同时支持kotlin的应用。如何使用AspectJX是基于 gradle android插件1.5及以上版本设计使用的,如果你还在用1.3或者更低版本,请把版本升上去。本使用说明是基于重构后的2.0.0版本编写的,如需要查阅旧版本的README,请切换到对应的Tag。插件引用在项目根目录的build.gradle里依赖AspectJX。

2023-11-07 13:38:05 293

转载 Android五大布局:FrameLayout、LinearLayout、AbsoluteLayout、RelativeLayout和TableLayout

AndroidSDK 定义了多种布局方式以方便用户设计 UI。各种布局方式均为 ViewGroup 类的子类,结构如图 1 所示。本节将对 FrameLayout(单帧布局)、LinearLayout(线性布局)、AbsoluteLayout(绝对布局)、RelativeLayout(相对布局)和TableLayout(表格布局)进行简单的介绍。

2023-11-07 13:31:53 480

原创 Cannot use @TaskAction annotation on method TransformTask.transform()

将gradle版本改为7.3.3。

2023-11-07 13:11:48 316

转载 Android gradle7.3.3配置AspectJX(AspectJ),一步一个坑,成功开启AOP编程之路

本文章就不详细说明AspectJ是什么玩意了,查到这篇文章的都极有可能是在Android Studio中配置AspectJ出现问题,本文就是解决问题的详细方案,目标Gradle版本7.3.3, 不过本文应该适用于7.x.x的版本api或者implementation看自己需求就行了,都可以的注意:引入这个"org.aspectj:aspectjrt:1.9.5"只是想用里面的注解,api等,所以哪个模块需要使用AspectJ就在哪个项目引入就可以了。

2023-11-06 20:38:18 842 1

原创 完美处理 Android App 的 apk 输出路径与文件名

【代码】完美处理 Android App 的 apk 输出路径与文件名。

2023-11-03 17:56:45 310

转载 Android Studio指定apk输出目录位置的方法

Android Studio开发工具如何指定输出目录呢?方法很简单,只需要将下面的代码黏贴到build.gradle(:app)里面,和。Android Studio指定apk输出目录位置的方法。

2023-11-03 17:45:36 512

转载 as通过gradle实现指定apk输出路径和apk文件名

使用配置文件管理app版本很简单,就是定义一个properties文件,里面有版本号、版本名等版本信息,只需要在build.gradle中引用该文件,使用该配置文件的属性,进行项目的版本号等版本信息的赋值,就可以实现版本号的动态控制(注意:在gradle文件中配置的版本号、版本名称是优于在manifest.xml中配置的,如果你在gradle文件中配置了版本信息,那么不管你是否也在manifest.xml文件中进行了配置,系统都不会再去manifest.xml中进行版本信息的读取了)。

2023-11-03 17:28:26 418

原创 LeakCanary - Android的内存泄漏检测库

GitHub - square/leakcanary: A memory leak detection library for Android.LeakCanaryLeakCanary’s knowledge of the internals of the Android Framework gives it a unique ability to narrow down the cause of each leak, helping developers dramatically reduce Appli

2023-11-03 16:35:51 88

原创 AndroidMonitor - 基于AndroidLocalService实现的抓取OKHTTP请求的工具

monitor需要配合monitor-plugin使用1、monitor接入添加依赖备注: 使用debugImplementation是为了只在测试环境中引入2、monitor-plugin接入根目录build.gradle下添加如下依赖......//monitor-plugin需要2.添加插件在APP的build.gradle中添加://插件内部会自动判断debug模式下hook到okhttp。

2023-11-03 16:19:25 218

原创 Android标题栏(TitleBar)绝佳解决方案

【代码】Android标题栏(TitleBar)绝佳解决方案。

2023-11-03 14:40:51 259

原创 Gson 解析容错框架

Gson 解析容错框架,愿从此再无 Json 解析报错,另外还适配了 Kotlin 默认值,和后台返回空值的情况集成步骤如果你的项目 Gradle 配置是在 7.0 以下,需要在 build.gradle 文件中加入// JitPack 远程仓库:https://jitpack.io如果你的 Gradle 配置是 7.0 及以上,则需要在 settings.gradle 文件中加入// JitPack 远程仓库:https://jitpack.io。

2023-11-03 14:03:18 257

原创 MMKV——基于 mmap 的高性能通用 key-value 组件

MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到 Android / macOS / Win32 / POSIX 平台,一并开源。MMKV 源起在微信客户端的日常运营中,时不时就会爆发特殊文字引起系统的 crash,iOS微信特殊字符保护方案。

2023-11-03 13:51:24 106

转载 Apk 签名的那些事

Android不允许没有签名的apk安装到手机上,应用的签名类似于应用的身份证签名更大的作用是为了保护版权,如果应用的包名相同而签名不一致,则无法覆盖安装,必须先卸载再安装。

2023-11-02 21:02:11 60

转载 Android蓝牙开发案例详解

所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,最初是由爱立信公司公司发明的。技术始于爱立信公司 1994 方案,它是研究在移动电话和其他配件间进行低功耗、低成本无线通信连接的方法。发明者希望为设备间的通讯创造一组统一规则(标准化协议)用来解决用户间相互不兼容的移动电子设备。

2023-11-02 20:31:07 349

原创 Markdown语法大全

表示列表,列表下面还有列表,列表层级无限制,子列表的前面必须要有四个空格或者一个制表符,并且上一个语法必须也是列表,这样才能表示它是这个列表的子列表,另外除了。列表还分为有序列表和无序列表,上面介绍的是无序列表的用法,下面介绍有序列表的用法。符号,- 符号也可以作为列表使用,但是更推荐大家使用 * 符号。用法和无序列表差不多,只不过将前面的 * 换成了具体的数字。接下来让我们看看具体的效果。

2023-11-02 16:38:45 105

原创 Type com.alibaba.android.arouter.routes.ARouter$$Group$$home is defined multiple times

我的项目中依赖多个 module,其中有一个module 有以 home 分组的路由,如果另一个 module 下也有以 home 分组的路由就会有问题。因为 ARouter 会为每一个 Module 生成相应的分组,这样就会造成一个 App 下存在多个 home 分组,就会造成 defined multiple times 的问题,只要为 group 区分一下不同 module 即可解决。项目中之前也有用到过 scheme://home/mine 这样的路由是没有问题的。

2023-10-30 17:10:28 274

转载 Android蓝牙开发—经典蓝牙详细开发流程

以前蓝牙配对的时候,手机会弹出一个对话框,提示输入pin码,其实也就是提前约定的一个配对码,到后来,手机与与手机之间的连接就不需要配对码了(实际上是程序内部完成了配对的过程)这里再注意一个细节,那就是如果当前的adapter正在查找,那么必须停止当前查找,然后再重新查找,这是因为查找操作占用很多的系统资源,我们需要避免重复的查找。配对的过程,其实就是Socket通信的一个过程,两个蓝牙设备仅仅匹配是还不能够传递数据的,只有当二者建立了Socket通道之后,才能进行数据的传递。所以我的做法是跳转了蓝牙设置。

2023-10-30 14:34:49 397

转载 Android 蓝牙开发(一)

蓝牙(Bluetooth)是一种无线技术标准,能够在短距离内实现设备之间的数据交换和通信。蓝牙技术最初由瑞典爱立信公司于1994年开发,其名称源自丹麦国王哈拉尔·布吕特的译名“Harald Bluetooth”,他曾统一了斯堪的纳维亚半岛。蓝牙技术是基于无线射频技术的,工作频率为2.4GHz,可支持多达8个设备同时连接。蓝牙技术应用广泛,包括手机、电脑、音频设备、手环、智能家居等领域,可以实现数据传输、音频传输、遥控和定位等功能。

2023-10-30 14:18:34 153

转载 Android 蓝牙连接

蓝牙是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换。最多可以同时和7个其它蓝牙设备建立连接,进行通信。蓝牙可分为两大类:传统蓝牙(蓝牙3.0规范之前),低功耗蓝牙(蓝牙4.0规范之后)。Android 从4.3版本(API Level 18)开始支持低功耗蓝牙Bluetooth Low Energy(BLE)通信。Android提供了相应的 API, 应用程序通过这些 API 可以实现 蓝牙设备扫描、配对、连接、传输数据等功能。

2023-10-30 14:08:05 213

转载 Android 蓝牙通信

BluetoothAdapter 本机的蓝牙适配器。可以通过广播来监听设备"可见"与"不可见"状态的切换。是直线的传输方式(单向传输?将已经绑定的设备添加到ListView中,上图是2018年甚至是更老的时候的方案。2、程序与其他程序进行配对需要一下权限。查找到设备后,将设备添加到展示列表中。点击事件设置为 null。除以上之外还有 红外线传输。Android 蓝牙通信。在广播内监听action。点击对应Item进行绑定。1、操作蓝牙需要的权限。.检查设备是否支持蓝牙。.查找到(一个)设备。

2023-10-30 13:57:23 201

转载 蓝牙协议系列之(六) GATT

ATT之所以称作“protocol”,是因为它还比较抽象,仅仅定义了一套机制,允许client和server通过Attribute的形式共享信息。而具体共享哪些信息,ATT并不关心,这是GATT(Generic Attribute Profile)的主场。GATT相对ATT只多了一个‘G‘,但含义却大不同,因为GATT是一个profile(更准确的说是profile framework)。

2023-10-30 13:37:32 68

转载 蓝牙协议之GATT学习笔记

GATT客户端抽象层,GATT客户端没有属性表或者配置文件,不存在服务信息。作为GATT服务器,大多数的GATT功能都有独自的GATT配置文件(profiles)封装。这些profiles使用GATTServApp(TI是用这个模块,名字就叫做 GATTServApp,应该其他蓝牙芯片也有相似的模块)来存放和管理属性表。上面的图片是 GATT Server的分层框架,可见,比客户端的多了两层,分别是GattServApp、Profiles。

2023-10-30 13:34:00 149

转载 Android Ble蓝牙开发总结

本文总结了ble的搜索,连接,读写操作。以及在开发过程中可能遇到的坑。蓝牙发展至今经历了8个版本的更新。那么在1.x~3.0之间的我们称之为传统蓝牙,4.x开始的蓝牙我们称之为低功耗蓝牙也就是蓝牙ble。蓝牙BLE相对于传统蓝牙的优点:最大化的待机时间、快速连接和低峰值的发送/接收功耗。应用区别:BLE低功耗蓝牙一般多用在蓝牙数据模块,拥有极低的运行和待机功耗,使用一粒纽扣电池可连续工作数年之久;BT经典蓝牙模块多用在蓝牙音频模块,音频需要大码流的数据传输更适合使用。

2023-10-30 13:05:15 268

转载 【Android】蓝牙开发——BLE(低功耗蓝牙)(附完整Demo)

之前的几篇文章,主要介绍了经典蓝牙开发相关的知识,今天我们就来看看低功耗蓝牙的开发。如果小伙伴们对之前的文章感兴趣兴趣,也可以看看,欢迎提出不足或者建议。【Android】蓝牙开发——经典蓝牙(附Demo源码)【Android】蓝牙开发——经典蓝牙配对介绍(通过手机系统蓝牙演示)【Android】蓝牙开发—— 经典蓝牙配对介绍(Java代码实现演示)附Demo源码BLE,全称 Bluetooth Low Energy,即低功耗蓝牙。

2023-10-30 12:57:38 1180 1

转载 Android组件化之终极方案

这个方案虽说也是可行的,但是显然没有达到我们期望的结果,我们理想的“app壳工程”是不应该跟业务有关的,他应该负责管理和组装其他组件,并将这些业务组件包装成一个可以发布到应用市场的APP,也就是说我们希望“app壳工程”不要和任何业务相关,不要耦合其他组件中的代码,我想我可以随意的替换那个空壳工程,而不会影响到我的APP打包,显然这个偷懒的方案是做不到这一点的。因为项目中包含所有的组件源代码,这时候肯定没有办法控制代码权限了,假如某个组件是另外一个部门或公司提供给你用的,那么他们当然不希望给你源代码。

2023-10-25 18:24:18 42

转载 Android组件化方案

在 组件化工程模型图中,功能组件集合中有一个 Common 组件, Common 有公共、公用、共同的意思,所以这个组件中主要封装了项目中需要的基础功能,并且每一个业务组件都要依赖Common组件,Common 组件就像是万丈高楼的地基,而业务组件就是在 Common 组件这个地基上搭建起来我们的APP的,Common 组件会专门在一个章节中讲解,这里只讲 Common组件中的一个功能,在Common组件中我们封装了项目中用到的各种Base类,这些基类中就有BaseApplication 类。

2023-10-25 18:18:41 77

转载 Android 组件化/模块化 的理解!

到现在组件化真的不是什么新鲜东西了,大公司都用的滚瓜烂熟,龙飞凤舞了,也就是现在部分中型项目和小项目在组件化的路上努力。所以同志们,组件化没玩过的,不熟悉的赶紧搞起来,说一点,你不会组件化,发布影子工程那么对你来说就是个噩梦。从本质上来讲任何技术进步都是在现实需求的逼迫下抓耳挠腮,耗尽无数头发才想出来的。哈哈,这里说个笑话罢了。所以呢组件化这个东西出来这么久了,页发展了这么久了,用的人越来越多,那肯定是对我们显示开发大有裨益的,下伙伴们不会,不熟悉抓紧啦,要不面试问你你怎么回答呢!

2023-10-25 17:53:35 117

转载 Android 组件化

想要实现业务组件的单独编译,就需要把配置改为 Application 插件;而调试完成后,又需要变回 Library 插件以进行集成调试。如何让组件在这两种调试模式之间自动转换呢?当然可以手动修改组件的 gralde 文件,但是如果项目有几十个组件,那一个个的改可就太让人难受了。所以我们需要寻找另外一种方法。下面直接说结论。可通过 gradle.properties 文件,环境变量 或 命令行 -D 参数 设置。

2023-10-22 21:42:06 85

原创 ARouter - 组件化通信方案

一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦功能介绍支持直接解析标准URL进行跳转,并自动注入参数到目标页面中支持多模块工程使用支持添加多个拦截器,自定义拦截顺序支持依赖注入,可单独作为依赖注入框架使用支持InstantRun支持MultiDex(Google方案)映射关系按组分类、多级管理,按需初始化支持用户指定全局降级与局部降级策略页面、拦截器、服务等组件均自动注册到框架支持多种方式配置转场动画支持获取Fragment。

2023-10-22 21:11:08 185

转载 Android---组件化

1.)组件(Component),是对数据和方法的简单封装,功能单一,高内聚,并且是业务能划分的最小粒度。2.)组件化是基于可重用的目的,将大型的软件系统按照分离关注点的形式,拆分成多个独立的组件,使得整个软件系统也做到电路板一样,是单个或多个组件元件组装起来,哪个组件坏了,整个系统可继续运行,而不出现崩溃或不正常现象,做到更少的耦合和更好的内聚。

2023-10-22 21:03:40 49

原创 NoClassDefFoundError: Landroid/databinding/DataBinderMapperImpl

解决办法:主要原因是该项目是组件式开发,在某个module中未添加。databinding使用过程中出现以下bug,很是麻烦 .检查module,在gradle中添加以上代码能顺利解决.

2023-10-22 20:44:10 534

空空如也

空空如也

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

TA关注的人

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