环境:win7 64位,虚拟机ubuntu10.04,TI4.1.2源码
在源码下编译so文件是方便了,不要在下载android ndk 和cygwin啥的。
具体做法如下:
1 在源码新建的extral/mtJNItest/Android.mk
内容:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
SerialPort.c
LOCAL_MODULE_TAGS := optional
LOCAL_C_INCLUDES := \
$(JNI_H_INCLUDE)
LOCAL_SHARED_LIBRARIES := libutils
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE := libmyserialport
include $(BUILD_SHARED_LIBRARY)
2,编写c文件
在复制你的c代码,必须准守java调用的c代码哦Jint啥的
重点是c的代码如何写,不小心就会找不到方法
比如JNIEXPORT jint JNICALL Java_com_start_am335x_factorytest_utils_SerialPort_test
(JNIEnv *env, jobject t){
return 110;
}
函数名字分析:
JNICALL Java是固定
com_start_am335x_factorytest是包名
utils是包下的类名
test才是函数名
还有一些数据类型以后再补充。。。
3 开始编译:
在源码目录下执行 make libmyserialport TARGET_PRODUCT=am335xevm
ok,在out回生成libmyserialport.so库
4 使用so库
拷贝到libs下的armeabi开始调用了
需要注意的是
public native void test();
static {
System.loadLibrary("myserialport");//不是libmyserialport
}
相关推荐
总结,编译Freetype for Android涉及下载源码、配置构建环境、创建构建脚本、设置目标架构、编译库、检查生成的SO文件以及将其集成到项目中。这是一个涉及多步骤的过程,但遵循正确的步骤可以确保在64位Android设备...
本文将详细讲解如何使用Android Studio和CMake编译FFmpeg库,生成SO共享库,并处理相关的头文件和CMakeLists配置。 首先,我们需要在Android Studio项目中引入CMake构建系统。打开`build.gradle`(Module级别)文件...
- 要在Android项目中使用libyuv,首先需要将编译好的.so动态库文件放入项目的jniLibs目录下,对应不同的CPU架构。 - 接下来,在Java或Kotlin代码中,通过JNI接口调用libyuv的C++函数进行颜色空间转换。 4. **编译...
编译完成后,将生成的`.a`或`.so`库文件添加到Android项目的`jniLibs`目录下,然后在Java或Kotlin代码中通过JNI(Java Native Interface)调用C/C++代码,即可在Android应用中使用OpenSSL提供的加密功能。...
Android源码下编译JNI(Java Native Interface)示例项目是一种深入理解Android系统与本地C/C++代码交互机制的关键实践。JNI是Java平台提供的一种接口,允许Java代码和其他语言写的代码进行交互。在这个示例项目中,...
本文将详细介绍如何在Android环境下编译OpenSSL生成静态库`.a`和动态库`.so`。 首先,我们有两个关键的脚本文件:`make_static.sh` 和 `make_share.sh`。这两个脚本分别用于编译静态库和动态库。 1. **静态库(.a)...
本文将详细介绍如何在Linux系统下使用NDK编译FFmpeg,并生成适用于Android的.so库。主要涉及的知识点包括: 1. **FFmpeg框架**:FFmpeg提供了多种音视频编解码器,如H.264、AAC等,以及各种格式的容器支持,如MP4、...
在这个场景中,我们将探讨如何在Android环境下使用NDK(Native Development Kit)编译Curl库源码。 首先,NDK是Google提供的一个工具集,允许开发者在Android应用中集成原生代码。通过NDK,我们可以编写C和C++代码...
在Android上,为了实现对MP4v2文件的原生操作,我们需要将MP4v2库编译为Android Native Development Kit (NDK) 支持的.so动态链接库。 编译过程主要分为以下几个步骤: 1. **获取源码**: 首先,你需要从官方仓库...
4. **编译so库**:利用NDK的ndk-build命令或者Android Studio的CMake插件,编译源码生成.so文件。通常会有armeabi-v7a、arm64-v8a、x86和x86_64等不同架构的版本。 5. **集成到Android应用**:将编译好的.so文件放...
本文将详细阐述如何在Linux环境下搭建Android交叉编译环境,并针对iperf3.0源码进行编译,以生成适用于Android系统的可执行文件。 首先,交叉编译是指在一个平台上构建另一个平台上的软件。对于Android,我们通常在...
将live555源码编译成可供android-ndk使用的动态库 1、linux下新建jni, 将Android.mk、build.sh放在jni目录,然后将live555源码下的目录 BasicUsageEnvironment、groupsock、liveMedia、UsageEnvironment也复制到jni...
首先,我们来看标题“zbar android源码编译”。这意味着我们要把ZBar的源代码转换为适用于Android平台的库。这通常涉及到Android Native Development Kit (NDK)的使用,NDK是Google提供的一套工具,允许开发者在C/...
Libredwg的源码通过Android STudio交叉编译生成的库,下载下来就能直接用,省去了自己编译,修改报错,不兼容或者环境的问题。 arm64-v8a/ armeabi-v7a/ x86/ x86_64/ 如果你需要原始的可自己编译的工程可以私信...
本资料包含的是针对 Android 平台编译的 FFmpeg so 库及其源码,采用了现代的 CMake 编译系统进行构建。 一、FFmpeg 框架介绍 FFmpeg 包含了多种音视频编解码器、容器格式解析器、滤波器和流媒体工具。它支持众多的...
- 开发者在Android项目中集成ijkplayer时,需要将对应的so库文件放入项目的jniLibs目录下,并在代码中调用ijkplayer的API进行播放控制。 - ijkplayer提供了丰富的接口,包括初始化、加载媒体、播放、暂停、停止、...
本文将深入探讨如何使用Android NDK(Native Development Kit)来编译适用于Android平台的eXosip库,包括静态库和动态库的构建过程。 首先,eXosip是基于OSI(Open Systems Interconnection)模型的SIP协议栈,它是...
在Android开发中,有时我们需要利用C或C++的性能优势,这时就需要用到Android Studio的NDK(Native Development Kit)来编译C/C++代码,生成SO(Shared Object)动态链接库文件。这篇博客详细介绍了如何在Android ...
【压缩包子文件的文件名称列表】中的"external"可能是指Android源码树中的一个目录,通常包含用于构建Android系统的第三方库和组件。在这个目录下,可以找到libusb源码的相关构建脚本和配置文件,如`android.mk`,它...