自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(636)
  • 资源 (9)
  • 收藏
  • 关注

原创 ios开发问题记录记录

1、提示....usr/include/c++/v1/__threading_support:457:11: error build: Use of undeclared identifier 'nanosleep'。的头文件,其中有一个头文件名叫time.h,而nanosleep来源于头文件/usr/include/time.h,造成了冲突,导致编译查找头文件时候,系统头文件被覆盖。解决方法:将FFmpeg的源码中的AVMediaType改个名字之后重新编译FFmpeg再导入工程即可编译通过。

2023-04-15 21:13:45 311 1

原创 android 相机预览编译 libyuv 处理 YUV 数据

下载源码(需翻墙),Android Studio 新建一个 NDK 项目,源码拷贝到 cpp 目录下。include 下面是头文件, source 下面是源码,其它文件基本用不到不用管。CMakeLists.txt 是 cmake 编译脚本, 现在android ndk 默认都是用 cmake 编译。// 格式转换(NV21、NV12、I420等格式互转)libyuv\include\libyuv\convert.hlibyuv\include\libyuv\convert_from.

2022-05-18 20:16:10 608 1

原创 两数相加-2

题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807方法1:主要思路:(1)直接将从头开始相加两个链表

2022-05-07 15:13:20 1516

原创 两数之和-1

题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]方法1:直接每次从头到尾比较主要思路:(1)依次取出数组中的元素,和其后面的其它元素相加,判断是否等于target;(2)

2022-04-26 17:21:52 236

原创 javap -s 查看java方法签名

在Android NDK开发中,经常需要在C代码中回调JAVA中的方法这时就需要知道java方法的方法名和方法签名。使用javap -s 命令可以完成。查看系统java系统方法javap -s java.lang.String 查看自定义类:转到class(D:\jnitest\J1\ccalljava\build\intermediates\javac\debug\classes)目录下执行:javap -s com.example.ndksocket.Mai...

2021-02-01 17:25:26 411

转载 MFC中动态生成CComBox,响应CComBox选中项的消息ON_CBN_SELCHANGE,并获取项的值

一:在CComBox的父窗口类头文件中定义一个CComBox的ID号ID_COMBOX,在之后用于绑定响应选中项时的消息ON_CBN_SELCHANGE。我将其定义为:#define ID_COMBOX 57666注:也可以在resourceview中的String table中定义这个ID_COMBOX。二:在需要生...

2019-07-02 15:12:54 4034

转载 浅谈汇编——堆栈指令

现今的CPU中都有栈的设计。8086CPU提供相关的指令来以栈的方式访问内存空间。这意味着,我们在基于8086CPU编程的时候,可以将一段内存当作栈来使用。8086CPU提供入栈和出栈指令: (最基本的)PUSH(入栈) push ax:将寄存器ax中的数据送入栈中; POP (出栈) pop ax :从栈顶取出数据送入ax。8086CPU的入栈和出栈操作都是以字(两个字节)为单...

2019-06-16 17:46:24 5486

转载 汇编角度看函数堆栈调用

下面以主函数调用求和函数分析函数堆栈调用带着以下一个问题来探索:(1)形参的内存空间的开辟和清理是由调用方还是由被调用方执行的?(2)主函数调用函数结束后,主函数从哪里开始执行?从头开始还是从调用之后开始?(3)返回值是如何带出来的?用于验证的代码如下:#include<srtio.h>int sum(int a,int b){ int res ...

2019-06-15 21:11:45 951

转载 汇编指令:rep stos

先贴上代码,因为用的VS2013,该图为VS2013 DEBUG 版的反汇编代码指令解析stos  串存储指令,英文缩写store string, 将eax中的数据传送到目的地址(目的地址默认为es:[edi]),以下两条指令相当于一条stos指令mov [edi], eaxadd edi, 4 ;或者 sub edi, 4 至于到底是加 4 还...

2019-06-11 22:28:44 1371

转载 设置C++崩溃时生成Dump文件

Dump 文件是进程的内存镜像 , 可以把程序的执行状态通过调试器保存到dump文件中 ; Dump 文件是用来给驱动程序编写人员调试驱动程序用的 , 这种文件必须用专用工具软件打开 , 比如使用 WinDbg , VisualStudio 打开 ;当我们的程序发布出去之后 , 在客户机上是无法跟踪自己代码的 BUG 的 , 所以 Dump 文件对于我们来说特别有用 ; 我们可以通过 .dmp...

2019-05-24 11:03:58 1004

