jni小结(Android studio版)

JNI技术小结 主要内容: 1、Java 通过JNI调用DLL,返回ArrayList. 2、Jsp 通过JNI调用DLL.   使用的开发工具:MyEclipse10.7 + java jdk1.6.0_35 + vs2010.   一、Java层原型方法   package com.zdd.searcher; import java.util.ArrayList; public 阅读详情

一.环境配置:

1.在设置里的把NDK选中,如果显示未下载,会自动下载,需要花点时间,记住下载的位置:


2.打开刚刚下载的ndk目录,在Android studio下载的ndk一般叫ndk bundle,打开目录后选中位置设置成系统环境变量,目的是为了后期使用该目录下的ndk_build.cmd方便一点;

3.创建Android项目,简单的直接在Activity下操作,写下native方法和需要调用的so库(注意so的name与后面的需要对应),我这边native直接是返回的是字符串,于是直接写了额TextView显示:


4.在gradle properties下添加

android.useDeprecatedNDK=true;

5.点开app下的buil.gradle,在android下设置

sourceSets{
    main(){
        jniLibs.srcDirs=['src/main/libs']
    }
}
同时在defaultConfig下添加
ndk{
    moduleName "so的name"
    abiFilters "armebi","armebi-v7a","x86"
}
具体如下图:

6.在project的main目录下建立jni目录,然后点击Android stuio下面的Build下的make project,假如没有错误可以进行下一步

7.打开Android studio 下面的Terminal,在上面直接javah -d jni目录的绝对位置 -classpath 类的绝对位置 + 包名.类名
如:javah -d D:\project\Csht007JWT_LWZW_LDZW(1)\myJNITest\app\src\main\jni  -classpath D:\project\Csht007JWT_LWZW_LDZW(1)\myJNITest\app\src\main\java com.csht.myjnitest.MainActivity


8.会在jni目录下生成包名.类名.h的文件,自己再相同目录下创建so的name.c文件,然后实现对应的生成的.h文件的方法


9.另外在添加Android.mk和Application.mk文件,Android.mk文件指定so的name和对应的.c文件

如:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
TARGET_PLATFORM := android-3
LOCAL_MODULE    := so的name
LOCAL_SRC_FILES := 对应的.c
LOCAL_LDLIBS    := -llog
include $(BUILD_SHARED_LIBRARY)
Applicaton.mk文件如下即可:
APP_ABI := armeabi armeabi-v7a x86
10.右键jni目录,选择Show in Explorer,按住shift点击右键选择在此处打开命令窗口,输入ndk-build.cmd,
如果没有问题在Android studio的main下会自动生成Libs文件夹下面有armeabi armeabi-v7a 和x86三个文件夹里面有生成的so文件

11.如果运行jni目录和生成的Libs目二选一,另一个删除即可,不然会报错




python-snap7 报错:can‘t find snap7 library. If installed, try running ldconfig 1、使用场景: Python 读取西门子 S7 系列 PLC 信息,会用到 snap7 库,网上也有很多案例。但是,运行时会报错:can't find snap7 library. If installed, try running ldconfig 2、解决方案: A、下载项目需要依赖的 dll、lib 文件: i、Sourceforge下载:https://sourceforge.net/projects/snap7/files/ ii、优快云下载(免费):https://dow. 阅读详情

相关推荐

全志平台9365芯片MIPI屏点亮难题:从时序异常到寄存器修复

本文深入剖析了在全志平台驱动9365芯片MIPI显示屏时,屏幕不亮的典型问题。核心原因在于全志平台DSI时钟计算与9365芯片要求的240MHz频率不匹配。文章提供了通过配置关键寄存器0x37来修复时序异常的具体方案,并分享了调试技巧与设备树参数调整方法,帮助开发者在不牺牲屏幕刷新率性能的前提下成功点亮屏幕。

mqtt6iot的博客 572

Android Studio引入jar包和so文件(armeabi和armeabi-v7a)

