Android
文章平均质量分 61
SoldierJazz2021
横眉冷对千夫指,俯首甘为扫地僧。
展开
-
Android 对话框(Dialog)大全 建立你自己的对话框
Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog).转载 2016-10-17 13:19:08 · 714 阅读 · 0 评论 -
安卓USB开发教程 <二> USB Host
USB Host(主机模式)当 Android 设备处于 USB 主机模式时,它充当 USB 主机,为总线供电,并枚举连接的 USB 设备。Android 3.1 及更高版本支持 USB 主机模式。API 概述在开始之前,理解需要使用的类是很重要的。下表描述了 android.hardware.usb 包里的 USB 主机 API 函数。Table 1. USB Hos原创 2017-06-27 11:50:26 · 2222 阅读 · 0 评论 -
安卓USB开发教程 <三> USB Accessory
USB Accessory(配件模式)USB 配件模式允许用户连接专为 Android 设备设计的 USB 主机硬件。配件必须遵守 Android Accessory Development Kit 文档中列出的 Android 配件协议。 这使得 Android 设备无法充当 USB 主机时仍然可以与 USB 硬件交互。 当 Android 设备处于 USB 配件模式时,所连接的 A原创 2017-06-28 16:39:23 · 7014 阅读 · 0 评论 -
JAVA循环队列
关于自定义循环队列的实现原理和要点可以参见之前的博文系列:循环队列及C语言实现。这里主要对JAVA下的具体实现方式与原理进行说明。一、JAVA 中已经自带了 Queue、DQueue、ArrayList、LinkedList 等常用的数据结构,为什么还要单独实现循环队列?之所以使用自定义循环队列,出发点还是基于我们在实际应用中对于数据处理各种各样的需求。使用自定义数据结构的好处就在于可以更原创 2017-09-15 15:25:44 · 4401 阅读 · 2 评论 -
Android开发如何使用JNA
在非安卓的平台上,一般我们直接使用这两个 jar 包就可以轻松使用 JNA 并进行安卓开发了。在安卓上由于这两个 jar 包默认没有对应安卓版本的 libjnidispatch.so 文件,因此我们需要从 jna master 中提取该文件并对 jna.jar 文件进行改造,或者使用 jna-min.jar 文件。原创 2017-08-07 19:48:18 · 7260 阅读 · 11 评论 -
frameworks/av/media/CedarX-Projects/CedarAndroidLib/LIB_KK44_/Android.mk: No such file or directory
在安卓系统编译过程中如果遇到上述或者与之类似的错误,可以采取相同的处理方法进行解决。直接进入到 CedarAndroidLib 目录下,也即此例中的 frameworks/av/media/CedarX-Projects/CedarAndroidLib。看一下当前文件:注意第9行为包含标题中报错的那个 Android.mk 文件。可见为此步骤出错,上述字符串定义如内容所示,查看上级目录原创 2017-09-30 10:59:23 · 2617 阅读 · 2 评论 -
Android 系统使用USB OTG功能/打开USB Host API功能
步骤一:确定 Android 设备是否支持 USB Host 功能,具体可以通过以下步骤进行确认:1. 查看手机或平板设备参数,或者直接联系厂家咨询;2. 使用 UsbHostDiagnostics.APK 安卓应用软件直接进行检测,汉化版软件名称为:USB 主机诊断;步骤二:确认系统是否包含 USB Host API 相关的库文件,习惯也称驱动文件。存放路径为:/system/lib。可以通过手机助手工具或者直接使用“adb shell”连接手机,进入该目录进行查看,以我的手机为例,通过 adb原创 2017-05-02 19:51:47 · 23397 阅读 · 16 评论 -
安卓App报错:android.os.FileUriExposedException
安卓7.0开始,不再允许在App中把 file://Uri 暴露给其他App,因此在代码中需要做下版本判断,在7.0版本及以上需要使用 FileProvider 生成 content://Uri 来代替 file://Uri。同时安卓工程需要做以下调整:1、在 AndroidManifest.xml 的 application 标签页下增加 provider 声明 <applicati...原创 2018-06-29 09:54:38 · 862 阅读 · 0 评论 -
Android/Linux 系统添加对多点触摸屏的支持
含有 HID 多点触摸控制器的触摸屏、触摸板在 Android 和 Linux 内核中都是由 "hid-multitouch" 驱动进行支持的。因此如果你的系统连接触摸屏没有反应,问题基本都出于驱动未加载或者与触摸屏的 VID 与 PID 不适配。以下分情形讨论:1、系统中已存在“hid-multitouch”驱动 若“hid-multitouch”驱动是以内核模块的方式存在于系统里...原创 2018-07-06 09:52:12 · 4810 阅读 · 8 评论 -
安卓获取屏幕最大(绝对)分辨率
安卓开发时,在很多应用场景需要获取手机屏幕的真实分辨率,然而查阅了大部分博客提供的获取方法发现获取方法并不对。下面几种常用的方法(错误)和最终正确获取的方法均会展示在下面。实验场景:Activity(隐藏或不隐藏状态栏、虚拟导航栏等场景)、Service 中。错误方法一:DisplayMetrics metrics = new DisplayMetrics();getWindowM...原创 2018-12-14 14:00:45 · 2468 阅读 · 7 评论 -
安卓BLE开发教程(一) BLE基础
我试图以一种简单的方式去把重要的事情讲清楚。目的是希望BLE协议栈和基础概念简单化,让自己及类似的安卓开发者可以在较短的时间内把握住BLE的核心及使用方法。BLE本身很复杂,但对于安卓开发而言只要抓住一些核心点,便已足够。如果你想全面了解BLE协议栈,包括分层及每层功能,那么你从这里可能得不到答案。1、BLE协议栈层次然而,安卓BLE开发不用理解如此复杂的分层结构。因为我们不是在开发B...原创 2018-12-20 15:50:50 · 4890 阅读 · 0 评论 -
安卓USB开发教程 <一> USB Host 与 Accessory
安卓通过两种模式:USB Accessory 与 USB Host 模式支持多种 USB 外设与安卓 USB 配件(实现安卓配件协议(AOA协议)的硬件)。在 USB 配件模式下,外部 USB 硬件充当 USB 主机。配件实例可能包含机器人控制器、扩展坞、诊断和音乐设备、售货亭、读卡器以及更多。这赋予了没有主机能力的安卓设备与 USB 硬件交互的能力。 Android USB 配件必须设计为与原创 2017-06-26 17:57:15 · 1967 阅读 · 0 评论 -
安卓之USB主机(Host)与配件(Accessory)模式
安卓设备与USB硬件通讯时有两种模式可以选择:USB Host 模式与 USB Accessory 模式。从 USB 逻辑角色来说,USB Host 模式是指安卓设备作为 USB 主机,所有活动均由安卓设备发起;USB Accessory 模式是指安卓设备作为 USB 设备,由连接的 USB 硬件做 USB 主机,此时该 USB 主机也称为 USB Accessory。首先来看下,安卓官方对于这两原创 2017-06-26 14:52:27 · 2993 阅读 · 0 评论 -
Eclipse: select at least one project
在Eclipse导入工程的时候如果遇到这种错误,一般是由于当前导入操作的工程名与Eclipse中已经导入的工程名重复所致。此时需要打开当前工程列表,删除重名目录即可: PS: Window -> Show View -> Project Explorer 打开工程列表。原创 2016-10-17 16:50:18 · 582 阅读 · 0 评论 -
Unable to execute dex: Multiple dex files define 解决方法
程序编译正常,在用Eclipse调试执行时,报错 Unable to execute dex: Multiple dex files define,总结了一下出现问题的场景,并根据以下使用场景进行分类。如果是jar包添加或者引用问题,那么可以尝试: 方法一: 原因是有重复的包。jar被引用,可以查看你的build path,尤其是Android Dependencies一定有重复引入原创 2016-12-06 13:26:20 · 559 阅读 · 0 评论 -
Android开发之Handler
Handler 定义与作用主要接受子线程发送的数据, 并用此数据配合主线程更新UI。解释:当应用程序启动时,Android 首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI控件,进行事件分发,比如说,你要是点击一个 Button,Android 会分发事件到 Button 上,来响应你的操作。如果此时需要一个耗时的操作,例如: 联网读取数据,或者读取本地较大的一个文件的转载 2017-05-08 10:24:36 · 469 阅读 · 0 评论 -
Android日志Log使用
Android开发中日志工具的使用是十分重要的,可以帮助我们定位和查找程序执行的问题,了解程序执行过程等。这里以 Eclipse 下的的安卓开发为例进行说明。打开 LogCat 功能首先,确保 Eclipse 软件中已经打开了日志工具 LogCat 功能,如果在下方工具栏没有,可以点击 Eclipse 导航栏中的 Window->Show View->Other,此时会弹出一个 Show原创 2017-05-08 20:05:40 · 5392 阅读 · 0 评论 -
快速解决 Android SDK Manager 无法下载或者下载速度慢
在这里以 Windows 下的 Android SDK Manager 为例,其他系统下与此类似,只会存在部分工具栏名称不同的情况,不明之处可以追问。下面就进入具体配置流程:1. 选择 Tools-> Options 进入代理设置。代理设置选项,在 HTTP Proxy Server 栏输入:mirrors.neusoft.edu.cn,在HTTP Proxy Port 栏输入:8原创 2017-06-02 09:28:24 · 1588 阅读 · 0 评论 -
安卓USB开发教程 <五> 安卓 AOA 1.0
Android Open Accessory Protocol 1.0(AOA 协议 1.0)Android USB 配件必须遵从 Android Open Accessory(AOA)协议,该协议定义了配件如何检测和建立与 Android 设备的通信。配件应执行以下步骤:等待并检测连接的设备确定设备的配件模式支持尝试以配件模式下启动设备(如果需要)如果设备支持 AOA,与设备原创 2017-07-10 11:13:10 · 2516 阅读 · 0 评论 -
安卓USB开发教程 <六> 安卓 AOA 2.0
Android Open Accessory Protocol 2.0目录Detecting AOAv2 supportAudio supportHID supportInteroperability with AOAv1Connecting AOAv2 without an Android app目录检测AOAv2支持音频支持H翻译 2017-07-10 19:58:33 · 3773 阅读 · 0 评论 -
Android ADB
Android 调试桥本文内容adb 的工作方式在您的设备上启用 adb 调试通过 WLAN 连接到设备查询设备将命令发送至特定设备安装应用设置端口转发将文件复制到设备/从设备复制文件停止 adb 服务器adb 命令参考发出 shell 命令调用 Activity Manager (am)调用软件包管理器 (pm)进行屏幕截图录制视频读取应用的 ART 配置翻译 2017-07-03 11:50:25 · 870 阅读 · 0 评论 -
轻松访问 Android 系统源码与下载
有时研究 Android 某个特性或者协议的时候需要参阅安卓系统源代码中代码实现或者协议文档等。通过正常的建立 repo,git 获取十分耗时,并且速度很慢,除非是需要重新编译系统,定制系统才需要这样做。因此,推荐一个 Android 系统网站,可以轻松访问,下载参考需要的文档即可。首先进入网站:http://www.androidxref.com ,界面如下所示:之后选择我们需要的原创 2017-07-04 19:02:23 · 841 阅读 · 0 评论 -
安卓系统源代码下载(官方教程)
下载源代码Android 源代码树位于由 Google 托管的 Git 代码库中。Git 代码库中包含 Android 源代码的元数据,其中包括与对源代码进行的更改以及更改日期相关的元数据。本文档介绍了如何下载特定 Android 代码流水线的源代码树。要从特定设备的出厂映像开始,请参阅选择设备版本。安装 RepoRepo 是一款工具,可让您在 Android翻译 2017-07-04 19:27:01 · 2933 阅读 · 0 评论 -
安卓BLE开发教程(二) BLE开发流程
在安卓上进行BLE开发时,就不必像理解BLE协议栈那样复杂了。因为安卓的BLE包为我们提供了十分丰富的API、各类常量、各类连接通信情况下的回调API等。具体流程一、声明权限二、获取Adapter适配器三、开启蓝牙四、BLE扫描与停止五、连接设备六、枚举特征值及其属性七、利用特征值通讯八、关闭蓝牙一、声明权限在AndroidManifest.xml文件中...原创 2018-12-20 18:33:58 · 1941 阅读 · 0 评论