自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 H264编码原理

比如我们下载的mp4格式(还有rmvb、avi)的电影对摄像头采集的每一帧视频需要进行编码,由于视频中存在空间和时间的冗余, 需要用算法来去除这些冗余。H264是专门去除这些冗余的算法,我们把这种算法称为H264编码,当然还有mpeg4、vp9等编码,它们的区别就是实现的算法不一样。如下图byte数据就是I帧:完整编码的帧叫I帧P帧:参考之前的I帧生成的只包含差异部分编码的帧叫P帧B帧:参考前后的帧编码的帧叫B帧除了I/P/B帧外,还有图像序列GOP。

2023-03-08 12:12:51 538 1

原创 Camera API2使用流程图详解

Camera API2使用流程图详解

2022-07-24 16:23:00 734

原创 Camera2学习笔记

实现思路这里只是简单的前后摄像头的切换,首先通过cameraManager.getCameraIdList()获取当前设备摄像头ID列表,然后遍历该列表,通过当前Camera的ID来判断当前摄像头是前置还是后置,如果是前置则查询到后置摄像头ID并将其赋值为当前Camera的ID,反之亦然,拿到要切换摄像头ID后就是去调用manager.openCamera方法打开指定ID的摄像头,再调用此方法之前要把当前摄像头关闭即调用closeCamera,再调用reopenCamera,主要实现代码如下。.......

2022-07-18 15:00:31 1714

原创 Git学习笔记

git是一款免费、开源的分布式版本控制系统Git是一个开源的分布式版本控制系统,可以有效,高速的处理从很小到非常大的项目版本管理执行下面命令4、Git基础配置安装好Git后,我们还要进行一些基础的配置才能使用Git配置用户名配置邮箱编码配置(避免git gui、git status中的中文乱码)配置完了可以使用命令查看你的配置信息5、Git配置SHH(与Gitlab进行加密传输,更加可靠,也可以不用每次pull和push时输密码)在Linux的命令行下输入以下命令:

2022-07-11 20:19:12 213

原创 OkHttp学习笔记

OkHttp学习笔记

2022-02-27 13:35:17 118

原创 学习了一个学期,来看看我开发的Android 项目效果吧(总结)

前言经过了一个学期android的学习,有了一点的基础后,就踏上了开发app的道路。刚开始是开题报告,需求文档,原型设计都还没去做,我就兴奋的开始了编码,想到什么就写什么,比如一个app要登录界面吧,于是就敲敲,把登录界面写好后,又想到还要一个主界面吧,于是我又把主界面写了出来,就这样东写一点,西写一点,把代码写的乱七八糟,性能也极差,页面跳转明显能看得出来卡顿的现象,当时写了差不多一周就开始写不下去了。一、app类型没有确定,二、app需求不知道,三、app原型没有,于是等app类型确定下来后,我就去

2022-01-13 20:25:01 2792

原创 Android RecyclerView最基本的使用你学会了吗

在开发项目时,要想自己的项目布局好看点避免不了要使用RecylerView(比ListView要高级应该都知道吧,至于区别不知道的自行百度)在使用了好多次RecylerView后你脑海中就会浮现出一个使用RecylerView的框架,就好像数学公式一样,废话不多说,直接上代码,代码很简单,基本都写了注释首先让我们一起看看一个无任何内容的RecylerView该怎么写吧使用RecylerView需要导依赖包implementation 'androidx.recyclerview:recyc

2021-12-12 17:25:03 2477

原创 分享最近使用GitHub上开源项目YoKeyword以及一点小小心得

快到期末了,开发了一款App,在刚开始的时候,我开发了一段时间,使用了较多的activity,发现卡的要死,可能是我不会管理的原因吧,于是我就上网搜了搜,在github上找到了单activity多fragment的开发框架,花了点时间去熟悉它的使用步骤和注意事项,当然我不是说这种开发模式就很好,关键看个人吧。github 地址:Fragmentation/README_CN.md at master · YoKeyword/Fragmentation (github.com)使用之前,一定要搞.

