自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

boundlessAbjure的专栏

六千尺的天空

  • 博客(84)
  • 资源 (7)
  • 问答 (12)
  • 收藏
  • 关注

原创 Android studio常见问题操作

android studio修改项目名称关闭项目,修改项目的目录名称打开settings.gradle,修改rootProject.namerootProject.name='ActivityDemo'

2021-05-20 10:46:39 199

转载 CSDN如何转载别人的文章

CSDN如何转载别人的文章 1、找到要转载的文章,用chrome浏览器打开,右键选择检查 2、在chrome中下方的框里找到对应的内容,html脚本中找到对应的节点(article_content),选中节点,网页上被选中内容会被高亮显示,然后右键菜单选中 Copy–>Copy outerHTML 3、进入直接...

2021-05-20 10:37:31 223

原创 Android控件RecyclerView的基本用法

RecyclerViewRecycleView是Android5.0后谷歌推出的一个用于在有限的窗口中展示大量数据集的控件。它可以实现与ListView和GridView一样的效果,提供了一种插拔式的体验,高度的解耦,异常的灵活,只需设置其提供的不同的LayoutManager,ItemAnimator和ItemDecoration,就能实现不同的效果。RecyclerView的优点支持局部刷新可以自定义item增删时的动画能够实现item拖拽和侧滑删除等功能默认已实现View的复用,而且回收

2021-01-05 17:22:26 494

原创 android源码下载编译

Android源码下载环境:ubuntuclone代码前的环境准备:安装git:sudo apt-get install git进行配置git config --global user.email “usergmail@gmail.com”git config --global user.name “username”安装curl:sudo apt-get install curl安装python:sudo apt-get install python创建一个bin,加入到PATH中:

2020-12-23 15:07:56 188

原创 Android入门——JNI分析

创建JNI工程创建projectNDK 环境配置安装CMake与NDK两个插件问题:NDK可能会出现安装fail,需要手动下载下载地址:https://dl.google.com/android/repository/android-ndk-r15c-windows-x86_64.zip?utm_source=androiddevtools&utm_medium=website下载后解压,配置到指定路径:配置完成后,local.properties文件会显示如下内容(未显示可手

2020-12-22 09:50:15 198

原创 Android入门——新手bug记录

github上clone程序后,编译问题Error:Failed to resolve: com.android.support:recyclerview-v7解决方案:注意:网上很多解决办法是maven { url 'https://maven.google.com' }这个网站访问需要翻墙。翻完之后可以访问了,但是还是build fail...

2020-12-18 10:00:49 112

原创 Android入门——BroadcastReceiver分析及使用

BroadcastReceiverAndroid中的广播使用了设计模式中的观察者模式模型中有3个角色:消息订阅者(广播接收者)消息发布者(广播发布者)消息中心(AMS,即Activity Manager Service)BroadCastReceiver分为动态注册和静态注册两种方式。动态注册创建一个class,继承BroadCastReceiverpublic class BroadCastReciverTest extends BroadcastReceiver { Str

2020-12-17 15:26:45 354

原创 Android入门——Activity分析及使用

主要内容:Activity生命周期Intent使用:Activity跳转传递参数/对象Activity反向传递数据Activity再次启动时,之前数据不丢失Activity四种启动模式(存储栈方式分析)app监控Activity操作Activity生命周期Activity 类定义了下面的回调:回调 描述onCreate() 这是第一个回调,在活动第一次创建时调用onStart() 这个回调在活动为用户可见时被调用onResume() 这个回调在应用程序与用户开始可交互的

2020-12-17 11:09:23 210

原创 java基础知识02-面向对象

继承继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法继承的特性子类拥有父类非 private 的属性、方法子类可以拥有自己的属性和方法,即子类可以对父类进行扩展子类可以用自己的方式实现父类的方法。Java 的继承是单继承,就是一个子类只能继承一个父类,这是 Java 继承区别于 C++ 继承的一个特性提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)implements关键字使用 implements 关键字可以变

