自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海月汐辰

日拱一卒无有尽 功不唐捐终入海

  • 博客(635)
  • 资源 (31)
  • 收藏
  • 关注

原创 2024-04-23 在linux的debugfs中,/sys/kernel/debug/目录下面没有发现任何文件,执行mount -t debugfs none /sys/kernel/debug

一、在linux的debugfs中,/sys/kernel/debug/目录下面没有发现任何文件,解决方法:执行mount -t debugfs none /sys/kernel/debug二、参考文章【Linux】常见问题汇总(一)_/sys/kernel/debug/这个路径下没文件-CSDN博客

2024-04-23 11:49:48 72

原创 2024-04-23 linux 查看内存占用情况的命令free -h和cat /proc/meminfo

这种情况的出现通常是因为 Linux 内核会将一部分空闲内存用于缓存文件系统的数据和磁盘 I/O 操作的缓冲区。显示的是当前系统中可立即分配给进程的内存总量,包括已经被系统缓存和缓冲区占用的内存。这个值考虑了系统缓存和缓冲区的释放,因此通常比真正空闲的内存要大。这将显示系统当前的内存使用情况,包括总内存、已用内存、空闲内存以及缓冲区和缓存的使用情况。这包括未被分配的内存和被系统保留的内存。使用这两个命令可以很方便地查看系统的内存使用情况,从而及时了解系统的资源状况。包含了这部分被缓存占用的内存。

2024-04-23 11:12:13 226

原创 2024-04-10 Linux gzip 和 gunzip 命令,gzip 压缩的文件通常比原始文件小得多。

这将解压缩 `example.gz` 文件,并生成一个名为 `example` 的解压缩文件。- `-f`:强制解压缩,即使解压缩后的文件会覆盖已存在的文件。- `-c`:将解压缩的结果输出到标准输出,而不是写入文件。压缩后的内容输出到标准输出,并将其重定向到名为。- `-k`:保留压缩文件,不删除原始压缩文件。如果要将压缩的结果输出到标准输出,可以使用。- `-r`:递归地处理目录下的所有文件。gunzip [选项] [压缩文件]压缩的文件通常比原始文件小得多。的文件,并生成一个名为。

2024-04-10 16:48:43 395

原创 2024-03-24 使用Android Profiler 和dumpsys meminfo <PID> 分析APP的内存使用情况,这里重点分析java new 申请的空间占用内存的大小

4.5 app mainfest.xml 中设置了largeHeap=“true”,则app 进程dalvik heap limit 应该是512m,如下面,new申请的内存可以达到514M,再申请程序就崩溃。当我显示图片的是Native Heap会增大,总感觉android app里面ImageView 显示的Bitmap占用的是Native Heap而不是Java Heap。4.1 这个简单的测试程序是每点击一下,就会new申请5M的数组空间。4.2 先来看看当前app的内存占用情况,大概是29M.

2024-03-27 15:11:57 724 1

原创 2024-03-26 Android8.1 px30 WI-FI 模块rtl8821cu调试记录

Android 平台需要先使用 svc wifi enable打开wifi。这样就可以使用 wpa_cli -i wlan0 scan wpa_cli -i wlan0 scan_results扫描到wifi设备。svc wifi enable后还。

2024-03-26 10:06:27 480

原创 2024-03-14 Android app runOnUiThread 函数,它的作用是让一个Runnable对象在主线程(UI线程)上运行。

例如,如果你在一个后台线程中获取了一些数据,然后你想要将这些数据显示在UI上,你就需要使用。此外,如果你尝试在主线程之外的线程中直接更新UI,Android会抛出一个。需要注意的是,如果你已经在主线程中,你可以直接更新UI,无需使用。方法将更新UI的操作放在主线程上执行。在这个例子中,我们在一个新的线程中获取数据,然后使用。方法将更新UI的操作放在主线程上执行。

2024-03-14 16:06:00 345

原创 2024-03-11 MobaXterm 进入make menuconfig 里面的输入框按Backspace按键无法删除内容的问题

一、解决方法,在Settings设置里面不要勾选Backspace sends ^H 选项。二、参考文章https://blog.51cto.com/zhangxueliang/4949574linux内核配置make menuconfig菜单无法进行删除操作_buildroot menuconfig 无法删除配置-CSDN博客

2024-03-11 09:31:05 288

