自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 资源 (7)
  • 收藏
  • 关注

原创 mediainfo工具查看文件信息

1.打开mediainfo软件,在debug菜单下选择Details-10,

2022-10-30 11:20:53 867 1

原创 网络编程知识四之IO模型 设置获取socket属性

一.I/O模型讲解1)阻塞(block)IO :当资源不满足条件。 此时进程阻塞。进程休眠,不会浪费CPU。最简单效率低。并且进程最终会阻塞在其中一个阻塞函数上,而其它的函数没法及时调用。常见的阻塞I/O:read / write fgets/scanf send/recv accept2)非阻塞的方式调用(noblock)问题:需要不断轮询每个函数,浪费cpu资源 。若是没有数据,则让进程立即返回错误。错误码如下:普通文件描述符 EAGAIN套接字

2022-05-08 18:15:46 559

原创 网络编程知识三之TCP协议与常见服务器模型

一.tcp(传输控制协议)协议简介协议: 双方约定好的数据包格式,类似于快递公司让我们要在固定位置填收货人地址和电话号码。特点:1>面向连接1)三次握手2)四次挥手2>保证数据包的可靠性数据无丢失,数据包无错误, 数据包无失序,数据无重复达到TCP协议使用的产品:发送邮件,数据下载,QQ登录 …3>TCP创建流程图注意: 1. 监听套接字(套接字被设置成监听模式,专门接受客户端连接请求)2. 每一步流程的作用4>TCP数据传输原理注意: 1. 客户端

2022-05-08 16:18:02 1373

原创 网络编程知识一之数据结构函数及udp协议

一.Internet 历史发展1. ARPA网络------早期的网络,internet的雏形。APRA网络使用的是NCP(network control protocol)协议。缺点:1)不能连接不同类型的计算机 和 不同的操作系统2)没有纠错功能2. TCP/IP协议随着历史的发展,NCP协议逐渐被废除,形成了TCP/IP协议。3. tcp(Transmission Control Protocol) :传输控制协议功能: 负责检测网络传输中的差错并处理,保证数据的完整性。什么叫高

2022-05-08 15:25:07 984

原创 网络编程知识二之网络参数及基本概念

一.概述概述整个互联网非常复杂,涉及到很多知识,学习互联网不能一蹴而就,所以这里从最简单的家庭网络开始学习:家庭网络一般是通过Modem拨号上网,然后通过家庭路由器,将网络连接到家里所有的可以联网的设备。家庭网络中,所有设备联网方式完全相同,所以只需要学习一个设备和其他设备之间如何通讯,即可理解家庭网络。这里我们通过telnet和百度两个网络应用,来研究A电脑如何跟其他设备进行通讯:1.telnet(远程登录)本地计算机B搞清楚计算机A如何跟局域网内部设备通讯。2.百度搞清楚计算机A如何跟局

2022-05-08 13:26:21 1081

原创 linux下NDK的安装

一.下载linux版本的NDK二.安装步骤1.解压文件unzip android-ndk-r21-linux-x86_64.zip2.修改配置文件vim ~/.bashrc添加如下信息export NDKROOT=/ndk解压目录/android-ndk-r21export PATH=$NDKROOT:$PATH3. 运行脚本source ~/.bashrc4.验证是否安装成功ndk-build...

2022-04-30 18:17:51 2844 1

原创 CMake基础知识二之实例单个文件,多个文件,动静态库及使用

一.SimpleExample1.目录结构在当前目录下新建一个build目录,1.mkdir build2.cd build3.cmake ../4.makeps:在build目录下make clean可以去除调生成hello可执行文件。danny@llp:build$ cmake ../-- The C compiler identification is GNU 5.4.0-- The CXX compiler identification is GNU 5.4.0-- Ch

2022-04-21 15:16:23 650

原创 Cmake使用基础知识一之基础语法

一.cmake中预定义的变量PROJECT_SOURCE_DIR 工程的根目录PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/buildCMAKE_INCLUDE_PATH 环境变量CMAKE_LIBRARY_PATH 环境变量CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.txt所在的路径CMAKE_CURRENT_BINARY_DIR target编译目录

