使用Xamarin开发移动应用示例——数独游戏(六)使用数据库
项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu 。代码随项目进度更新。 现在我们希望为应用增加更多的功能,比如记录每个完成的游戏,可以让用户自己添加新的数独游戏等等,这些功能需要数据库的支持。我们使用Sqlite数据库保存游戏的数据。Sqlite是 ...阅读全文
项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu 。代码随项目进度更新。 现在我们希望为应用增加更多的功能,比如记录每个完成的游戏,可以让用户自己添加新的数独游戏等等,这些功能需要数据库的支持。我们使用Sqlite数据库保存游戏的数据。Sqlite是 ...阅读全文
通信硬件NFC的文章,虽然可以在Android系统中通过非直接接触的形式与支持NFC硬件的设备通信,但是也只能交互一些简短的标签内容,对大量的持续性数据,却并不能很好的支持。因此针对这个弊端,可以考虑使用支持Bluetooth技术的硬件。 Android系统支持传统的Bluetooth技术,其实现功 ...阅读全文
在上篇文章介绍了接入式USB硬件的简单使用,接下来将介绍不依赖物理连接的硬件通信了。本文的重点是近距离通信的硬件NFC。 ###NFC硬件 应用程序中可以通过NFC硬件读取或发送指定协议的技术实现,在Android10.0之前甚至可以封装大段的NDEF数据。另外,Android系统基于NFC的特性, ...阅读全文
在硬件交互的首篇对设备硬件的分类中,互联通信系列硬件主要用来与其他设备进行数据交互。从本文开始,将重点介绍该系列相关硬件。 ##互联通信系列硬件 根据硬件的可通信距离,由近及远分为USB、NFC、蓝牙、WLAN,SIM卡槽,这些硬件之间的功能原理及关系可以查找其他资料详细学习。总之,他们为当前设备与 ...阅读全文
你不嵌入它,而是链接到它。通常,链接是视频本身的缩略图。iPhone不支持直接在网站中嵌入电影文件。 单击该链接将在用户的iPhone上打开Quicktime,完成后将其返回到网页。 即使嵌入工作正常,链接图像也会更容易记住: <a href="/rapidappdev.cn/libraries/m ...阅读全文
制作GridView适配器,实现页面数据的变化 制作类型存储数据库,存储的主要是图片类型,类型被选中时的图片,类型未被选中时的图片。 数据库代码如下 package com.example.Utils.database; import android.content.Context; import ...阅读全文
前两篇文章通过麦克风硬件和摄像头硬件分别采集音频和视频的多媒体数据,在得到的多媒体数据通常是以编码文件的格式存储,在用户需要展示时,可通过设备的内置扩音器或蓝牙耳机等硬件播放音频,通过设备的显示屏或外接投影仪等硬件播放照片、动画或视频。 可以将这些展示类设备分为两类。 一类是内置类多媒体硬件,是通过 ...阅读全文
Android实现socket通信统一接口,统一接口之后可以在不需要大量修改应用层代码的情况下,使用与当前功能类似但是底层实现不同的功能,以实现的UDP与TCP两种通信方式的接口为例。 ...阅读全文
在多媒体摄像头及相关硬件文章中,对摄像头的使用方式需要区分应用程序的目标版本以使用不同的代码流程,而与之相比,麦克风硬件的使用就简单多了。 ###麦克风及相关硬件 麦克风硬件在移动设备上作为音频的采集设备,由于只需要一个收声口,其颜值对用户来说关注度比较低。而且不同的麦克风硬件在性能上差距不大,其应 ...阅读全文
聊聊我所知道的 Android 相关的代码检测 因为笔者业务开发能力不太够,所以会经常做一些周边的杂活。曾经做过在团队里建立代码检测机制的工作,所以我想简单地说下这部分的内容。 代码检测的地位 首先要说的是 软件开发的检测 的目的是什么,以及都有那些类型的检测。 在我看来,检测的目的就是为了 保证代 ...阅读全文
多媒体包括图片、动画、音频、视频,这些多媒体素材的采集(输入)主要依靠摄像头和麦克风等硬件设备转化为基础数据,而他们的播放渲染(输出),则需要依靠具有相关功能的编解码软件。当然随着硬件集成度越来越高,也有些基础功能内置到硬件中解码,以此减少软件解码过程中的CPU耗时操作,这种方式称为硬件加速。由于多 ...阅读全文
上篇文章讲解了怎么使用Kotlin的协程配合Retrofit发起网络请求,使用也是非常方便,但是在处理请求异常还不是很人性化。这篇文章,我们将处理异常的代码进行封装,以便对异常情况返回给页面,提供更加友好的提示。 编写拓展方法 我们写一个扩展(全局)方法,就叫ViewModelExt.kt,在下面创 ...阅读全文
到目前为止,关于应用程序与用户之间的相关内容便比较肤浅的大致介绍完毕。而在整个系统架构中,应用程序与用户之间的交互,犹如参天大树上的枝干和树叶,交互起来五彩缤纷,但使整个生态系统保持生命力的核心,在于树根,也就是应用程序通过Android系统与设备上硬件的交互。 #设备硬件 设备的硬件目前主要分为三 ...阅读全文
Android WindowManager 一、Window分类 Window 有三种类型,分别是应用 Window、子 Window 和系统 Window。应用类 Window 对应一个 Acitivity,子 Window 不能单独存在,需要依附在特定的父 Window 中,比如常见的一些 Di ...阅读全文
activity间传递值 通过Intent启动另一个activity 传递简单数据(八大基本数据类型+String) 传递简单数据的代码片段 Intent intent = new Intent(MainActivity.this, AdditionalActivity.class); intent ...阅读全文
VirtualDisplay 一、介绍 代表一个虚拟显示器。 虚拟显示器的内容被渲染到您必须提供给createVirtualDisplay()的Surface 。 二、使用 1、createVirtualDisplay 通常我们使用DisplayManager.createVirtualDispla ...阅读全文
序列化 1.Serializable Java序列化就是指把Java对象转换为字节序列的过程 Java反序列化就是指把字节序列恢复为Java对象的过程。 实现序列化和反序列化的三种实现: ①若Student类仅仅实现了Serializable接口,则可以按照以下方式进行序列化和反序列化。 O ...阅读全文
Android launchMode 页面的启动模式,这个我自认为在学校学习的时候,就已经完全理解每种启动模式,在日常开发中也会用到,也许它也并不能完全理解和应用。而我一直也以为启动模式是一个APP之间的一个东西,但没想到其实也影响APP之间。在这之前,我发现我的手机有时候我在清除最近任务的时候,发 ...阅读全文
在应用权限的定义与申请一文中,已经将权限分为普通权限与危险权限,而且所有权限都必须静态或动态申请。那么应用程序申请某些权限后可以执行什么操作呢?本文将详细介绍。 对于Android系统中的相关权限,可以参考官方权限列表文档。如在前文提到的外部存储读权限Manifest.permission.READ ...阅读全文
在之前关于应用内数据本地保存为文件时,曾提到应用需要申请外部存储设备的读写权限才能访问外部存储中的文件。那么针对某一种权限,应用程序具体应该怎么申请使用呢?本文将详细介绍。 应用中的权限主要分为两类,分为正常权限和危险权限。在Android6.0即API 23之前,这两种权限均只需要在清单文件中声明 ...阅读全文