一、引用jar文件    1.将jar文件复制、粘贴到app的libs目录中;    2.右键点击jar文件,并点击弹出菜单中的“Add As Library”,将jar文件作为类库添加到项目中;    3.选择指定的类库。    注:如果不执行2、3步,jar文件将不起作用,并且不能使用import语句引用。 二、引用so文件  添加so文件我接触的最多的是搞百度地图阿高德地图的时候还有用别人的

Miracle.Zhao的博客 3255

从时序参数到电压供给:TTL(RGB)液晶屏驱动调试全解析

本文全面解析TTL(RGB)液晶屏驱动调试的关键技术,从时序参数配置到电压供给系统搭建,详细介绍了同步信号参数、寄存器配置技巧以及升压电路设计。通过实战案例和常见故障分析,帮助工程师快速掌握液晶显示屏调试方法,提升开发效率。

weixin_30588675的博客 249

【ARM汇编】0x00_基于AndroidStudio构建ARM32-v7a以及ARM64-v8a环境

系统映像要求: 适用于 Android 5.0(API 级别 21)及更高版本的 arm64-v8a 系统镜像|默认情况下,构建系统会以 thumb 模式生成 ARM 目标二进制文件,其中每条指令都是 16 位宽,并与。默认情况下,NDK 构建系统会为所有非弃用 ABI 生成代码。也可以指定多个值,方法是将它们放在同一行上,中间用空格分隔。如截图所示,为hello_arm增加可执行权限,运行打印。下表介绍了 Android SDK 工具的常用环境变量。默认情况下,模拟器会将配置文件存储在。

BigDark的博客 5099

到底是什么决定了二极管的最高工作频率?

硬件工程师,应该都用过二极管的吧,不过也许有一个误区,大多数人可能并不知道,或者说是理解有问题,下面就来细细说下。 一个问题 先提一个问题:到底是什么决定了二极管的最高工作频率? 估计有不少人会回答是二极管反向恢复时间Trr,也有人会说是二极管结电容,那到底谁是对的呢?或者说都一样,反向恢复时间由结电容决定? 到底什么决定了二极管的最高工作频率,我们暂且不论,不过需要知道的是,二极管的反向恢复时间和结电容根本就是两回事,反向恢复时间绝不能等同于结电容的充放电时间。 为什么我这么说呢?.

weixin_42005993的博客 4835

电机驱动和电源等大电流设计中的并联 MOSFET设计

在电机驱动等应用中,半桥拓扑(通常为 3 相)用于生成在电机中产生正扭矩或负扭矩的交流电源信号。想要更高的输出电流能力,只有通过并联形成每个功能开关的 MOSFET,才能实现高输出电流。当多个功率 MOSFET 并联以增加系统整体电流能力容量时,通常假设电流在并联器件之间均等分配或均等共享。然而,在并联 MOSFET 时,需要考虑并联器件之间的电流分配。PCB 布局的若干特性和特定的MOSFET 参数会影响这种分配,并在参数不匹配或布局不对称时导致均流不平衡。

小幽余生不加糖 2488

Android开发环境搭建

Android开发环境搭建(Eclipse) 1. 下载Eclip

navyhu的专栏 605

YOLOv11【第三章:高阶应用与落地篇·第1节】一文搞懂,YOLOv11-Seg 实例分割:Mask 原型生成与系数预测原理解析!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 1251

【转】armeabi和armeabi-v7a

原文网址:http://blog.youkuaiyun.com/dxpqxb/article/details/7721156 在我们android APK的根目录有一个 libs文件夹,此文件夹下包含了armeabi 和armeabi-v7a两个文件夹,我们的c代码编译成的本地库(各种.so)就会放在这两个文件夹其中的一个。那armeabi-v7a 与 armeabi有什么区别,都是什么意思呢?     ...

weixin_34220179的博客 2700

安卓中蓝牙免提HFP的一些分析

