DQ Blog

Never leave that until tomorrow , which you can do today .

Android 蓝牙的一些使用心得

最近在搞蓝牙串口开发,由于此前对蓝牙这块接触较少,所以在写项目时碰壁不少。在查阅了不少大神写的Android蓝牙项目技术文章后,于是写下本篇文章,算是自己这段时间对蓝牙些许了解的一个总结吧。 注:本篇章只介绍经典蓝牙,想了解低功耗蓝牙的请出门左转,哈哈~~~ 蓝牙开发的基本流程为:开启-》搜索-》配对-》连接-》数据交换。其中配对成功之后系统会自动执行连接操作。 权限 为了后面...

Chrome插件:请开始你的表演,smartup手势骚操作

layout: post title: Chrome插件:请开始你的表演,smartUp手势骚操作 subtitle: date: 2019-12-09 author: dingqiang.l header-img: img/post-2019-12-09.jpg catalog: true tags: - 工具 — 故事背景 一...

Android Studio Debug 断点调试,各种骚操作都在这里了

Android Studio中的断点调试功能很好用,可谓是强大,用的好,不仅可以一定程度上提高开发进度,还能提高逼格。首先从最开始的来吧。 启动Debug 启动Debug有两种方法,一是Debug启动APP;二是Attach Debugger。 方法一和Run App操作类似,点击之后会项目会运行在我们的设备上,然后就可以开始后面的调试了; 方法二的前提是我们的项目必须已经运行过,...

Android GreenDao入门使用

最近负责的项目有需要用到数据库,原生sqlite写起来太麻烦了,所以找了用户群比较多的GreenDao和DBFlow,几经对比,最终选择了GreenDao。话不多说,开搞。 官方文档 先来看看GreenDao的用法,打开 GreenDao GitHub地址,可以看到目前最新版本是3.2.2。根据文档先将依赖添加到我们的项目。 开始配置 1、配置project下的build.gradle ...

TextUtils,你该认真了解一下了

    平时写项目,一般都会对文本进行一些简单的操作,比如判空、截取、替换等。看到这里,我们首先想到的一般是Java中的一些常用API,如isEmpty() 、substring(beginIndex)、replace(oldChar, newChar),这些方法固然是在我们使用到的时候首先想到的,但是今天我要介绍的是Android中的TextUtils,看看它到底有什么值得我们去使用的,直...

apk重新签名

准备工作 首先假设我的keystore证书别名和密码如下: key store password : android key alias : myandroid key password :android 要重新签名的文件:unsigned.apk 工具介绍 1、jarsigner:jarsigner是JDK提供的针对jar包签名的通用工具,位于JDK/bin/jarsigner.ex...

adb logcat 免配置环境变量,免安装,开箱即用

以前有写过一篇adb常用命令的使用和环境变量配置,详见此文章。基于此,现在分享一个非常好用的抓取日志的小工具。注意:该工具免配置环境变量,免安装,开箱即用 一、准备工作 首先我们先准备adb相关文件,保存在adb文件夹下,如下: 然后在adb文件夹同级目录新建一文本编辑这么一段代码。将文件保存为bat格式文件。 @echo off title 输出日志到文件 echo 【提示】 ech...

RxJava—过滤操作符

过滤即观察者只接收过滤的数据,跳过即不发送 filter /** * 指定数据条件过滤 */ private void filter() { Observable .just(1, 2, 3) .filter(integer -> { Log.d(TAG, "过滤数据为:2"); ...

RxJava—组合操作符

concat /** * 组合多个被观察者一起发送数据,合并后 按发送顺序串行执行 */ private void concat() { Observable.concat( Observable.just("a", "b"), Observable.just("c", "d"), Observable.j...

RxJava—线程调度

在Android大环境下,耗时操作在工作线程中执行,UI操作的主线程中执行,使用RxJava的线程调度,可以轻松切换线程。 1、被观察者(事件源,数据发送事件…),由于可能会进行网络访问、IO读写等较耗时的操作,因此改操作应在工作线程中执行。 2、观察者(事件接受处,响应事件),此处操作是响应被观察者的操作,并不耗时,所以在UI线程中执行。 /** * 线程切换 */ priv...