2022-04-21 11:31:32 748

原创 FFMpeg基础知识二之linux下安装ffmpeg

一.下载ffmpeg源码http://www.ffmpeg.org/releases二.进入解压目录后,输入如下命令配置为自己安装的目录cd xxxx.tar.gz./configure --prefix=/usr/local/ffmpegmakemake install三.安装问题如果安装ffmpeg过程中,执行./configure时,报yasm/nasm not found or too old. Use --disable-yasm for a crippledbuild错误,

2022-04-16 20:44:29 679

原创 source insight 快捷键设置

在菜单栏中option—>Key Assignments菜单栏中1> Search:Search… 搜索关键字2> Search:Search Forward 向前搜查3> Search:Search Backward 向后搜查4> View:Highlight Word 关键字高亮

2022-03-10 18:33:26 444

原创 repo的实际使用

一. repo简介repo是Google开发的用于管理Android版本库的一个工具,repo是使用Python对git进行了一定的封装,并不是用于取代git,它简化了对多个Git版本库的管理。用repo管理的版本库都需要使用git命令来进行操作。1 介绍清单库文件清单文件是以xml的格式组织的,一个清单库可以包含多个清单文件和多个分支,每个清单文件和分支都有对应的版本。1.1 remote元素定义了名为korg的远程版本库,库的基址为git://172.16.1.311.2 project元素

2022-02-21 20:51:40 9818 1

原创 ADB相关命令

1、adb root 获取root权限2、adb disable-verity 关闭分区检测功能3、adb reboot 执行adb disable-verity后需要重启设备4、adb root 设备重启后再次获取root权限5、adb remount 使system分区为可读可写模式

2022-02-14 15:14:16 623

转载 android源码侧如何查看当前Android版本

从文件build/core/version_defaults.mk查找PLATFORM_VERSION例如:PLATFORM_VERSION.OPM1 := 8.0.0可以在android源码网站check这点:http://www.aospxref.com/

2022-02-11 10:40:47 984

原创 Android权限问题

Android权限问题一.uses-permission为保证application的正常运行,需要系统授予相应的权限,这个权限是在用户安装应用的时候授予的。在AndroidManifest.xml中设置权限格式: <!-- 授予读取外部存储设备的的访问权限 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>android:name:1.可以是其他ap

2022-02-08 14:19:12 463

原创 C语言数组指针和指针数组详解

C语言数组指针和指针数组详解一.指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是存储指针的数组的简称。二.数组指针:首先它是一个指针,它指向一个数组。它是指向数组的指针的简称。int *p1[10];int (*p2)[10];...

2022-02-07 19:19:32 390

原创 C语言基础知识之define宏定义表达式,undef,内存对齐,a和&a的区别,数组知识点,int (*)[10] p,二维数组参数与二维指针参数,函数指针数组,常见的内存错误及对策

一.用define宏定义表达式1.定义一年有多少秒:#define SEC_A_YEAR 60*60*24*365//上述描述不可靠,没有考虑到在16位系统下把这样一个数赋给整型变量的时候可能会发生溢出#define SEC_A_YEAR (60*60*24*365)UL2.#undef#undef是用来撤销宏定义的#define PI 3.1415926code...#undef PI//接下来的代码无法使用宏PI//也就是说宏的生命周期从#define开始到#undef结束。

2022-02-07 19:14:09 1048

原创 Android获取进程号,线程号,进程ID,线程ID

Android中获取进程号,线程号,进程ID,线程ID相关信息package com.danny.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.os.Process;import android.util.Log;import android.view.View;public class MainActivity extends A

2021-12-30 21:59:44 6794

原创 Android学习笔记之签名Android应用程序

Android项目以它的包名作为唯一标识。如果在同一台手机上安装两个包名相同的应用

2021-12-27 20:56:00 2167

转载 Andriod API和版本对应

API LevelAndroid版本Linux内核版本首次发布日期后续Android版本30112020-2-2029105.02019-09-032894.4.107 4.9.84 4.14.422018-08-06278.14.102017-12-05268.04.102017-08-21257.14.4.12016-10-047.1.1 7.1.2247.04.4.12016-08-22...