原创 2024-03-08 编译buildroot 使用make source ?什么意思呢?该命令是用来下载所有你在配置中选择的软件包的源代码。这个命令不会编译或者安装任何东西,只是下载源代码。

这个命令在一些情况下很有用。例如,如果你在一个没有互联网连接的环境中编译Buildroot,你可以先在一个有互联网连接的环境中运行。,然后将下载的源代码复制到没有互联网连接的环境中。这样,你就可以在没有互联网连接的环境中编译Buildroot了。如果你在一个没有互联网连接的环境中编译Buildroot,你需要先在一个有互联网连接的环境中运行。,然后将下载的源代码复制到没有互联网连接的环境中。然后,你可以在没有互联网连接的环境中运行。如果你在一个有互联网连接的环境中编译Buildroot,你可以直接运行。

2024-03-08 10:41:12 329

原创 2024-03-07 Makefile 文件里面的shell命令 pushd和popd,用于在命令执行过程中进入一个目录,并将该目录推入一个堆栈中Add directories to stack

后者用于从堆栈中弹出最近推入的目录并返回到该目录。这对于执行涉及多个目录操作的任务很有用,并且可以更方便地管理目录的切换。运算符将多个命令连接在一起,以确保在目录更改操作失败时能够正确处理。下面是一个示例 Makefile 文件,展示了如何使用。目录,然后在目录中执行一些操作,最后通过。命令执行时,首先会进入。时,要确保在其后面使用。

2024-03-07 14:26:31 160

原创 2024-03-05 linux 分区老显示满,Use 100%,原因是SquashFS 是一种只读文件系统,它在创建时就已经被填满,所有空间都被使用。

t。

2024-03-05 19:54:28 235

原创 2024-02-08 让gcc 编译的c程序可以调用g++编译的动态链接库so里面的函数的方法

由于C++编译的函数由于名字修饰(mangling)的影响,是不能直接被C代码调用的。C++支持函数重载,所以在编译的时候会对函数名进行名字修饰(mangling),这使得原本的函数名在链接的时候无法找到。3.3 可以调用到g++里面的函数,通过nm -D 命令可以知道test_function函数是gcc编译的,如果是g++编译的会有Z字样。4.5 gcc编译的c文件可以去调用c++编译的cpp文件里面的test_function函数。3.1 动态链接库中被调用的函数必须使用。

2024-02-28 17:18:52 354

原创 2024-02-26 怎么看一个动态链接库so 里面的函数是c还是c++编译?使用nm或objdump命令行工具来检查链接库是否包含C++符号。nm -D mylib.so 或者 objdump -T

这种方法不能100%确定库是用C++编译的,因为有些情况下C++代码可能extern "C"接口,使得符号看起来像C,但作为一种快速检查方法,这还是很有用的。由于C++编译器在生成符号名称时会使用名为“mangling”的过程,这使得C++的符号名称看起来与C的符号名称不同。可以列出链接库中的符号。C++的符号会看起来很复杂,可能包含许多看似随机的字符和多个下划线,而C的符号通常都是可读的文本。

2024-02-26 17:48:51 355

原创 2024-02-07 RGB565简单介绍,Ubuntu上用java读jpg图片转成RGB565格式数据保存为bin文件。android app读取bin文件并显示。为后续图像处理开发工作做技术储备。

RGB565是一种简化的颜色表达方式,用于数字图像处理中,尤其常见于嵌入式系统和移动设备中,因其能够在只需较少的数据量的情况下表达彩色图像。在RGB565格式中,一个像素的颜色用16位(2字节)来表示,分配给红色、绿色和蓝色通道的位数分别是5位、6位和5位。

2024-02-07 15:28:39 640

原创 2024-02-06 Buildroot Linux系统中通过/etc/shadow文件更改root默认密码和密码过期时间,使用openssl生成md5算法的加密密码

1$表示使用MD5算法加密过的。

2024-02-06 13:32:18 359

原创 2024-02-05 Linux shell 脚本检查检测某个环境变量是否已设置

【代码】2024-02-05 Linux shell 脚本检查检测某个环境变量是否已设置。

2024-02-05 11:00:20 380

原创 2024-01-29 Android 系统自动化测试脚本,定时点击某个坐标,输入数值,检测软键盘是否打开,隐藏软键盘等功能,用于app的压力测试

【代码】2024-01-29 Android 系统自动化测试脚本,定时点击某个坐标,输入数值,检测软键盘是否打开,隐藏软键盘等功能,用于app的压力测试。

