自定义博客皮肤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)
  • 收藏
  • 关注

转载 Android Studio:基本UI界面设计 (详细)

一、 实验题目 基本UI界面设计二、 实现内容实现一个 Android 应用,界面呈现如下效果:三、 实验过程(1)标题  首先我们建立一个TextView控件来写标题。实验对标题的要求如下:1 标题字体大小 20sp(android:textSize="20sp")2 与顶部距离 20dp  (与父容器顶部对齐后再设置与顶部距离20dp)3 居中 ...

2019-01-10 11:44:37 78196 9

转载 iOS-xcconfig环境变量那些事(配置环境的配置)

前言在配置宏定义参数时,会发现一个问题,在需要临时修改或者测试一些数据时,修改宏,如果不修改,就多写一个,注释掉原来的,然后测试后,再换回来,当然了,如果一两个宏,可以这样,但是,如果每次改的比较多,建议用环境变量来配置,也就是用 xcconfig 控制 Debug 或 Release编译时,同一个宏名,取到的值就会不同;或许现在的PCH文件里面是下面这样的......#define A...

2018-12-26 17:22:05 548

转载 Xcode添加库文件framework (转)

首先需要了解一下iOS中静态库和动态库、framework的概念静态库与动态库的区别首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用。什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行封装,只暴露出头文件。另外一种情况是,对于某些不会进行大的改动的代码,我们想减少编译的时间,就可以...

2018-12-26 14:34:31 3727

转载 iOS Xcode9 封装生成.framework

iOS中.a与.framework库的区别参考这篇文章http://www.cocoachina.com/ios/20161012/17730.html从上面我们可以看出.a 和.framework的区别就是.a+.h+soureFile=.framework,这样的话,我们还是直接封装个.framework比较好。封装framework步骤1、打开xcode,新建工程这里...

2018-12-26 12:07:11 297

转载 iOS开发:在Xcode中用Pods管理第三方库

之前写了一篇 iOS开发:在Swift中调用oc库 ,今天记录一下如何用Pods的方式来管理第三方库,包括Swift/Object-C的库。在这之前请先查阅Guides.CocoaPods如何使用的,安装:getting-started ,安装遇到问题:troubleshooting#installing-cocoapods。好的,接下来回到我们的项目中,先把之前引用的五个库删掉,没错,就...

2018-12-26 11:56:20 1195

转载 Target、Project、Workspace的联系和区别

