SoldierJazz的专栏

从铿锵的历史中,寻找经典;从凝血的经典中,检索未来的通途!

安卓BLE开发教程(二) BLE开发流程

在安卓上进行BLE开发时,就不必像理解BLE协议栈那样复杂了。因为安卓的BLE包为我们提供了十分丰富的API、各类常量、各类连接通信情况下的回调API等。 具体流程 一、声明权限 二、获取Adapter适配器 三、开启蓝牙 四、BLE扫描与停止 五、连接设备 六、枚举特征值及其属性 ...

2018-12-20 18:33:58

阅读数 130

评论数 0

安卓BLE开发教程(一) BLE基础

我试图以一种简单的方式去把重要的事情讲清楚。目的是希望BLE协议栈和基础概念简单化,让自己及类似的安卓开发者可以在较短的时间内把握住BLE的核心及使用方法。BLE本身很复杂,但对于安卓开发而言只要抓住一些核心点,便已足够。如果你想全面了解BLE协议栈,包括分层及每层功能,那么你从这里可能得不到答案...

2018-12-20 15:50:50

阅读数 141

评论数 0

安卓获取屏幕最大(绝对)分辨率

安卓开发时,在很多应用场景需要获取手机屏幕的真实分辨率,然而查阅了大部分博客提供的获取方法发现获取方法并不对。下面几种常用的方法(错误)和最终正确获取的方法均会展示在下面。 实验场景:Activity(隐藏或不隐藏状态栏、虚拟导航栏等场景)、Service 中。 错误方法一: Displa...

2018-12-14 14:00:45

阅读数 215

评论数 7

Android/Linux 系统添加对多点触摸屏的支持

    含有 HID 多点触摸控制器的触摸屏、触摸板在 Android 和 Linux 内核中都是由 "hid-multitouch" 驱动进行支持的。因此如果你的系统连接触摸屏没有反应,问题基本都出于驱动未加载或者与触摸屏的 VID 与 PID 不适配。以下分...

2018-07-06 09:52:12

阅读数 1424

评论数 7

安卓App报错:android.os.FileUriExposedException

安卓7.0开始,不再允许在App中把 file://Uri 暴露给其他App,因此在代码中需要做下版本判断,在7.0版本及以上需要使用 FileProvider 生成 content://Uri 来代替 file://Uri。同时安卓工程需要做以下调整:1、在 AndroidManifest.xm...

2018-06-29 09:54:38

阅读数 334

评论数 0

解决 Windows Update 更新错误/无法创建还原点 代码 0x80246008

这个问题在我的电脑上由来已久,但是大部分的更新工作可以由其他第三方软件来完成,所有有时候得过且过。但同时,有一些棘手的问题,会提示系统进行 Windows Update,只有硬着头皮解决了。如果你遇到了“系统无法创建还原点”,也可以参考此博客。1. 一般更新出现 80246008 是由于 BITS...

2018-03-03 18:08:36

阅读数 1208

评论数 0

中标麒麟/NeoKylin 安装QT开发环境

1. 如果你对中标麒麟系统安装有疑问,请阅读上一篇文章:《中标麒麟/NeoKylin U盘安装系统》。2. 进入系统打开终端,以 root 模式操作。<1> yum install gstream* libXext-devel libX11-devel ...

2018-02-13 11:51:34

阅读数 1725

评论数 1

中标麒麟/NeoKylin U盘安装系统

这里以 NeoKylin6 为例,其他版本与此相类似大同小异。但是下载指定版本的镜像时要注意配合该版本的软件包是否充足,不然就会遇到安装好系统很多软件无法安装或更新的情况。1. 官方下载地址:http://download.cs2c.com.cn/neokylin/desktop/releases...

2018-02-13 11:41:58

阅读数 6223

评论数 1

USB OTG 的进一步理解

一直以来在做安卓系统相关的嵌入式通讯(USB、BLE、网络、串口等),最近在讨论 OTG 问题的时候,对该规范又重新理解了一次,这里仅做一些概要和核心点说明,下方会给出具体 OTG 包含协议的参考链接,大同小异就不多赘述了。1. 硬件接口与传统的 4 线USB接口不同,OTG接口除了 VCC、GN...

2018-02-06 14:50:29

阅读数 774

评论数 0

Vmware提示:the operation was canceled by the user

一般遇到这种情况是由于当前虚拟机资源中的资源文件被其他进程占用导致的。如果你的系统中有 DAEMON Tools Lite 软件,那么多半是因为这个原因。因此下面针对此情况提出两种解决办法:1. 检查有无安装 DAEMON Tools Lite 软件,若安装此程序,打开任务管理器,显示所有进程,找...

2017-12-08 11:15:47

阅读数 2335

评论数 0

Windows与Linux下tftp服务的使用

