自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 资源 (11)
  • 收藏
  • 关注

原创 android 14 创建文件java.io.IOException: Operation not permitted

一般是创建文件时,文件夹或文件名称包含特殊字符,创建文件或文件夹时需要检查文件名称是否合法。参考android.os.FileUtils代码(内部类,App不可直接使用)

2024-03-23 10:43:34 430

原创 Android获取所有的存储设备信息(包括外接USB存储)

【代码】Android获取所有的存储设备信息(包括外接USB存储)

2024-03-23 09:43:05 413

原创 Android通过连接USB读写SD卡(libaums方案)

最近有一个需求是要求通过Usb扩展读取到SD卡的内容。可以从Usb存储设备拷贝文件到内置卡,也可以从内置卡文件拷贝到Usb存储。

2023-07-02 10:19:39 1246

原创 Android 文件管理权限适配

PermissionUtils的工具类导入。

2023-06-30 21:52:58 843

原创 带ViewModel与ViewBinding的Fragment基类封装

基类BaseViewModel。

2023-04-10 19:38:40 365 1

原创 Gitlab 项目上传到Maven仓库

Gitlab 项目上传到Maven仓库

2023-01-18 11:05:36 1117

原创 JetPack Paging3

Paging 3)@[TOC](Paging 3)1. Paging是什么2. Paging的优势3. Paging中的三个重要类3.1 PagingSource数据源3.2 Pager 数据流3.3 PagingDataAdapter数据显示适配器4. 分页显示数据库数据示例4.1 导包4.2 数据库与PagingSource4.3 Pager4.4 PagingDataAdapter4.5 Pager与PagingDataAdapter绑定4.6 效果4.7 示例代码1. Paging是什么Pag

2022-05-26 21:23:23 404

原创 JetPack DataBinding

文章目录@[TOC]1. 什么是DataBinding2. 使用入门2.1 工程配置2.2 绑定布局2.3 获取绑定类,并进行相关操作3. 绑定表达式3.1 表达式语言3.2 集合使用3.3 方法引用3.4 导入、变量和包含4.数据绑定4.1 数据对象,User为例4.2 布局中声明4.3 绑定数据4.4 可观察数据对象4.5 双向数据绑定5. 绑定适配器总结1. 什么是DataBinding数据绑定库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。优

2022-05-14 15:03:44 569

原创 Android JetPack Room

JetPack Room1. Room 的优势2. 主要组件3. 简单使用介绍3.1 导包3.2 User实体类,UserDao接口,UserDataBase4. 数据库的升级4.1 直接升级4.2 Migration方式,手动迁移4.3 autoMigrations方法,自动迁移5. exportSchema数据库升级测试记录6. 监听表数据变化6.1 LiveData方式6.2 Flow流的方式6.3 Rxjava的方式7. 引用复杂数据8. 预填充 Room 数据库8.1 从应用资源中填充8.2 从文

2022-05-05 23:14:37 1389

原创 Kotlin 协程Flow主要操作符(二)

Kotlin 协程Flow主要操作符(二)前言1. collect接收操作符2. launchIn操作符3. onEach操作符4. 组合操作符4.1 zip操作符4.2 combine操作符5. 展平流5.1 flatMapConcat连接模式5.2 flatMapMerge并发模式5.3 flatMapLatest参考前言协程操作符的第二篇,请参考第一篇Kotlin 协程Flow主要操作符(一)1. collect接收操作符用于数据接收,此操作符没有返回对象,后面不可再添加操作符。fun

2022-04-23 12:24:23 4567

原创 Kotlin 协程Flow主要操作符(一)

Kotlin 协程Flow主要操作符(一)1. 主要导包2. map 转换操作符3. filter过滤操作符4. take限长操作符5. drop丢弃操作符6. flowOn操作符7. onStart操作符8. onCompletion完成操作符9. catch异常收集操作符10. buffer缓冲操作符11. conflate 合并操作符参考1. 主要导包//协程包 implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.

2022-04-23 11:31:48 2989

原创 Kotlin 协程Flow、StateFlow、ShareFlow

Kotlin 协程Flow、StateFlow、ShareFlow数据流数据流以协程为基础构建,可提供多个值。从概念上来讲,数据流是可通过异步方式进行计算处理的一组数据序列。所发出值的类型必须相同。例如,Flow<Int> 是发出整数值的数据流。 //在Acitivity中创建一个定时数据流并接收 lifecycleScope.launchWhenResumed { flow { while (true) {

2022-04-20 22:59:21 2964

原创 Kotlin Flow实现线程切换