Target    Target说明了product/binary是如何构建的,包括一系列build settings(如Linking、Packaging等),build settings并且Target定义了文件(源码和资源)到底属于哪个项目,添加文件时,需要选择对应的Target(注意:当有多个Target,添加文件时,默认只会选择一个Target,如果该文件需要被多个Tar...

2018-12-26 10:33:47 3207

转载 xcode的ios工程目录结构复习

目录结构:a、supporting files:main.m和资源文件xxx-info.plist:包含应用程序相关属性列表,如版本,程序名等.pch文件:预编译头文件,相当于MFC里的stdafx.h,默认已经包含了常用的头文件.strings文件:国际化字符串资源图片等其他资源b、frameworks:程序需要的外部库文件,默认已经包含常用的库,如UIKit...

2018-12-25 18:17:58 1014 1

转载 个人浅见:简析Xcode中一个项目的目录结构

讲得可能比较啰嗦,各位看官遇到已经知道的知识点就请直接跳过,看到错误的地方请指正。一般情况下,一个项目,在Xcode中表现为以下几个部分:1.我们新建的项目,在Xcode中叫Project。Project也是iOS代码分层中最大的一个概念。   2.第二层就是Target,仅次于Project的一个层次,一个Project可以包含很多Targets。正常的新建一个P...

2018-12-25 17:46:46 3025

转载 MAC安裝CocoaPods

前言,鑒於很多人都比較趕時間,有人是為了去應付工作,有人是為了去找妹子,總之,不管你懂不懂,如果你只是想安裝一下,那麼你只需要按照濤叔下面畫黃色的命令複製粘貼到終端順序執行就好了。一、安裝 1、Ruby环境搭建1.1查看下当前ruby版本:打开终端输入 ruby -v$ ruby -vlibotaodeMacBook-Pro:~ libotao$ ruby -vruby 2...

2018-12-21 21:14:18 270

转载 pod install vs. pod update (心得总结)

坦白承认,用了CocoaPods快半年,今天才真正搞清楚pod install和pod update这两个命令的用法。具体的用法可以参考我在另一篇文章中翻译的官网介绍《pod install vs. pod update(原文翻译)》。这篇文章是我自己实践理解后的心得总结。换个角度,从使用场景来介绍这两个命令的不同。1  pod install 的使用场景:1.1 新创建工程,第一次引入...

2018-12-20 17:58:26 2099

转载 最新cocoapods详细安装

安装起源 那么开始前先说下故事情节,看个小电影都喜欢有剧情的哈,

2018-12-20 16:39:30 262

转载 C++函数的哑元及其作用

一个函数的参数 只有类型 没有名字 则这个参数称之为哑元。哑元的作用1.表达参数列表匹配更加严格 void test(void);2.保持函数的向前兼容特性 void code(int key);//老版本函数 code(1234); void code(int);//从新开发新版本函数保持函数的向前兼容特性3.区分函数 #inclu...

2018-12-19 11:03:19 2974

转载 C++ 如何重载前置++和后置++运算符

注意一下几点: 1、前置++重载时没有参数,而后置++重载时有参数。不会使用其参数,仅仅是区分用。可以理解为前置++后面有参数了,所以不需要参数 2、前置++需要返回引用,因为重载自加运算符后可以返回对象的引用, 以方便在表达式中连续使用。而后置++返回的不是引用,所以不能进行连续使用。3.后置运算符返回的值是temp,需要注意。因为是后加。实现代码如下: #include&...

2018-12-19 10:57:57 1209 1

转载 寄存器讲解--汇编(32位处理器)

32位处理器  寄存器分为四类: *通用寄存器* *段寄存器* *状态和控制寄存器* *指令寄存器*一、通用寄存器 有八个EAX    累加和结果寄存器EBX    数据指针寄存器ECX    循环计数器EDX    i/o指针ESI    源地址寄存器          ---------低16位用SI 表示EDI    目的地址寄存器      ---------...

2018-12-13 12:00:42 477 1

转载 EAX、ECX、EDX、EBX寄存器的作用

一般寄存器:AX、BX、CX、DXAX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器索引暂存器:SI、DISI:来源索引暂存器,DI:目的索引暂存器堆叠、基底暂存器:SP、BPSP:堆叠指标暂存器,BP:基底指标暂存器EAX、ECX、EDX、EBX:為ax,bx,cx,dx的延伸,各為32位元ESI、EDI、ESP、EBP:為si,di,sp,bp的延伸,32位元...

2018-12-13 11:50:30 380

转载 函数调用--函数栈

函数调用大家都不陌生,调用者向被调用者传递一些参数,然后执行被调用者的代码,最后被调用者向调用者返回结果,还有大家比较熟悉的一句话,就是函数调用是在栈上发生的,那么在计算机内部到底是如何实现的呢? 对于程序,编译器会对其分配一段内存,在逻辑上可以分为代码段,数据段,堆,栈代码段:保存程序文本,指令指针EIP就是指向代码段,可读可执行不可写数据段:保存初始化的全局变量和静态变量,可读...

2018-12-13 11:33:25 223

转载 VS2008反汇编小解

了解反汇编的一些小知识对于我们在开发软件时进行编程与调试大有好处,下面以VS2008环境下的VC++简单介绍一下反汇编的一些小东西!如果有些解释有问题的地方,希望大家能够指出。1、新建简单的VC控制台应用程序(对此熟悉的同学可以略过)A、打开Microsoft Visual Studio 2008,选择主菜单“File”B、选择子菜单“New”下面的“Project”,打开“New...

2018-12-12 20:18:39 332

转载 AMFObject数据格式详解

AMF  AMF是Action Message Format(动作消息格式)的简写,它是一种二进制的数据格式。它的设计是为了把actionscript里面的数据(包括Object, Array, Boolean, Number等)序列化成二进制数据,然后把这段数据随意发送给其他接收方程序,比如发给远程的服务器,在远程服务器那边,可以把这段数据给还原出来,以此达到一个数据传输的作用。为什么要...

2018-11-29 15:15:26 989

转载 gradle学习笔记(二) Groovy基础

前言在 gradle学习笔记(一) 中说到 gradle学习基础: Groovy 和 DSL。所有这篇笔记就学习Groovy。先介绍groovy,然后开始学习步骤(当然主要学gradle用得到的地方)。简介: Groovy is a powerful, optionally typed and dynamic language, with static-typing and static...

2018-11-17 19:12:34 209

转载 gradle学习笔记(一) 构建工具介绍

前言:在android开发中平常所接触的gradle脚本,配置好了点击run按钮就能编译、打包、安装等等操作,编译出想要的apk,大大方便了开发过程。但是自己对gradle的了解和掌握仅仅只是够用,于是大量查资料开始学习gradle。这篇笔记主要解释了构建的概念、什么是构建工具,和gradle的基础概念,并清晰解释了学好gradle的必须基础:groovy 和 响应的DSL。1. 什么...

2018-11-17 18:55:55 144

转载 Android原生库构建的三种姿态

前言自Android Studio 2.2发布之后,AS开始支持CMake构建工具编译构建原生代码库,谷歌推荐使用CMake来构建新建的原生库,不过为了兼顾老项目,AS还是支持ndk-build构建,除此之外,谷歌还推出了实验性Gradle插件来构建原生库,至此AS工具支持3种方式来构建原生库。实验性Gradle插件由于依赖开发中的Gradle API,所以它是不稳定的,不过谷歌称Andro...

2018-11-10 22:03:14 398

转载 Android Studio使用自定义的Android.mk文件编译ffmpegyuv-bgr

概述最近做项目的时候,领导安排一个任务,让测试一下,用ffmpeg中的yuv转bgr函数的速度。之前编译so库大部分都是用eclipse,本次博主花了两天时间,在Android studio上编译并运行,在此做一下记录。设置Android Studio ndk1、打开setings->Tools->External Toos 点击+号新建NDK分组及javah 与ndk-b...

2018-11-10 20:41:39 1254

转载 超级简单的Android Studio jni 实现(无需命令行)

1.配置Anroid Studio(这步是关键)使用[command+,] 打开Preferences,选择External Tools,点击加号框如下图: Paste_Image.png点击+号之后,打开Macros 配置宏命令界面,如下图:Paste_Image.pngsetting.pngjavah.pngndk-build.png...

2018-11-10 20:35:47 225

转载 AndroidStudio2.2 Preview3中NDK开发之CMake和传统 JNI在目录结构和配置文件上的区别

 自从AndroidStudio更新到2.2,就有了CMake和传统JNI两种开发NDK的方法,主要就是在目录结构和build.gradle上的区别,下面我们将分别介绍目录区别和build.gradle种配置的区别(提示:在第一次用CMake时,最好在新建项目时勾选Include C++ Support,这样这个项目的NDK开发就是CMake方式,这估计也是android以后主推的方式,建好项目,...

2018-11-10 12:52:33 166

转载 NDK开发 从入门到放弃(一:基本流程入门了解)

一、前言● NDKNative Development Kit(NDK)是一系列工具的集合。它提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java一起打包成apk。● JNIJava Native Interface(JNI)标准是java平台的一部分,JNI是Java语言提供的Java和C/C++相互沟通的机制,Java可以通过JNI调用C/C++代...

2018-11-10 11:48:00 148

转载 Android之SDK、NDK、JNI和so文件

1.     SDK  Android SDK(AndroidSoftware Development Kit),即Android软件开发工具包,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”,也就是说我们还可以采用C/C++语言。  Android SDK主...

2018-11-08 20:22:24 948

转载 Android Studio目录结构分析

Android Studio工程目录我们这里以一个简单的HelloWorld工程来分析:1、.gradle和.idea        这两个目录下放置的都是Android Studio自动生成的一些文件,我们无须关心,也不要去手动编辑。2、app        项目中的代码、资源等内容几乎都是放置在这个目录下的,我们后面的开发工作也基本都是在这个目录下进行的,待会儿还会对这个目录单...

2018-11-08 17:45:33 4978

转载 RTMP推流及协议学习

推流工作整体框架图Streaming from RTSP  ->  Get Audio/Video frame   ->  Convert frame  ->  RTMP push使用libtrmp提供的APIlibrtmp提供了推流的API,可以在rtmp.h文件中查看所有API。我们只需要使用常用的几个API就可以将streaming推送到服务器。 - RT...

2018-11-08 11:55:13 17826 1

转载 Objective-c中.m、.h、.mm文件

在使用Objective-c的工程中,会存在.m、.h、.mm这三种不同后缀名的文件,它们的区别如下:.h :头文件,它包含类名,类继承的父类,还有方法和变量的声明。它定义的类的成员变量以及方法等等是公开的,外部是可以访问的。.m :实现文件,可以包含Objective-C和C代码。同时,它是对.h文件中方法的实现,外部不能访问。.mm :实现文件,和.m文件类似,唯一的不同点就是,除...

2018-11-07 17:30:22 2929

转载 windows下Python三步安装pip

pip类似RedHat里面的yum,安装Python包非常方便。pip是用来方便地管理Python的第三方包的,由于此前玩Python仅仅是浅尝辄止,用的是python(x,y),但是这里并不代表你想用什么包都能从里面找到的,所以我把python(x,y)卸了,然后重新装了个Python2.7.13,准备尝试一下用pip来下载想要的包。不过pip也有一个麻烦之处,如果电脑不能联网怎么办?...

2018-11-07 11:51:25 960

转载 RTMP协议v1.0(中文翻译)

摘要  此备忘录描述了 Adobe公司的实时消息传输协议(RTMP),此协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频、视频和互动内容)。目录1.简介1.1.术语2.贡献者3.定义4.字节序,对齐,和时间格式5.RTMP块流5.1.消息格式5.2.握手5.2.1.握手序列5.2.2.C0和S0格式5.2.3.C1和S1格式...

2018-11-03 15:22:16 238

转载 RTMP协议分析

 一、RTMP包头 RTMP协议 封包 参考Red5RTMP协议封包 由一个包头和一个包体组成,包头可以是4种长度的任意一种:12, 8, 4,  1 byte(s).完整的RTMP包头应该是12bytes,包含了时间戳,Head_Type,AMFSize,AMFType,StreamID信息, 8字节的包头只纪录了时间戳,Head_Type,AMFSize,AMFType, 4个字节的包头记...

2018-11-02 18:33:15 7921

转载 RC4加密解密算法

RC4是一种对称密码算法,它属于对称密码算法中的序列密码(streamcipher,也称为流密码),它是可变密钥长度,面向字节操作的流密码。RC4是流密码streamcipher中的一种,为序列密码。RC4加密算法是Ron Rivest在1987年设计出的密钥长度可变的加密算法簇。起初该算法是商业机密,直到1994年,它才公诸于众。由于RC4具有算法简单,运算速度快,软硬件实现都十分容易等优点...

2018-10-09 12:08:59 26050

转载 用实例给新手讲解RSA加密算法

SA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它。但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解。我们经过整理和改写特别推荐给大家阅读,希望能够对时间紧张但是又想了解它的同事有所帮助。   RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。RSA以它的三个发明者Ron Rivest...

2018-10-09 11:28:29 490 1

转载 为什么使用getaddrinfo()函数

在IPv6的应用中getaddrinfo()是很常见的,最常见的形式是:addrinfo hints;addrinfo *res = NULL; memset(&hints,0,sizeof(hints)); hints.ai_family=AF_INET6;hints.ai_socktype=SOCK_DGRAM;hints.ai_protocol=IPPROTO_U...

2018-10-08 19:53:09 1597

转载 RC4加密算法的原理及实现

 RC4于1987年提出,和DES算法一样,是一种对称加密算法,也就是说使用的密钥为单钥(或称为私钥)。但不同于DES的是,RC4不是对明文进行分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每一个字节进行解密。       RC4算法的特点是算法简单,运行速度快,而且密钥长度是可变的,可变范围为1-256字节(8-2048比特),在如今技术支持的前提下,当密...

2018-10-08 17:24:22 38675 1

转载 Android.mk 文件语法详解

0. Android.mk简介:Android.mk文件用来告知NDK Build 系统关于Source的信息。 Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次。所以,请尽量少的在Android.mk中声明变量,也不要假定任何东西不会在解析过程中定义。Android.mk文件语法允许我们将Source打包成一个"modules"...

2018-10-08 10:46:24 1334

转载 Android NDK开发之从环境搭建到Demo级十步流

写在正文之前:几个月没有更新博客,感觉有点生疏了,所以说不能断,一断人就懒。其实这几个月也并不是什么事也没有做,俺可是时刻想着今年的任务呢,10本书,30篇博文...,这几个月间断性的也是在学习中,学H5,学设计模式,以及NDK JNI开发等等。学习JNI主要是因为公司有一些COCOS游戏需要添加计费点,而又没有真正的游戏开发人员,这个重任就落到我身上了,然后就是各种虐,一虐到底,苦不...

2018-09-30 16:28:04 292

转载 Android studio 使用Cmake完成C/C++ 的使用以及生成so文件

Android studio 2.2版本以后对C/C++的支持可以说很方便了,当然官方推荐使用Cmake完成对C/C++的支持2.2版本以上的同学新建一个项目就知道了,步骤如下:File -> New -> New Project,如下图:然后勾选Include C++ support,一直next ,最后Finish以后,项目就出现了,和一般的项目略有不同,其实只要多...

2018-09-29 18:13:40 3410

转载 Android:JNI 与 NDK到底是什么?(含实例教学)

前言在Android开发中,使用 NDK开发的需求正逐渐增大 但很多人却搞不懂 JNI 与 NDK 到底是怎么回事 今天,我将先介绍JNI 与 NDK & 之间的区别,手把手进行 NDK的使用教学,希望你们会喜欢 目录1. JNI介绍1.1 简介定义:Java Native Interface,即 Java本地接口 作用: 使得Java 与 本地其他类型语...

2018-09-29 14:28:36 315

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

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

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关注的人

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