2021-12-26 10:02:55 330

原创 Win10下更改Android AVD 模拟器的存放位置的方法

背景:正常情况下Android AVD模拟器默认路径为c:\user\用户名.android\avd,当C盘空间远远不够时,我们需要欲将其移植到其他盘下,下面以D盘为例。一、建立文件夹在D盘下建立Android_Sdk_Home文件夹,在其下建立.android子文件夹再在.android下建立avd文件夹,即建立了D:\Android_sdk_home.android\avd目录。二、配置环境变量。打开 计算机–>属性–>高级系统设置–>环境变量新建变量名ANDROID_SD

2021-11-28 17:53:02 1563

原创 Android学习读书笔记之界面编程UI组件布局管理器,TextView,Button,AnalogClock和TextClock功能

一.UI组件之布局管理器布局管理器可以根据运行平台来调整组件的大小,而我们要做的就是为容器选择合适的布局管理器。所有布局都可以作为容器类使用,因此可以调用多个重载的addView()向布局管理器中添加组件。1.线性布局LinearLayoutLinearLayout包含的所有子元素都受LinearLayout.LayoutParams控制,因此LinearLayout包含的子元素可以额外指定如下属性:<?xml version="1.0" encoding="utf-8"?>

2021-11-22 07:35:23 424

原创 Android学习笔记之Android平台架构和特性

一.Android的平台架构及特性Android系统的底层建立在Linux系统之上,该平台由操作系统,中间件,用户界面和应用软件4层组成。采用一种被称为软件叠层的方式进行构建。1.应用程序层(System Apps)Android系统将会包含一系列的核心应用程序,包括电子邮件客户端,SMS程序,日历,地图,浏览器,联系人等,这些应用程序通常都是用Java编写的。2.应用程序框架(Java API Framework)Java 语言编写的 API 使用 Android OS 的整个功能集。这些 A

2021-11-09 08:28:19 2801

原创 Java语言学习之类加载机制与反射

一.类的加载,连接和初始化1.JVM和类当调用java命令运行某个java程序时,该命令将会启动一个Java虚拟机进程,同一个JVM的所有线程,所有变量都处于同一个进程里,它们都使用该JVM进程的内存区。当系统出现以下几种情况时,JVM进程将被终止。1>程序运行到最后正常结束;2>程序运行到使用System.ext()或Runtime.getRuntime().exit()代码出结束程序;3>程序执行过程中遇到未捕获的异常或错误而结束;4>程序所在平台强制结束了JVM进

2021-11-07 19:09:35 162

原创 Java语言学习之Annotation(注释)

Annotation提供了一种为程序元素设置元数据的方法,从某些方面来看,Annotation就像修饰符一样,可以用于修饰包,类,构造器,方法,成员变量,参数,局部变量的声明。这些信息被存储在Annotation的“name=value”对中。一.基本Annotation5个基本的Annotation如下:@Override@Deprecated@SuppressWarnings@SafeVarargs(Java7)@FunctionalInterface(Java8)1.限定重写父类方法:

2021-11-07 11:15:00 176

原创 Java语言学习之泛型

