自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Android与单片机 | 开发板 | 智能硬件 | 智能设备 | 数据协议 |开发总结

一、缘起 工作中经常遇到需要Android程序与各式各样的板子、智能设备进行交互,通信的方式也基本上都是Ble或者Socket tcp/udp等等…其中最重要的一点就是通信的协议、协议、协议重要的是说三遍;通信协议就是用来定义与设备交互的方式和交互过程中数据包的格式 如:(包头—数据包长度—数据...

2019-06-15 00:55:31 2340 11

原创 使用AndroidX + ViewModel + LiveData + DataBinding组件,同时使用RxJava2 + Retrofit2 + Glide等主流框架搭建的MVVM

TODO-MVVM:使用JetPack中的AndroidX + ViewModel + LiveData + DataBinding组件,同时使用RxJava2 + Retrofit2 + Glide等主流框架进行搭建 GitHub项目地址 项目中basicLibModule为...

2019-04-02 22:02:31 5561 1

原创 一个简单、轻量的Android版本更新库、内置了一个漂亮的更新对话框

请前往Github查看最新介绍 AppUpdateGitHub地址 AppUpdate正在征集框架使用者信息,希望得到大家的支持 由于Android Q版本限制后台应用启动Activity,所以下载完成会发送一个通知至通知栏(忽略showNotification的值,...

2018-01-31 11:52:41 4703 7

原创 欢迎进入阿钟的博客导航——快速查找所有博客

世上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离;世界上最痴心的等待,是我当case你是switch,或许永远都选不上自己;世界上最真情的相依,是你在try我在catch。无论你发神马脾气,我都默默接受,静静处理。到那时,再来期待我们的finally。 Jav...

2016-08-25 17:25:26 4509 0

原创 记一次艰难的OutOfMemoryError:Could not allocate JNI Env问题排查
原力计划

当我们看到这个错误的时候第一反应是不是内存泄露导致程序无法申请到内存而导致的,然而查下来的事实告诉我并不是的…

2020-05-27 17:32:05 147 1

原创 解决Android SoundPool播放多个音效没有播放完成回调通知

一、在我们需要播放一些短促的音乐或者音效的时候(播放mp3文件),通常会使用SoundPoolApi来播放因为可以对音频文件进行预加载至内存中从而能够迅速播放出来 二、SoundPool的简单使用 SoundPool soundPool = new SoundPool.Builder().buil...

2020-05-17 17:00:26 232 0

原创 Netty在Android开发中的应用实战系列(六)——— 自定义协议进行拆包

之前的文章有写过Netty的拆包处理Netty在Android开发中的应用实战系列(四)——— 粘包 | 拆包 处理 一、这篇文章重点讲一下Netty中自定义协议的拆包需要怎么处理,也就是Netty提供的LengthFieldBasedFrameDecoder拆包器 二、一般情况下我们都会定一个数...

2020-04-24 22:31:09 184 2

原创 Java实现部标JTT1078实时音视频传输指令——视频流负载包(RTP)传输

一、 说一说实现的思路 1.接收平台方下发的0x9101命令(实时音视频传输请求) 2.解析下发的0x9101命令,拿到音视频上传数据的服务器IP和端口号 3.开始获取设备摄像头的每一帧视频数据,这里需要注意的是:视频数据支持的格式有:H.264,H.265,AVS,SVAC;详细的可以查看JT...

2020-03-07 15:08:22 1226 3

原创 使用Netty封装的部标JTT808 | JTT1078 | 渝标协议 数据上传Android端

使用Netty封装的 部标JTT808,JTT1078,渝标协议 数据上传Android端示例 项目地址:GitHub地址 已实现的功能 JTT808 注册 鉴权 心跳 位置信息汇报 设置终端参数 JTT1078 历史音视频查询、回放与下载指令 实时音视频传输 实时音视频流及透传数...

2020-03-01 22:42:08 466 0

原创 Android使用AudioRecord录制PCM音频、PCM转AAC、使用MediaRecorder直接录制AAC编码音频

Android为我们提供了两个音频处理的API:AudioRecord和MediaRecorder AudioRecord:偏底层的api MediaRecorder:对AudioRecord进行包装的api

2020-02-29 21:06:08 678 2

原创 Android采集摄像头的视频流数据并使用MediaCodec编码为H264格式

前言: 博主在写这篇文章之前可以说是在`音视频这方面`,知识积累与经验几乎为0;所以在实现这个功能上也是费了好一番功夫和精力把它给搞出来了,所以以此篇文章纪念一下。 一、首先就是需要先打开摄像头,并拿到视频的每一帧数据 1、相机权限是必须要的,API>=6.0还需要动态申请 (动态申请权...

2020-02-26 23:59:18 733 0

原创 Viewpager迁移至ViewPager2实现Tab标签页面

ViewPager2是什么呢? ViewPager2 是 ViewPager 的下一代版本,带来了更强的功能并修复了之前的 bug;也就是解决了ViewPager的bug和不支持RTL布局等等其他问题,Google同时也放弃对ViewPager的维护了。 ViewPager2相比ViewPager...

2019-12-16 16:26:19 1029 4

原创 使用Android APT(Annotation Processing Tool)让代码学会自己写代码

APT即注解处理器(Annotation Processing Tool)的简称

2019-12-02 15:10:51 461 3

原创 Android 动态换肤技术原理 | 实践 及总结

动态换肤一般实现的原理 对页面需要换肤的View进行标记 在Activity#setContentView()加载view时获取到标记的view(后面会说是要怎么获取到) 创建一个Library项目制作我们的皮肤包(res下的资源名称需要与app使用的一致,换肤就是通过使用的资源名称去皮肤包里加...

2019-11-20 15:24:03 376 0

原创 Netty在Android开发中的应用实战系列(五)——— 创建Web服务 | 作为HTTP服务器

Netty连续Socket文章系列 Netty在Android开发中的应用实战系列(一)——— 搭建服务端与客户端 Netty在Android开发中的应用实战系列(二)——— Encoder | Decoder | Handler 的使用 Netty在Android开发中的应用实战系列(...

2019-09-23 22:19:28 488 0

原创 Netty在Android开发中的应用实战系列(四)——— 粘包 | 拆包 处理

阅读本文建议从第一篇开始往后看 本系列文章 Netty在Android开发中的应用实战系列(一)——— 搭建服务端与客户端 Netty在Android开发中的应用实战系列(二)——— Encoder | Decoder | Handler 的使用 Netty在Android开发中的应用...

2019-09-21 22:58:02 829 0

原创 Netty在Android开发中的应用实战系列(三)——— 心跳处理 | 断线重连

阅读本文建议从第一篇开始往后看 本系列文章 Netty在Android开发中的应用实战系列(一)——— 搭建服务端与客户端 Netty在Android开发中的应用实战系列(二)——— Encoder | Decoder | Handler 的使用 一、客户端添加心跳处理 这里...

2019-09-19 22:51:48 730 0

原创 Netty在Android开发中的应用实战系列(二)——— Encoder | Decoder | Handler 的使用

阅读本文建议从第一篇开始往后看 本系列文章 Netty在Android开发中的应用实战系列(一)——— 搭建服务端与客户端 一、Encoder的作用 将发送的数据进行编码成需要的数据格式,然后发送出去 二、Decoder的作用 将收到的数据根据数据协议进行解码,然后...

2019-09-15 17:30:13 516 1

原创 Netty在Android开发中的应用实战系列(一)——— 搭建服务端与客户端

一、简单的介绍一下Netty 官网地址:https://netty.io 官网Jar包下载:https://netty.io/downloads.html Jar包也可以去mvnrepository下载:https://mvnrepository.com/artifact/io.nett...

2019-09-14 17:44:12 1995 1

原创 Android自定义输入车牌号键盘、车牌简称 | 数字 | 字母键盘

为了便于用户快捷的输入车牌号码便需要自定义个车牌键盘,而不是使用系统的键盘输入,上效果图: 横屏效果 竖屏效果 一、首先我们要来分析一下需要做哪些东西 默认展示车牌的省份简称 特殊车牌(使、领、警、港、澳) 删除键 切换为数字和字母按键 车牌号中...

2019-08-31 15:45:59 1115 0

原创 记一次BLE(低功耗蓝牙)扫描周围设备慢的一个坑

BluetoothManager bluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE); bluetoothAdapter = bluetoothManager.getA...

2019-08-22 23:32:34 873 0

原创 Android通过蓝牙(BLE低功耗蓝牙)实现设备间通讯 | 客户端 | 服务端

这篇文章主要说的是通过BLE(Bluetooth Low Energy)蓝牙来实现一个聊天的效果;通常我们使用这个BLE都是手机去连接一些智能设备或者智能硬件然后进行通讯,也就是手机充当客户端,智能设备充当服务端;很少有用到通过BLE让两个手机进行通讯,手机既可以充当客户端也可以充当服务端 一、...

2019-07-28 12:07:57 413 0

原创 Android应用上架国内各大应用市场对应用Logo、应用截图要求整理

这里我整理的一些比较多人使用的一些应用市场,当然还有一些遗漏的欢迎大佬们补充 对于国内的应用市场环境,突然好羡慕AppStore、Google Play 说多了都是泪… 上架大家一定要在上线前一两个月去申请软著、软著、软著 腾讯应用宝(需要软著) 上架流程 应用小图标:尺寸16*16px,大小2...

2019-07-03 14:58:10 2971 5

原创 使用python生成微信好友个性签名词云图

生成词云主要使用了itchat、jieba、wordcloud这三个依赖库 itchat itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。 jieba “结巴”中文分词:做最好的 Python 中文分词组件 wordcloud 词云图,也叫文字云,是对文本中出现频率...

2019-06-21 14:30:00 522 1

原创 Android集成高德地图导航SDK、实现App内进行导航、打开高德App导航

这篇文章就主要来讲一下集成高德的导航SDK,实现app内导航;这样就不用调用高德的App了 一、申请key之类的这里就不说了自己去申请就ok 高德开放平台 高德开放平台—导航sdk 高德开放平台—导航sdk下载 二、我这下载的SDK如下,只有3D地图和导航SDK这两个 三、配置工程导入导航S...

2019-06-04 18:23:23 4189 7

原创 浅谈Java设计模式之——抽象工厂模式

上一篇文章我们介绍了一下简单工厂模式,这一节就接着来说抽象工厂模式 浅谈Java设计模式之——简单工厂模式 一、什么是简单抽象工厂模式 抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的...

2019-05-27 23:48:36 384 0

原创 浅谈Java设计模式之——简单工厂模式

简单的介绍一下简单工厂模式的概念: 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式;通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类 从介绍我们就可以提炼出一些特点: 每一个实例具有共同的父类 一个特定的类来负责创建其它类的实例 现在我们...

2019-05-26 17:03:04 324 2

原创 关于ObjectAnimator的rotationX、rotationY在部分华为设备上消失的问题

吐槽一下HUAWEI,你为什么要这么的秀 高高兴兴的写了个绕Y轴旋转的动画,运行一下完美展示 ObjectAnimator animator = ObjectAnimator.ofFloat(imageView, "rotationY", 0, 360f); animator....

2019-04-25 15:39:33 916 4

原创 Android DataBinding 你好!

一:使用DataBinding的第一步,只需要在app/build.gradle开启它 android { compileSdkVersion 28 defaultConfig { applicationId "azhon.com.viewbind...

2019-02-26 20:52:09 1059 0

原创 Android JTT 808-2011 道路运输车辆卫星定位系统终端通讯协议及数据格式

关于JTT 808数据协议这一块网上资料还是比较少的,而且做的人也少;所以无形给不熟悉的开发人员带来了很大的难度,所以这篇文章也就将我自己经历的一个808项目写出来分享给大家。 一:首先先介绍一下这个JTT808 全称:JTT 808-2011 道路运输车辆卫星定位系统终端通讯协议及数据格式 ...

2018-12-19 11:38:19 1768 2

原创 Android开发Gradle高级技巧、自定义Gradle Task、打包完成自动签名、执行Shell脚本

先说下为什么有这篇文章吧,最近在写一个应用需要进行系统签名;每次我都需要先将apk生成然后使用sign.jar和系统证书进行签名,非常的麻烦而且tmd还是搞两个系统也就是每次都需要用两个系统证书分别进行签名… 一:每次我都需要两个不同的设备的安装包,所以我使用多渠道打包这样每次进行打包都会给我生...

2018-12-18 16:07:10 3014 1

原创 《Android开发艺术探索》IPC机制初认识

Android IPC 简介     IPC是Inter-Process Communication的缩写,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。说起进程间通信,我们首要理解什么是进程,什么是线程...

2018-12-07 15:53:07 175 0

原创 《Android开发艺术探索》Activtiy的生命周期

一:Activity的生命周期 正常情况下启动一个Activity的生命周期: onCreate、onStart、onResume、onPause、onStop、onDestory 这里说一下每一个生命周期函数的描述 onCreate 表示Activity正在创建,这这个函数中我们一般是做初...

2018-12-07 15:49:22 145 0

原创 解决Mac连接RIOCH(理光)打印机无法打印问题

所使用的打印机型号:RICOH Aficio MP C4502A 与官方技术人员联系说 Mac不支持打印彩色的内容,只能打印黑白;Windows是可以打印彩色的…(只能默默说句fuck the printer) 连接方式如下: 第一步:进入系统偏好设置,点击打印机与扫描仪 ...

2018-12-03 17:24:12 12407 3

原创 一个你无法处理的Exception ——— GirlFriendNotFoundException

今天又到了一年一度的程序员节了(10.24),在这里祝广大的程猿/媛 们升职加薪 早日迎娶白富美!哈哈哈… 话说回来你想找个女朋友不存在的 好了回到正题上 talk is cheap, show me the code! try { Girl girl = new Girl...

2018-10-24 13:04:04 748 2

原创 使用Python3开发的一款Android截屏神器

Android设备截屏利器 只需要一根数据线将手机连上电脑(已打开USB调式并已允许调试) 便可以在电脑上轻松的对手机进行截屏了,再也不需要先截个图然后登录个QQor微信将截屏发送至电脑了。同时支持`Windows`和`Mac`平台哦 需要安装Python3.7 不会安装的话网上找找...

2018-08-28 21:59:52 1088 0

原创 Python学习之——使用pymysql对数据库进行操作

今天就来简单的学习一下通过pymsql依赖库,对MySQL数据进行一些基本的操作 pymsql源码地址 pymsql文档地址 安装pymsql依赖库 $ pip install pymsql 一:我们先创建好一个数据库并建立一个简单的表结构 创建数据库选择utf8...

2018-08-13 15:31:02 633 0

原创 通过Python实现一个简单的爬虫——获取掘金网站文章列表

先来看下实现的结果 掘金文章爬虫源码 这里通过python命令直接运行我们的爬虫程序,很轻松的就获取到了网站首页的第一页文章(爬取的Android分类下文章),当然代码量也是只有几十行。 一: 首先我们要获取到我们要爬取的地址,然后通过分析网站返回的网页或者json数据来获取我们需要...

2018-08-11 21:00:04 1895 2

原创 Android Studio —— 多服务端接口地址打包技巧

Android开发中必不可少的就是向服务端请求数据,服务端小伙伴就会给你一个URL(http://192.168.1.194:8080)这样 你就可以愉快的进行开发;但是随着app的开发然后又多了外网测试地址、正式地址等等…. 所以这篇文章就来说说,如何优雅的管理项目中各种接口地址 我这里使...

2018-07-26 11:06:31 941 2

原创 Andorid进程间通信(IPC)——Messenger

Messenger可以翻译为信使,通过它可以在不同的进程中传递Message对象,在Message中放入我们需要传递的数据, 这样就可以轻松的实现进程间通信了 Android中的 IPC 方式 1.使用Bundle 2.使用文件共享 3.使用Messenger 4.使用AIDL 5.使...

2018-07-11 15:12:02 238 0

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