最近看了一些大牛的博客,无不提到了技术分享的重要性,的确,分享自己的知识不仅仅是与他人讨论并相互提高的过程,更是对自己知识的梳理。希望自己能以此为契机,形成周期性博客分享的习惯。 文章标题为HFP的一些分析,HFP(Hand Free Profile)主要定义了安卓中与接打电话相关的一些功能的实现。本文主要介绍这其中对于HFP非常重要的Service Level Connection的建立。首先...

底层码农 772

手把手教你学Simulink——基于全桥 LLC 谐振变换器的双向 DC-DC 建模与仿真

本文详细介绍了基于Simulink的双向全桥LLC谐振变换器建模与仿真方法。内容涵盖:1)LLC谐振变换器背景与双向化挑战;2)系统架构设计及关键数学推导(FHA增益分析、双向控制逻辑);3)Simulink建模步骤(功率级搭建、PWM生成、同步整流实现);4)仿真结果分析(正向/反向工作验证、ZVS特性);5)工程实践建议(增益微调、代码生成与HIL测试)。通过手把手教学,帮助读者掌握950V↔48V双向LLC变换器的完整设计流程,实现高效率能量双向流动的同时保持软开关特性,适用于储能系统、车载充电等应用

MHD0815的博客 179

Android Studio: JNI 使用小结

Android Studio: JNI 使用小结 项目描述:在Android上部署KCF跟踪算法,KCF 源码为c++,且依赖OpenCV,为方便使用,在Android studio中将KCF打包成JNI类。实现过程涉及: JNI 调用 C++ 类对象/方法传递数组,c++ java Opencv 混合使用, cv::Mat和Bitmap的转换等。 1. 添加OpenCV依赖 Android O

burning_keyboard的博客 881

筹码峰五句口诀,看懂主力的秘密动作!(附实战图示)

筹码图的价值在于,它不像K线那样容易造假。主力可以骗线,但骗不了筹码分布。主力在不在;是吸筹还是出货;接下来是变盘还是震荡。这五句口诀可以说是“筹码阅读的入门圣经”:单峰坚挺变盘在即,双峰对垒高抛低吸;上峰不移主力在跑,多峰林立行情不止;下峰不移不离不弃,筹码识庄稳中取利!📌市场从来不是靠猜,而是靠看清。筹码,就是主力最真实的痕迹。如果你想学会提前布局、跟庄不被甩,学会看筹码峰——这一步必须打牢!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1169

android studio配置jni小结