2020-12-11 13:59:00 184 1

原创 java基础知识01——基础知识

第一个程序编译运行基本数据类型修饰符编译运行编译运行第一个程序:Ubuntu下,安装jdk:$ sudo apt install openjdk-8-jdk-headless编译java程序:(文件名需要与类名一致,实现main方法)ly@ubuntu:~/project/java_learn$ cat helloWorld.javapublic class helloWorld { /* 第一个Java程序 * 它将输出字符串 Hello World */

2020-12-11 10:49:55 139

原创 Android中强指针和弱指针

智能指针技术智能指针技术实质是:记录引用某一个对象的次数,一旦检测到次数为0,这时就自定将此对象所占内存释放。解决问题:1、指针初始化问题。(智能指针自动初始化)2、new之后没有及时delete,内存泄漏。(当计数为0时,自动销毁)3、野指针存在(当有对象仍在使用指针时,智能指针不会清零,仍然可以访问)智能指针技术不能解决对象循环引用的问题:a引用b;b引用a,这样的情况下使用简单的智能指针技术无法解决,故引入强指针和弱指针;强指针和弱指针强指针可以操作对象,弱指针不能够操作对象。强指针

2020-12-07 10:14:15 280

原创 android入门——目录功能分析及log使用、组件功能

android目录功能分析.gradle和.ideaAndroid Studio自动生成的一些文件,无需关心,也不需要手动编辑build编译时自动生成的文件,不需要关注gradleGradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。用于构建项目用的。.gitgnore将指定的目录/文件排除在版本控制之外。Git管理会用到build.gradle项目全局gradle构建脚本,一般不需要修改gradle.properties项目全局gra

2020-12-04 16:35:11 223

原创 android audio系统简析——后续待填充

知识点Android audio启动过程AudioTrack播放Android audio启动过程启动入口:audioserver启动frameworks/av/media/audioserver/audioserver.rc执行main_audioserver.cppAudioFlinger作用:负责对接Hal层,实现播放,混音,音效处理等功能操作AudioPolicyService作用:管理输入输出设备状态,音频播放策略,音量控制,向Hal层设置参数AudioFlinger 与Audi

2020-12-04 15:07:13 296

原创 c++语言常见面试整理1

引用与指针的区别1) 首先,引用不可以为空,但指针可以为空。前面也说过了引用是对象的别名,引用为空——对象都不存在,怎么可能有别名!故定义一个引用的时候,必须初始化2) 其次,引用不可以改变指向,对一个对象"至死不渝";但是指针可以改变指向,而指向其它对象。3) 再次,引用的大小是所指向的变量的大小,因为引用只是一个别名而已;指针是指针本身的大小,4个字节总之,用一句话归纳为就是:指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名,引用不改变指向。4) const可以修饰指针

2020-12-04 14:42:59 122

原创 c语言常见面试整理1

关键字static的作用是什么?在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。引用与指针的区别首先,引用不可以为空。前面也说过了引用是对象的别名,引用为空——对象都不存在,怎么可能有别名!故定义一个引用的时候,必须初始化其次,引

2020-12-04 14:35:16 204

原创 Linux驱动整理1

字符设备与块设备打印驱动logcopy_to_user()和copy_from_user()主设备号和次设备号DMA的作用中断服务系统启动过程并发和同步内存机制内核函数mmap的实现同步/异步,阻塞/非阻塞 ,并发和并行/串行 ,同步和互斥进程与线程FIQ与IRQ的区别Kernel Panic常见原因linux中内核空间、用户空间**字符设备与块设备字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少.

2020-12-04 14:26:02 197

原创 总线&外设基础1——i2s,i2c,uart,spi,touchpanel,lcd

