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

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值