Android项目编译和使用C语言动态库(so库)

编译SO库

1、新建工程,建立jni目录用于放置c语言相关文件

2、编写Android.mk文件

 1 LOCAL_PATH := $(call my-dir)
 2 include $(CLEAR_VARS)
 3 LOCAL_LDLIBS :=-llog
 4 LOCAL_MODULE    := PsamLib
 5 LOCAL_SRC_FILES := PsamDev.c  6
 7
 8
 9
10 include $(BUILD_SHARED_LIBRARY)

3、配置Builders选项

4、做完上面动作后就可以编译so库了。

使用SO库文件

1、新建工程,建立jni文件夹用于存放C语言相关文件,将上面工程中的.h文件以及编译后得到so文件也放入其中。

2、编写Android.mk文件

 1 LOCAL_PATH := $(call my-dir)
 2 include $(CLEAR_VARS)
 3 LOCAL_LDLIBS :=-llog
 4 LOCAL_MODULE    := PsamDev
 5 LOCAL_SRC_FILES := com_example_psam_api_PsamDev.c 6
 7 LOCAL_SHARED_LIBRARIES += libPsamLib
 8
 9
10 include $(BUILD_SHARED_LIBRARY)
11
12
13
14 include $(CLEAR_VARS)
15 LOCAL_MODULE := libPsamLib
16 LOCAL_SRC_FILES := libPsamLib.so
17
18 include $(PREBUILT_SHARED_LIBRARY)

3、配置Builders选项

4、完成上面动作后就可以在项目中使用so中的函数了。

时间: 2024-10-28 09:52:26

Android项目编译和使用C语言动态库(so库)的相关文章

Android项目编译的时候出现:Caused by: java.lang.ClassNotFoundException: com.example.aaa.MainActivity

错误类型: 04-28 06:10:15.508: E/AndroidRuntime(849): Caused by: java.lang.ClassNotFoundException: com.example.aaa.MainActivity 04-28 06:10:15.508: E/AndroidRuntime(849): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 04-28 06:1

android在JNI_OnLoad入口函数下断点动态调试so库

一般来说,很多APK的校验代码,都会在程序运行的时候自动加载一些动态so库,然后执行这些库中的校验代码.所以为了能够通过程序的校验,我们必须在执行这些函数之前下断点--理想的方法就是在JNI_OnLoad入口函数下断点. 在2.3.3模拟器中详细步骤如下: ①在控制台输入adb shell 进入手机,然后使用  am start -D -n 包名/类名,以等待调试的模式启动APK应用: 这里需要说明的是 "包名/类名"的书写方法: # am start -n {包(package)名}

ant Android项目使用详解

ant简介 ant是用java语言编写的命令行工具,主要任务就是完成build文件中的target.我们所了解的主要就是构建java应用程序,当然它也可以用于构建C/C++程序. 安装与使用 下载地址:http://ant.apache.org/bindownload.cgi,将下载的包解压到相应的目录,我的目录是:D:\apache-ant-1.9.4 添加环境变量 添加ANT_HOME:指向ant所在目录,例如:D:\apache-ant-1.9.4,然后在PATH中配上bin的目录:%AN

Android Gradle编译学习日记之二(使用 Gradle 编译 Eclipse,引入依赖资源以及迁移 Android Studio)

大家如果喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 Android Gradle编译学习日记(基于 Android Studio 1.0): Android Gradle编译学习日记之一(搭建 Gradle 环境以及编译 Android 应用) 在上一篇文章中,我简单介绍了一个 Gradle 环境变量的搭建,以及如何使用 Gradle 编译 Android

[原]详解如何将cocos2dx项目编译到Android平台上的(方式一:Cywin+NDK)

链接地址:http://m.blog.csdn.net/blog/yhc13429826359/29357815 2014-6-8阅读578 评论0 前言:cocos2dx作为一个开源的移动2D游戏框架,其跨平台的特性让它备受开发公司的欢迎.这里我就不做概念性的解释了,通过这篇文章你就会了解到,它的跨平台性”是个什么样子的“---有点拟人化了 我举个比较形象的例子: 有A.B.C三个部落,A部落的语言是A和O语言,B部落的语言是B和O语言,C部落的语言是C和O语言.你作为一个外星球人你会选择去学

Android项目中JNI技术生成并调用.so动态库实现详解

生成 jni方式有两种:一种是通过SWIG从C++代码生成过度的java代码:另一种是通过javah的方式从java代码自动生成过度的C++代码.两种方式下的步骤流程正好相反. 第一种方式:由于需要配置SWIG环境,有点麻烦了,所以往往大家不采用这个途径,参照博文http://my.oschina.net/liusicong/blog/314162. 第二种方式:javah的方式则通过shell指令就可以完成整个流程,该过程大概包括以下步骤: 编写 Java 代码.我们将从编写 Java 类开始

Android 多语言动态更新方案探索

本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/jG8rAjQ8QAOmViiQ33SuEg作者:陈龙 最近做的项目需要支持几十种语言,很多小语种在不认识的人看来跟乱码一样,,翻译一般是由翻译gongsi翻译的,翻译完成后再导入到项目里面,这就容易存在一些问题. 一.问题一:翻译容易出错 翻译的流程是客户端开发编写中文文案---翻译成英文----外包翻译根据英文字符串翻译小语种,在这个流程中,有些多义词和一些涉及语境的词就很容易翻译错误.

Android项目---语言适配

android多国语言文件夹 android多国语言文件夹文件汇总如下:(有些语言的书写顺序可能跟中文是相反的) 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中文(香港):values-zh-rHK 英语(美国):values-en-rUS 英语(英国):values-en-rGB 英文(澳大利亚):values-en-rAU 英文(加拿大):values-en-rCA 英文(爱尔兰):values-en-rIE 英文(印度):values-en-rIN

Visual Studio Xamarin编译Android项目出错的解决办法

安装完Xamarin后,编译Android项目时,你会发现好长时间进度都不动,当你取消编译后,会发现其实是出错了,就是因在Android项目在第一次编译时要去google网站上下一个andorid sdk包,墙内又连不上,就卡在那了,解决办法就是自已到国内的一些镜像网站上(如:http://mirrors.opencas.cn/android/)下一个,如:android_m2repository_r29.zip, 然后解压到任意目录下,用mklink建立链接到C:\Users\{usernam