转载 使用VS2012调试Dump文件

前一节我讲了怎么设置C++崩溃时生成Dump文件 , 点击传送门, 这一节我讲讲怎么使用 VS2012 调试生成的 Dump 文件 , 甚至可以精确到出错的那一行代码上面 ;1. 生成 Dump 文件我在主函数写了如下崩溃代码 :int main(){ // 加入崩溃dump文件功能 SetUnhandledExceptionFilter(ExceptionFi...

2019-05-24 11:02:21 298

转载 你必须知道的几种java容器(集合类)

一、基本概念Java容器类类库的用途是“持有对象”,并将其划分为两个不同的概念:1)Collection:一个独立元素的序列,这些元素都服从一条或者多条规则。List必须按照插入的顺序保存元素,而set不能有重复的元素。Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)。2)Map:一组成对的“键值对”对象,允许你使用键来查找值。|Collection| ...

2019-05-23 22:32:48 991

转载 Java集合之Enumeration

EnumerationEnumeration 接口是Iterator迭代器的“古老版本”,从JDK 1.0开始,Enumeration接口就已经存在了(Iterator从JDK 1.2才出现)。Enumeration接口只有两个方法。boolean hasMoreElements()如果此迭代器还有剩下的元素,则返回trueObject nextElement()返回该迭代器的下...

2019-05-20 21:53:34 237

转载 android studio中application module,library module,java module的区别

如题,我们知道,android stuido 中一个project中可以包含很多个module。我查了一下,主要是包含了android application module,android library module,java library module这三种module。我现在的理解是android application module以作为一个可以运行的应用,而android libr...

2019-05-18 16:24:47 1656

转载 jar包与aar包的区别

1. 概述在Android开发过程中,我们总是会引入第三方库或者资源等,而这些第三方库、或者资源文件有可能是jar文件,有可能是aar文件,那么这两种文件有什么区别呢?请继续往下边看。2. jar文件1>:jar文件就是 Java Archive File,java归档文件,是与平台无关的文件格式,将许多文件组合成一个压缩文件;2>:以 .zip格式为基础,不仅用于压缩和发布...

2019-05-18 15:17:32 3877

转载 java中的@Override标签,小细节大作用

一般用途 帮助自己检查是否正确的复写了父类中已有的方法 告诉读代码的人,这是一个复写的方...

2019-04-30 15:14:15 481

转载 Java中继承和多态,重写与重载的区别

什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承、多态、重载和重写。继承(inheritance)简单的说,继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(下面会讲到,这种方式叫重写)的方式,产生一个新的类型。继承是面向对象的三个基本特征--封装、继承、多态的其中之一,我们在使用JAVA时编写的每一个类都是在继承,...

2019-04-30 14:26:06 1519

转载 git stash 用法总结和注意点

常用git stash命令:(1)git stashsave "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。(2)git stash list:查看stash了哪些存储(3)git stash show:显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如...

2019-04-25 15:05:36 4292

转载 Git 代码撤销、回滚到任意版本(当误提代码到本地或master分支时)

两种情况(场景)情况一代码还只在本地,未push到运程仓库,想把代码还原到上一次commit的代码,此时操作为代码撤销解决方案:git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]情况二代码已经push到运程仓库,想把代码还原到上一次提交,此时操作为代码回滚解决方案:1)先查看git提交日志,...

2019-04-25 14:48:37 650

转载 详解git pull和git fetch的区别:

前言在我们使用git的时候用的更新代码是git fetch,git pull这两条指令。但是有没有小伙伴去思考过这两者的区别呢?有经验的人总是说最好用git fetch+git merge,不建议用git pull。也有人说git pull=git fetch+git merge,真的是这样吗?为什么呢?既然如此为什么git还要提供这两种方式呢?1. 相同点首先在作用上他们的功能是大致相同的...

2019-04-21 10:52:47 583

转载 Git客户端(TortoiseGit)基本使用详解

1、环境安装Git最新版下载地址:https://gitforwindows.org/TortoiseGit,Git客户端,32/64位最新版及对应的语言包下载地址:https://tortoisegit.org/download/安装的方法,一直下一步就行,具体做法省略。2、配置 1. 首先,请选定一个存放Git项目的目录,这样管理方便. 如:D:\t...

2019-04-18 16:58:22 478

原创 java提高篇(四)-----理解java的三大特性之多态

面向对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同时继承也为实现多态做了铺垫。那么什么是多态呢?多态的实现机制又是什么?请看我一一为你揭开: ...

