NDK开发
还不会飞的鸟
这个作者很懒,什么都没留下…
展开
-
C/C++基础-函数
1.函数函数是一组一起执行一个任务的语句。每个C程序都至少有一个函数,即主函数main(),所有简单的程序都可以改其他额外的函数。函数的声明:return_type function_name(parameter list) { body of the function}C语音由上到下加载,函数被执行前,需要通过头文件(相当于接口,解决耦合问题)声明函数C语音以函数...原创 2019-05-20 22:33:16 · 246 阅读 · 0 评论 -
Shell语法
什么是shell?命令的集合。执行繁琐的复杂的重复操作,。SHELL语言是指UNIX操作系统的命令语言,同时又是该命令语言的解释程序的简称。SHELL作为语言来说,它既是终端上的用户与UNIX操作系统会话的语言,又可作为程序设计的语言,所以Shell是用户与系统之间的接口,而且是一种比较高级、易被用户理解和使用的程序设计语言,它为用户提供了使用方便、功能强、又容易扩充的程序设计环境。a...原创 2019-06-16 22:53:52 · 855 阅读 · 1 评论 -
Cmake语法详解
一、什么是CMake在Android Studio 2.2及以上, 构建原生库的默认工具是CMake。CMake是一个跨平台的构建工具,可以用简单的语句来描述所有平台的安装编译过程。能够输出各种各样的makefile或者project文件。CMake并不直接构建最终的软件,而是产生其他工具的脚步(如makefile),然后再依据这个工具的构建方式使用。CMake是一个比make更高级的...原创 2019-06-19 23:15:11 · 7409 阅读 · 0 评论 -
NDK-Android.mk 基础
Android.mk 是一个向Android NDK构建系统描述NDK项目的GNUmakefile片段。主要是用来编译生成以下几种:APK程序:一般的Android应用程序,系统级别的直接push即可JAVA库:JAVA类库,编译打包生成JAR文件。C\C++应用程序:可执行的C\C++应用程序。C\C++静态库:编译生成C\C++静态库,并打包成 .a 文件。C\C++共享库...原创 2019-06-09 22:08:07 · 211 阅读 · 0 评论 -
NDK—Makefile 文件
Makefilemakefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要重新编译,如何进行链接等操作。makefile 就是“自动化编译”, 告诉make命令如何编译和链接。make 命令会在当前目录寻找 makefile文件makefile包含以下五个内容:显示规则隐晦规则变量定义:类似于宏文件指示: 引入其他makefile, ...原创 2019-06-06 21:56:46 · 1192 阅读 · 0 评论 -
C/C++基础—SO动态库与编译
1.库在windows平台和linux平台下都存在着库,andorid中也存在库库是指一个容器文件,里面装的是函数和类,由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同)因此二者库的二进制文件是不兼容的。2.库存在的意义库是别人写好的现有的,成熟的,可以复用的代码现实中每个程序都依赖很多基础的底层库,不可能每个人的代码都是从零开始的,因此库的存在...原创 2019-05-22 22:04:28 · 3959 阅读 · 0 评论 -
C/C++基础—共用体
1.共用体共用体是一个特殊的数据类型,允许在相同的内存位置存储不同数据类型。可以定义一个带有多个成员的公用体,但是任何时候只能有个成员带有值。共用体提供了一种使用相同内存位置的有效方式union Data{ int a; float f;char str[20]} data;共用体占用的内存应足够存储共用体最大的成员。例如上面的事例中,Da...原创 2019-05-22 21:44:07 · 160 阅读 · 0 评论 -
NDK—静态库和动态库原理以及编译流程
一、.编译流程: 高级语言 -> 二进制代码可执行程序四大过程:1.预处理:完成宏替换、文件引入、以及去除空行、注释等,为下一步的编译做准备。也就是对各种预处理命令进行处理,包括头文件的包含、宏定义的扩展、条件编译的选择等。、经过预处理后,文件会变大很多。# test.c 文件内存#include <stdio.h>int main() {...原创 2019-05-26 18:46:16 · 642 阅读 · 0 评论 -
C++基础—命名空间、引用
1.通过命名空间,区分名字相关的不同的类或方法#include <iostream>using namespace std;// 第一个命名空间namespace first_space {void func() { count<<"insid first space"<<endl}}// 第二个命名空间nam...原创 2019-05-26 13:59:17 · 282 阅读 · 0 评论 -
C++基础—容器
1.序列式容器:原数的排列顺序和原数本身没有关系,又添加顺序决定vector 、 list、 dequeue、queue、stack、priority queue#include <Vecotr>using namespace std;int main() { vector<int> vec_1; // 声明一个元素空间 ...原创 2019-05-26 13:47:05 · 103 阅读 · 0 评论 -
C++基础—类型转换 IO 异常处理
1.类型转换C++提供了4种类型转换操作符应对不同场合的应用 const_cast :去const属性(const相当于Java中的final) static_cast : 静态类型转换,如 int 转 char dymamic_cast : 动态类型转换, 如 子类和父类之间的多态类型转换 reinterpret_cast : 仅重写解释类型, 没有...原创 2019-05-25 22:35:50 · 224 阅读 · 0 评论 -
C++基础—基础多态,虚函数
C++支持多继承, 通过 : 类名,默认是私有的(只继承private),可以指定 Public (继承所有)class Child : public Parent,Parent1 {public: void test()}class Parent {public: void test() { } // 纯虚函数, 函数未实现,需要子类实...原创 2019-05-25 22:06:08 · 67 阅读 · 0 评论 -
C++基础—单例模式、操作符重载
// student .hclass Student{ private : static Sutent * instance; Student();public: static Student* getInstance();}// student.cpp#include "Student.h"Student *Stuent::in...原创 2019-05-25 21:50:49 · 274 阅读 · 0 评论 -
C++基础—类的构造,友元方法、友元类
头文件 student.h#ifndef Student_H#define Sudent_Hclass Sudent {// 友元函数friend void test(Student *);// 友元类 通过友源类访问私有变量friend class Teacher; int i;public: // 相同的作用域的方法放在一起 Stud...原创 2019-05-24 22:16:14 · 216 阅读 · 0 评论 -
C/C++基础—内存
1.内存定义硬件角度:内存是计算机必不可少的一个组成部分,是与CPU沟通的桥梁,计算机中所有的程序都是运行在内存中的。逻辑角度:内存是一块具备随机访问能力,支持读写操作,用了存放程序及程序运行中产生的数据的区域。2.内存单位描述内存的大小位 bit 是计算机中最小的数据单位,每一个单位的状态只能是0或1字节 1Byte = 8bit 是内存基本的计量单位KB 1K...原创 2019-05-21 08:50:20 · 212 阅读 · 0 评论 -
CMakeList 文件
使用AS创建一个C/C++ support的项目,会默认在app/src/main 目录下生产cpp目录,里面包含CMakeLists.txt 和 native-lib.cpp.下边为CMakeLists.txt去掉英文注释格式化后的内容cmake_minimum_required(Version 3.4.1)add_library( native-lib...原创 2019-06-23 14:37:35 · 3440 阅读 · 0 评论