关于android工程添加jni相关配置,可参考以下博文,简单明了,其实主要就是添加一个CMakeLists.txt,修改下gradle内容(配置cmake路径、配置c++相关的flag): Android笔记之使用CMake进行JNI开发(Android Studio) 问题记录: 遇到A problem occurred configuring project ‘:app’.(注意,我的android studio在build出错之前,还提示warning: “NDK is missing a “

lgfun的专栏 305

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

android ndk jni层访问java对象小结

一.android studio2.2.3采用ndk-build编译C++项目的流程:    1.创建的项目切换到project视图下,在main目录下新建一个jni目录 2.jni目录下新建一个Android.mk文件: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := testjni

刘胡来 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android studio 加载ffmpeg.so,Android Studio2.2.3 通过JNI引用ffmpeg库小结

修改步骤:首先通过NDK14编译出libffmpeg.so ,将include目录取出通过AS建立基于jni的工程项目,将include目录放到cpp下;创建jniLibs/armeabi目录,将libffmpeg.so放到里边3.配置CMakeLists.txt添加如下:#addtheffmpeglibinclude_directories(${CMAKE_CURRENT_SOURCE_D...

weixin_39746652的博客 176

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Android Studio 中JNI开发流程小结

使用android Studio 1.4版本,通过jni简单打印字符串: 前提:安装了ndk.并在工程中配置了NDk的目录: Studio 中JNI开发流程小结" TITLE="Android Studio 中JNI开发流程小结" /> 步骤:1,建立一个project,本例中使用最简单的工程,主Activity中一个textView    2 , 在MainActivity中生命native

winrainbow的博客 328

Android Studio 4.0.+NDK .so库生成打包

Android Studio 4.0.+NDK .so库生成打包

weixin_42602900的博客 1535

Android NDK编译C/C++小结

真的只是小结。。没手把手向前走的步骤。只是记录一下编译过程,避免再次入坑。

Stay 807

Android-Studio Gradle Build Flavor 使用小结

Build Flavor 作用 在一个分支上,编译不同的版本(包名/应用图标/debug/release) 多个分支代码片段/so库,合并到同一分支进行维护,并且可以根据不同的Build Variant 进行选择性编译; 使用方法 比如现在有如下需求: 第一维度是高通835/845平台(不同平台可能使用不同的DSP相关的so) 第二维度是算法提供商,以人脸检测为例提供商有Se...

riskychengallesgut的专栏 3339

JNI学习小结

Java中类型与C/C++中对应关系   Java中的类的对应   Sign签名, 用来识别对应各个方法。 JDK下的javap.exe能输出签名。用法javap -s -p 完整类名       下面是几个例子程序: 1、C++本地方法中获取Java中的变量以及调用Java中的方法   Java代码:

水兵的专栏 1209

Android Studio项目加载预编好的so库

Android 项目中需要调用别人的so的实现,那么我们的应用需要如何操作呢?本文主要介绍Android Studio中如何调用现有的so库代码。Android JNI生成的so库有很多不同架构类型,比如:armeabi、armeabi-v7a、arm64-v8a、x86;

wenzhi的博客 5644

【Android】Android Studio 2上利用NDK进行OpenCV 3.1开发

Android Studio 2上利用NDK进行OpenCV 3.1开发 发布于 2016年7月9日 作者: John Hany1,954次阅读         本文主要分为两部分,第一部分采用实验性插件(Gradle Experimental Plugin)建立一个一般性的NDK应用,第二部分采用稳定版插件建立一个简单的灰度处理的OpenCV JNI应用。         第一个初

Taily老段的专栏 2977

Android Studio2.2.3 通过JNI引用ffmpeg库小结

修改步骤:首先通过NDK14编译出libffmpeg.so ,将include目录取出通过AS建立基于jni的工程项目,将include目录放到cpp下;创建jniLibs/armeabi目录,将libffmpeg.so放到里边 3.配置CMakeLists.txt添加如下:#addtheffmpeglibinclude_directories(${CMAKE_C...

weixin_34357436的博客 139

贴吧自动发帖顶贴脚本实战:Python模拟请求与账号轮换策略

在内容社区运营中,自动化工具常被用于提升发帖与互动效率,但平台审核机制与行为风控体系日趋严格,盲目追求高频操作反而容易导致账号失效。理解机器过滤、行为风控和人工巡查的底层逻辑,是构建可持续自动化方案的前提。基于Python的requests库模拟HTTP请求,配合Cookie会话保持、随机时间间隔、内容池轮换以及多账号调度,能有效降低操作特征被识别的风险。这一套方法不仅适用于贴吧的自动发帖与顶贴场景,也可迁移至其他内容社区的日常运营维护。从内容模板设计到日志监控调优,自动化脚本解决的是重复劳动问题,真正提升

weixin_33881140的博客 291

TDengine 开发指南:从连接建立、数据建模到写入、订阅与 UDF 的完整开发路径

TDengine 提供了从多语言连接器、参数绑定、无模式写入、高效写入到数据订阅、流式计算与 UDF 的完整应用开发体系。本篇指南以官方开发指南为主线,结合仓库内的连接器示例代码([docs/examples](https://link.gitcode.com/i/3f4f5dfa5eedf934ac354f279b7986f6))与客户端接口定义([include/client/taos.h](

gitblog_00956的博客 718
上一篇: 多个摄像头在一个Activity里显示
下一篇: 获取屏幕的宽高和密度
LFCrossFile
博客等级 码龄10年 5粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值