笔者公司有做收集指纹的业务,用的是设备中心提供的一些so库和jar包,因为有很多地方有用到,为了不导致复制粘贴,就封装了一下代码,也想借此机会,来简单谈谈业务与操作代码分离的思想。 1、先定义借口类Fingerprint…
分类:Android
Java基础——BlockingQueue源码分析之LinkedBlockingQueue
BlockingQueue是什么 BlockingQueue是一个阻塞队列的接口 BlockingQueue是线程安全的 BlockingQueue具有先进先出的特点 当队列满的时候进行入队操作会阻塞,当队列空的时候进行…
Kotlin 基础-程序结构(上)
Kotlin 基础-程序结构(上) 一、常量与变量 1.1 类型推导 在 Kotlin 中,只要是编译器认识的类型,就可以自动推导出变量的类型,不需要我们显示的指定。 val a = "fancyluo" //推导 St…
全面理解Gradle - 定义Task
Task可以理解为Gradle的执行单元,实在是太重要了。根据前面的分析,Gradle通过一个个task来完成具体的构建任务,下面我们来看下Task的定义。 最简单直接,通过如下方式来定义: task myTask { …
自定义View(一)可拖拽的悬浮控件
可拖拽的悬浮控件是个比较常见的很简单的效果,主要知识点: 1.View的简单自定义,onDraw的重写等 2.View事件的简单应用 我们在这个可拖拽的View上加个黄色的线,简单操作下这个View的样子,另外,给这个拖…
嵌入式知识总汇
欢迎提供意见和建议 嵌入式工程师 硬件核心(Hardware Core) Controller(控制器) CPU AMD x86 x64 Intel x86 x64 MCU MCS-51 HCS12 AVR XMEGA …
安卓自定义view(四) - 绘制
draw是view的初始化的最后一步,完成绘制,view就会展示到我们眼前。 在经过measure和layout方法后,view的大小和位置已经确定了。那么接下来,就需要把view展示出来。 draw过程简析 在draw…
Android 后台任务型App多进程架构演化
什么是后台任务型app 类似音乐、录音机,需要用户长时间在后台使用的产品 背景: 笔者之前的项目一直在做跑步app, 用户的场景是这样的,用户开启跑步模式后,我们需要监听Gps 信号来统计用户的运动数据,包括距离,配速,…
魅族手机实时收集log
按照一下方法获取: 1.拨号盘输入*#*#3646633#*#* ,进入工程模式【EngineerMode】 2.侧滑进入【Log and Debugging】Tab,选择MTKLogger 3.点击下方播放按钮 4.b…
Android Service学习(一)
前言 在整理Android蓝牙开发的过程中,会用到后台播放音乐的功能,需要与service进行交互,因此对service作一个笔记,对以前未注意的细节作一次梳理。 一、service的基础知识 1.1 service的两…
Android中的Secret Code
在Android手机中输入*#*#4636#*#*就会弹出一个界面,显示手机的相关信息,这个功能叫Secret Code。实现原理就是向系统发送一个Broadcast Receiver。 哈哈 当然我们也可以自己实现一个…
Android Sqlite并发问题
背景 我们的项目中使用的是ormlite的加密框架sqlcipher来进行数据库操作的 多进程操作同一个数据库文件出现了问题 net.sqlcipher.database.SQLiteException: error c…