在没有泛型之前,一旦把一个对象丢进java集合中,集合就会忘记对象的类型,把所有的对象当成Object类型处理,当程序从集合中取出对象后,就需要进行强制类型转换,这种强制类型转换不仅使代码臃肿,而且容易引起ClassCastExeception异常。 Java泛型还增强了枚举类,反射等方面的功能.一.泛型入门1.编译时不检查类型的异常public class ListErr{ public static void main(String[] args) { // 创建一个只想保存字符串.

2021-11-06 10:45:37 1385

原创 Java语言学习之使用JAR文件

JAR文件与ZIP文件的区别在于JAR文件中默认包含了一个名为META-INF/MANIFEST.MF的清单文件,这个清单文件是在生成JAR文件时由系统自动创建的。一.使用JAR文件当开发了一个应用程序后,这个应用程序包含了很多类,如果需要把这个应用程序提供给别人使用,通常会将这些类文件打包成一个JAR文件,把这个JAR文件提供给别人使用,只要别人在系统的CLASSPATH环境变量中添加了JAR文件,则Java虚拟机就可以自动在内存中解压这个JAR包,把这个JAR文件当成一个路径,在这个路径中查找所需要

2021-11-05 15:03:56 414

原创 Java设计模式之策略模式实战

一.创建接口Strategy.javapublic interface Strategy { public int doOperation(int num1, int num2); public void print();}二.创建实现接口的实体类OperationAdd.javapublic class OperationAdd implements Strategy { private int result = 0; @Override public

2021-10-25 18:10:56 235

转载 Android系统malloc_debug的使用

一.malloc_debug简介android 的libc中有malloc_debug的hook调用,具体android源码/bionic/libc/malloc_debug下,我们可以使用malloc_debug中的hook函数对内存分配进行跟踪加测。malloc_debug主要包含的功能如下:1.内存分配和释放跟踪,支持的函数如下:When malloc debug is enabled, it works by adding a shim layer that replacesthe nor

2021-10-25 13:28:01 4082

原创 利用Strace工具分析内存泄漏问题

一.内存泄露代码straceMemleak.c#include <stdio.h>#include <pthread.h>#include <unistd.h>#include <stdlib.h>#include <sys/prctl.h>#include <sys/types.h>#include <sys/syscall.h>#define MMAP_PRINT_THRESHOLD 131049

2021-10-21 19:04:53 2884

转载 Strace工具的使用

一.Strace简介strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。二.Strace的使用1.

2021-10-21 15:21:52 1375

原创 linux下使用gtest框架进行c/c++测试-gtest环境搭建

一.前言google test(以下简称gtest)是谷歌的开源C++单元测试框架,用来做c/c++的单元测试比较方便。下面对于它在linux下的使用环境搭建做简单介绍。二.准备gtest框架在github网站下载gtest框架https://github.com/google/googletest解压后的目录结构如下:danny@danny:~/Learing/googletest/googletest-master$ ls -lhtotal 56K-rw-r--r-- 1 danny d

2021-07-09 14:22:04 3369 2

原创 Ubuntu下GTest的安装和简单测试

1.Ubuntu直接通过控制台安装sudo apt-get install libgtest-dev2.编译链接库2.1进入gtest文件夹cd /usr/src/gtest2.2编译#没有安装Cmake的请先安装cmakesudo mkdir build cd buildsudo cmake .. #一定要以sudo的方式运行,否则没有写入权限sudo make #这个也一样要以sudo的方式3.将生成的libgtest.a 和 libgtest_main.a 拷贝

2021-07-07 19:34:59 2218 1

原创 Win10日语输入法切换快捷键

Win10日语输入法切换快捷键1.中文输入法和日语输入法切换只要按win(小窗口)+ctrl+空格就可切换.2.日语输入法默认输入平假名,要切换到输入片假名按alt+caps lock.3.由片假名切换回平假名按ctrl+caps lock....

2021-04-13 22:27:05 5816

转载 Android的logcat命令实用

Android的logcat命令实用(1) 显示全部日志信息:adb logcat(2) 显示某一TAG的日志信息:adb logcat -s TAG名称(3) 显示某一TAG的某一级别的日志信息:adb logcat TAG名称:级别.....TAG名称:级别 *:S 注:日志级别(V-verbose,D-debug,I-info,W-warning,E-error,F-fatal,S-silent),*:S(确保日志输出的时候是按照过滤器的说明限制)(4) 显示某一级别以上的

2021-04-02 14:46:58 388

转载 Android中定时执行任务的3种实现方法

Android中定时执行任务的3种实现方法在Android开发中,定时执行任务的3种实现方法:一、采用Handler与线程的sleep(long)方法(不建议使用,Java的实现方式)二、采用Handler的postDelayed(Runnable, long)方法(最简单的android实现)三、采用Handler与timer及TimerTask结合的方法(比较多的任务时建议使用)下面逐一介绍:一、采用Handle与线程的sleep(long)方法Handler主要用来处理接.

2021-03-17 15:43:05 3599 2

转载 SystemClock.sleep()方法与Thread.sleep()方法的区别

Thread.sleep()是java提供的函数。在调用该函数的过程中可能会发生InterruptedException异常。SystemClock.sleep()是android提供的函数。在调用该函数的过程中不会发生InterruptedException异常,中断事件将要被延迟直到下一个中断事件。Use this function for delays if you do not useThread.interrupt(), as it will preserve the interrupted s

2021-03-17 13:26:31 1711

原创 C++学习笔记之C++对C的扩展

一.类型增强1.把一个const类型的指针赋给非const类型的指针,C语言中可以通过,但是C++中则编不过去。C语言中表达式通常不能作为左值的,即不可被赋值,c++中某些表达式是可以赋值的。#include <stdio.h>int main(int argc, char *argv[]){ const int a = 100; //a = 90; //erro 1 int *p = &a; //C语言中const类型的指针可以赋给非const类

2021-01-09 16:57:42 146

原创 Java中自定义异常类

package com.danny.example;public class MyException extends Exception {protected static final int UNKNOW_ERROR = 0x100;protected static final int NUM1_ERROR = 0x200;protected static final int NUM2_ERROR = 0x300;private int mErrCode = UNKNOW_ERROR;pri

2020-12-19 18:38:14 147 1

原创 全球各个国家及其首都中英文对照表

日本 Japan 东京 Tokyo中国 China 北京 Beijing韩国(南朝鲜) Korea 汉城 Seoul朝鲜 North Korea 平壤 Pyongyang蒙古 Mongolia 乌兰巴托 Ulan Bator菲律滨 Philippine 马尼拉 Manila马来西亚 Malaysia 吉隆坡 Kuala Lumpur新加坡 Singapore 新加坡 Singapore印度尼西亚 Indonesia 雅加达 Jakarta泰国 Thailand 曼谷 Bangkok越南

2020-12-19 11:55:30 3611 1

原创 java中枚举的使用

class TestEnum { public enum PlayStatusEnum { PLAY(0), PAUSE(1), FF(2), REW(3), STOP(100); private int mPlayStatus = -1; private PlayStatusEnum(int value) { mPlayStatus = value;

2020-12-17 21:22:26 115

encoder encoder encoder

encoder encoder encoder

2023-11-28

Android NDK开发4-简单播放器ffmpeg-4-2-player

FFMpegSimplePlayer.rar 在android平台下基于FFMpeg的简单音视频播放器demo

2022-12-22

Android NDK开发3-编译FFmpeg 对应源码资源

ffmpeg_4_1.rar andoird平台使用ffmpeg接口 ffmpeg_4_1-player.rar android平台使用ffmpeg的播放器 ffmpeg_4.2.1_sh.tar.bz2 编译对应平台的脚本

2022-12-22

android ndk开发2-jni配套code

1.创建一个Native程序测试 2.build.grade 配置C++标准 3.配置库文件的输出目录 4.生成指定cpu平台对应的so库文件

2022-12-02

ffmpeg内存模型AVPacket API和AVFrame API

10linux-ffmpeg-buffermode

2022-10-27

09-SDL音视频渲染实战SDL安装和接口说明

05linux-sdl-window 06linux-sdl-event 07linux-sdl-thread 08linux-sdl-playyuv 09linux-sdl-pcm

2022-10-24

【06-FFMpeg命令实战】ffmpeg和ffplay命令

mult.ts test_1280x720.mp4 yuv420p_320x240.yuv

2022-10-11

【04-开发环境搭建】Ubuntu 16开发环境搭建+QT+FFmpeg配套代码

01linux_ffmpeg 02linux_sdl_basic 03linux_sdl_yuv 04linux_ffmpeg_extract_aac

2022-10-10

Adaptive Platform 标准文档

Adaptive Platform 标准文档

2022-05-23

cmake代码示例,基础知识

cmake代码示例,基础知识

2022-04-21

bundle传递基本数据,Parcelable类型数据,Serializable类型数据

bundle传递基本数据,Parcelable类型数据,Serializable类型数据

2022-03-19

makefile相关资料文档.rar

makefile相关资料文档.rar

2021-10-10

TestCase.tar.gz

TestCase.tar.gz

2021-07-09

空空如也

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

TA关注的人

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