自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 基于AudioManager实现的音频控制器

基于AudioManager实现的音频控制器.介绍如果我们想对Android系统中各种音频进行控制,那我们可以通过**AudioManager**(音频管理器)类提供的方法来实现,该类提供了各种音量控制与设置铃声模式相关操作,并且可以对麦克风以及音频焦点进行管理和监听等等。..AudioManager的常用方法.1. 音量控制相关的方法:getStreamMaxVolume(streamType):作用: 获取streamType对应类型的最大音量值getStreamV

2021-10-10 11:11:13 1130

原创 基于AccessibilityService实现的虚拟导航

基于AccessibilityService实现的虚拟导航.简介AccessibilityService(无障碍服务) 的设计初衷是提供给无法和界面进行交互的残疾用户,用来协助和帮助他们进行交互操作,比如:点击,返回,长按 和 获取屏幕信息内容等能力。但现在AccessibilityService已经基本偏离了它设计的初衷,至少在国内是这样,越来越多的App借用AccessibilityService来实现了一些其它功能,甚至是灰色产品。因为AccessibilityService服务会在后台运

2021-08-28 11:42:59 928

原创 Android一键锁屏与抬手亮屏的实现

Android一键锁屏与抬手亮屏的实.介绍最近由于项目需要开发语音控制相关的功能,需要用语音来实现锁屏和唤醒屏幕的功能,所以顺便就想开发一个“一键锁屏”的App。主要是我用的手机那个双击亮屏使用起来太麻烦了,而且又不想按电源键。(主要是因为太穷了,买不起手机O(∩_∩)O哈哈~)..锁屏实现一主要是基于 DeviceAdminReceiver,安卓的设备管理器来实现一键锁屏的功能.1. 创建AdminManageReceiver类并继承DeviceAdminReceiverpub

2021-08-28 09:44:00 2459 2

原创 Netty网络框架在安卓端的使用介绍

Netty的介绍介绍:Netty 是JBoss提供的一个java开源框架,Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可用性的网络服务器和客户端程序。也就是说 Netty 是一个基于 Nio 的编程框架,使用Netty可以快速的开发出一个网络应用。 并且可以在不妥协的情况下实现易于开发、性能、稳定性和灵活性。..Netty核心概念的介绍.1. Bootstrap、ServerBootstrap介绍:Bootstrap 的意思是引导,其主要作用是配置

2021-07-29 15:17:26 4181

原创 MQTT Android客户端的使用介绍

MQTT Android客户端的使用介绍.简介MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议。它是一种 发布/订阅 ,极其简单和轻量级的消息传递协议,专为受限设备和低带宽,高延迟或不可靠的网络而设计。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境。相对于XMPP,MQTT更加轻量级,并且占用的宽带低。.

2021-06-18 17:39:30 2359 3

原创 Coil图片加载库的使用介绍

