• 等级
  • 175885 访问
  • 5 原创
  • 573 转发
  • 19125 排名
  • 14 评论
  • 36 获赞

Android原生库构建的三种姿态

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

2018-11-10 22:03:14

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

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

2018-11-10 20:41:39

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

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

2018-11-10 20:35:47

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

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

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

2018-11-10 11:48:00

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

Android Studio目录结构分析

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

2018-11-08 17:45:33

RTMP推流及协议学习

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

2018-11-08 11:55:13

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

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

2018-11-07 17:30:22

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

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

RTMP协议分析

 一、RTMP包头  RTMP协议 封包 参考Red5 RTMP协议封包 由一个包头和一个包体组成,包头可以是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

RC4加密解密算法

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

2018-10-09 12:08:59

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

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

2018-10-09 11:28:29

为什么使用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

RC4加密算法的原理及实现

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

2018-10-08 17:24:22

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

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

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

2018-09-30 16:28:04

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

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

huangyimo

关注