I2Si2s有3个主要信号线位时钟(BCLK),即对应数字音频的每一位数据。BCLK的频率=2×采样频率×采样位数帧时钟LRCK,用于切换左右声道的数据。LRCK的频率等于采样频率串行数据SDATA,就是用二进制补码表示的音频数据。有时会使用主时钟,做相位同步使用i2s传输模式:标准模式(第一个位不管)、左对齐模式、右对齐模式TDM为多路传输格式<一个时钟周期内,连续传输多路信号>I2C基本信息sda与scl两根线;传输速率为100k,400k,3.4M ;单字节传输(7

2020-12-04 13:58:36 1247

原创 语音识别(多MIC)产品端侧1

实现过程软件流程: MIC采集 —— TDM排序为数字信号 —— pcm节点读取 —— AEC处理 —— 传到后端<或者本地识别> —— 实现功能研发流程: 设计 —— 测试 —— 合入第三方库 —— 第三方后台调通 —— 完成认证测试结构上要求1) 通道相位一致性2) 录音数据完整性3) 麦克风顺序4) 通道幅值一致性5) 音频幅度要求6) 总谐波失真7) 麦克风通道信噪比8) 恒频干扰9) 通道相对延时10) 结构共振/震动/异音11) 气密性第三方AEC库(

2020-12-04 11:32:42 628

原创 c++开发——Virtual Studio导入开源库

控制台项目,导入ffmpeg库集成需要做的操作:配置头文件库路径配置lib库路径添加依赖项(添加,不要覆盖)将dll文件放到项目路径下ffmpeg已经被下载到pc上。右击项目->属性,进入配置界面,修改附加包含路径,将头文件路径加进去配置头文件库路径配置lib库路径添加依赖项将lib都加进去(注意:不要覆盖,要在后面增加)将dll文件放到项目路径下在主程序路径下,将dll拷贝进去即可...

2020-12-04 11:22:44 326

原创 c++编程——常见算法01

常见的几种算法整理二分法查找/搜索贪心算法Dp动态规划KMP查找子串Hash的使用sort排序函数的使用二分法查找/搜索题目:给定一个排序的数组(升序)和一个要查找的整数target,用二分法找到target第一次出现的下标(从0开始)重点: 使用while (begin + 1 < end)来结束循环,然后对当前的begin与end进行判断 int binarySearch(vector<int>& nums, int target) {

2020-09-11 15:09:39 169

原创 c++编程——递归编程

递归实现实现递归编程的方法,需要三步(第2和第3可以同时思考):明确函数作用是什么递归的条件表达式递归结束的条件用三个具体的例子做具体分析:计算n的阶乘斐波那契数列查找二叉树最大的节点example 1: 计算n的阶乘Q1:函数作用是什么?计算n的阶乘,返回结果—— 确定函数及返回值long long factorial(int n) { long long res; return res;}Q2:递归的条件表达式factorial(n) = factorial

2020-09-11 11:36:38 503

转载 C++编程之——vector使用

C++ vector的用法(整理)vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:#include<vector>;一、vector 的初始化:可以有五种方式,举例说明如下: (1) vector<in...

2020-09-04 14:28:43 283

原创 c++编程之—— STL(标准模板库)简介

什么是STLSTL(Standard Template Library,标准模板库)的从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),容器和算法通过迭代器可以进行无缝地连接。几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。STL的六大组件容器(Container)算法(Algorithm)迭代器(Iterator)仿函数(Function object)适配器(Adaptor

2020-09-04 10:29:36 566

原创 SDWAN学习——初步了解及其基本功能

博文参考文章: 让人怦然心动的SD-WAN功能SD-WAN是什么SD-WAN,即软件定义广域网络,是将SDN(software design network)技术应用到广域网场景中所形成的一种服务。这种服务用于连接广阔地理范围的企业网络、数据中心、互联网应用及云服务,旨在帮助用户降低广域网的开支和提高网络连接灵活性。SD-WAN是一种应用于WAN传输连接的基于软件的网络应用技术,它可以使得企业将广域网连接和功能整合并虚拟化成集中式的策略,以简化复杂WAN拓扑的部署和管理。为什么要使用SD-WAN在

2020-08-28 09:14:17 4048

原创 TCP/IP协议——基础知识:OSI七层协议,TCP与UDP区别,三次握手与四次挥手

OSI七层协议物理层物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。数据链路层负责建立和管理节点间的链路。该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。在计算机网络中由于各种干扰的存在,物理链路是不可靠的。网络层它在下两层的基础上向资源子网提供服务。其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合

2020-08-18 17:51:20 138

原创 android学习——第一个项目及activity学习

安装android studio安装软件: 链接——android studio安装创建第一个项目,SDK下载,模拟器安装创建时遇到的问题:Could not find any version that matches com.android.support:leanback-v17:30.+.解决办法: 找到文件build.gradle,修改最后的dependencies配置即可项目框架项目框架分为三部分:项目整体的框架manifests逻辑执行框架java程序界面/图片…等资源

2020-08-18 13:45:16 153

转载 android studio安装教程

百度搜索Android studio,或者直接输入http://www.android-studio.org进入这个页面   根据这个下载相应的安装包或者压缩包。  这里演示安装64位的android studio下载完成后直接双击安装包,就会出来下面这个界面点击N...

2020-08-18 09:00:40 209

原创 ffmpeg基础——基本框架介绍

视频格式字幕格式多媒体容器文件组成软解和硬解分辨率与码率、帧率ffmpeg代码模块组成

2020-08-17 13:27:20 652

原创 ffmpeg基础——安装,编译,使用

ffmpeg下载安装源码下载地址: 源码下载下载后解压,执行编译命令:./configure --enable-shared --prefix=/monchickey/ffmpeg --disable-yasmmakemake install由于缺少其他库导致安装失败,用apt-get install安装需要的插件即可。ffmpeg基础ffmpeg -version //版本ffmpeg -hide_banner //只显示有用信息容器:视频文件本身其实是一个容器(conta

2020-08-17 11:04:21 750

原创 数字信号处理——理论基础

基础理论数字信号处理系统模型模拟信号 – A/D转换器 – 数字信号处理系统(DSP或者ARM) – D/A转换器 – 模拟信号输出欧拉公式谐波理论基波的整数倍频量的各次分量,二次谐波、三次谐波…等等!声信号通过喇叭发出时常会产生多次谐波。采样定理为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍离散时间信号基础最基本的连个离散信号单位采样信号单位阶跃信号能量信号与功率信号如果信号的能量有限,则称为能量信号如果信号的功率有限,则成为功率信号离散时间系

2020-08-17 10:45:54 1550

原创 c语言——http编程

HTTP协议简介超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(一般基于TCP)。客户端发起一个HTTP请求到服务器上指定端口(默认端口为80),这个客户端被称为用户代理程序(user agent)。应答服务器被称为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)HTTP可以在任何互联网协议上,或其他网络上实现。HTTP假定其下层

2020-08-06 15:36:55 8587

原创 c语言——socket编程

socket编程socket函数/*创建一个socket*/int socket(int family,int type,int protocol)family: 指定使用的协议簇:AF_INET(IPv4) AF_INET6(IPv6) AF_LOCAL(UNIX协议) AF_ROUTE(路由套接字) AF_KEY(秘钥套接字)type:指定使用的套接字的类型:SOCK_STREAM(字节流套接字) SOCK_DGRAMprotocol:如果套接字类型不是原始套接字,那么这个参数就为0bi

2020-08-04 17:01:42 294

原创 c语言——进程间通信

进程间通信信号管道消息队列共享内存socket实现信号参考文章: Linux信号(signal) 机制分析信号实现demo#include <stdio.h>#include <stdlib.h>#include <signal.h>void handler(int arg){ printf("hello world\n"); //kill(getpid(),9); //9表示 SIGKILL 杀死信号}/* SIG

2020-08-04 13:30:52 2699

原创 c语言——线程及线程间同步互斥

线程操作线程(thread)就是运行在进程上下文中的逻辑流。每个线程都有它自己的线程上下文(thread contxt),包括唯一的整数线程ID(Thread ID,TID)、栈、栈指针、程序计数器、通用目的的寄存器和条件码。所有的运行在一个进程里的线程共享该进程的整个虚拟地址空间。创建线程pthread_createtypedef void *(func)(void *); //return NULL;int pthread_create(pthread_t *tid, pthread_a

2020-08-04 08:46:54 1526

原创 音箱设计及音质调试

预研设计喇叭尺寸,功率,额定阻抗确认期望的频响范围,低频与高频需求codec供电电压。 根据 U*U/2/R 计算,需要额外留出40%~50%的空间防止调音出现截幅—— U(电压),R(额定阻抗)注:如结构允许,尽可能复用之前已设计过的音箱与胶垫,重新设计会增加成本和研发时间结构设计音箱喇叭面宽度:音箱喇叭面宽度应大于喇叭尺寸+8mm。被动盆设计:被动盆设计需要预留面积较大的两...

2019-11-20 22:08:46 2137

原创 Android audio系统之audio_policy.conf分析

audio_policy.conf文件系统包含了primary、a2dp、usb、r_submix音频接口,每一个对应着系统中的audio.<primary/a2dp/usb>..so。primary:主要的处理模块a2dp:处理蓝牙音乐传输模块usb:处理usb声卡模块r_submix:全称remote submix,处理远程音频模块,目前主要是Miracast(基于W...

2019-11-20 21:58:04 1048

原创 Android audio系统一audio框架及bug

1,audio框架APP层:音乐播放器,视频播放器。播放器一般使用MediaPlayer,MediaRecorder来进行播放和录音,MediaPlayer可以将音频文件进行解码,得到pcm流,然后使用AudioTrack进行播放。MediaRecorder是类似相反的过程。Framework Java层:AudioTrack —— 播放pcm流AudioRecorder —— 录音p...

2019-10-30 21:57:47 497

原创 Android audio系统二AudioFlinger AudioPolicyServicec初始化

1. audioserver启动frameworks/av/media/audioserver/audioserver.rc执行main_audioserver.cppAudioFlinger::instantiate();//初始化AudioFlingerAudioPolicyService::instantiate();//初始化AudioPolicyServiceAudioFli...

2019-10-30 21:27:39 741

原创 声学基础01

声波能引起听觉的振动波,频率在20赫兹至20千赫兹之间,在空气等媒质中传播,振动方向与传播方向相同,声速等于340米/秒。声压级声级的单位,用分贝来表示,在通常情况下,声压级等于声强级。响度声音在人耳中感受的强弱程度,主要由声音的幅度和频率所决定。入耳感受声音强弱的程度与声波功率的大小不成线性正比关系,而是与声波功率比值的对数成正比,即声音强度增加100倍,人耳感受到声音的响度只增加了2...

2019-03-05 19:58:53 3421

原创 linux 中断使用

linux驱动——中断中断为什么要区分上下文:1, 中断不是一个task实体,因为睡眠或阻塞操作调用了schedule(),无法恢复状态2,中断执行时间过长,影响效率。(中断的优先级很高,其他进程等待中)主要说明中断在驱动中的大致实现:<不涉及具体的内核代码>中断——硬件发生中断,由中断的硬件接口返回信息,然后进行中断处理中断主要操作:1、中断申...

2018-12-24 15:43:44 640

touch panel原理-MTK

关于MTK平台touch panel驱动源码分析,了解TP驱动的实现流程

2015-10-26

设备注册过程

platform device注册过程分析

2015-08-12

c语言学习笔记

学习 《c与指针》 以及 《c陷阱与缺陷》 两本书做的c基础内容总结

2014-10-11

vi编辑器的配置文件与操作文档

将txt文档改名为 .vimrc 放在用户目录下(输入cd ~即可得到用户目录),完成对用户的vi编辑器配置。

2014-10-11

ubuntu-shell基本指令操作

ubuntu下的shell指令操作大全,ubuntu指令行操作基础

2014-10-11

android开发笔记

android开发入门笔记,

2014-08-17

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

TA关注的人

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