Coil图片加载库的使用介绍.Coil官方介绍Coil 是一个 Android 图片加载库,通过 Kotlin 协程的方式加载图片。Coil 名字的由来:取 Coroutine Image Loader 首字母得来。.特点如下:更快:Coil 在性能上有很多优化,包括内存缓存和磁盘缓存,把缩略图存保存在内存中,循环利用 bitmap,自动暂停和取消图片网络请求等。更轻量级:Coil 只有2000个方法(前提是你的 APP 里面集成了 OkHttp 和 Coroutine

2021-06-15 21:05:11 7008 7

原创 Linux常用命令

查看Linux系统信息.arch ---------- 显示机器的处理器架构(1)uname -m ---------- 显示机器的处理器架构(2)uname -r ---------- 显示正在使用的内核版本hostname ---------- 查看计算机名who ---------- 显示当前登录系统的⽤户who am i ---------- 显示登录时的⽤户名whoami ---------- 显示当前⽤户名dmidecode -q ----------

2021-06-05 13:42:01 289

原创 Scan Kit 华为统一扫码服务的使用介绍

Scan Kit 华为统一扫码服务的使用介绍简介华为统一扫码服务(Scan Kit)提供便捷的条形码和二维码扫描、解析、生成能力,帮助您快速构建应用内的扫码功能。.优点Scan Kit可以实现远距离码或小型码的检测和自动放大,同时针对常见复杂扫码场景(如反光、暗光、污损、模糊、柱面)做了针对性识别优化,提升扫码成功率与用户体验。扫码体验比 ZXing 更好,并且可以免费使用。.支持的码制式Scan Kit支持扫描13种全球主流的码制式。如果您的应用只处理部分特定的码制式,您也可以在

2021-03-19 15:05:23 2672

原创 Okio的使用简介

Okio的使用简介.简介Okio 是由square公司开发的用于IO读取。补充了Java.io和java.nio的不足,以便能够更加方便,快速的访问、存储和处理数据。内部的读写操作是在内存中进行的。是OkHttp的底层IO库。.Okio的核心类ByteStrings: 是不可变的字节序列。它会自动将自己编码和解码为十六进制、base64和utf-8。Buffers: 是一个可变的字节序列。像Arraylist一样,你不需要预先设置缓冲区的大小。你可以将缓冲区读写为一个队列:将数据写到

2021-03-03 16:44:36 3558 1

原创 Android 10 深色主题的介绍与适配

Android 10 深色主题的介绍与适配介绍:Android 10 (API 级别 29) 及更高版本中提供深色主题背景,深色主题背景同时适用于 Android 系统界面和在设备上运行的应用。深色主题背景具有诸多优势:可大幅减少耗电量(具体取决于设备的屏幕技术)为弱视以及对强光敏感的用户提高可视性。让所有人都可以在光线较暗的环境中更轻松地使用设备。..Android 10 深色主题的适配步骤:.1. 在res目录下创建values-v29目录,并创建styles.xml文

2021-03-02 10:27:18 1143

原创 Android 10的ScopedStorage(分区存储)的介绍

Android 10的ScopedStorage(分区存储)的介绍.Scoped Storage的由来Android长久以来都支持外置存储空间这个功能,也就是我们常说的SD卡存储。这个功能使用得极其广泛,几乎所以开发者在开发的时都喜欢在SD卡的根目录下建立一个自己应用的专属的目录,用来存放各类文件和数据。导致SD卡的文件管理变的异常混乱。而且用户即使我卸载了一个完全不再使用的程序,它所产生的垃圾文件却可能会一直保留在我的手机上,不会被自动删除,这就使用户的存储空间一直处于十分紧张的状态,还浪费了大量

2021-03-01 11:53:09 2972 1

原创 CameraX 的使用简介

CameraX 的使用简介介绍CameraX 是一个 Jetpack 支持库,旨在帮助您简化相机应用的开发工作。它提供一致且易于使用的 API Surface,适用于大多数 Android 设备,并可向后兼容至 Android 5.0(API 级别 21)。虽然它利用的是 camera2 的功能,但使用的是更为简单且基于用例的方法,该方法具有生命周期感知能力。它还解决了设备兼容性问题,因此您无需在代码库中添加设备专属代码。这些功能减少了将相机功能添加到应用时需要编写的代码量。.CameraX 的架

2021-02-01 16:59:50 3921 3

原创 Git 的常用命令的介绍

Git 的常用命令的介绍介绍Git 是一种分布式版本管理系统,用于 Linux内核开发的版本控制工具。它采用了分布式版本库的方式,不必服务器端软件支持使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。..把本地项目托管到GitHub的步骤1.git init:初始化仓库2.在GitHub上创建一个远程仓库3.复制远程仓库的HTTPS地址4.git ad

2021-01-25 15:28:35 197

原创 SVN使用介绍

SVN使用介绍SVN的介绍SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。SVN是一个团队协同工作软件,方便管理与分发文件。SVN账号由管理员统一管理,不支持注册;账号密码由管理员单独发给员工,根据员工职能分配对应使用权限,必须严格保护好自己的SVN账号与密码,如有泄露并被他人恶意使用,管理员根据操作记录追责对应的SVN拥有者。..SVN软件的使用介绍软件分为服务

2021-01-25 15:14:19 3710

原创 Jetpack的DataStore数据存储组件的使用简介

Jetpack的DataStore数据存储组件的使用简介介绍Jetpack DataStore是一种数据存储解决方案,可让您使用Protocol Buffer(协议缓冲区)存储键值对或类型化对象。DataStore使用Kotlin协程和Flow异步,一致的事务方式来存储数据。注意: 如果需要支持大型或复杂的数据集,部分更新或参考完整性,请考虑使用 Room 而不是DataStore。DataStore非常适合小型,简单的数据集,并且不支持部分更新或参照完整性。目的Jetpack DataSto

2021-01-15 10:58:00 909

原创 SurfaceView使用介绍

SurfaceView使用介绍.介绍SurfaceView 提供嵌入视图层次结构内部的专用绘图表面。您可以控制此表面的格式,也可以控制其大小;SurfaceView负责将表面放置在屏幕上的正确位置。补充:SDK的文档说到:SurfaceView就是在Window上挖一个洞,它就是显示在这个洞里,其他的View是显示在Window上,所以View可以显式在 SurfaceView之上,你也可以添加一些层在SurfaceView之上。.使用场景如果需要在另外的线程绘制界面、需要迅速的更新界面

2021-01-13 15:46:02 1028

原创 事件总线EventBus框架的使用介绍

事件总线EventBus框架的使用介绍.EventBus介绍EventBus是一款针对Android优化的发布-订阅事件总线。它简化了应用程序内各组件间、组件与后台线 程间的通信。其优点是开销小,代码更优雅,以及将发送者和接收者解耦。.EventBus 的三要素Event: 事件,可以是任意类型的对象Subscriber: 事件订阅者,在 EventBus 3.0 之前我们必须定义以onEvent开头的那几个方法,分别是 onEvent 、onEventMainThread 、on

2021-01-04 14:21:21 1142

原创 MMKV数据存储组件的使用介绍

MMKV数据存储组件的使用介绍介绍MMKV 是微信开源的基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。已移植到 Android / macOS / Win32 / POSIX 平台,一并开源。GitHub地址优点:数据加密 : 在 Android 环境里,数据加密是非常必须的,SP实际上是把键值对放到本地文件中进行存储。如果要保证数据安全需要自己加密,MMKV 使用了 AES CFB-128 算法来加密/解密。多进

2021-01-04 10:17:44 4733 1

原创 Android Jetpack 的 Navigation导航组件的使用简介

Android Jetpack 的 Navigation导航组件的使用简介介绍Android Jetpack 的 Navigation(导航组件) 可帮助您实现导航,无论是简单的按钮点击,还是应用栏和抽屉式导航栏等更为复杂的模式,该组件均可应对。导航组件还通过遵循一套既定原则来确保一致且可预测的用户体验。导航组件由以下三个关键部分组成:导航图: 在一个集中位置包含所有导航相关信息的 XML 资源。这包括应用内所有单个内容区域(称为目标)以及用户可以通过应用获取的可能路径。NavHost:

2020-12-24 14:49:33 633

原创 Retrofit 2 网络请求框架的使用简介

Retrofit 2 网络请求框架的使用简介简介..添加Retrofit 2及其相关的依赖dependencies { // Retrofit库 implementation 'com.squareup.retrofit2:retrofit:2.9.0' //Okhttp3 网络请求框架 implementation 'com.squareup.okhttp3:okhttp:3.10.0' //Gson implementation 'com.squareup.retro

2020-12-07 14:48:44 429

原创 Okhttp3网络请求框架的使用简介

Okhttp3网络请求框架的使用简介添加Okhttp3的依赖dependencies { //Okhttp3 网络请求框架 implementation 'com.squareup.okhttp3:okhttp:3.10.0'}在AndroidManifest.xml中声明一下网络权限才行:<uses-permission android:name="android.permission.INTERNET" />Okhttp3的使用1. 异步GET请求使用步骤

2020-12-03 14:10:13 533 1

原创 Glide图片加载框架的使用简介与功能介绍

Glide图片加载框架的使用简介.1. 在app/build.gradle文件当中添加如下依赖:dependencies { //图片加载框架之Glide implementation 'com.github.bumptech.glide:glide:3.7.0'}2. 在AndroidManifest.xml中声明一下网络权限才行:<uses-permission android:name="android.permission.INTERNET" />3.

2020-12-03 12:11:51 873

原创 Android Jetpack 的 App Startup库的使用简介

Jetpack的 App Startup库的使用简介App Startup库的介绍App Startup库提供了一种直接,高效的方法来在应用程序启动时初始化组件。库开发人员和应用程序开发人员都可以使用“应用程序启动”来简化启动顺序并显式设置初始化顺序。App Startup允许您定义共享单个内容提供程序的组件初始化程序,而无需为需要初始化的每个组件定义单独的内容提供程序。这可以大大缩短应用程序的启动时间。实现原理可以看到,一个应用程序的执行顺序是这个样子的。首先调用Application的at

2020-12-03 11:36:00 421

原创 Android Jetpack 的 Hilt依赖注入框架的使用介绍

Hilt依赖注入框架的使用介绍引入Hilt1. 在项目根目录的build.gradle文件中配置Hilt的插件路径:buildscript { ... dependencies { ... classpath 'com.google.dagger:hilt-android-gradle-plugin:2.28-alpha' }}2. 在app/build.gradle文件中,引入Hilt的插件并添加Hilt的依赖库:...//apply

2020-11-30 16:37:22 1538 2

原创 Kotlin语法的学习笔记

Kotlin数据类型的介绍Kotlin没有基本数据类型的包装类var : 定义"可变"变量的关键字val : 定义"不可变"变量的关键字(可以通过反射的方式来修改)八大基本数据类型:var b:Boolean = false //Boolean类型var byte:Byte = 10//字节类型var short:Short = 2//短整型var int:Int = 20//整型var long:Long = 40L//长整型var char:Char = 'a'//字符类型va

2020-11-18 16:38:28 300 1

原创 Dagger2依赖注入框架的使用简介

如何引入Dagger2配置apt插件(在build.gradle(Project:xxx)中添加如下代码)dependencies { classpath 'com.android.tools.build:gradle:2.1.0' //添加apt插件 classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' }添加依赖(在build.gradle(Module:app)中添加如下代码)apply pl

2020-11-09 10:54:49 114

原创 Android Jetpack 的WorkManager的使用简介

222

2020-10-19 16:50:11 516

原创 Android Jetpack架构组件的使用简介

Jetpack的介绍Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者精力集中编写重要的代码。Jetpack的优点加速开发:组件可以单独采用(不过这些组件是为协同工作而构建的),同时利用 Kotlin 语言功能帮助您提高工作效率。消除样板代码:Android Jetpack 可管理繁琐的 Activity(如后台任务、导航和生命周期管理),以便您可以专注于如何让自己的应用出类拔萃。构建高质

2020-10-13 13:15:46 753

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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