2021-11-30 22:25:48 2259

原创 android 在 fragment 中实现图片选择器时遇到的问题

在我们实现图片选择器时,去网上找资料,会发现都是需要重写onActivityResult的,但是我不想在Activity中实现图片选择器,我想在fragment中实现,于是我就在fragment中重写onActivityResult然后就发现没有接收到返回结果,或者说根本就没有调用onActivityResult,于是乎我磨了一些许时间,才发现我没有在fragment所属的activity中重写onActivityResult,真的是菜啊,由于最近事挺多的,所以没有时间更新博客,敬请谅解。参考博客:An

2021-11-24 08:23:52 1532

原创 一键将 android v7 改成 androidx

刚开始我想把别人android v7 项目改成 androidx 项目时,就是一个一个去删除再导包,真的傻

2021-11-18 23:51:22 2743 2

原创 Android Studio和轻量应用服务器实现 socket 通信(详细且超全版)

原理很简单,相信大家对 socket 编程都有了解,可以看一下我以前写的“21 天好习惯”第一期-12之前写的与现在的区别就是,之前服务端是在本地运行,在同一局域网才能通信,现在服务端是在轻量应用服务器上运行,不同网络都能通信(前提是你的轻量应用服务器允许不同网络访问)1.没购买的,先购买,至于买什么价位的,如何选择镜像,地域、套餐,时长等我不是很专业,你们可以找几篇专业的文章来研究,我这里是以Tomcat 8 为例2.购买好后3.4.5.6...

2021-11-15 13:22:30 5790

原创 “21 天好习惯”第一期-21