2019-04-15 18:22:46 148

转载 java和C++在多态实现上的区别

1:java中没有虚函数的概念,但是有抽 象函数的概念,用abstract关键字表示,java中抽象函数必须在抽象类中,而且抽象 函数不能有函数体,抽象类不能被实例化,只能由其子类实现抽象函数,如果某个抽象类的子类仍是抽象类,那么该子类不需要实现其父类的抽象函数。2:C++中的有虚函数的概念,用virtual 关键字来表示,每个类都会有一个虚函数表,该虚函数表首先会从父类中继承得到父类的...

2019-04-10 14:38:32 775 1

转载 C++与Java多态的区别

多态是指用父指针指向不同子类对象时,调用其共有的函数,不同的子类会有不同的行为。虽然C++和Java都具有多态机制,但是他们的实现不同,使用时的效果也会略有不同。在C++中普通函数调用:具体调用哪个方法在编译时就可以决定(通过查找编译器的符号表),同时在使用标准过程调用机制基础上增加一个表示对象身份的指针(this指针)。 虚函数调用:函数调用依赖于对象的实际类型,一般地说,对象的...

2019-04-10 14:36:42 1405 1

转载 AndroidStudio使用localMaven

简介有时候开发一个三方库,开发阶段并不希望提交到服务器maven,只想提供给本地的其他项目使用的时候,可以使用localMaven,将三方库提交到本地计算机仓库,然后其他项目将localMaven配置到仓库查找列表,这样,可以避免不断的往服务器提交三方库而需要不断的提升版本号的问题。发布三方库三方库build.gradle配置apply plugin: 'maven'apply...

2019-04-09 18:55:51 1342

转载 什么是Android NDK

1、NDK是一系列工具的集合。NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK可以自动地将so和Jav...

2019-04-07 21:43:29 825

转载 sln、db、opendb、vcxproj、filters、user文件跟踪说明

一个问题在用git进行版本控制时,发现问题:项目属性 和 提交版本的 项目属性不一样, 但我在版本控制中又添加了.vcxproj文件。 这是为什么呢?解决: 原来我提交的版本时,编译方式是Debug-X86, 而我在新电脑上 pull下来时,打开的vs 编译方式是 Debug-x64, 当然项目属性不一样了。 只需要将编译方式改回Debug-X86就可以了。真是个愚蠢的错误。工程文件...

2019-04-07 11:50:45 713

转载 Java JNI实现原理初探

前言写这个是出于好奇。我们知道cpu只认得 “0101101” 类似这种符号, C、C++ 这些代码最终都得通过编译、汇编成二进制代码,cpu才能识别。而Java比C、C++又多了一层虚拟机,过程也复杂许多。Java代码经过编译成class文件、虚拟机装载等步骤最终在虚拟机中执行。class文件里面就是一个结构复杂的表,而最终告诉虚拟机怎么执行的就靠里面的字节码说明。Java虚拟机在执...

2019-03-31 16:29:02 735

转载 Gradle使用mavenLocal()以及自定义jar包缓存路径

