avatar
文章
127
标签
59
分类
24
首页
分类
标签
时间轴
Logo鹏哥的Blog
搜索
首页
分类
标签
时间轴

鹏哥的Blog

Java编译过程及Jvm详解
发表于2019-07-24|Java语言
一.Jvm简介1.JVM是什么?JVM是Java Virtual Machine(Java虚拟机)的缩写,也就是指的JVM虚拟机,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。众所周知,java语言是跨平台的,而JVM是java跨平台的关键之所在,JVM上执行java字节码,执行时这些字节码可以解释成具体平台的机器码,因此java拥有“一次编译,处处运行”这一跨平台能力。 2.JRE、JDK和JVM的关系JRE(Java Runtime Environment, Java运行环境)是Java平台,所有的JAVA程序都要在JRE下才能够运行,包括JVM和Java核心类库和支持文件。JDK(Java Development Kit,Java开发工具包)是用来编译、调试Java程序的开发工具包,包括Java工具(javac/java/jdb等)和Java基础的类库(java API )。JVM(Java Virtual Machine,...
使用FFmpeg命令对音视频进行基础的编辑
发表于2019-07-11|音视频开发
一.FFmpeg基础知识1.FFmpeg简介FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为视频流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。它提供了录制、转换以及流化音视频的完整解决方案。 2.安装FFmpeg ffmpeg官网下载。 配置好环境变量,比如将c:\ffmpeg\bin路径配置到环境变量中去,这样bin下面的ffmpeg.exe就可以在命令行中使用了,可以用ffmpeg...
CI-CD工具之Jenkins
发表于2019-07-10|CI/CD
一.CI/CD(持续集成/持续部署)软件开发周期中需要一些可以帮助开发者提升速度的自动化工具。其中工具最重要的目的是促进软件项目的持续集成与交付。通过CI/CD工具,开发团队可以保持软件更新并将其迅速的投入实践中。CI/CD也被认为是敏捷开发的最重要实践之一。具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。这些关联的事务通常被统称为”CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。 1.持续集成Continuous Integration:持续集成,简称CI,是软件开发周期的一种实践,把代码仓库(Gitlab或者Github)、构建工具(如Jenkins)和测试工具(SonarQube)集成在一起,频繁的将代码合并到主干然后自动进行构建和测试。 2.持续交付Continuous...
Kotlin总结之二数组和集合容器
发表于2019-07-09|Kotlin语言
一 Kotlin中的数组1.数组的类型 kotlin java IntArray int[] ShortArray short[] LongArray long[] FloatArray float[] DoubleArray double[] CharArray char[] 2.数组的创建java创建数组的两种方式: 12int[] intArray = new int[6] //表达式:数据类型[] 标识 = new 数据类型[长度];String[] strArray = {"value0","value1"} //表达式: 数据类型[] 标识 =...
Android数据绑定DataBinding
发表于2019-07-01|Android开发
一.DataBinding简介MVVM架构的核心就是数据驱动,数据驱动的意思就是,数据更新的时候,自动刷新UI。采用MVVM架构会节省大量的更新UI的代码,并且数据更新后主动出发UI更新这种方式,更难出错,鲁棒性更强。且不需要关注数据变化的时机,是需要关注数据变化的结果即可。 1.开启DataBinding功能 使用最新版的AndroidStudio,至少AS3.0以上。 在项目module下的build.gradle的android闭包下,配置 databinding{enabled=true}。 对于布局的xml文件,将原有的正常布局,外面用包裹作为跟节点。节点下存放用于xml布局的一些变量,工具类之类的。 打开布局文件,选中根布局的 ViewGroup,按住 Alt + 回车键,点击 “Convert to data binding layout”,就可以生成 DataBinding 需要的布局规则 2.DataBinding简单使用(1.)声明一个数据对象12package com.peng.databindingdemo.modeldata class...
Dart语言编程基础
发表于2019-06-28|Flutter开发
一.Dart 简述在Dart中,一切都是对象,每个对象都是一个类的实例,所有对象都继承自Object。 Dart是强类型的,也有自动推断类型的机制。 二.变量。1.变量的声明。Dart中定义变量有两种方式,一种是静态类型语言常用的方式,显式指定变量类型,另一种则是动态语言的常用方式,不指定类型,由vm自动推断。 变量的默认值:未初始化的变量的初始值为null。甚至具有数字类型的变量最初也是null,因为在Dart中没有基础的数据类型,所有的都是对象类型.数字——就像dart中的其他东西一样是对象。 2. 显式指定类型来定义变量123456void main() { // 通过显式指定类型来定义变量 String name = "张三"; num age = 18; name = 1; //报错,显示指定的变量的类型是无法改变的} 3. 隐式推导变量.无需指定变量的数据类型,变量会根据值的类型进行推导.使用关键字var. 12345678void main()...
Flutter环境搭建及项目配置
发表于2019-06-21|Flutter开发
一. 下载安装Flutter。1.1 下载安装包Flutter SDK 1.2 下载完成后进行解压: 1.3 配置环境变量。控制面板->系统和安全->系统->高级系统设置->环境变量->path->编辑->新建 1.4 安装flutter依赖并检查。cmd命令: 1flutter doctor 1.5 查看flutter版本。1flutter doctor -v 二. Android Studio安装配置。2.1 Android studio安装dart和flutter插件。 2.2 重启Android studio创建flutter工程。 三. VsCode配置。1. vscode添加flutter支持。 2. 创建一个flutter的项目。 3.使用模拟器调试。 四. 创建或者运行项目卡住问题创建项目一直卡在Creating Flutter Project没反应。运行项目一直卡在: 1Running Gradle task 'assembleDebug'... ...
Kotlin总结之一变量常量及流程控制
发表于2019-06-20|Kotlin语言
一.Kotlin中的变量1.var 与 val var 用此关键字声明的变量,可以多次重复赋值,可读且可写,相当于Java中普通变量。 val 用此关键字声明的变量表示只读变量,即可读但不可写。相当于Java中用final修饰的变量。123456var str: String = "" //str是变量名,String表明该变量是String类型变量,后面就是赋值语句。var str2= "" //省略了声明变量类型,它可以根据赋的值而自动推断出类型。str="1234" //var 声明的变量可以重新赋值。val str3= " " //val申明的变量不能够再次赋值str3= "123456 " //再次赋值会报错...
Android音视频开发总结之三网络直播技术
发表于2019-06-18|Android开发
一. 直播流程总览目前主流的直播架构中主要有两种方案,即流媒体转发、P2P。流媒体转发,是一种在视频直播中以流的方式将连续的音、视频数据经编码压缩后传输到流媒体服务器,用户实时从服务器获取流媒体资源,而不必要等待整个文件下载文件完毕的C/S架构视频直播方案;P2P直播,是一种建立在P2P技术基础上的视频直播方案,它规定客户端之间使用一定协议来交换和共享直播数据,通过减少对服务器的数据请求,以降低服务端的I/O带宽等方面压力,从而削减服务器带宽成本,降低客户端卡播率。 一个直播功能通用的基础架构涉及三个部分,即音视频采集端、云服务端和音视频播放端。可以看到直播的流程可以分为如下几步: 音视频采集 —>音视频处理—>音视频编码和封装—>推流到服务器—>服务器流分发—>播放器流播放如下图,是一个APP直播功能的架构: 从上图中我们可以看到,每一个部分都有各自要处理的一些工作。 总体来说,视频直播类功能的整体流程包括以下内容: 音视频采集 音视频处理 音视频编码和封装 推流 流媒体服务器处理 拉流 音视频解码 音视频播放 二....
Android音视频开发总结之二Android平台采集、编码、解码
发表于2019-06-17|Android开发
一. 音视频采集流程串联整个音视频录制流程,完成音视频的采集、编码、封包成 mp4 输出。通过摄像头和麦克风获得实时的音视频数据; 播放流程: 获取流—>解码—>播放。 录制播放路程: 录制音频视频—>视频处理—>编码—>上传服务器->别人播放。 直播过程 : 录制音视频—>编码—>流媒体传输—>服务器—>流媒体传输到其他客户端—>解码—>播放。 视频采样数据 : 一般都是 YUV 或 RGB 格式 音频采样数据 :一般都是PCM格式 二.音频采集1.Android如何采集音频Android SDK对于音频采集提供两套API:MediaRecorder和AudioRecorder。 AudioRecordAudioRecord输出是PCM语音数据,得到原始的一帧帧PCM音频数据。如果保存成音频文件,是不能够被播放器播放的,所以必须先写代码实现数据编码以及压缩。一般直播技术采用的就是 AudioRecorder 采集音频数据。PCM(Pulse Code...
1…91011…13
avatar
peng
过往不恋 未来不迎 当下不负
文章
127
标签
59
分类
24
Follow Me
公告
欢迎来到我的博客!
分类
  • Android开发45
  • CI/CD3
  • Docker容器2
  • Flutter开发9
  • Git1
  • GitHub1
  • Java后端开发2
  • Java语言6
  • JetpackCompose6
  • Kotlin语言5
标签
Https Redis Mysql GetX 自动化 PyRSS2Gen 依赖注入 CSS Android分区存储 Android存储 数据存储 Koltin 设计模式 Retrofit Huginn Android自动化 Bios Android弹窗 Shell 代码审查 存储 爬虫 Android自动化打包 NoSQL 算法 Flutter状态管理 Okhttp Android状态栏 Nginx Android逆向工程 SpringBoot MacOs RSSHub NodeJs Android文件下载 MongoDB 编程基础 Vue Java基础 分区存储
归档
  • 二月 2023 1
  • 十二月 2022 1
  • 十月 2022 2
  • 九月 2022 4
  • 八月 2022 4
  • 七月 2022 1
  • 六月 2022 3
  • 五月 2022 4
网站信息
文章数目 :
127
本站总字数 :
565.2k
最后更新时间 :
©2015 - 2025 By peng
千里之行 始于足下
搜索
数据加载中