- 博客(147)
- 资源 (5)
- 收藏
- 关注

原创 程序员,再见!
从过年前一段时间开始,有了不干程序员的想法,觉得程序员这一行不适合我。到昨天,2020年3月12日,终于做出了决定,向公司提交了离职申请,理由很简单,转行不做程序员了,领导想挽留也没有办法。填完离职申请之后,顿时感觉整个人放下了一些。 先介绍一下本人情况吧,19年7月大学毕业,江苏一所普本毕业,高考没怎么发挥好,上了个普通一本(其实发挥好点也就是211而已),大学期间当了四年班长...
2020-03-13 12:00:19
2218
10
转载 Android ADB命令大全
adb的全称为Android Debug Bridge.是android司机经常用到的工具.但是问题是那么多命令写代码已经够费劲了,过段时间在次使用时压根记不住呀.本次的大餐就是为此开篇的.这一次我们不记命令.要用随时过来ctrl+F呀.哇哈哈哈!本篇ADB集锦不管是常用还是冷门的都有.客观您随意看.你能在本篇文章中收获什么? adb基本指令 She...
2020-01-03 10:43:09
593
转载 android am pm命令
今天看了下adb shell中的am pm命令,一些自己的见解和大多数官网的翻译。先说下am命令,am全称activity manager,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等。当你在adb shell命令下执行am命令:am <command>你也可以在adb shell前执行am命令:ad...
2020-01-03 10:41:07
618
转载 理解静态库与动态库(浅谈静态动态库的区别)
理解静态库与动态库静态库概念静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库特点可执行文件中包含了库代码的一份完整拷贝静态库的代码是在编译过程中被载入程序中缺点就是被多次使用就会有多份冗余拷贝动态库(动态链接库)概念动态链接提供了一种方法,使进...
2019-12-04 14:35:59
983
原创 CMake-添加编译时选项的几种方式
https://www.cnblogs.com/Need4Speak/p/5397949.htmlhttps://blog.youkuaiyun.com/stanwayll/article/details/72674741https://blog.youkuaiyun.com/weixin_33748818/article/details/94639527https://blog.youkuaiyun.com/qq_34...
2019-11-25 15:13:21
3586
转载 macOS - 使用终端启动 sublime(软链接)
https://blog.youkuaiyun.com/lovechris00/article/details/80892349
2019-11-19 19:31:50
452
原创 iOS-OpenGLES入门参考教程
简书大佬写的非常好的入门级别OpenGLES开发教程借鉴参考,关注大佬https://www.jianshu.com/p/9f69ace45177https://www.jianshu.com/p/759de72fc649https://www.jianshu.com/p/0d1d2add19ea...
2019-11-14 11:03:21
788
转载 xcodebuild使用总结
https://blog.youkuaiyun.com/hdwhappy/article/details/60767078
2019-11-04 11:49:36
1674
原创 Docker及Jenkins安装使用
Docker 安装及使用教程: https://www.runoob.com/docker/docker-tutorial.htmlJenkins 官方教程 https://jenkins.io/zh/doc/tutorials/安装教程 https://blog.youkuaiyun.com/pretent/artic...
2019-11-01 09:56:38
223
转载 Xcode创建iOS项目基本操作——转载
https://blog.youkuaiyun.com/SSIrreplaceable/article/details/51925144
2019-10-16 15:07:08
607
转载 编程命名规则:驼峰命名法和匈牙利命名法
1.驼峰命名法(Camel-Case) 驼峰命名法(Camel-Case)是电脑程序编写时的一套命名规则(惯例)。程序员们为了自己的代码能更容易的在同行之间交流,所以才取统一的可读性比较好的命名方式。例如:有些程序员喜欢全部小写,有些程序员喜欢用下划线,所以如果要写一个my name的变量,他们常用的写法会有myname、my_name、MyName或者myName。这...
2019-09-17 09:59:40
1776
转载 cmake 输出物
cmake 输出物:RUNTIME 输出物:一个子系统的运行时输出物目标可以是下面的东西: 可执行的文件(.exe)由add_executable()命令创建 在 DLL 平台:它是共享库的可执行文件(.dll),由add_library()命令生成后跟SHARED 选项来创建.RUNTIME_OUTPUT_DIRECTORY和RUNTIME_OUTPUT_NAME 目标...
2019-08-20 17:07:45
674
原创 CMAKE——set()函数及常用变量名
set : 将一个 CMAKE 变量设置为给定值。set( <variable> <value> [[CACHE <type> <docstring> [FORCE]] | PARENT_SCOPE])将变量<variable>的值设置为<value>。在<variable>被设置之前,&...
2019-08-20 15:51:20
6259
原创 CMAKE——message()函数
message :为用户显示一条消息。message( [STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR] "message to display" ...)可以用下述可选的关键字指定消息的类型:(无) = 重要消息; STATUS = 非重要消息; WARNING = CMake 警告, 会继续执行; AU...
2019-08-20 15:39:59
45524
2
转载 CMake自带变量
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.youkuaiyun.com/ljp341621/article/details/81979758———————————————— 转载地址:https://blog.youkuaiyun.com/ljp341621/article/details/81979758...
2019-08-20 15:05:39
483
转载 Cmake中使用cotire进行编译优化,提高编译速率
一、预编译头当工程大了,单机编译速度会很慢。预编译头会提高很大的速度。相关原理这里不赘述,网上很多。(或者老夫有空的时候再补充)二、cmake设置gcc的预编译头一开始google到一个国内同行写的cmake宏,用了下,貌似不是很好用。另外作者也表示还是有bug。后来找到cotire。目前使用良好。三、cotire(compile ti...
2019-08-06 14:19:19
2535
原创 linux 16.04更新gcc版本(切换版本)
将版本更新至gcc-81.下载gcc-8、g++-8sudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo sudo apt-get updatesudo apt-get install -y g++-82.切换版本cd /usr/bin #进入/usr/bin文件夹下sudo rm -r gcc...
2019-07-16 10:46:59
2315
转载 【C++ 】 format 函数详解
C++ format 函数C++编程Format是一个很常用,却又似乎很烦的方法,以下是它的完整概貌,以供大家查询之用:一、字符串首先看它的声明:function Format(const Format: string;const Args: array of const): string; overload;事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在...
2019-07-09 14:50:49
20526
1
原创 JavaScript基础入门——语法
一:简介 JavaScript是一种解释性程序设计语言、不需要编译器、只需要解释器。Web浏览器负责完成有关的解释和执行工作。 编译JavaScript不需要任何特殊工具(有则更加、比如jetbrainswebstorm,Sublime Text等神器)。 页面中使用JavaScript:1、在页面中任何位置添加<script> //body…</s...
2019-07-08 10:21:47
1978
原创 Objective-C语法入门——与C/C++不同点
与c/c++不一样的地方1) .h 和 .m; .m是实现文件; #import导入头文件; @class类声明。2) @property getter/setter申明; @synthesis getter/setter实现3) @interface child:parent<protocol1, protocol2> 类声明---只能单继承---可以多个pro...
2019-07-05 10:58:59
442
原创 Objective C基础教程——Xcode工程创建
Objective-C只不过是拥有一些附加特性的C语言。本文将构建第一个Objective-C程序,同时介绍一些关键的附加特性。 ##2.1 最简单的Objective-C程序 我们来写一个最简单的Hello World。 ###构建Hello Objective-C 此时我们需要一个IDE(Integrated Development Environment)在这里我们需要Xcode。打开Xco...
2019-07-05 10:51:29
746
转载 Objective-C 基础教程——入门
来自 http://www.runoob.com/w3cnote/objective-c-tutorial.htmlObjective-C 是一种简单的计算机语言,设计为可以支持真正的面向对象编程。Objective-C 通过提供类定义,方法以及属性的语法,还有其他可以提高类的动态扩展能力的结构等,扩展了标准的 ANSI C 语言。类的语法和设计主要是基于 Smalltalk,最早的面向对...
2019-07-05 10:35:42
1584
原创 backtrace和backtrace_symbols函数原理解析
backtrace()是glibc(>=2.1)提供的函数,用于跟踪函数的调用关系。以下对backtrace()函数的说明以及实例,都来自其man page。函数定义 #include <execinfo.h> int backtrace(void **buffer, int size); char **backtrace_...
2019-04-02 10:48:27
11015
2
原创 Linux Signal信号详解
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。一、信号的基本概念本节先介绍信号的一些基本概念,然后给出一些基本的信号类型和...
2019-04-02 10:17:33
393
原创 Linux下top命令底层源码Demo
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <dirent.h>#include <sys/types.h>#include <ctype.h>#include <unistd.h>#include <grp...
2019-03-27 14:25:01
2875
原创 pip install 和 apt-get install 用法与区别
在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢?1.区别pip用来安装来自PyPI(https://www.python.org/)的python所有的依赖包,并且可以选择安装任何在PyPI上已上传的先前版本的依赖包,个人认为是python相关的包和第三方包以及各种版本;apt...
2019-03-19 14:19:12
6102
原创 ubuntu中运行python脚本
1. 运行方式一新建test.py文件:(终端命令)touch test.py然后vim test.py打开并编辑:print 'Hello World'打开终端,输入命令:python test.py输出:Hello World2. 运行方式二这部分内容只对Linux/Unix用户适用,不过Windows用户可能也对程序的第一行比较好奇。...
2019-03-14 17:14:37
8190
3
原创 Android Tombstone(墓碑日志)解决步骤
最近在学习通过墓碑文件定位bug所在位置,网上浏览了很多的博客,大多数只能做到利用addr2line定位到行号但是对于大型项目,尤其是C++代码较多的情况下,很难去准确定位到内存越界、内存溢出等问题(全球性难题,没办法)。在这里整理一下,尽量给自己和大家提供一些路径:1. https://blog.youkuaiyun.com/Zhanganliu/article/details/87715961...
2019-03-07 11:32:28
5856
原创 如何在进程崩溃后打印堆栈并防止数据丢失
进程在运行过程中遇到逻辑错误, 比如除零, 空指针等等, 系统会触发一个软件中断.这个中断会以信号的方式通知进程, 这些信号的默认处理方式是结束进程.发生这种情况, 我们就认为进程崩溃了.进程崩溃后, 我们会希望知道它是为何崩溃的, 是哪个函数, 哪行代码引起的错误.另外, 在进程退出前, 我们还希望做一些善后处理, 比如把某些数据存入数据库, 等等.下面, 我会介绍一些技术来达成这...
2019-03-06 10:00:12
1606
原创 C语言字符检测函数:isalnum、isalpha、isascii、iscntrl、isdigit、isgraph、islower、isspace、ispunct、isupper
C语言中文网http://c.biancheng.net/cpp/html/112.html 头文件:#include<ctype.h>(1)isalnum(c)检查参数 c 是否为英文字母或阿拉伯数字, 在标准c 中相当于使用"isalpha(c) || isdigit(c)"做测试.【参数】c 为需要检测的字符。【返回值】若参数c 为字母或数字,若 c 为 ...
2019-03-04 15:16:58
1666
原创 isspace()函数
原型:extern int isspace(int c) 用法:#include <ctype.h> 功能:判断字符c是否为空白符 说明:当c为空白符时,返回非零值,否则返回零。(空白符指空格、水平制表、垂直制表、换页、回车和换行符。) 举例: /*isspace.c*/ #include <stdio...
2019-03-04 15:07:52
19475
原创 重载new和delete来检测内存泄漏
1. 简述 内存泄漏属于资源泄漏的一种,百度百科将内存泄漏分为四种:常发性内存泄漏、偶发性内存泄漏、一次性内存泄漏和隐式内存泄漏。 常发性指:内存泄漏的代码会被多次执行到。偶发性指:内存泄漏的代码只有在特定的条件下才会执行到。一次性指:内存泄漏的代码只会被执行到一次。隐式指:程序在运行中不断的开辟内存,知道程序结束时才释放内存,本质上虽然没有内存泄漏,但是如果这个程序在连续运行很...
2019-02-28 14:39:07
1002
转载 重载operator new/delete/new[]/delete[]
https://blog.youkuaiyun.com/weixin_41256413/article/details/82950003此博客转载上面的博客,便于查看https://blog.youkuaiyun.com/hizhangyuping/article/details/80624506源码详解,读书万遍、其义自现http://www.cppblog.com/dawnbreak/articles...
2019-02-28 10:45:33
274
原创 access()函数的用法
1.函数功能:检查调用进程是否可以对指定的文件执行某种操作。2.函数原型:1)函数头文件 #include <stdio.h> #include <unistd.h>2)函数int access(const char * pathname, int mode)3)形参pathname:需要检测的文件路劲名mode:需要测...
2019-02-26 16:25:33
7624
原创 内存越界详解
内存越界是软件系统主要错误之一,其后果往往不可预料且非常严重。更麻烦的是,它出现的时机是随机的,表现出来的症状是随机的,而且造成的后果也是随机的,这会使程序员很难找出这些 Bug 的现象和本质之间的联系,从而给 Bug 的定位带来极大的困难。一般情况下,内存越界访问可分如下两种:读越界,即读了不属于自己的数据。如果所读的内存地址是无效的,程序立刻崩溃;如果所读内存地址是有效的,在读的时候不会马...
2019-02-26 12:01:33
6737
1
原创 内存泄漏详解
简介内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。内存泄漏缺陷具有隐蔽性、积累性的特征,比其他内存非法访问错误更难检测。因为内存泄漏的产生原因是内存块未被释放,属于遗漏型缺陷而不是过错型缺陷。此外,内存泄漏通常不会直接产生可观察的错误症状,而是逐渐积累,降低系统整体性能,极端的...
2019-02-26 12:00:02
788
转载 Android Tombstone/Crash的log分析和定位(墓碑文件)
=====项目中遇到进程挂掉的问题,需要分析Tombstone,本文帮了大忙http://blog.youkuaiyun.com/helldevil/article/details/6682211 9楼 adits 2013-04-22 16:20发表 [回复] [引用] [举报]命令使用有误:原文: addr2line -e -f libc.so 0001173c 应该是addr...
2019-02-19 16:26:41
5447
1
原创 Android.mk详解
Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。要掌握jni,就必须熟练掌握Android.mk的语法规范。 一、Android.mk文件的用途 一个android子项目中会存在一个或多个Android.mk文件 1、单一的Android.mk文件 直接参考NDK的sampl...
2019-02-15 09:53:44
444
转载 Linux 下cmake生成SO库的使用实例
1、创建我的共享库:MySharedLibCMakeLists.txt cmake_minimum_required(VERSION 2.8) project(MySharedLib) # C++11 编译 set(CMAKE_CXX_STANDARD 11) #创建共享库 add_library(MySharedLib SHARED libr...
2019-02-13 17:07:42
3700
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人