自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Android系统攻城狮

CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

  • 博客(53)
  • 资源 (101)
  • 收藏
  • 关注

原创 Android9.0编译系统原理

点击前往

2020-03-30 23:22:18 686

原创 Android反射MediaPlayer的getAudioStreamType()私有方法(一百零七)

import android.media.AudioManager;import android.media.MediaPlayer;import java.lang.reflect.Method;try { MediaPlayer mPlayer = new MediaPlayer(); Class clazz = Class.forName("android....

2020-03-30 17:24:28 694

转载 jenkins执行本地/远程shell脚本

1. 执行 本地 shell命令或者脚本2. 执行远程机器的命令或者脚本。1. 执行 本地 shell命令或者脚本是在一个构建中的 bulid 选项卡。执行本地中的一个脚本执行一个命令2. 执行远程机器的命令或者脚本。2.1 ssh 插件要安装好2.2 添加一个 用于远程的证书在jenkins首页 点击Credentials进入如下页面...

2020-03-29 11:56:13 7213 1

原创 Mac安装jenkins

1.第一种方式(可能下载失败)# brew install jenkins # 安装# brew services start jenkins # 启动# brew uninstall jenkins # 卸载2.第二种方式jenkins下载地址# java -jar jenkins.war在浏览器访问jenkinshttp://127.0.0.1:8080/...

2020-03-28 10:49:44 279

原创 解决Mac网速越来越慢(飞一般的感觉)

--->系统偏好设置 --->网络 --->高级 --->硬件 --->配置改为:手动 --->MTU改为:1485

2020-03-27 09:58:17 7528

原创 Python3.6读写串口操作

#coding=utf-8import serial # pyserialdef str_to_hex(s): return ' '.join([hex(ord(c)).replace('0x', '') for c in s])def hex_to_str(s): return ''.join([chr(i) for i in [int(b, 16) for b in...

2020-03-25 19:28:40 1920

转载 写给小白的实时音视频技术入门提纲

1、前言这是由一篇我的演讲稿整理出来的文章,目标读者是对实时音视频开发感兴趣但是又不知道如何下手的初学者们,希望把我的经验分享出来,对大家有所帮助。学习交流:- 即时通讯开发交流3群:185926912[推荐]- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》(本文同步发布于:http://www.52im.net/thread-1620-1-1.html)...

2020-03-25 13:08:23 873

转载 Linux ALSA驱动框架(一)--ALSA架构简介--声卡的创建

(1)ALSA简介(1)NativeALSAApplication:tinyplay/tinycap/tinymix,这些用户程序直接调用alsa用户库接口来实现放音、录音、控制ALSALibraryAPI:alsa用户库接口,常见有tinyalsa、alsa-libALSACORE:alsa核心层,向上提供逻辑设备(PCM/CTL/MIDI/TIMER/…)系统调用,...

2020-03-23 18:33:19 1323

转载 计算机专业的书普遍都这么贵,你们都是怎么获取资源的?

介绍几个可以下载编程电子书籍的网站。1.GithubGithub上编程书资源很多,你可以根据类型和语言去搜索。推荐几个热门的:free-programming-books-zh_CN:58K 星的GitHub,编程语言、WEB、函数、大数据、操作系统、在线课程、数据库相关书籍应有尽有,共有几百本。Go语言高级编程:涵盖CGO,Go汇编语言,RPC实现,Protobuf插件实现,Web...

2020-03-23 17:11:20 592

原创 Android与Chromium源码搜索工具(八十四)

Android&&Chrome源码搜索

2020-03-23 10:49:25 296

原创 Android7.1以上PRODUCT_COPY_FILES拷贝失败解决

1.emacs Android.mk$(warning $(TARGET_OUT_APPS)/123)$(warning $(LOCAL_PATH)/test)#$(shell mkdir -p $(TARGET_OUT_APPS)/123)//将本目录下test文件夹拷贝到out/.../system/app/123目录下$(shell cp -rf $(LOCAL_PATH)/t...

2020-03-20 15:51:44 2153 1

转载 ALSA & ASOC

1ALSA1.1架构简述ALSA是Advanced Linux Sound Architecture的缩写,官网:http://www.alsa-project.org.在内核设备驱动层,ALSA提供了alsa-driver.同时在应用层,ALSA为我们提供了alsa-lib,应用程序只要调用alsa-lib提供的API,即可以完成对底层音...

2020-03-20 13:40:29 1482

转载 Android BINDER详解

1.进程间通信的本质(2个进程)用户空间的进程如果想相互通信,必须经过内核,因为不同进程的用户地址空间是独立的,但是共享同一个内核空间.内核为了支持进程间通信,一般会有一个驱动,以字符设备的形式存在(也可以是其它形式,这个驱动的本质就是在不同的进程间传递数据).两个进程间通信一般以client/server的形式进行,大致流程如下:ser...

2020-03-20 13:37:39 1751

原创 Android9.0 Android.bp添加宏开关demo

1.test.cpp#define LOG_TAG "test_demo"#include <stdlib.h>#include <stdio.h>#include <utils/Log.h>int main(){#ifdef DEBUG ALOGE("Android.mk is define DEBUG"); printf("Andro...

2020-03-19 19:31:37 1396 1

原创 Android通过堆栈信息解决ANR问题(八十三)

1.java进程# kill -3 pid 适用于java进程,如system_server进程. 执行命令后,会在/data/anr目录生成trace文件.2.native进程# debuggerd -b pid 适用于native进程,如audioserver进程. 执行命令后,直接在终端输出进程的堆栈信息....

2020-03-18 21:32:29 1161

原创 shell之解析xml文件(九)

1.test.xml<?xml version="1.0" encoding="UTF-8"?><license> <pos>中国,福建,福州市,鼓楼区</pos> <pos>中国,福建,福州市,鼓楼区</pos> <installid>123123</installid> &lt...

2020-03-18 19:08:36 2489

转载 Android编译系统介绍

1. 编译系统变化Android 最初是用 Android.mk 来定义模块的, Android.mk 本质上就是 Makefile。随着 Android 工程越来越大,包含的模块越来越多,以 Makefile 组织的项目编译花费的时间越来越多。google 在 Android 7.0 开始引入了 ninja 编译系统。相对于 make 来说 ninja 在大的项目管理中速度和并行方面有突出的...

2020-03-18 15:56:11 1659

原创 ckati与ninja构建demo

1.编译出ckati工具# git clone https://github.com/google/kati# make -j8# sudo cp ckati /usr/local/bin2.ckati与ninja构建过程<1>.内容一致(注意:ckati默认找Makefile,可以ckati -f Android.mk指定)# emacs Android.mk or ...

2020-03-18 15:08:57 995

原创 cmake与ninja构建编译(二)

1.安装ninja cmake# sudo apt install cmake ninja2.demo# emacs main.cpp#include <iostream>int main() { std::cout << "Hello, Ninja!" << std::endl; return 0;}# emacs CMakeLis...

2020-03-17 21:57:20 8970

原创 Makefile、.mk、.bp、Blueprint、Soong、kati工具链的关系

生成.ninja工具链关系:Android.bp、Blueprint、Soong、kati:总之都是用来把Makefile、.bp、.mk生成.ninja的,只是用了不同的工具生成而已.1.Android.bp --> Blueprint --> Soong --> Ninja2.Makefile or Android.mk --> kati --> Ninj...

2020-03-16 19:01:07 1136

原创 Fuchsia之GN与Ninja构建hello world

接上篇:Fuchsia中GN与Ninja构建过程1.环境搭建# cp -rf out/ ~/home/GN //将编译出来的out目录的gn都拷贝出来# export PATH=$PATH:~/home/GN/out# cp -rf gn/examples/simple_build/build ~/home/GN/myApp# cp gn/examples/simple_bui...

2020-03-16 18:48:59 836

原创 Fuchsia中GN与Ninja构建demo

# sudo apt-get install clang# git clone [email protected]:MeekJeen/GN.git //解压# cd GN# python3 build/gen.py //本目录下生成out目录# ninja -C out //生成gn# cd examples/simple_build# ../../out/gn gen out/defau...

2020-03-16 18:30:10 579

转载 Clang与LLVM的关系

LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。LLVM计划启动于2000年,最初由University of Illinois at Urbana-Champaign的Chr...

2020-03-16 16:04:52 1290

原创 C++成员变量初始化列表中初始化顺序(七十)

1.C++使用初始化列表初始化时,成员变量的初始化顺序:只与定义变量的顺序有关.#include <iostream>using namespace std;class A{private: //结论:成员变量在使用初始化列表初始化时,与构造函数中初始化成员列表的顺序无关,只与定义成员变量的顺序有关; //第一种情况; //int n1;//先定义成员变量n1,先...

2020-03-15 01:06:34 813

原创 C++多继承构造和析构顺序(六十九)

结论:C++类的多继承中,构造函数的执行顺序便与“继承声明”顺序相同。#include<iostream>using namespace std;class C{public: C(){cout<<__FUNCTION__<< "() "<< " line = " << __LINE__ <<endl;}...

2020-03-15 00:00:57 1900

原创 初始化与赋值哪个效率高?

初始化定义:指创建变量并给它赋初始值。赋值定义:擦除对象的当前值并用新值代替。int a = 4;//直接初始化,a = 5;//赋值初始化总结:赋值初始化和直接初始化对比,直接初始化的效率很高。...

2020-03-14 22:09:21 657

转载 Linux虚拟内存那点事儿

概述我们都知道一个进程是与其他进程共享CPU和内存资源的。正因如此,操作系统需要有一套完善的内存管理机制才能防止进程之间内存泄漏的问题。为了更加有效地管理内存并减少出错,现代操作系统提供了一种对主存的抽象概念,即是虚拟内存(Virtual Memory)。虚拟内存为每个进程提供了一个一致的、私有的地址空间,它让每个进程产生了一种自己在独享主存的错觉(每个进程拥有一片连续完整的内存空间)。...

2020-03-14 21:36:48 376 1

转载 linux缓存机制buffer/cache/swap

1)缓存机制介绍 在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接操作磁盘。 缓存机制优点:减少系统调用次数,降低CPU上下文切换和磁盘访问频率。 CPU上下文切换:CPU给每个进程一定的服务时间,当时间片用完后,内核从正在运行的进程中收回处理...

2020-03-14 20:53:52 310

原创 Linux之内存buffer和cpu cache的区别(十四)

1.cache 和 buffer的区别cache是高速缓存,用于CPU和内存之间的缓冲;buffer是I/O缓存,用于内存和硬盘的缓冲<1>.Cache最初用于cpu cache, 主要原因是cpu 与memory, 由于cpu快,memory跟不上,且有些值使用次数多,所以放入cache中,主要目的是,重复使用, 并且一级\二\三级物理cache速度快.<2&gt...

2020-03-14 20:30:20 501

转载 认真分析mmap:what? why? how?

阅读目录mmap基础概念 mmap内存映射原理 mmap和常规文件操作的区别 mmap优点总结 mmap相关函数 mmap使用细节mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到...

2020-03-14 13:24:47 212

原创 sudo apt-get:command not found报错解决(十六)

没有apt-get命令报错:sudo apt-get:command not found解决:# wget http://ftp.cn.debian.org/debian/pool/main/a/apt/apt_1.4.9_amd64.deb# sudo dpkg -i apt_1.4.9_amd64.deb

2020-03-13 21:07:19 49875 6

原创 Android Studio报错:Plugin Kotlin was not installed: Cannot download

1.Android Studio下载Kotlin插件报错:Plugin Kotlin was not installed: Cannot download 'https://plugins.jetbrains.com/pluginManager/?action=download&id=org.jetbrains.kotlin&build=AI-192.7142.36&uu...

2020-03-11 22:21:08 1581

原创 Thinpad X1 2017款制作Win10启动盘(二十)

最近Win10教育版更新之后,竟然没有wifi图标了,无线网卡驱动也装不上去,真是无语了。。。然后着手安装一个Win10专业版,也发现各种坑在等着,总结下Win10系统制作镜像和安装过程.1.Ultraiso制作U盘启动镜像 <1>.踩坑 请不要使用Ultraiso工具来制作镜像,如果用它制作完成,安装系统的时候会报:不能读取:sources/install.wim的问...

2020-03-11 14:21:09 929

转载 Android Studio报错:Could not download kotlin-reflect.jar (org.jetbrains.kotlin:kotlin-reflect:1.3.61)

1.2.3.如果还是没有解决问题然后在build.gradle 里面将 ext.kotlin_version = '1.3.61’设置为自己当前的版本

2020-03-08 20:52:53 2972

原创 欧拉公式证明过程

2020-03-08 01:06:49 1956 1

转载 怎么理解虚数和复数

在实数域中,连接两个真理的最短的路径是通过复数域----雅克·阿达马现代数学家对复数的看法如斯,无限拔高了复数的地位,这样说有道理吗?1 对于复数的普通认知我想,对于复数,或许大家一般会有以下的认知吧。1.1 应付考试高中的时候,会粗略地学习下复数,首先定义:然后形如:这样的数就是复数。有了复数之后,开方运算就不再局限于大于0的数了,这样高中必考的一元二次方...

2020-03-08 00:05:10 2080

原创 复数在坐标系中表示

1.复数概念:形式如z=a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。 当z的虚部等于零时,常称z为实数;当z的虚部不等于零时,实部等于零时,常称z为纯虚数。2.例如:z = 3+2i是复数,它的实部为3(x轴横坐标),虚部为2(y轴纵坐标).z = 1 + 2i 对应坐标:(1,2); 2i表示以1+2的平开再开方的长度,左旋90...

2020-03-08 00:02:35 24178

转载 复数的认识与理解

复数 ⇒ 数从一维变成了二维平面;复数在傅里叶变换中起到的作用主要是将正弦波和余弦波组合起来(),只是一种组合而已(一种数学 trick,或者数学家的魔法),目的是便于表达,或者简化表达。1. 复数的物理意义:旋转复数最直观的理解就是旋转!4* i* i = -4;就是“4”在数轴上旋转了180度。那么4*i 就是旋转了90度。注意:已知i的平方等于-1 . 考...

2020-03-07 23:31:17 4940

转载 Android Native Hook工具

前言在目前的安卓APP测试中对于Native Hook的需求越来越大,越来越多的APP开始逐渐使用NDK来开发核心或者敏感代码逻辑。个人认为原因如下:安全的考虑。各大APP越来越注重安全性,NDK所编译出来的so库逆向难度明显高于java代码产生的dex文件。越是敏感的加密算法与数据就越是需要用NDK进行开发。 性能的追求。NDK对于一些高性能的功能需求是java层无法比拟的。 手游的...

2020-03-07 18:15:43 714

转载 Inline Hook

什么是Inline HookInline Hook即内部跳转Hook,通过替换函数开始处的指令为跳转指令,使得原函数跳转到自己的函数,通常还会保留原函数的调用接口。与GOT表Hook相比,Inline Hook具有更广泛的适用性,几乎可以Hook任何函数,不过其实现更为复杂,考虑的情况更多,并且无法对一些太短的函数Hook。其基本原理请参阅网上其他资料。需要解决的问题Arm模式与T...

2020-03-07 18:07:33 720

H.264标准协议(官方中文版)

H.264是一种视频压缩标准,其只规定了符合标准的码流的格式,以及码流中各个语法元素的解析方法。 H.264标准协议是每个从事多媒体工作的码农必备的参考书,欢迎下载。

2020-10-28

HxD_Hex编辑器中文版.zip

HxD is a carefully designed and fast hex editor which, additionally to raw disk editing and modifying of main memory (RAM), handles files of any size. The easy to use interface offers features such as searching and replacing, exporting, checksums/digests, insertion of byte patterns, a file shredder

2020-09-12

MultimediaFrameworkOverview.zip

音视频多媒体框架GStreamer、PulseAudio采用插件式架构,支持多格式编解码器,支持不同编码器、解析器、分离器和复用器作为插件式架构!

2020-09-01

Gstreamer-Openmax-gst-openmax.zip

OpenMAX is a royalty-free, cross-platform API that provides abstractions for routines especially useful for computer graphics, video, and audio.

2020-08-17

GStreamer中文开发手册.zip

GStreamer是一个通用的跨平台的流媒体应用程序框架,基于GObject,以C语言写成。 GStreamer并不受限于音频和视频处理,它能够处理任意类型的数据流,因此任意一种流媒体应用都可以支持,如:MeidaPlayer、A/V Editor、VOIP、RTSP、A/V Coder等等。 GStreamer框架是基于插件(plugin)和管道(pipeline)的体系结构,框架中所有功能模块都是可插拔的组件,可随意安装到任意管道上

2020-07-22

win10removeAll.zip

Win10彻底关闭windows defender,解决无故占用大量CPU和内存问题! 建议保留一个杀毒软件,不管是360、火绒还是什么,至少安装一个保证电脑的安全。

2020-06-25

vcxsrv-64.1.20.8.1.zip

VcXsrv是微软Windows的开源显示服务器。 它使Windows操作系统的用户能够运行为X Window System设计的GUI程序。 VcXsrv可以运行安装了WSL(Linux子系统Linux)的Linux GUI程序。 在bash for Windows中,设置DISPLAY环境变量允许WSL程序使用Windows GUI。

2020-06-20

debug_hybris_demo.zip

libhybris主要作用是为了解决libc库的兼容问题,目的是为了在基于GNU C library的系统运行那些用bionic编译的库(主要是Android下的闭源HAL库)。因为这些系统都是基于glibc生态的,然而现有的硬件厂商提供的driver多是为Android而写的,自然也是用bionic编译的。如何让基于glibc的系统能够重用现有Android的driver呢?这就需要像libhybris这样的兼容层。

2020-06-03

手写Fuchsia第一个app

在研究GN和Ninja时,发现Fuchsia也是用的GN和ninja来构建编译系统的,值得一提的是Android7.0以后放弃了Makefile,开始使用ninja来构建编译系统!

2020-03-16

Linux内核内存Cache机制原理

Linux内核内存Cache机制原理从源码的角度来分析流程,可以帮助Linux内核学习者了结Cache的内存机制!

2020-03-14

第五代加固技术ARM VMP原理实现与应用.zip

随着Android逆向开发的升级,Android应用的安全越来越被重视,第五代加固技术ARM VMP原理实现与应用正在探索中发展。

2020-03-01

AUDIO CODEC DAPM详解.zip

本文目的帮助理解音频系统ALSA中的dapm机制建立和触发过程,在这之中,涉及到音频路径的搭建和选择(相信这部分对于大家来说更有应用意义)。在dapm机制深入分析中,会展现alsa设计者的各种理念及实现技巧,很多细节上的考虑和处理值得我们去学习。

2019-12-30

蓝牙Audio调试.zip

蓝牙协议栈有很多种profile,像HFP、A2DP、HSP等等,他们通讯都是蓝牙模块和CPU或者DSP之间,通过AT指令来发送信息,这篇文档介绍各种profile及支持采样率和通道数据,还有调试方式!

2019-12-27

Universal Serial Bus Device Class Definition for Audio Devices.zip

Universal Serial Bus Device Class Definition for Audio Devices(UAC2.0协议文档),研究usb audio必读,欢迎下载!

2019-11-16

Pixel ROM(sailfish)

最近在玩Pixel,自己花了一周时间下载Android源码,编译出来Pixel root版的ROM,分享给爱玩机的朋友!

2019-10-20

最新windows和linux的adb工具

下载了一份最新windows和linux平台的adb工具,以此提供给更多开发者方便使用!

2019-07-30

基于域名路由策略.zip

目前使用主流的Linux配置都是基于ip设置路由策略,此篇讲解怎么基于域名路由策略,仅供参考!

2019-07-17

busybox.zip

Android debug的时候由于android原生的命令太少,编译了一个busybox分享出来,欢迎下载。

2019-06-25

Audition 2019版

Audition是做音频开发不可或缺的重要的开发工具,分享一个Win10 2019免注册版备用,也欢迎下载。

2019-06-13

802.11 Reason Code中文说明(全)

WIFI断网有很多情况,如果去翻看802.11协议文档,全英文的很费劲,把Deauthentication Reason Codes中文说明放在这里,供大家参考

2019-05-21

H266(VVC)视频编码协议标准pdf

H266(VVC)视频编码协议标准最新版 T-REC-H.266-202204-I!!PDF-E.pdf

2023-10-05

ISO 13818-7 AAC标准协议文档

ISO 13818-7 AAC标准是MPEG-2标准中定义的一部分,详细描述了AAC在MPEG-2传输流中的编码和解码方法。

2023-09-03

word2010中输入简谱

word2010中输入简谱

2023-04-25

Picture auto gen tools

Picture auto gen tools for wechat

2023-03-27

AIDL for HALs测试客户端

AIDL for HALs测试客户端

2023-01-10

彻底禁掉Win10 Defender自启动

彻底禁掉Win10 Defender自启动! 彻底禁掉Win10 Defender自启动! 彻底禁掉Win10 Defender自启动! 开机内存不会占用特别高! 开机内存不会占用特别高! 开机内存不会占用特别高!

2022-12-24

免费DLL修复工具For WIn10/Win11

免费DLL修复工具

2022-10-22

Typora free版本for Ubuntu22.04

Typora free版本for Ubuntu22.04

2022-10-22

gnome-boxes虚拟机跨平台工具

gnome-boxes虚拟机工具 1.Windows和Linux剪切版共享工具 2.Windows和Linux文件共享工具

2022-10-12

android10以上源码中编译java及UI代码

1.增加Android.mk编译方式 2.增加Android.bp编译方式

2022-07-18

企业微信for Linux

企业微信forLinux

2022-06-22

微信for Ubuntu18.04

微信for Ubuntu18.04

2022-06-22

qt_audio_record.tar.gz

花了一天时间研究,在x86与ARM平台验证可用,备忘!

2021-04-28

qt_audio_play.tar.gz

QT之QMediaPlayer播放音频demo

2021-04-28

deepin.com.wechat_2.6.8.65deepin0_i386-OK.zip

deepin for wechat

2021-03-22

capture_test.zip

在Android6.0平台上,UVC Camera使用标准V4L2接口获取视频数据,并保存文件,测试debug调试使用。

2021-03-09

java-7-openjdk-amd64.tar.gz

目前OpenJDK-7-JDK的源已经被废弃了,手动安装的花需要安装一系列的依赖,特别麻烦,这里提供给需要的开发人员.

2021-01-22

Elecard HEVC Analyzer_For_Windows.zip

分享一个Elecard h265分析工具,大家都知道Elecard很贵,不多说了,内附registor.

2021-01-06

push_stream_test.zip

此mp4文件为h264编码格式,用于推流使用.

2020-12-23

JM-H264参考手册

JM:JM通常被认为是H.264标准制定团队所认可的官方参考软件,基本实现了H.264标准的全部特征。JM在运行时的运算过程较为复杂,而且没有采用汇编优化等加速方法,因此运行速度较慢,很难达到实时编解码。通常主要用于编解码技术的科学研究领域。

2020-10-28

空空如也

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

TA关注的人

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