![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android-ndk
a136447572
这个作者很懒,什么都没留下…
展开
-
29 CMake 知识点 - Android Studio (笔记)
Android Ndk 学习笔记(目录)# 最低支持的版本,注意:这里并不能代表最终的版本,最终版本在app.build.gradle中设置的cmake_minimum_required(VERSION 3.10.2)build.gradle 中是cmake 的版本# 当前工程名,以前的旧版本,是没有设置的,这个可以设置,也可以不设置project("ndk28_cmake")# 批量导入 cpp c源文件# file 可以定义一个变量 SOURCE, GLOB(使用GLOB从源树中收集原创 2021-08-11 16:54:11 · 314 阅读 · 0 评论 -
28 Linux 中 编译FFmpeg动态库
Android Ndk 学习笔记(目录)#!/bin/bash# 首先定义一个NDK目录的变量 NDK_ROOTNDK_ROOT=/home/xinyonghu/ndk/tools/android-ndk-r17c# 此变量执行ndk中的交叉编译gcc所在目录TOOLCHAIN=$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64#从as的 externalNativeBuild/xxx/build.nin原创 2021-08-11 14:59:17 · 309 阅读 · 0 评论 -
27 Linux 安装 NDK 和 FFemp
Android Ndk 学习笔记(目录)1.下载:在浏览器,下载中心,复制链接地址:https://dl.google.com/android/repository/android-ndk-r17c-linux-x86_64.zip?hl=zh_cn2.wget 去下载操作:wget https://dl.google.com/android/repository/android-ndk-r17c-linux-x86_64.zip?hl=zh_cn3.修改名称:mv android-ndk-原创 2021-08-11 14:57:13 · 183 阅读 · 0 评论 -
26 Linux中通过Shell编译动态库.so和静态库.a
Android Ndk 学习笔记(目录)// 获取 NDK 的 gcc export NDK_GCC="/home/xinyonghu/ndk/tools/android-ndk-r17c/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc"// 编译 Android 可执行的 exe 文件$NDK_GCC main.c -o mainNDKEXE//寻库文件头文件/原创 2021-08-11 10:03:18 · 594 阅读 · 0 评论 -
25 Linux 中 shell脚本编程
Android Ndk 学习笔记(目录)1 gcc T1.c -o T1 把文件 打包成 可执行文件2 ./T1 运行 执行文件cp /usr/include/stdio.h ./u 【撤销 恢复】i 【输入 ,光标不动】I 【输入,光标前面】a 【输入 ,光标退后一个】A 【输入 ,光标到行末尾】s 【输入 ,光标删除所在字符】S 【输入 ,光标删除所在整行】u 【撤销 恢复】:q! 【强制退出,不保存】h 【左】j 【下】k 【上】l 【右】5G 【跳转到多行】 【不常原创 2021-08-09 18:08:53 · 766 阅读 · 1 评论 -
23 JNI - JNI异常处理
Android Ndk 学习笔记(目录)// 异常 public native void exception1(); public native void exception2() throws NoSuchFieldException; public native void exception3(); exception1(); // C++层自己做了补救措施了 // 捕获人家C++层抛上来的异常 try { ex原创 2021-08-07 15:23:02 · 174 阅读 · 0 评论 -
22 JNI - 动态注册与JNI线程
Android Ndk 学习笔记(目录)// 1 静态注册 native 函数 public native void staticRegister();// ---------------------------静态注册---------------------------------extern "C"JNIEXPORT void JNICALLJava_com_cn_mynativestudy_MainActivity2_staticRegister(JNIEnv *env, job原创 2021-08-07 11:34:33 · 891 阅读 · 1 评论 -
21 JNI - Android NDK 导入 C库,开发流程
Android Ndk 学习笔记(目录)TODO 第一步:导入头文件TODO 第二步:导入库文件TODO 第三步,链接具体的库,到我们的 libnative-lib.so总库TODO 第四步TODO 第五步TODO 第六步:主要是 有没有提供 java的 jar包TODO 最后一步 FMOD的头文件,必须导入,才能使用功能...原创 2021-08-06 14:26:30 · 162 阅读 · 0 评论 -
20 JNI - c++层 操作 java 层对象
Android Ndk 学习笔记(目录)1 1 int 基本类型 , String 引用对象类型, int[] array 类型 String [] 引用对象数组类型 public native void testArrayAction(int count, String textInfo, int[] ints, String[] strs); // String引用类型,玩数组public void test01(View view) { int[] ints = new i原创 2021-08-06 11:23:20 · 258 阅读 · 0 评论 -
19 JNI - 预处理器与JNI基础交互
Android Ndk 学习笔记(目录)1 宏 相关知识点#ifndef CLIONCPPPROJECT_T2_H // 如果没有定义这个宏 解决循环拷贝的问题#define CLIONCPPPROJECT_T2_H // 就定义这个宏// 第一次能够进来// 第二次 第n此进不来 直接 解决循环拷贝的问题了// ---------------#ifndef isRelease // 如果没有isRelease这个宏#define isRelease 1 // 是否是正式环境原创 2021-08-04 10:21:02 · 188 阅读 · 2 评论 -
18 JNI - Android studio NDK配置
Android Ndk 学习笔记(目录)1Android studio 创建 NDK 项目配置若果NDK处无法手动填写也可以在这个地方在下ndk ,在这里 在下Cmake如果运行不了 可以添加 android.useDeprecatedNdk = true 尝试本地已有版本可在sdk中查看...原创 2021-08-04 09:59:44 · 176 阅读 · 0 评论 -
17 C++ 高级之智能指针
Android Ndk 学习笔记(目录)#include <iostream>#include <memory> // 智能指针的头文件引入using namespace std;class Person{public: ~Person(){ cout << "Person 析构函数" <<endl ; }};// 智能指针void usePerson(){ Person * person1原创 2021-08-02 11:40:58 · 483 阅读 · 0 评论 -
16 C++ 多线程
Android Ndk 学习笔记(目录)#include <iostream>#include <vector>#include <unistd.h>#include <thread>#include <pthread.h> #include <queue>using namespace std;// 1 C++ 11 后 自带的Threadvoid runAction(int number){ for原创 2021-08-02 11:38:46 · 99 阅读 · 0 评论 -
15 C++算法包实战
Android Ndk 学习笔记(目录)#include <iostream>#include <algorithm>#include <vector> // stl包using namespace std;//for_eachclass __F{public: void operator()(int __first){ cout << __first << endl ; }};//tra原创 2021-08-02 11:35:40 · 99 阅读 · 0 评论 -
14 C++ map与手写多元谓词
Android Ndk 学习笔记(目录)void useMap(){ map<int ,string> mapVar ; mapVar.insert(pair<int,string>(1,"一")); mapVar.insert(make_pair(2,"er")); mapVar.insert(map<int,string>::value_type(3,"san"));// mapVar.insert(pair<int,s原创 2021-07-31 17:36:38 · 472 阅读 · 0 评论 -
13 C++ STL 标准模板库 与 函数谓词
Android Ndk 学习笔记(目录)#include <iostream>#include <set>#include <vector>#include <stack>#include <queue>#include <list>using namespace std;void useVector(){ vector<int> vector1 ; vector<int>原创 2021-07-30 16:43:17 · 163 阅读 · 0 评论 -
12 C++二义性,多态,纯虚函数,模版函数
Android Ndk 学习笔记(目录)1 继承class Person {public: string name ; Person(string name ):name(name){}};class Course {private: string name;public: Course(string name) :name(name) {}};// 成员变量中存在类对象时 ,需要在 构造函数中 ,进行初始化class Student : pub原创 2021-07-30 14:33:23 · 141 阅读 · 0 评论 -
11 C++面向对象继承与操作符重载
Android Ndk 学习笔记(目录)1 运算符重载/** * 1 定义外 外部的重载 * @param pos1 * @param pos2 * @return */Position operator + (Position pos1 ,Position pos2){ int x = pos1.getX() + pos2.getX(); int y = pos1.getY() + pos2.getY(); return Position(x,y);}cl原创 2021-07-28 12:00:06 · 120 阅读 · 1 评论 -
10 C++ 可变参数与友元函数
Android Ndk 学习笔记(目录)1 可变参数#include <stdarg.h> // 可变参数的支持void sum(int count , ...){ // 保存可变参数 va_list vp ; // 可变参数开始 va_start(vp ,count); for (int i = 0; i < count; ++i) { // 获取可变参数 int number = va_arg(v原创 2021-07-27 18:02:06 · 104 阅读 · 0 评论 -
09 C++ 深拷贝与浅拷贝
Android Ndk 学习笔记(目录)class Kaobei{public: int age; char * name; Kaobei() { cout << "空参数构造函数" << endl; } Kaobei(char * name) :Kaobei(name, 99) { cout << "一个参数构造函数 this:" << this << endl; }原创 2021-07-27 16:29:48 · 95 阅读 · 0 评论 -
08 C++ 重要函数原理
Android Ndk 学习笔记(目录)1 命名空间/** * 可以通过 namespace 关键词 直接定义 命名空间 */namespace custom{ char * name ; int age ; void action(){ cout << "custom 的 action" << endl ; } void action2(){ cout << "custom 的 acti原创 2021-07-27 14:49:22 · 131 阅读 · 0 评论 -
07 C++语言学习之面向对象
Android Ndk 学习笔记(目录)1 C++标准支持 C++的通用库 #include <iostream> 2 命名空间 C++ 的特性using namespace std; 3 C++ 里面可以调用 C 语言 反之不行4 输出打印void funtion04(){ cout << "Hello C++" << endl ; // cout 输出的指令 ,类似C语言的 printf cout <<原创 2021-07-26 14:34:54 · 126 阅读 · 1 评论 -
06 C语言文件加解密
Android Ndk 学习笔记(目录)1 读文件void fileTest01(){ char * fileNameStr = "D:\\text1.txt"; FILE * file = fopen(fileNameStr,"r"); if (!file){ printf("文件打开失败 地址%s",fileNameStr); exit(0); // 退出程序 } // 定义缓存区 char buffer[10];原创 2021-07-24 18:02:44 · 299 阅读 · 1 评论 -
05 结构体与结构体指针数组
Android Ndk 学习笔记(目录)struct Person1 { char * name; char * sex ; int age ;} p2 ,p3 = {"张晓红","女",22};void UsePerson1(){ struct Person1 p1 ; p1.name = "南尚"; p1.sex = "男"; p1.age = 31; printf("name:%s, age:%d, sex:%s \原创 2021-07-24 15:37:18 · 97 阅读 · 1 评论 -
04 指针实战运用进阶之字符串操作
Android Ndk 学习笔记(目录)c语言string函数详解 下面的函数复制于该文章1 计算数组长度void maint04t1(int * resultLen , int * intarr){ int count = 0; while (*intarr != '\0') { intarr++; count++; } *resultLen = count;}void useMaint04t1(){ int arr原创 2021-07-22 16:04:42 · 109 阅读 · 0 评论 -
03 静态开辟内存与动态开辟内存
Android Ndk 学习笔记(目录)1 c语言中 ,非0 及true 0 == falsevoid m03t1(){ // c语言中 ,非0 及true 0 == false if (0){ printf("这是真\n"); }else{ printf("这是假\n"); } if (124){ printf("这是真\n"); }else{ printf("这是假\n");原创 2021-07-22 10:21:07 · 267 阅读 · 2 评论 -
02 函数指针与指针运算
Android Ndk 学习笔记(目录)1 多级指针void t9(){ int num = 999 ; int * num_p = # int ** num_p_p = & num_p; int *** num_ppp = & num_p_p; printf("num_p 的值 is %d\n",* num_p); printf("num_p_p 的值 is %d\n",** num_p_p); printf原创 2021-07-22 10:09:55 · 327 阅读 · 2 评论 -
Android Ndk (目录)
01 C语言基础 ,指针基础原创 2021-07-19 17:38:09 · 305 阅读 · 1 评论 -
01 C语言基础 ,指针基础
1 初试C语言2 基本类型与打印方式3 类型所占大小4 “&” 获取地址 与 %p 地址占位符5 获取地址的值6 修改值7 通过传递地址的方式修改值8通过方法交换值原创 2021-07-19 17:22:29 · 106 阅读 · 0 评论