`
dengzhangtao
  • 浏览: 678854 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android源码下编译自己的so库

 
阅读更多

环境: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

}

 

1
4
分享到:
评论

相关推荐

    freetype android 编译so库

    总结,编译Freetype for Android涉及下载源码、配置构建环境、创建构建脚本、设置目标架构、编译库、检查生成的SO文件以及将其集成到项目中。这是一个涉及多步骤的过程,但遵循正确的步骤可以确保在64位Android设备...

    Android studio CMake 编译ffmpeg SO库 头文件 和 CMakeLists

    本文将详细讲解如何使用Android Studio和CMake编译FFmpeg库,生成SO共享库,并处理相关的头文件和CMakeLists配置。 首先,我们需要在Android Studio项目中引入CMake构建系统。打开`build.gradle`(Module级别)文件...

    libyuv安卓Android 编译好SO库文件及源代码

    - 要在Android项目中使用libyuv,首先需要将编译好的.so动态库文件放入项目的jniLibs目录下,对应不同的CPU架构。 - 接下来,在Java或Kotlin代码中,通过JNI接口调用libyuv的C++函数进行颜色空间转换。 4. **编译...

    android编译openssl静态库.a 动态库.so

    编译完成后,将生成的`.a`或`.so`库文件添加到Android项目的`jniLibs`目录下,然后在Java或Kotlin代码中通过JNI(Java Native Interface)调用C/C++代码,即可在Android应用中使用OpenSSL提供的加密功能。...

    android源码下编译jni示例项目代码

    Android源码下编译JNI(Java Native Interface)示例项目是一种深入理解Android系统与本地C/C++代码交互机制的关键实践。JNI是Java平台提供的一种接口,允许Java代码和其他语言写的代码进行交互。在这个示例项目中,...

    android编译的openssl静态库.a 动态库.so

    本文将详细介绍如何在Android环境下编译OpenSSL生成静态库`.a`和动态库`.so`。 首先,我们有两个关键的脚本文件:`make_static.sh` 和 `make_share.sh`。这两个脚本分别用于编译静态库和动态库。 1. **静态库(.a)...

    在Linux下编译FFmpeg+android ndk成功的脚本及so库

    本文将详细介绍如何在Linux系统下使用NDK编译FFmpeg,并生成适用于Android的.so库。主要涉及的知识点包括: 1. **FFmpeg框架**:FFmpeg提供了多种音视频编解码器,如H.264、AAC等,以及各种格式的容器支持,如MP4、...

    android使用NDK编译curl库源码

    在这个场景中,我们将探讨如何在Android环境下使用NDK(Native Development Kit)编译Curl库源码。 首先,NDK是Google提供的一个工具集,允许开发者在Android应用中集成原生代码。通过NDK,我们可以编写C和C++代码...

    Android MP4v2 编译全类型so文件

    在Android上,为了实现对MP4v2文件的原生操作,我们需要将MP4v2库编译为Android Native Development Kit (NDK) 支持的.so动态链接库。 编译过程主要分为以下几个步骤: 1. **获取源码**: 首先,你需要从官方仓库...

    android Speex回音消除so库源码

    4. **编译so库**:利用NDK的ndk-build命令或者Android Studio的CMake插件,编译源码生成.so文件。通常会有armeabi-v7a、arm64-v8a、x86和x86_64等不同架构的版本。 5. **集成到Android应用**:将编译好的.so文件放...

    Android交叉编译环境&Iperf3;.0源码编译

    本文将详细阐述如何在Linux环境下搭建Android交叉编译环境,并针对iperf3.0源码进行编译,以生成适用于Android系统的可执行文件。 首先,交叉编译是指在一个平台上构建另一个平台上的软件。对于Android,我们通常在...

    编译live555 android动态库(Android.mk)

    将live555源码编译成可供android-ndk使用的动态库 1、linux下新建jni, 将Android.mk、build.sh放在jni目录,然后将live555源码下的目录 BasicUsageEnvironment、groupsock、liveMedia、UsageEnvironment也复制到jni...

    zbar android源码编译

    首先,我们来看标题“zbar android源码编译”。这意味着我们要把ZBar的源代码转换为适用于Android平台的库。这通常涉及到Android Native Development Kit (NDK)的使用,NDK是Google提供的一套工具,允许开发者在C/...

    Libredwg androidstudio交叉编译生成的动态库so

    Libredwg的源码通过Android STudio交叉编译生成的库,下载下来就能直接用,省去了自己编译,修改报错,不兼容或者环境的问题。 arm64-v8a/ armeabi-v7a/ x86/ x86_64/ 如果你需要原始的可自己编译的工程可以私信...

    Android FFMpeg so库和源码

    本资料包含的是针对 Android 平台编译的 FFmpeg so 库及其源码,采用了现代的 CMake 编译系统进行构建。 一、FFmpeg 框架介绍 FFmpeg 包含了多种音视频编解码器、容器格式解析器、滤波器和流媒体工具。它支持众多的...

    最新源码编译的ijkplayer android armev7a x86 so库

    - 开发者在Android项目中集成ijkplayer时,需要将对应的so库文件放入项目的jniLibs目录下,并在代码中调用ijkplayer的API进行播放控制。 - ijkplayer提供了丰富的接口,包括初始化、加载媒体、播放、暂停、停止、...

    使用Android NDK编译Android平台的eXosip库

    本文将深入探讨如何使用Android NDK(Native Development Kit)来编译适用于Android平台的eXosip库,包括静态库和动态库的构建过程。 首先,eXosip是基于OSI(Open Systems Interconnection)模型的SIP协议栈,它是...

    AndroidStudio 编译C/C++文件生成SO文件

    在Android开发中,有时我们需要利用C或C++的性能优势,这时就需要用到Android Studio的NDK(Native Development Kit)来编译C/C++代码,生成SO(Shared Object)动态链接库文件。这篇博客详细介绍了如何在Android ...

    libusb 源码(可在external中编译,含android.mk)

    【压缩包子文件的文件名称列表】中的"external"可能是指Android源码树中的一个目录,通常包含用于构建Android系统的第三方库和组件。在这个目录下,可以找到libusb源码的相关构建脚本和配置文件,如`android.mk`,它...

Global site tag (gtag.js) - Google Analytics