最近在尝试使用gradle代替maven创建web项目在build.gradle文件中,使用mavenLocal()发现并不生效repositories { mavenLocal() //直接使用本地maven仓库 maven { url "http://maven.aliyun.com/nexus/content/groups/public" } maven...

2019-03-21 17:57:43 594

转载 SmartSVN使用

在平时的工作中,最常用的版本控制工具就是SmartSvn for Mac客户端,从刚开始接触到现在,也算使用了差不多两年了。其中也了解了一些常见的问题解决方式,现在写出来,供自己以后参考。1、Check Out--检出一份服务器上已经存在的代码需要从管理员那获取地址,从Check Out Project页面,点击Manage按钮,进入到Repository Profiles页面,可以对已经...

2019-03-19 10:53:12 3596

转载 git拉取远程分支到本地

一、查看远程分支使用如下git命令查看所有远程分支:git branch -r二、拉取远程分支并创建本地分支方法一使用如下命令:git checkout -b 本地分支名x origin/远程分支名x使用该方式会在本地新建分支x,并自动切换到该本地分支x。采用此种方法建立的本地分支会和远程分支建立映射关系。方式二使用如下命令:git fetch ori...

2019-03-17 17:08:20 11130

转载 xcode 设置警告作为错误处理

选中Project Navigator (项目导航器) 上的项目文件 然后选中右边TARGETS文字下的 HelloObjective-C选项 接下来再在编辑区的Build Settings 选项卡下的搜索框输入error 然后设置Treat Warning as Error的值为YES...

2019-03-15 16:09:57 1211

转载 Android开发如何使用productFlavors

1 创建flavor在module的build.gradle的defaultConfig同级目录中添加flavors集合productFlavors {}2 flavors集合中添加flavor添加flavorproductFlavors { flavor_test { applicationIdSuffix ".test" ...

2019-03-04 11:33:51 1636

转载 NDK配置及基本语法

NDK是Google为Android实现JNI调用而提供的工具原生库的构建方法包括旧版的ndk-build,及新版的CMake参考Google文档ndk-buildndk-build构建方法构建脚本:Android.mk语法与AOSP的Android.mk文件类似,其内定义若干个模块LOCAL_PATH := $(call my-dir) #文件所在目录include...

2019-03-04 11:09:44 478

转载 Android Studio 详解 build.gradle

参考:https://blog.csdn.net/jiang877864109/article/details/80415693AS中APP所有的配置尽在一个build.gradle文件中,打包的时候也是解析build.gralde文件来打包的,所以搞懂build.gradle文件是至关重要的,结构如下所示1、apply plugin用来指定用的是哪个插件,取值有: c...

2019-03-01 17:38:10 321

转载 git重命名远程分支

先删除远程分支 重命名本地分支 重新提交一个远程分支将远程分支的dev分支重命名为develop分支 1、先删除远程分支 git push --delete origin dev 2、重命名本地分支 git branch -m dev develop 3、重新提交一个远程分支 git push origin develop ...

2019-03-01 16:20:42 4939

转载 git ssh key配置

git clone支持https和git(即ssh)两种方式下载源码:当使用git方式下载时,如果没有配置过ssh key,则会有如下错误提示:下面就介绍一下如何配置git的ssh key,以便我们可以用git方式下载源码。首先用如下命令(如未特别说明,所有命令均默认在Git Bash工具下执行)检查一下用户名和邮箱是否配置(github支持我们用用户名或邮箱登录):gi...

2019-03-01 14:49:28 171

转载 git add -A 和 git add . 的区别

git add -A和 git add .   git add -u在功能上看似很相近,但还是存在一点差别git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add...

2019-02-25 21:28:19 292

转载 LOCAL_WHOLE_STATIC_LIBRARIES与LOCAL_STATIC_LIBRARIES的区别

 在分析Jelly Bean Audio Subsystem的时候,发现HAL层的库audio_policy.xxx.so与其依赖的静态库libaudiopolicy_legacy.a都有audio_policy_hal.cpp这个源文件而且两者都定义了一个HMI。当调用者引用HMI的时候,调用的究竟是哪个呢?首先看audio_policy.xxx.so的Android.mk文件,在定义编...

2019-02-21 22:21:17 1190

转载 rep stos 指令(Intel汇编)

今天读代码时,忽然跳出如下一条指令==&gt;&gt;汇编代码: rep stos dword ptr es:[edi]在网上查了相关资料显示:/************************************************************/lea     edi,[ebp-0C0h] mov     ecx,30h mov     eax,0CCCCCCC...

2019-01-27 19:28:04 941

微服务设计(中文完整版)

过去十年中,分布式系统的粒度变得越来越细,包含大量代码的单块应用逐渐转变为自包含的微服务。但开发微服务系统也有一些让人头疼的问题。本书通过大量的例子,全面讨论了系统架构师和管理员在构建、管理和演化微服务架构时必须考虑的问题,并给出了实用的建议。

2018-05-30

重构:改善既有代码的设计

本书清晰揭示了重构的过程,解释了重构的原理和践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。

2018-05-24

effective c++(第3版)

《Effective C++:改善程序与设计的55个具体做法(第3版)(中文版)》内容简介:有人说C++程序员可以分为两类,读过Effective C++的和没读过的。世界项级C++大师scott Meyers成名之作的第三版的确当得起这样的评价。

2018-05-24

MYSQL必知必会

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

2018-05-22

第一本Docker书带书签目录(完整版)

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2018-05-22

go语言圣经

Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

2018-05-22

[精通正则表达式(第三版)].(美)佛瑞德.扫描版

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

2018-05-22

The_AWK_Programming_Language中文

AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。

2018-05-22

sed与awk(第二版)

Awk、sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以匹配文本,其中sed和awk还可以用于文本编辑,而grep则不具备这个功用。

2018-05-22

空空如也

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

TA关注的人

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