tftp 协议是基于 udp 的,轻量小巧,用在局域网和嵌入式上很顺手。大部分帖子把在 linux 上配置的过程描述的过于复杂,其实只是个工具而已。研究协议抓下包对比协议内容也可以满足需求了,下面进入正文。分别讲下在 linux 以及 windows 环境下的tfpd使用教程。1. windows...

2017-12-06 15:22:35

阅读数 2341

评论数 1

《言简意赅之Linux设备驱动编程》 前言

linux 内核与驱动开发是一门很深的学问,主要是由于覆盖知识面较广、内核架构设计层级较深、软硬件知识要兼具。因此自己在学习理解时会经常遇到某一章节需要反复阅读理解多次。所以,我想用一种言简意赅的方式讲述 Linux 内核与设备驱动开发。我认为把一个概念阐述的比较言简意赅的关键在于抽象与从宏观角度...

2017-11-13 20:11:36

阅读数 467

评论数 0

frameworks/av/media/CedarX-Projects/CedarAndroidLib/LIB_KK44_/Android.mk: No such file or directory

在安卓系统编译过程中如果遇到上述或者与之类似的错误,可以采取相同的处理方法进行解决。直接进入到 CedarAndroidLib 目录下,也即此例中的 frameworks/av/media/CedarX-Projects/CedarAndroidLib。看一下当前文件: 注意第9行为包含...

2017-09-30 10:59:23

阅读数 1274

评论数 1

VMware 虚拟机占用磁盘空间

使用VMware创建的虚拟机尽管已经设定分配的磁盘大小,但仍然会发现虚拟机占用的磁盘空间会越来越大,而直观体现就是虚拟机系统文件 vmdk 不断增大。因此下面介绍一个简单的方法,使用 VMware 自带的工具对 vmdk 文件进行压缩以节省磁盘空间。拿我的系统为例: 如果有很多 vmdk 文件...

2017-09-30 10:22:10

阅读数 2949

评论数 2

JAVA循环队列

关于自定义循环队列的实现原理和要点可以参见之前的博文系列:循环队列及C语言实现。这里主要对JAVA下的具体实现方式与原理进行说明。 一、JAVA 中已经自带了 Queue、DQueue、ArrayList、LinkedList 等常用的数据结构,为什么还要单独实现循环队列? 之所以使用自定义循...

2017-09-15 15:25:44

阅读数 2301

评论数 2

Android开发如何使用JNA

在非安卓的平台上,一般我们直接使用这两个 jar 包就可以轻松使用 JNA 并进行安卓开发了。在安卓上由于这两个 jar 包默认没有对应安卓版本的 libjnidispatch.so 文件,因此我们需要从 jna master 中提取该文件并对 jna.jar 文件进行改造,或者使用 jna-mi...

2017-08-07 19:48:18

阅读数 3328

评论数 11

Java 结构体之 JavaStruct 使用教程<三> JavaStruct 数组进阶

经过前面两篇博客的介绍,相信对于 JavaStruct 的认识以及编程使用,读者已经有一定的基础了。只要理解和实践结合起来,掌握还是很容易的。下面进行一些数组使用方面的实例说明及演示。 在结构体类中使用数组有几种方式,可以使用静态指定大小的方式也可以通过使用 ArrayLengthMaker 进行...

2017-07-21 18:07:55

阅读数 4212

评论数 5

Java 结构体之 JavaStruct 使用教程<二> JavaStruct 用例分析

使用环境 前一篇在介绍 JavaStruct 类时指定了使用库使用环境为 Java 5 及以上,也即开发我们使用的 JDK 版本为1.5及以上就可以了。以下讲解的用例可以直接将 code 直接粘贴到 java 的 main 函数中执行就可以了,后面会给出测试用例和结果。 使用方法 JavaStru...

2017-07-21 14:23:21

阅读数 14835

评论数 6

Java 结构体之 JavaStruct 使用教程<一> 初识 JavaStruct

Javastruct 是什么 简而言之,Javastruct 是一个第三方库,用于像处理 C 或者 C++ 结构体那样处理 java 对象。也即利用 Javastruct 可以在 java 上实现类似于结构体的功能和操作。 Javastruct 的用途 在 java 或者 Android 应用程序...

2017-07-20 18:06:30

阅读数 4476

评论数 1

Linux 驱动编译报错:error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]

编译驱动时遇到这个错误提示,表示当前编译环境中将关于 DATE 以及 TIME 的警告也作为错误来进行处理的。有如下几种方法可以参考: 1. 在编译驱动的相应 Makefile 中增加一行:CFLAGS += -Wno-error=date-time,然后保存重新 make; 2. 若 CFL...

2017-07-17 11:32:18

阅读数 3773

评论数 0

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