NDK学习笔记-JNI的引用
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cj5785/article/details/89048725 JNI中的引用意在告知虚拟机何时回收一个JNI变量 JNI引用变量分为局部引用和全局引用 局部引用 局部引用,通过DeletLocalRef手动释放对象 原因 访问一个很大的Java对象,使用之后还用进行复杂的耗时操作 创建了大量的局部引用,占用了太多的内存,而且这些局部引用跟后面的操作没有关联性 局部引用示例 Java中存在nati
《C语言》链式反向栈
链式反向栈 RevStack.h RevStack.c Main.c #include "RevStack.h"
void main()
{
/*****************先进后出(逆序)*****************/
#if 0
RevStack* P_Stack = NULL;
for (int i = 0; i < 10; i++)
{
Push(&P_Stack, i * 10, i);
}
while (NULL != P_Stack)
{
《C语言》双向链表的增、删、查、改、销毁、快速排序
双向链表的增、删、查、改、销毁、快速排序 Main.c DoubleList.h DoubleList.c Main.c #include "DoubleList.h"
#include <time.h>
void main()
{
/*******************头部插入*******************/
#if 0
DoubleList List = {0};
for (int i = 0; i < 10; i++)
{
PushHead(&List, i
《C语言》双链表——内存管理
《C语言》双链表——内存管理 Main.c MemManage.h MemManage.c Main.c #define USING_MEMORY_MANAGE
#include "MemManage.h"
#include <time.h>
#define N 50
void main()
{
srand((unsigned int)time(NULL));
void* P_Addrs[N] = { NULL };
for (int i = 0; i < N; i++)
{
C语言》环形双链表增、删、查、改、销毁
《C语言》环形双链表增、删、查、改、销毁 Main.c A_DoubleList.h A_DoubleList.c Main.c #include "A_DoubleList.h"
#include <time.h>
#define N 10
void main()
{
/********************尾部添加节点********************/
#if 0
//声明一个结构体(保存头指针和尾指针)
A_DoubleList Head;
//初始化结构体
《C语言》环形双链表——进程管理
《C语言》环形双链表——进程管理 Main.c ProcessManger.h ProcessManger.c Main.c #include "ProcessManger.h"
void main()
{
//创建一个节点(双链表)
ProcessManger Taskmgr;
//初始化双链表
InitList(&Taskmgr);
//进程列表
Tasklist(&Taskmgr);
//显示当前状态
Show(&Taskmgr);
//消息循环
while (
《Qt Cerator》TCP通信——远程画图
TcpPainter.pro #网络库:network(这个很重要)
QT += widgets gui network
HEADERS += \
TcpServer.h \
TcpClient.h
SOURCES += \
TcpServer.cpp \
TcpClient.cpp \
main.cpp
main.cpp #include <QApplication>
#include "TcpServer.h"
#include "TcpCli
《Qt Cerator》UDP 双向通信
UDPchat.pro # 手动添加“network”网络库
QT += widgets gui network
HEADERS += \
UdpA.h \
UdpB.h
SOURCES += \
main.cpp \
UdpA.cpp \
UdpB.cpp
UDPA.h #ifndef UDPRECEIVER_H
#define UDPRECEIVER_H
#include <QWidget>
#include <QUdpSocket>
#incl
《Linux 系统编程》TCP单向通信
《Linux 系统编程》TCP双向通信 Server.c Client.c Server.c #include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <pthread.h>
#define IPADDRESS "127.0.0.1"
#define PORT 8848
#define BUF_SIZE 102
Java 进阶——多线程优化之线程池 ThreadPoolExecutor的使用(三)
版权声明:本文为CrazyMo_原创,转载请在显著位置注明原文链接 https://blog.csdn.net/CrazyMo_/article/details/80679888 引言 前面花了很多时间把线程池的核心容器和主要核心流程源码大概的分析了一遍,如果有认真看了的话相信,一定对于线程池有了较深的理解,ThreadPoolExecutor是线程池框架的一个核心类,通过对ThreadPoolExecutor的分析,可以知道其对资源进行了复用,并非无限制的创建线程,可以有效的减少线程创建和切
Android NDK——必知必会之配置Windows与Linux共享及 Linux NDK 交叉编译环境配置(一)
版权声明:本文为CrazyMo_原创,转载请在显著位置注明原文链接 https://blog.csdn.net/CrazyMo_/article/details/82345001 引言 虽然windows上也可以进行交叉编译,但是有很多库在Linux编译会简单很多,而且也更快一些,当然Mac上也可以编译,不过这篇是总结从0开始虚拟机上配置Linux的交叉编译环境,这会是一个系列的文章,所谓必知必会是NDK开发者所应该知道一些知识,此系列文章基链接: Android NDK——必知必会之配置Wi
Android NDK——必知必会之JNI和NDK基础全面详解(二)
版权声明:本文为CrazyMo_原创,转载请在显著位置注明原文链接 https://blog.csdn.net/CrazyMo_/article/details/82050526 引言 前一篇文章简单总结了下配置NDK的基本开发环境,从这篇文章开始,此系列文章是主要总结和讲解一些关于NDK的开发的基础的必要知识及实战使用NDK的经验总结,相信对于所有NDK开发初学者都会对JNI和NDK的有一些更深的理解和认知,不敢说完全知其所以然,至少略知一二,此系列文章基链接: Android NDK——必
Android NDK——必知必会之JNI的C++操作函数详解和小结(三)
版权声明:本文为CrazyMo_原创,转载请在显著位置注明原文链接 https://blog.csdn.net/CrazyMo_/article/details/82255777 引言 上一篇讲解了一些关于JNI和NDK的必知必会的理论知识和机制,由于篇幅问题把关于JNI的重要的函数放到这篇,具体使用留到下一篇,此系列文章基链接: Android NDK——必知必会之配置Windows与Linux共享及 Linux NDK 交叉编译环境配置(一) Android NDK——必知必会之JNI和N
Android NDK——必知必会之从Java 传递各种数据到C/C++进行处理全面详解(四)
版权声明:本文为CrazyMo_原创,转载请在显著位置注明原文链接 https://blog.csdn.net/CrazyMo_/article/details/82080879 引言 前一篇文章基本上把JNI 所涉及到的基本常识都总结了一遍,如果你已经(具有C/C++的基础)认真读完并且亲自动手操作,相信JNI对你来说已经不会陌生了,这篇将会具体总结本地语言和Java之间的交互操作(代码仅仅是为了说明功能,实际使用过程中还得进行优化。),不过在讲解前还需要补充一些进阶的理论知识官方指导文档,
Android NDK——必知必会之C/C++传递各种类型数据到Java进行处理及互相调用详解(五)
版权声明:本文为CrazyMo_原创,转载请在显著位置注明原文链接 https://blog.csdn.net/CrazyMo_/article/details/82352148 引言 前一篇文章基本上动态注册和静态注册以及从Java传递各种数据到C/C++进行处理,正所谓来而不往非礼也,这篇是针对从在C/C++封装各种数据并传递到Java层。此系列文章基链接: Android NDK——必知必会之配置Windows与Linux共享及 Linux NDK 交叉编译环境配置(一) Android
Android NDK——必知必会之Native线程操作及线程同步全面详解(六)
版权声明:本文为CrazyMo_原创,转载请在显著位置注明原文链接 https://blog.csdn.net/CrazyMo_/article/details/82498581 引言 无论是做Java开发还是Android开发相信大家对于多线程都不会陌生,与Java一样Native 也有多线程以及相关机制,在Java层创建多线程很简单,主要是因为Java 封装得足够好,而要创建Native线程则逻辑相对复杂些,需要依赖POSIX线程。 Android NDK——必知必会之配置Windows与
Android NDK——必知必会之Makefile和CMake基本使用语法概述(七)
版权声明:本文为CrazyMo_原创,转载请在显著位置注明原文链接 https://blog.csdn.net/CrazyMo_/article/details/82532454 引言 如果你看过源码,你会发现有很多的Android.mk文件本质上就是一段段Makefile单元,Android.mk文件用来告知编译系统以何种组织结构的形式去进行编译,无论是编译整个系统还是编译系统的某些模块或者是编译使用了各种动态、静态库都由.mk 去之道,如果要细说可以写成一整个章节,对于我们NDK开发来说没
Android NDK——必知必会之使用gcc/g++在Linux下完成交叉编译(八)
版权声明:本文为CrazyMo_原创,转载请在显著位置注明原文链接 https://blog.csdn.net/CrazyMo_/article/details/83379994 引言 前一篇文章Android NDK——必知必会之Makefile和CMake基本使用语法概述(七)简单介绍了MakeFile和CMake的相关知识,这篇就从小结下在Linux下交叉编译的基本流程。 Android NDK——必知必会之配置Windows与Linux共享及 Linux NDK 交叉编译环境配置(一)
今日推荐
周排行