今天来记录一下我在使用最新的 Android Studio 版本遇到一些让我觉得懵逼的错误吧1.首先是在模块下的 build.gradle 文件中添加插件正确的添加方法是plugins { id 'com.android.application' //id 'com.xxx.xxx'}2.在我每次看学习教程时,就会看到要添加下图的allprojects,然而每次添加都给我报错,我就很纳闷,为啥教程里的可以这样添加,我的为啥不行,真的就挺无语的正确添加方法是..

2021-11-12 22:23:19 1629

原创 “21 天好习惯”第一期-20

今天使用 Android Studio 时,遇到模拟器是灰色的,且报错提示为:Unable to start adb server: error: protocol fault我顿时懵逼,于是上网查了一下,可能是5037端口被占用,因为5037为adb默认端口于是把 Android Studio 关闭并我使用以下命令查了一下1.使用命令:netstat -aon|findstr "5037"找到占用5037端口的进程PID使用命令:tasklist|findstr "6644"通..

2021-11-11 20:05:33 885

原创 “21 天好习惯”第一期-19

图解快速排序,让你快速掌握快速排序基本原理思想:1.在待排序的元素任取一个元素作为基准(通常选第一个元素,但一般选择方法是从待排序元素中随机选取一个作为基准),称为基准元素;2.将待排序的元素进行分区,比基准元素大的元素放在它的右边,比其小的放在它的左边;3.对左右两个分区重复以上步骤直到所有元素都是有序的。来看看我画的图解:...

2021-11-10 23:26:17 200

原创 “21 天好习惯”第一期-18

记录一下今天学习到的新知识,虽然不多,但日积月累嘛就是我每次浏览github 网站时加载好慢,有时还会出现无法加载,在Android Studio 上拉项目时也是,总要拉几次才能成功,这时我同学就推荐了我一款软件,我觉得挺好用的就来记录一下吧1.如果你没有gitee账号,可以注册一个234.下载好后,双击打开5678.虽然已经显示安装步骤了,但我还是来记录一下吧910111213...

2021-11-09 21:24:34 109

原创 使用Android Studio和阿里云数据库实现一个远程聊天程序

没有阿里云数据库的可以买个最便宜的,我是新用户9.9元买了一个1.买到后点击左上角的工作台2.3.4.5.6.7.8.9.10.11.12.13.开始写Android Studio项目代码了先来看看我的项目结构依赖包下载地址Central Repository: mysql/mysql-con...

2021-11-08 21:08:01 3424 3

原创 “21 天好习惯”第一期-17

今天学习了数据库的一些相关操作,发现以前学的知识有些都快记不起来了还是得多练习啊,我就只记录一些比较实用得SQL语句当我们在一个运行MySQL的服务器上时,可以用以下SQL语句来操作数据库SQL语句 解释 mysql > SHOW DATABASES 列出所有数据库 mysql > CREATE DATABASE test 创建 test 数据库 mysql > DROPDATABASE test 删除 test 数据库 mysql &.

2021-11-08 19:32:50 492

原创 “21 天好习惯”第一期-16

今天就记录一些比较常用的 linux命令文件和目录cd /home 进入 '/ home' 目录'cd .. 返回上一级目录cd ../.. 返回上两级目录cd 进入个人的主目录cd ~user1 进入个人的主目录cd - 返回上次所在的目录ls 查看目录中的文件ls -F 查看目录中的文件ls -a 显示隐藏文件mkdir dir1 创建一个叫做 'dir1' 的目录'mkdir dir1 dir2 同时创建两个目录rm -f file1 删除一个叫做...

2021-11-07 22:17:17 54

原创 “21 天好习惯”第一期-15

今天看视频学习了布署PHP服务器环境,来与大家分享一下首先是要下载数据库并安装Mysql下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.htmlMysql的详细安装请看Navicat下载地址:https://www.navicat.com/en/download/navicat-for-mysql在Navicat中创建数据库"android",使用SQL文件还原表cartoon...

2021-11-06 23:54:39 376

原创 “21 天好习惯”第一期-14

今天来与大家分享一下 Mysql的简单安装(为了分享,我就先把我装好的先卸载)Mysql下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.htmlNavicat下载地址:https://www.navicat.com/en/download/navicat-for-mysql(管理数据库的)首先前往 https://dev.mysql.com/downloads/windows/installer/8.0.html 下载Mysql.

2021-11-05 23:32:02 69

原创 “21 天好习惯”第一期-13

今天老师要求我们使用WireShark软件分析TCP/IP 三次握手和四次挥手过程,大家分享一下首先你要下载一个WireShark软件,这个不必多说然后是打开WireShark软件,出现以下界面然后你选一个你当前正在用的连接(有波动的),比如WLAN,选中WLAN双击,进入以下界面是不是有好多数据在滚动,这是因为它正在抓包,这时你需要在你的浏览器登录一个你需要抓包的网站,比如我就我学校的官网,注意,如果你的浏览器登录了多个网站,这时你可以在在最上方的输入框中输入相关信息进行过滤,..

2021-11-04 13:44:08 55

原创 “21 天好习惯”第一期-12

前言今天学习了android socket 两个app间的通信,相信很多人在学习的过程中遇到了很多问题,比如程序闪退是最为常见的,还有就是网络请求失败,聊天窗口不显示消息记录等,下面就让我与大家分享我所遇到的吧先来看我的运行结果android socket 实现简单聊天室如何实现呢?开始我是以菜鸟教程来学习的,然后我就准备去实现两个app通信的小实例,然后发现程序运行闪退,后来我发现是我忘了加网络请求的权限(注意,现在的android版本和以前的是有较大区别的,所以在以一些较旧的学

2021-11-03 23:38:08 410

原创 “21 天好习惯”第一期-11

接口概念接口基本定义格式接口就是多个类的公共规范接口是一种引用数据类型,最重要的内容就是其中的抽象方法如何定义一个接口的格式:public interface 接口名称{//接口内容}注意:换成了关键字interface之后,编译生成的字节码文件仍然是: .java --> .class如果是Java 7, 那么接口中可以包含的内容有:1.常量2.抽象方法如果是Java 8,还可以额外包含有:3.默认方法4.静态方法如果是Java9,还可以额外..

2021-11-02 09:16:37 61

原创 “21 天好习惯”第一期-10

软考在即,开始慌了学习链接:软考 中级 软件设计师 (降噪版)_哔哩哔哩_bilibiliUML图解析用例图用例图是描述系统功能, 是用户所能观察到的系统功能的模型图, 是系统中的一个功能单元类图类图表示了类之间的联系如关联、 泛化、聚合等,也包括类的内部结构(类的属性和仿佛)顺序图顺序图显示对象之间的动态合作关系,他强调对象之间消息发送的顺序, 同时显示对象之间的交互...

2021-11-01 20:46:33 78

原创 “21 天好习惯”第一期-9

今天复习了一下以前学习过的Java基础知识抽象类和抽象方法什么是抽象类和抽象方法?废话不多说,直接上代码抽象类Animal/** 抽象类:在public和class之间加上abstract关键字的类* 抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束,注意抽象方法所在的类必须是抽象类* */public abstract class Animal { public abstract void eat(); //.

2021-10-31 17:04:44 79

原创 “21 天好习惯”第一期-8

来记录今天我学了些什么,我觉得挺有意思的一.位置服务1.获取LocationProvider(常用的LocationProvider有gps,network,passive)看我项目结构MainActivity代码如下(注释编号1,2,3分别是三种获取方式,运行结果分别对应(1)(2)(3))import android.location.Criteria;import android.location.LocationManager;imp

2021-10-30 14:17:45 374

原创 “21 天好习惯”第一期-7

基本数据类型:一字节:byte两字节:short,char四字节:int,folat八字节:long,doubleboolean:true和false这八种数据变量中直接存储值,八大基本数据类型对应着各自的封装类型的包装类,提供了很多的方法,不进行初始化时值默认为空,且属于引用类型(基本数据类型必须初始化)引用类型:主要是一些类,接口,数组,引用类型变量中存储的是地址,对应的地址存储数据Java中 == 和 equals() 使用的区别:1. equals()

2021-10-29 21:32:47 59

原创 “21 天好习惯”第一期-6

1.先使用数据线将手机和电脑进行连接(USB数据线)2.手机会弹出以下页面,选择“传输文件”3.到手机设置里找一下开发者选项4.开启开发者选项(你也可以找到手机设置中的关于手机,然后连续点击 版本号,直到出现 处于开发者模式)5.打开 “USB调试” “USB安装” “USB调试”(根据自己手机选择,这里是以我...

2021-10-28 07:30:00 138

原创 “21 天好习惯”第一期-5

今天学习了 Notification 通知的使用,来记录一下我的学习历程。先来看我项目结构运行结果展示Notification Android Studio 演示Maintivity代码如下import android.app.Notification;import android.app.NotificationChannel;import android.app.NotificationManager;import andr

2021-10-27 07:30:00 331

原创 “21 天好习惯”第一期-4

今天跟着老师学习了BroadcastReceiver,来记录一下。发送标准广播(采用静态注册,即手动在AndroidManifest.xml里写注册代码)看一下我的项目结构MainActivity代码如下import android.content.ComponentName;import android.content.Intent;import android.os.Bundle;import android.view.View;impo

2021-10-26 08:00:00 232

原创 “21 天好习惯”第一期-3

今天刷了软考真题发现McCabe环路复杂度的计算几乎每次都会考,然而却忘记咋计算了,所以我决定去把它捡回来。McCabe环路复杂度的计算,共有三种方法。(1)流图中的区域数等于环形复杂度。(2)流图G的环形复杂度V(G)=M-N+2,其中,M是流图中边的条数,N是结点数。(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。让我们一起通过一个简单的例题来理解McCabe环路复杂度计算的三种方法。例题如下图所示(图画的有点丑,勿怪)...

2021-10-25 07:00:00 77

原创 “21 天好习惯”第一期-2

为了应对软考,今天学习了一下语句覆盖,判定覆盖,条件覆盖,路径覆盖语句覆盖:设计用例,使程序中的每个可执行语句至少执行一次。判定覆盖:设计用例,使得程序中的每一个判断的取真分支和取假分支至少经历一次。条件覆盖:设计用例,使每个判断中的每个条件的可能取值至少满足一次。路径覆盖:设计测试用例,来覆盖程序中的所有可能执行的路径。光看定义可能你还是有点懵,那么就来看一个简单的例题吧语句覆盖 :根据定义,我们要设计个用例让每个可执行语句至少执行一

2021-10-24 14:07:07 60

原创 PPT作品欣赏

大学选修PPT课期末作业,想要欣赏的可以去看看,觉得不错的可以给个赞。链接:这样的 PPT作品 你喜欢吗?_哔哩哔哩_bilibili

2021-10-23 17:24:32 178

原创 “21 天好习惯”第一期-1

文章目录前言 一、startService 二、bindService 总结前言今天学习了Service,来记录一下学习历程。提示:以下是本篇文章正文内容,下面案例可供参考一、startServicestartService()生命周期(感兴趣的可以自己去验证一下,在每个重写方法中输出日志信息,然后运行,再在LogCat中查看日志信息):onCreate() --> onStartCommand() --> Servicerunning -...

2021-10-23 16:28:59 84

原创 运用JavaScript程序编程一个深度优先算法(带解析)

今天完成了老师布置的一道小作业,来记录一下学习历程。首先上代码,如下所示<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script> /**************利用栈来实现深度优先遍历*******************//* push(element):添加一

2021-10-22 16:03:00 174

原创 Android之自定义ContentProvider的实现(Very Very 用心)

刚开始学习ContentProvider时是学的系统的ContentProvider,没碰到什么问题,但是在学习自定义ContentProvider的实现时,唉,碰到好几个问题,花了我好多时间。碰到的问题:1.java.lang.IllegalArgumentException: column '_id' does not exist创建数据表时插入一个名为_id的列,类型为自增量,因为在使用Cursor相关的Adapter时需要用到这个列首先看一下我的项目结构,你就知道要写哪些类和..

2021-10-21 20:50:47 970 5

原创 报错显示Android resource linking failed

我就讲我遇到的这种情况吧,虽然是低级错误,但还是得注意一眼看过去,是不是觉得没啥问题,但是当我运行时(Java类无任何问题),确报错了,如下:我去用软件翻译了一下:我以为是我图片或xml路径写错了,所以去检查,发现没问题,后来才发现 id 好像没按规范写,虽然没报错,但不能这样写。总结:如果你遇到这种报错首先应该考虑:1.你得id或者其它得有没有按规范写,不要有编译没报错就是对的的惯性思维,不然就有苦头吃了2...

2021-10-19 20:47:56 2126

原创 简单的音乐播放器(老师布置的小作业)

简单的音乐播放器

2021-10-19 13:40:19 8170 25

原创 动态更新音乐列表

在制作音乐播放器的过程中,我发现第一次导入音乐到如下所示文件夹中然后授予相关权限并运行模拟器,发现能加载第一次导入的音乐。接着你没事做,进行第二次导入音乐,然后运行模拟器,发现只加载了第一次导入进来的音乐,不能加载第二次导入的音乐。是不是很奇怪?奇怪很正常,当时我也懵逼了,所以上网查询了相关资料,发现原因是:android的系统启动的时候,系统会自动扫描sdcard内的文件,并把文件保存在一个系统数据库中,程序每次访问的都是这个数据库,而不是sdcard。所以才会出现上述我所描述的问题.

2021-10-18 18:52:45 243

原创 android动态申请权限,不用手动在设置里打开

先在你MainActivity的oncreate中设置如下代码,上下文指向MainActivity,当然你也可以设置在别的Activity中,那么上下文就指向当前ActivityActivityCompat.requestPermissions(MainActivity.this, new String[] {Manifest.permission.READ_CONTACTS}, 1);接着再在AndroidManifest设置如下代码<uses-permission android

2021-10-17 17:59:33 845 3

音乐播放器素材.zip

音乐播放器素材,有的是没用到

2021-11-09

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

TA关注的人

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