2024-01-29 19:36:36 311

原创 2024-01-29 buildroot 如何编译出libjpeg.so 和libyuv.so ,Makefile 调用so。

一、用Makefile 编译的时候需要用到libjpeg.so 和libyuv.so ,但是默认buildroot 编译出来的文件没有这两个库。二、编译出so库的方法如下三、实际操作过程,可以编译出libyuv.so四、调用libyuv.so Makefile 编译成功。

2024-01-29 19:26:29 286

原创 2024-01-29 ubuntu 用脚本设置安装交叉编译工具链路径方法,设置PATH环境变量

【代码】2024-01-29 ubuntu 用脚本设置安装交叉编译工具链路径方法,设置PATH环境变量。

2024-01-29 10:27:47 369

原创 2024-01-24 在 Android 应用开发中,如果你想要精确地测量一段代码执行所需的时间,你可以使用 Java 提供的 System.nanoTime() 方法

对于更复杂的性能分析,你可以使用 Android Profiler 工具,它内置于 Android Studio 中,可以提供 CPU、内存、网络使用情况等详细信息。对于代码级别的性能分析,Traceview 和 Systrace 工具也是非常有用的资源。以上代码将会在 Logcat 中输出你的代码片段执行所需要的时间,这样你可以很方便地查阅和分析。在 Android Studio 中,你还可以使用。以下是一个示例代码,展示如何使用。

2024-01-24 18:18:47 436

原创 2024-01-24 android app button 响应最简单的形式 setOnClickListener( v -> { .....});v -> 是Java中lambda表达式的语法。

是Java中lambda表达式的语法,它是Java 8及之后版本中新增的特性,用于提供一种简洁的方式来表示接口的匿名实现。

2024-01-24 10:00:37 370

原创 2024-01-18 在Android Studio中,可以通过修改build.gradle文件(位于你的应用模块目录下)来自定义生成的APK名称

【代码】2024-01-18 在Android Studio中,可以通过修改build.gradle文件(位于你的应用模块目录下)来自定义生成的APK名称。

2024-01-18 15:31:03 601

原创 2024-01-16在JDK的旧版本中,你可以使用javah来生成JNI头文件。但是,从JDK 10开始,javah工具已经被移除,取而代之的是使用javac的-h选项

一、在JDK的旧版本中,你可以使用javah来生成JNI头文件。但是,从JDK 10开始,javah工具已经被移除,取而代之的是使用javac的-h选项二、C:\Program Files\Android\Android Studio\jre\bin 已经看不到javah了,只有javac三、执行javac -h . YourClassName.java命令就可以生成C语言h头文件了。

2024-01-16 10:05:27 488

原创 2024-01-05 C语言定义的函数名里面插入宏定义,对函数名进行封装,可以通过宏定义批量修改整个文件的函数名里面的内容

为了解决这个问题,通常需要使用两层宏:一层用于参数宏的展开,另一层用于连接操作。运算符将不会导致参数宏的展开。这是因为宏的展开顺序规则导致。运算符在宏定义中用于连接两个令牌。然而,当使用宏参数与。运算符一起使用时,并且这些参数本身是宏时,直接使用。阻止了参数宏先于连接操作的展开。

2024-01-15 18:34:51 537

原创 2024-01-09 Android.mk 根据c文件名插入特定的宏定义,我这里用于定义log LOG_TAG 标签

【代码】2024-01-09 Android.mk 根据c文件名插入特定的宏定义,我这里用于定义log LOG_TAG 标签。

2024-01-09 17:29:58 592

原创 2024-01-09 target_link_libraries libopencv_java3.so提示 ld: error: found local symbol ‘_edata‘

【代码】2024-01-09 target_link_libraries libopencv_java3.so提示 ld: error: found local symbol ‘_edata‘

2024-01-09 13:35:40 500

