何33512336
江河湖海
展开
-
Android蓝牙传输16进制的字节流数据
前言 本文主要介绍android蓝牙传输数据时,对数据的处理方法,在物联网蓝牙设备连接和数据传输使用较多。(java/kotlin)1.字节流发送mOut!!.write(byteArrays, 0, byteArrays.size)mOut!!.flush()2.十六进制进制编码转bytes public static byte[] toBytes(String str) { if (str == null || str.trim().equals(...原创 2021-10-27 16:32:21 · 5429 阅读 · 0 评论 -
在Android中使用ActiveMQ通信应用MQTT
MQTT 是一种基于发布订阅模型的即时通讯协议,它被设计为一个极其轻量级的发布/订阅消息传输协议。对于需要较小代码占用空间和/或网络带宽非常宝贵的远程连接非常有用,是专为受限设备和低带宽、高延迟或不可靠的网络而设计,所以主要应用于物联网设备中。原创 2024-02-26 11:21:18 · 1063 阅读 · 0 评论 -
adb命令执行汇总*.bat
原理:当手机需要重现crash、或者x分钟内已经发生过crash(x≈15~30),点击此bat,logcat命令会将手机的logcat日志拉下来并实时记录,直到你关闭cmd窗口。原理:将apk文件拖进此bat,能调用aapt来解析apk的name(标识)、versionCode(构建号)、versionName(版本号)、sdkVersion、targetSdkVersion、permission等大量信息。anr抓取.bat:原理:同上,将手机的traces.txt拉到本地。原理:实时手机截屏。原创 2022-10-08 14:25:23 · 2012 阅读 · 0 评论 -
Android 10+ wifi使用相关权限问题
Android 13 引入了NEARBY_WIFI_DEVICES权限,该权限属于NEARBY_DEVICES权限组,适用于会管理设备与附近 Wi-Fi 接入点连接情况的应用。借助此权限,您可以更轻松地说明应用为何访问附近的 Wi-Fi 设备;在以前的 Android 版本中,这类应用需要声明ACCESS_FINE_LOCATION权限。...原创 2022-07-04 17:50:34 · 3042 阅读 · 0 评论 -
Android使用Gradlew编译指定模块
前言使用命令行进行编译;1.gradle文件里面配置,直接build整个工程就会在该module的build/output/aar下生成aar文件2.接使用命令gradlew :module:task,如下:gradlew :test_module:assembleRelease原创 2022-04-22 15:14:53 · 3444 阅读 · 0 评论 -
使用 allowInsecureProtocol 属性解决 gradle 的仓库地址HTTPS警告
前言gradle高版本会出现maven仓库地址不是https安全连接便会报错的问题;1.报错现象Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository 'maven2(ht原创 2022-04-15 17:48:21 · 8360 阅读 · 0 评论 -
关于WebSocket协议解析及实现
前言关于实现持久连接的全双工双向通信,websocket协议摒弃了http协议的各种轮询机制。注:WebSocket协议的目标是在一个独立的持久连接上提供全双工双向通信。客户端和服务器可以向对方主动发送和接受数据。在JS中创建WebSocket后,会有一个HTTP请求发向浏览器以发起请求。在取得服务器响应后,建立的连接会使用HTTP升级将HTTP协议转换为WebSocket协议。也就是说,使用标准的HTTP协议无法实现WebSocket,只有支持那些协议的专门浏览器才能正常工作。websocke原创 2021-11-09 10:18:48 · 2150 阅读 · 0 评论 -
WIFI P2P原理深入解析
前言 关于Wi-Fi联盟推出的另外一项重要技术规范WiFi P2P。 该规范的商品名为Wi-Fi Direct, 它支持多个Wi-Fi设备在没有AP的情况下相互连接.在Android平台的Wi-Fi相关模块中, P2P的功能点主要集中在:Android Framework中的WifiP2pService, 其功能和WifiService类似, 用于处理和P2P相关的工作。 wpa_supplicant中的P2P模块。P2P基础知识Wi-Fi P2P技术是Wi-Fi Displ...原创 2021-09-03 15:05:05 · 9795 阅读 · 0 评论 -
根本解决:The application could not be iinstalled :INSTALL_FAILED_CONFLICTING_PROVIDER
前言问题出现:在使用android studio,运行部模块重用的时候,使用真机安装调试时。释义The application could not be iinstalled :INSTALL_FAILED_CONFLICTING_PROVIDER意思就是:应用安装失败:安装失败是因为Provider冲突(就是你要安装的apk里面存在一个和真机上相同authorities的provider)解决打开主模块中的AndroidManifest.xml点击下方 Merged Ma.原创 2021-08-26 17:48:42 · 982 阅读 · 0 评论 -
Android libvlc播放延时优化
前言Android使用libvlc播放 rtsp 视频流,处理预览等待时间太长问题优化方法:产生的延时主要是因为预读取的流太多,等待的时间较长。通过修改 “probesize” 和 “max_analyze_duration” 来减少打开时的延时。修改文件 “vlc/modules/demux/avformat/demux.c” 在 vlc_avcodec_lock();/* avformat calls avcodec behind our back!!! */...原创 2021-05-12 17:13:13 · 4253 阅读 · 0 评论 -
SQLite的strftime格式化函数对应MySQL的方法
前言前段时间将sqlite的含有strftime的sql,在mysql中远程执行报错引起的。解决办法sqllite:WHERE strftime('%d%m',orders.created_at) = .......mysql:WHERE DATE_FORMAT(orders.created_at,'%Y-%m-%d') = .......原创 2021-01-30 09:29:23 · 584 阅读 · 0 评论 -
JNI打包综合论述(Linux-so,Android-so,win-dll)
前言原创 2021-01-18 11:03:34 · 703 阅读 · 0 评论 -
Android中Drawable与Bitmap相互转换的方法
1..Bitmap转DrawableDrawable drawable =new BitmapDrawable(bmp);2.Drawable转BitmapResources res=getResources();Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.sample_0)原创 2017-04-09 11:12:52 · 7836 阅读 · 0 评论 -
BaseMultiItemQuickAdapter实现多布局拖拽排序
前言BaseMultiItemQuickAdapter默认是支持但布局拖拽功能的如BaseItemDraggableAdapter,但是无法满足需求,需要加以改造。1.梳理继承关系及构造通过下图,可以发现BaseMultiItemQuickAdapter与BaseItemDraggableAdapter都继承于BaseQuickAdapter,我们根据此特性进行拼凑,见下图红色部分。拼凑后的BaseMutiItemDragQuickAdapter,见如下kotlin源码,自己的以前继承B原创 2020-12-23 11:33:07 · 2000 阅读 · 4 评论 -
android关于硬件USB权限综合解读
前言这篇是以极大疑惑为驱动的文章,综合了大多数文章对USB权限申请的常规方法,及特殊操作。带着这样的疑惑来看这篇文章:为什么部分机型在硬件连接手机时没有任何的权限请求提示框呢?1.常规申请修改AndroidManifest.xml2.主动申请3.无感申请4.Android SDK适配...原创 2020-10-28 22:14:13 · 1426 阅读 · 0 评论 -
kotlin协程的理解与使用
前言为什么在kotlin要使用协程呢,这好比去了重庆不吃火锅一样的道理。协程的概念并不陌生,在python也有提及。任何事务的作用大多是对于所依赖的环境相应而生的,协程对于kotlin这门语言也不例外。协程的优点,总的来说有如下几点:轻量级,占用更少的系统资源; 更高的执行效率; 挂起函数较于实现Runnable或Callable接口更加方便可控; kotlin.coroutine 核心库的支持,让编写异步代码更加简单。当然在一些不适应它的用法下以上优势也会成为劣势。1.协程定义协程定义:.原创 2020-10-11 20:37:23 · 968 阅读 · 0 评论 -
Android Kotlin/java集成arouter产生的问题及解决(二)
前言如何快速使用第三方模块,而不是在基础配置上化太多时间。本文将继续接着(一),谈谈arouter的传参,以及返回传参问题。上次回顾Android Kotlin/java集成arouter产生的问题及解决1.正向传参主要还是对Intent进行了二次封装1.简单传值: ARouter.getInstance().build("/start/MainActivity") .withString("type", "U") .withI原创 2020-08-30 21:51:39 · 562 阅读 · 0 评论 -
Android Kotlin/java集成arouter产生的问题及解决
前言 一般解决不同模块中的Activity跳转需要相互依赖,如此将产生严重的耦合,失去了划分module的意义。 可以自己根据需要设计跳转router,也可以直接使用arouter第三方依赖实现,在实现过程中会产生较多的问题,本文将给出基本步骤及解决办法。1.kotlin配置基础步骤 以下步骤主要以Kotlin语言环境为基础。首先在项目app或其他命名的模块下的build.gradle中添加以下内容apply plugin: 'kotlin-kapt'apply plug...原创 2020-08-04 13:13:15 · 2468 阅读 · 0 评论 -
Glide中的一些思维
前言对于Glide大家还是比较熟悉的。本文将从管道和高扩展两个角度来认识Glide。1.简介 Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decode pipeline),以及自动的资源池技术。Glide 支持拉取,解码和展示视频快照,图片,和GIF动画。Glide的Api是如此的灵活,开发者甚至可以插入和替换成自己喜爱的任何网络栈。默认情况下,Glide使用的是一个定制化的基于HttpUrlCon...原创 2020-07-18 22:27:58 · 127 阅读 · 0 评论 -
Android Native层错误调试
前言 Android系统对于Native(C/C++)应用程序的调试手段比单纯的linux系统coredump文件与gdb结合调试的手段.但是Android系统的天然不支持这种调试方式,其在内核中就没有启用coredump生成机制,那么Android系统下我们使用什么方式调试Native程序的崩溃问题呢?其实,Android系统将系统应用程序产生的崩溃日志都存储到了/data/t...原创 2020-05-05 20:54:58 · 645 阅读 · 0 评论 -
移动端应用优化
前言本文将从流畅度,耗电量,安装包大小,内存四个方面进行讨论。用户体验较好的App一般有以下几点值得借鉴:(1)APP界面交互流畅;(2)稳定,无闪退现象;(3)省电,网络数据请求快速;(4)安装包小,安装快速。1.流畅度优化Android 应用启动慢,使用时经常卡顿,是非常影响用户体验的,应该尽量避免出现。总的来说造成卡顿的原因有如下几种:1.UI的绘制。主...原创 2019-07-24 09:54:49 · 312 阅读 · 0 评论 -
移动端+SpringBoot后端,解决文件下载不全的问题
1.新建移动端项目,SpringBoot项目。2.在Controller中添加以下代码如果在移动端使用了进度条显示,获取了Content-Length,则在后端必须设置response.setHeader("Content-Length",""+file.length()); //实现Spring Boot 的文件下载功能,映射网址为/download @RequestM...原创 2019-06-01 12:01:49 · 3142 阅读 · 0 评论 -
Katalon Studio + Appium 集成配置
前言使用katalon两年后,记录一下katalon的“前情概要”。1.什么是Katalon studio?2.安装Katalon studio 在Katalon官网 下载适合版本(本文环境:win10-64位) 需要注册登录后,就可以下载。 3.安装appium 打开Appium官网选择ForWindoes 版本 其他渠道...原创 2019-02-08 14:52:50 · 3793 阅读 · 11 评论 -
Python或Java执行adb shell input swipe出现错误
1.在确保adb成功连接后2.检查android系统版本 android 5.0以下版本的swipe命令应该没有duration 这个参数。可使用cmd 确认,检查swipe 是否有 duration 这个参数:adb shell input swipe -h 若没有则去掉这个参数,只保留start point(x,y) 和 end point(x,y)usage: input ... ...原创 2018-06-28 21:58:57 · 2311 阅读 · 0 评论 -
android 6.0 动态获取权限框架 PermissionDispatcher 的使用
对android 6.0 动态获取权限框架 PermissionDispatcher 的使用android studio 引入 需要使用PermissionsDispatcher,需要在project的 build.gradle中添加buildscript { dependencies { classpath 'com.neenbedankt.gradle.plugin翻译 2017-07-04 20:05:57 · 409 阅读 · 0 评论