Kotlin Flow实现线程切换flowOn方法实现线程切换Log结果如下注意:flowOn方法一般跟在flow耗时流后面,不然可能会造成其他方法也在子线程flowOn方法实现线程切换 private fun flowOn() { lifecycleScope.launch {//主线程 simpleFlowOn() .flowOn(Dispatchers.IO)//子线程执行,耗时操作 .onSt

2021-09-27 18:23:38 1797

原创 Kotlin协程+Flow+Retrofit实现网络请求

Kotlin协程+Flow+Retrofit实现网络请求导包代码实现导包 implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation 'androidx.core:core-ktx:1.6.0' implementation 'androidx.ap

2021-09-27 16:06:02 5503 3

原创 Could not resolve com.nbsp:library:1.8如何解决

Could not resolve com.nbsp:library:1.8如何解决库com.nbsp:library:1.8下载不下来,报403错误,这个库主要是文件选择的 implementation "com.nbsp:library:1.8"解决:用materialfilepicker替代\\implementation "com.nbsp:library:1.8" implementation 'com.nbsp:materialfilepicker:1.9.1'...

2021-06-30 19:01:33 1097

原创 FFmpeg命令(八)、 视频添加水印

视频添加水印ffmpeg -i input.mp4 -i input.png -filter_complex overlay=main_w-overlay_w:main_h-overlay_h overlay.mp4// input.mp4:原始视频// input.png:水印图片// overlay 叠加方式// main_w-overlay_w:main_h-overlay_h 水印图片的位置(X:Y)这里表示在水印在右下角,main_w代表视频的宽,overlay_w代表水印的宽,mai

2021-01-07 14:46:08 1116

原创 FFmpeg命令(七)、 音频与视频合并成视频

1. 提取音频ffmpeg -i input.mp4 -acodec copy -vn out.aac//acodec :指定音频编码器,copy只拷贝,不做编码//vn:v代表视频,n代表no,无视频的意思2. 提取无音视频ffmpeg -i input.mp4 -vcodec copy -an out.mp4//vcodec:指定视频编码器,copy只拷贝,不做编码//an:a代表音频,n代表no,无音频的意思。3. 音频视频合并ffmpeg -i out.mp4 -i out.a

2021-01-07 14:43:37 12059 2

原创 FFmpeg命令(六)、 视频提取无音视频

提取为无音视频ffmpeg -i input.mp4 -vcodec copy -an out.mp4//-i 输入 input.mp4本地视频//vcodec:指定视频编码器,copy指明只拷贝,不做编解码//an:a代表音频,n代表no an就是无音频的意思//out.mp4 生成的文件,在当前目录下...

2021-01-07 11:44:46 881

原创 Android NDK(二)、CMakeList文件参数说明

Android NDK(二)、CMakeList文件参数说明1、指定cmake的最低版本2、add_library2.1、添加一个库2.2、导入预编译库3、set设置变量4、设置头文件目录5、目标库链接设置6、设置子目录编译7、设置第三方so库路径1、指定cmake的最低版本cmake_minimum_required(VERSION 3.4.1)2、add_library2.1、添加一个库添加一个库文件,指定名称指定STATIC,SHARED,MODULE参数来指定库的类型。STATIC:

2020-12-29 21:23:58 403

原创 Android NDK(一)、CMAKE语法

Android NDK(一)、CMAKE语法1、注释2、变量3、列表4、操作符5、布尔常量值6、条件命令7、循环命令8、自定义函数1、注释单行注释#这个一个注释多行注释#[[多行注释多行注释多行注释]]2、变量Cmake中所有变量都是String类型。可以使用set()和unset()命令来声明或移除一个变量。变量的引用:${变量名}set(num 456)#打印message("num = ${num}")3、列表列表也是字符串,可以把列表看作一个特殊的

2020-12-29 21:13:39 221

原创 Android自定义View之Paint

Android自定义View之Paint1、Paint画笔1、Paint画笔Paint是画笔,是自定义View中最基本的东西。下面是它的一些相关Api。 val mPaint: Paint = Paint() //新建画笔 mPaint.color = Color.RED //设置颜色 mPaint.setARGB(255, 255, 255, 0)//设置Paint对象颜色,范围为0-255 mPaint.alpha = 200 //设置alpha

2020-12-02 21:43:42 196

原创 Android Room数据库Like模糊查询

Android Room数据库Like模糊查询1、模糊查询2、Room中的模糊查询3、参考1、模糊查询模糊查询的一般用Like关键字://查询表user中的user_name 包含‘黄’字的user集合select * from user where user_name like '%黄%'2、Room中的模糊查询Room中用||代替+号示例: // ||相当于+号 @Transaction @Query("SELECT * FROM user WHERE user_name

2020-08-06 22:03:48 6389

原创 Kotlin学习一、作用域函数let、with、run、apply、also

Kotlin学习一、作用域函数let、with、run、apply、also一、let函数二、with函数三、run函数四、apply函数五、also函数六、函数比较一、let函数上下⽂对象作为 lambda 表达式的参数( it )来访问。返回值是 lambda 表达式的结果。一般作用于非空的对象。let 可⽤于在调⽤链的结果上调⽤⼀个或多个函数。Boy对象:class Boy(var name: String, var age: Int, var address: String) {

2020-07-15 22:03:31 320

原创 Android集成腾讯X5浏览器内核库

Android集成腾讯X5浏览器内核库一、相关配置1. 相关地址2.引入SDK3. AndroidManifest配置二、Application中初始化内核三、代码实现1. 自定义带ProgressBar的WebView2. activity_main.xml3. MainActivity一、相关配置1. 相关地址https://x5.tencent.com/2.引入SDK在build.gradle中dependencies引入sdk api 'com.tencent.tbs.tbssdk:s

2020-07-11 11:04:46 1636

原创 计算机网络之Http与Https

计算机网络之Http与Https一、Http介绍二、Http传输流程三、HTTP的状态四、Https一、Http介绍Http即超文本传送协议,是应用层上的协议。HTTP 是一个无状态的协议。无状态是指客户机(Web 浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息.HTTP ...

2020-04-14 11:07:14 248

原创 计算机网络之TCP协议

计算机网络之TCP协议一、TCP特点二、TCP数据包说明三、TCP三次握手四、TCP四次挥手一、TCP特点TCP是面向连接的传输层协议。必须建立TCP连接。像打电话一样。每一条TCP连接只能有两个端点。一对一的通信方式。是可靠交付。传送的数据,无差错,不丢失,不重复,并且按序到达。全双工通信。任何一端都可以发送数据与接收数据。面向字节流。这里的流是指流入到进程或从进程流出的字节序列。...

2020-04-13 12:31:18 247

原创 计算机网络之网络架构

计算机网络之网络架构网络架构TCP/IP原理网络架构网络七层架构物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流。这一层的数据叫做比特。数据链路层:主要将从物理层接收的数据进行 MAC 地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧。在这一层工作的设备是交换机,数据通过交换机来传输。网络层: 主要将从下层接收...

2020-04-13 12:02:45 1176

原创 Java泛型

Java泛型1.概念2.泛型方法3.泛型类4.类型通配符?5.类型擦除1.概念泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。比如我们要写一个排序方法,能够对整型数组、字符串数组甚至其他任何类型的数组进行排序,我们就可以使用 Java 泛型。2.泛型方法你可以写一个泛型方法,该方法在调用时可以接收不同类型的参数。根据传递给泛型方法的参数类型,编译器适当地处理每一个方法调用...

2020-04-12 10:00:59 140 1

原创 Java注解(Annotation)机制

Java注解Annotation概念定义一个注解4种标准的元注解注解处理(解析)概念Annotation(注解)是 Java 提供的一种对元程序中元素关联信息和元数据(metadata)的途径和方法。Annatation(注解)是一个接口,程序可以通过反射来获取指定程序中元素的 Annotation对象,然后通过该 Annotation 对象来获取注解中的元数据信息。定义一个注解impor...

2020-04-11 15:10:10 261

原创 Java反射(Reflect)机制详解

Java反射机制详解1.反射机制概念2.应用场景3.反射相关的API4.反射使用的步骤5.获取Class的有三种方法6.创建对象的两种方法1.反射机制概念反射机制是指在运行状态中,对于任意一个类都能知道这个类的所有属性和方法,并且对于 任意一个对象,都能调用它的任意一个方法。这种动态获取信息以及动态调用对象方法的功能成为Java语言的反射机制。2.应用场景如果编译时根本无法预知该对象和类属...

2020-04-11 14:29:03 185

原创 Java四种内部类

Java四种内部类静态内部类成员内部类局部内部类匿名内部类静态内部类定义在内部的静态类,有static关键字,就是静态内部类。public class Outter { private static int a; private String b; public static class Inner{ public void println(){ ...

2020-04-11 11:38:43 132

原创 JAVA中的四种引用类型

Java中的四种引用类型强引用(StrongReference)软引用(SoftReference)弱引用(WeakReference)虚引用(PhantomReference)强引用(StrongReference)在java中最常见的就是强引用,把一个对象赋值给一个引用变量,这个引用变量就是强引用。当一个对象被强引用时,处于可达状态,它是不可能被回收的,即使出现 OOM,也永远不会被回收。...

2020-04-11 11:06:49 118

原创 FFmpeg命令(五)、视频去掉水印

视频去掉水印去掉视频的水印相关的语法去掉视频的水印比如去掉某音下载的视频的水印,下载的视频是720*1280,前4秒水印在视频的左上角,右后在视频的右下角这时输入两次命令,首先去掉左上角的水印 ffmpeg -i down.mp4 -filter_complex "delogo=x=10:y=10:w=250:h=100:show=0" delogo.mp4再去掉右下角的水印 ffm...

2019-04-10 14:23:06 7623 1

原创 FFmpeg命令(四)、 图片转视频

FFmpeg图片转视频将多张图片转成视频指定编码格式指定输出帧率指定码率将多张图片转成视频首先将视频转成图片集ffmpeg -i test.mp4 -r 30 image-%3d.jpg得到多张图片,将图片转成视频ffmpeg -f image2 -i ./image-%3d.jpg out.mp4image2图片/image-%3d.jpg命名格式为image-001的图片...

2019-04-09 16:56:43 1604

原创 FFmpeg命令(三)、 从视频中提取图片

FFmpeg 从视频中提取图片ffmpeg -i test.mp4 -r 30 image-%3d.jpgffmpeg -i test.mp4 -r 30 -t 4 image-%3d.jpgffmpeg -i test.mp4 -r 30 -ss 00:00:20 image-%3d.jpgffmpeg -i test.mp4 -r 30 -ss 00:00:20 -vframes 10 ima...

2019-04-09 16:40:02 9121

原创 FFmpeg命令(二)、 从视频中提取音频

ffmpeg命令 从视频中提取音频提取为mp3提取为wav提取为mp3ffmpeg -i huoying.mp4 -f mp3 -ar 16000 huoying.mp3//huoying.mp4 视频文件//-f mp3 mp3编码//-ar 16000 音频采样率//huoying.mp3输出的音频文件提取为wavffmpeg -i huoying.mp4 -f wav -a...

2019-04-09 16:07:53 5329

原创 FFmpeg命令(一)、使用filter_complex命令拼接视频

FFmpeg使用filter_complex命令合并多个视频filter_complex合并两个视频三个视频合并四个视频2x2方式排列filter_complexfilter_complex合并多个视频,各个视频同时播放,效果如某音的同屏。合并两个视频1.横向合并ffmpeg -i out1.mp4 -i out2.mp4 -filter_complex "[0:v]pad=iw*2:i...

2019-03-22 15:38:31 15824 2

原创 Android FFmpeg(一)、Windows编译So

Windows环境编译FFmpegWindows环境编译FFmpegMinGW下载NDK下载FFmpeg下载开始编译编译成一个ffmpeg.soWindows环境编译FFmpegWindows10下编译FFmpeg。MinGW下载MinGW下载地址,我这里安装D盘。并添加到系统环境变量中打开MinGW\bin\mingw-get.exe。打开后,点击Basic Setup下载下图的插件...

2019-03-21 22:51:43 865

原创 AndroidStudio使用Cmake编译so

AndroidStudio使用Cmake编译soAndoridStudio 使用Cmake编译soCmake下载新建项目编译项目AndoridStudio 使用Cmake编译so以前编译so比较麻烦,这里使用Android Studio编译so,Studio版本2.3以上,我使用的是3.2版本。Cmake下载打开Android Studio,File->Setting,选择Appea...

2019-03-20 21:06:58 1361

原创 Android Arcgis(16)、网络图层加载二

在上一讲,Android Arcgis(15)、网络图层加载一,简单介绍了加载网络服务。下面我们继续学习加载网络图层。一、ArcGISDynamicMapServiceLayer服务地址: http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer,

2017-08-30 22:52:11 1185

android sqlcipher加密

android sqlcipher加密

2017-07-13

shp测试文件

shp 文件

2017-07-08

android retrofit上传与下载文件

android retrofit上传与下载文件

2017-07-03

OkHttp上传文件并带进度条

android OkHttp上传文件并带进度条

2017-07-02

okHttp下载文件

android okhttp下载文件并带进度条

2017-07-02

android arcgis featureLayer查询

android arcgis featureLayer查询

2017-05-06

android arcgis api

anroid arcgis api学习文档

2017-03-22

Android 捕捉全局异常

android 捕捉运行时异常写入到sd卡中

2017-03-22

Arcgis jar

Android Arcgis开发所用到的jar与so文件。

2017-03-20

AppWidget桌面时钟插件的实现

用AppWidget来实现桌面时钟插件,与系统时间相同。点击进入到应用

2015-07-08

android 音乐开发 ui素材

酷狗音乐的一些按钮图片与网易云音乐的一些按钮与布局图片

2015-04-04

空空如也

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

TA关注的人

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