原创 2014-01-09 Android 系统 执行ps命令不显示运行shell脚本的名称,只显示sh.ps -ef 或者 ps -Af。ps | grep ‘xxx.sh‘ | awk ‘{print

3.3 通过 ps | grep 'xxx.sh' | awk '{print $2}' | xargs kill -9。3.2方法一:通过pgrep 查找进程,命令格式 pgrep xxxx.sh | xargs kill -9。3.1方法一:通过pkill -9 加脚本名。

2024-01-09 09:58:08 422

原创 2024-01-08 android studio CMakeLists.txt 把多个静态链接库打包成动态链接库so的方法

如果您希望把没有直接使用的静态链接库打包进动态链接库,那么您需要确保这些静态链接库中的符号在最终的动态库中被保留。通常情况下,如果您没有在您的代码中直接引用静态库的符号,编译器可能会在优化过程中丢弃这些符号。

2024-01-08 19:26:31 459

原创 2024-01-06 dlopen failed: library “libc++_shared.so”,AS 编译的时候打包ndk里的libc++_shared.so到apk的 lib/目录

提示dlopen failed: library "libc++_shared.so" 然后app闪退。

2024-01-06 13:43:06 578

原创 2024-01-03 android studio build.gradle使用 ExternalNativeBuild 设置Android.mk 在编译apk时候同时编译jni

【代码】2024-01-03 android studio build.gradle使用 ExternalNativeBuild 设置Android.mk 在编译apk时候同时编译jni。

2024-01-03 15:21:32 638

原创 2023-12-27 Python PC获取鼠标位置,移动鼠标到相应的位置 定时自动模拟鼠标点击,用于简单测试app用

【代码】2023-12-27 Python PC获取鼠标位置,移动鼠标到相应的位置 定时自动模拟鼠标点击,用于简单测试app用。

2023-12-27 17:22:37 1257

原创 2023-12-22 linux C语言pthread_kill函数,pthread_kill(tid, 0)可以用来判断线程是否存在

当我们给线程发送一个0就可以判断线程是否存在。这是一个保留信号,一个作用是用来判断线程是不是还活着。

2023-12-22 19:38:12 804

原创 2023-12-20 linux 把大文件分割成小文件,命令格式如下 split -b 100m xxxx.txt -d xxx.txt_

【代码】2023-12-20 linux 把大文件分割成小文件,命令格式如下 split -b 100m xxxx.txt -d xxx.txt_

2023-12-20 17:37:55 459

原创 2023-12-18 AndroidR RK356X 新增一个分区,这个分区可写入读取,恢复出厂后数据也不会被删除。

2.2 查看分区数,64M等于1024X64等于65536(KB)。2.1 查看分区挂载情况。

2023-12-18 19:38:54 772

原创 2023-12-14 分析android 系统标准的打印方法 ALOGD ALOGI ALOGE,因为ndk里面是不能使用这些函数,特意花时间跟踪一下这部分代码。本文包含封装log打印函数实例

调用system/core/liblog/include/android/log.h里面的__android_log_print函数。ndk里面是没有libcutils 的。

2023-12-15 11:40:49 737

原创 2023-12-14 Android.mk 引入外部动态连接so库的方法LOCAL_LDLIBS 和PREBUILT_SHARED_LIBRARY

先定义一个PREBUILT_SHARED_LIBRARY MODULE,然后用LOCAL_SHARED_LIBRARIES 去引用。

2023-12-14 15:07:26 922

原创 2012-12-12 下载ndk编译出so和可执行文件,放到android 真机运行,包含源码。

【代码】2012-12-12 下载ndk编译出so和可执行文件,放到android 真机运行,包含源码。

2023-12-12 16:07:34 492

原创 2023-12-12 使用Android studio ndk命令编译jni C:\Users\x\AppData\Local\Android\Sdk\ndk-bundle\ndk-build.cmd

【代码】2023-12-12 使用Android studio ndk命令编译jni C:\Users\x\AppData\Local\Android\Sdk\ndk-bundle\ndk-build.cmd。

2023-12-12 10:43:06 514

原创 2023-12-07 Android 新增动态链接库路径,LD_LIBRARY_PATH是Linux环境变量名,用于指定查找共享库,shell脚本实例,init.environ.rc 环境变量配置文件

【代码】2023-12-07 Android 新增动态链接库路径,LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库,shell脚本实例测试。

2023-12-07 19:40:28 832

原创 2023-12-01 AndroidR 系统在root目录下新建文件夹和创建链接,编译的时候需要修改sepolicy权限

【代码】2023-12-01 AndroidR 系统在root目录下新建文件夹和创建链接,编译的时候需要修改sepolicy权限。

2023-12-01 17:16:32 978

原创 2023-11-28 C语言if语句多个||或 与&&的时时候,会顺序执行,不满足条件则退出,不会再比较后面的内容,实例测试

【代码】2023-11-28 C语言if语句多个||或 与&&的时时候,会顺序执行,不满足条件则退出,不会再比较后面的内容,实例测试。

2023-11-28 17:17:28 992

2012-12-12 下载ndk编译出so和可执行文件,放到android 真机运行

下载ndk编译出so和可执行文件,放到android 真机运行。

2023-12-12

2023-06-16 Android app 使用opencv 调用jni在图片上添加文字,对图片进行模糊处理,源码实例学习

2023-06-16 Android app 使用opencv 调用jni在图片上添加文字,对图片进行模糊处理,源码实例学习。

2023-06-16

2023-06-16 Android Studio 使用CMakeList编译JNI ,源码

2023-06-16 Android Studio 使用CMakeList编译JNI ,源码,直接build build apk直接一部编译成apk

2023-06-15

2023-03-25 android app 用经典蓝牙socket方式数据传输实例

具体看https://blog.csdn.net/qq_37858386/article/details/129768181

2023-03-25

Android APP 用interface 接口的形式对jni进行回调,实例测试

Android APP 用interface 接口的形式对jni进行回调,实例测试

2022-09-28

Android app 使用android-serialport-api 实现串口通信 源码

Android app 使用android-serialport-api 实现串口通信 源码

2022-07-23

AndroidStudio-NDK开发 编译c代码提供so库和jar包 另外一个app调用,实例源码

AndroidStudio-NDK开发 编译c代码提供so库和jar包 另外一个app调用,实例源码

2022-07-22

Android 源码里面添加一个系统app,最简单的app demo实例

Android 源码里面添加一个系统app,最简单的app demo实例。

2022-02-22

hello_hidl.rar

1、AndroidR HIDL服务实现应用层到HAL层通信实例。 2、详细介绍https://blog.csdn.net/qq_37858386/article/details/120989600。

2021-10-27

es7243调试资料.zip

es7243调试资料

2021-06-07

iperf-2.0.5-master.zip

1、Android 网络性能测试工具iperf 工具源码 2、把该源码放到路径android sdk路径external路径下然后mmm external/iperf-2.0.5-master 就可以编译出arm可执行bin 文件iperf了。

2021-05-22

frameworks_services_jni_hardware_kernel.zip

Android 理解frameworks services jni hardware kernel 整个控制过程实例包括回调 包含app demo 和底层驱动。

2021-04-27

RK3288 Android7.1 USB wifi bluetooth 模块RTL8821CU 调试资料.zip

RK3288 Android7.1 USB wifi bluetooth 模块RTL8821CU 调试记录

2021-04-12

Android Studio 生成JAR包和调用JAR包方法 demo

1、Android Studio 生成JAR包和调用JAR包方法。 2、Android Studio 4.1.2

2021-03-08

RK3288-Android7.1-华为移远域格4G模块调试记录所有文件.zip

1、RK3288-Android7.1-华为移远域格4G模块调试记录所有文件 2、包含域格、移远和域haiwei的so库。 3、目前测试CLM920 MU909 EC25

2021-01-08

binder.zip

1、Android Binder 进程通信应用实例 2、Android 基于linux内核开发,linux内核提供丰富的进程通信机制,如pipe、signal、message、share memory、socket,但android采用新的进程间通信机制binder。相比之下binder进程通信机制在传输数据时候只执行一次copy,效率高而且节省内存。

2020-11-04

static_library_demo.zip

1、Android 编译成静态编译库a以及调用实例,包含C源码。 2、在android真机运行测试ok。

2020-11-02

android_app_server_demo.zip

Android 简单后端服务器的搭建方法 1.android后端服务器搭建,需要用到 jsp+java+tomcat。 2.简单发生和接受数据。

2020-10-22

2020-10-20 Ubuntu 16.04安装配置Samba服务每个用户可以用自己的用户名和密码登录自己的home目录以及共享特定的目录配置smb.conf

2020-10-20 Ubuntu 16.04安装配置Samba服务每个用户可以用自己的用户名和密码登录自己的home目录以及共享特定的目录

2020-10-20

jnicallbackdemo.zip

1、jni 回调demo 源码。 2、运行环境android studio。 3、实例测试,不停的往上层回调发送信息,log看很直观。

2020-09-27

analyze_hdmi_edid.zip

1、C语言 解析Hdmi edid 信息数据 源码包。 2、ubuntu环境下编译和运行。 3、EDID: Extended Display Identification Data(扩展显示标识数据)

2020-09-11

nextouch_jni_demo.zip

1、Android:配置NDK并编译JNI文件so库 APP调用jni源码实例 2、app调用jni接口。

2020-09-10

Android 开机自动启动一个Service

Google在更新Android8.0后对Service的权限越发收紧。导致目前想要启动服务必需实现服务的前台化,打开应用才能顺利启动service,否则在服务启动5秒后,系统将自动报错,会弹出一个提示窗口。实际测试得系统的app才能启动service。

2020-08-28

Android APP:开机自动启动app demo 源码 autorundemo.zip

Android APP:开机自动启动app demo 源码 Android启动完成会发出一个系统广播 ACTION_BOOT_COMPLETED,字符串常量表示为 “android.intent.action.BOOT_COMPLETED”,我们要做的是用BroadcastReceiver接收这个消息然后启动该程序。

2020-06-17

settingdatebasedemo.zip

demo的功能一是向setting数据库某个key写value,然后读出来。功能二是侦听settings数据库里面某个key的value,如果改变会有提醒。

2020-06-11

popupwindow_demo.zip

1、PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的。 2、实例源码。

2020-05-27

navigationbar.zip

Android 8.1实现底部虚拟按钮NavigationBar的点击隐藏与滑动显示整个过程需要修改的完整代码,包含下面几个完整文件。 frameworks/base/packages/SystemUI/res/values-sw372dp/config.xml frameworks/base/packages/SystemUI/res/values-sw600dp/config.xml frameworks/base/packages/SystemUI/res/values-sw900dp/config.xml frameworks/base/packages/SystemUI/res/values/config.xml frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

2020-04-17

android linux i2c调试工具源码 i2c-tools-3.0.0.zip

1、 Android:i2c调试工具 i2c-tools 2、可以直接在android上编译。 3、或者用目录下的Makefile文件修改一下编译器路径进行编译。

2020-03-26

PreferencexmlDemo.zip

1、使用XML定义Preference。 2、运行环境android studio。 3、此方法有点过时,不太建议使用,但目前还可以用。让Activity继承PreferenceActivity,然后在重写onCreate方法,添加preferences.xml作为显示界面。

2020-01-02

PreferenceDemo.zip

1、使用Fragment 定义Preference 2、运行环境android studio。 3、Preference 是Android app中重要的控件之一,Settings 模块大部分都是通过Preference 实现的,这里将学习preference 使用方法。

2020-01-02

dynamic_register_jni.zip

1、JNI动态注册实例。 2、运行环境是Android studio。 3、动态注册是在JNi层实现的,JAVA层不需要关心,因为在system.load时就会去调用JNI_OnLoad,有就注册,没有就不注册。动态注册的原理:JNI 允许我们提供一个函数映射表,注册给 JVM,这样 JVM 就可以用函数映射表来调用相应的函数, 而不必通过函数名来查找相关函数(这个查找效率很低,函数名超级长)流程更加清晰可控,效率更高.。

2019-12-31

static_jni.zip

1、JNI静态注册实例。 2、运行环境Android studio。 3、静态注册原理:根据函数名来建立 java 方法与 JNI 函数的一一对应关系;在Java虚拟机加载so库时,如果发现含有上面两个宏定义的函数时就会链接到对应Java层的native方法,那么怎么知道对应Java中的哪个类的哪个native方法呢,我们仔细观察JNI函数名的构成其实是:以Java为前缀,并且用“_”下划线将包名、类名以及native方法名连接起来就是对应的JNI函数了。  其实就是:Java+包名+类名+方法名(native方法)

2019-12-31

dianzhen下位机AVRM16代码.zip

一、毕业有九年了,突然想起以前在大学时候用MFC写的一个汉字取模软件。主要的功能是在PC上获取汉字16X16点阵数据然后通过串口把点阵数据发送给AVR单片机点亮点阵。 二、下位机AVR单片机代码。

2019-12-20

MFC写的一个汉字取模软件

1、毕业有九年了,突然想起以前在大学时候用MFC写的一个汉字取模软件。主要的功能是在PC上获取汉字16X16点阵数据然后通过串口把点阵数据发送给AVR单片机点亮点阵。 2、这个是上位机MFC的代码。

2019-12-20

Canvas_draw.zip

1、运行环境android studio。 2、用canvas实现简单画板。 3、可以保存绘制的画板。

2019-12-05

interfaceservicecallback.zip

Android  app:回调方式实现Service向activity传递数据源码 运行环境:android studio

2019-11-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除